概述:在Apollo的驾驶辅助系统规划中,Planning规划是非常重要的子模块,其主要的功能包含不仅限于:1. 根据感知识别的道路交通灯,执行并遵守道路交通规则。2.能识别动态的交通参与者,避免发生碰撞。3. 能规划输出合适的车辆动态行为,如执行的路径曲率,速度,加速度,不能超出车辆执行功能的边界。
1.模块框架图:
规划模块接收预测和定位的结果,高清地图也会输入,当发生无法规划会rerouting,重新规划。
2.模块原理:
Apollo的规划模块的实现是基于场景(Scenario-based)实现的,针对不同的场景,规划模块通过一些列独特的任务(Task)组合来完成轨迹的规划。主要包含两大类:一类是对于路径的规划和决策,一类是对速度规划和决策。主要包括以下几个子模块来实现:
2.1 状态机(Apollo FSE即finite state machine)其是一个有限状态机,结合导航,环境等信息确定驾驶辅助车辆的驾驶场景。
2.2 规划分发器(Planning dispatcher)根据状态机与车辆相关信息,调用合适当前的规划器。
2.3 规划器(Planner)结合上游模块信息,通过一系列任务组合,完成驾驶辅助车辆的合适规划。
2.4 决策器及优化器(Deciders&Optimizers)一组实现决策和优化任务的Task集合。
3.场景处理:
主要的道路场景有如下,基于如下的场景进行路径规划和决策:
Lane follow: 根据导航路径输出行驶路线
nudge: 车辆避开障碍物绕行
lane change: 车辆换道行驶(被动换道)
lane borrow: 车辆借道行驶
pull over: 靠边停车
Park and go: 非车道线行驶到车道线上
cross walk:人行道
bare intersection: 无交通灯路口
traffic light protected/unprotected交通灯路口
stop sign: 停止标志
yield sign: 让行标志
keep clear area:禁止入内(禁停标志)
rerouting: 被困后重新发起路径规划
Valet parking: 泊车入库
emergency pull over: 紧急停车
4.外部接口升级:
Apollo对接口进行了升级,之前通过Topic进行发送,新版将封装Topic改为Sevice-Client模式,通过调用能知道服务的状态。另外也增加了插件,可以自行添加一些个性化的场景。如下增加了lane change path场景。
升级服务和指令如下:
笔记来源于:
【直播回放】2023星火培训PnC专项营第一讲:Planning 2.0综述-哔哩哔哩】
https://apollo.baidu.com/m/community/activity/2
更多内容关注微信公众号:质海无涯