Apollo 算法阅读之Public Road轨迹规划算法--整体流程

本文主要介绍Apollo内部的public road规划的主要流程,主要是针对lane_follow场景,因为该场景覆盖面更广。以下内容是本人的一些个人阅读代码时的个人理解,欢迎指正。

路径规划

1.在lane change decider中会进行referline_info的数量查看,如果没有开启换道功能,那么始终只有当前一个referline_info,删去换道路径;否则保留多个referline_info.
2.在lane_borrow_decider判断是否当前在借道场景,
        如果在借道场景,判断是否self_counter是否大于6,如果是退出borrow模式,否则保持借道; 
        如果不在借道场景,判断是否需要换道,判断是否需要换道,主要包括:
        a.速度小于20km/h
        b.远离交叉口;
        c.障碍物是长期静止的;(即障碍物长期影响原有参考线)
        d.远离终点的;
        e.障碍物在有限范围内(35m)
        当同时满足上述条件时,判断左右是否具备超车车道(查询地图),如果存在可以做超车的,加入到换道列表中,从而进入超车模式.      
3.根据换道列表及当前场景状态,生成不同类型的boundary,包括fall back与self,如果是超车状态生成 left borrow, right borrow.
4.初始化道路边界,初始化障碍物边界,如果前方已生成的Boundary的道路中心仍然被堵死,就截取到障碍物点;    
5.通过不同的Boundary,生成不同的路线;具体可参考我的另一篇文章:Apollo-public road planner-路径规划
5.path_assessment_decider进行路线安全评估验证,随后如果没有障碍物遮挡,那么safe_counter++。对生成的轨迹进行排序,选择最优的;,如果self轨迹是首选轨迹,self_counter++,当大于6时,会退出超车模式,最后会退出超车模式;
6.path_decider就是如果前方仍然存在遮挡物的话,把路线截断到那儿,并加入longitudinal decision,从而使得速度规划方面可以在此处停止;

速度规划

1.Speed_bounds_prior_decider:
首先,将障碍物的轨迹映射到s-t graph,随后计算出障碍物在最优路径上的st轨迹交集(prior过程,障碍物在速度方面不存在decision,因此此次计算轨迹是withoutdecision),并将其放置boundaries集合中,随后设置速度最大限制(沿规划好路径),最后,st_graph_data保存boundaries,speed_limit等.
2.DP_ST_SPEED_OPTIMIZER:
根据上述的boundaries,进行计算启发式速度曲线搜索,得到最优轨迹;
3.SPEED_DECIDER:
根据上述的speed曲线,来初步判断对障碍物的decision,其中行人需要特别处理,设置相应的决策行为;
4.SPEED_BOUNDS_FINAL_DECIDER:
重新计算障碍物stboundary,然后根据障碍物的decision,确定速度的边界;
5.PIECEWISE_JERK_SPEED_OPTIMIZER
基于osqp进行速度曲线的数值优化计算,得出最优曲线
 

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值