Contents

apollo决策规划--实践部分

路由寻径(Routing)

负责在宏观路网中形成街接起点终点的概略行车路线

  • 目的 在地图上搜索出最优的全局路径
  • 输入 高精地图拓扑信息 起点和终点的位置
  • 输出 从起点到终点的路由线路
  1. 转换成拓扑地图

/images/apollo决策规划--实践部分/20231009_2039128257.png
基于高精地图生成拓扑地图,边缘可以根据行驶难度赋予不同代价,用A*搜索

  1. 寻路流程

/images/apollo决策规划--实践部分/20231009_2039122518.png
routing的流程图

行为决策

在微观层面确定车辆当前需采取的行驶方式包括直行,轻微绕行、换道绕行、减速让行、加速抢行停车以及跟车

  • 目的 保障无人车的行车安全并遵守交通规则 为路径和速度的平滑优化提供限制信息
  • 输入 routing信息 道路结构信息(当前车道、相邻车道、汇入车道、路口等) 交通信号和标识(红绿灯,限速信息) 障碍物信息
  • 输出 路径信息 速度限制和边界 时间上的位置限制边界

/images/apollo决策规划--实践部分/20231009_2039122081.png

  1. 方法分类

/images/apollo决策规划--实践部分/20231009_2039129824.png

  1. 决策内容

/images/apollo决策规划--实践部分/20231009_2039125496.png

轨迹规划

在微观层面生成符合行为决策结果的时空连续轨迹

  • 目的 在合理的时间到达规划的目标或终点 避免与障碍物碰撞 更好的乘坐体验
  • 输入 决策输出信息 道路结构信息 交通信号和标识 障碍物信息
  • 输出 稳定平滑的轨迹点

/images/apollo决策规划--实践部分/20231009_2039126205.png
注:在不同场景评价函数可能不一样

代码部分

/images/apollo决策规划--实践部分/20231009_2039124074.png

/images/apollo决策规划--实践部分/20231009_2039136814.png
双层状态机,主要包括三个关键部分,底层状态机是各种小任务的集合

规划算法

框架

/images/apollo决策规划--实践部分/20231009_2039134233.png
总体框架

/images/apollo决策规划--实践部分/20231009_2039139609.png
路径规划步骤

/images/apollo决策规划--实践部分/20231009_2039131238.png
速度规划框架

lattice planner

/images/apollo决策规划--实践部分/20231009_2039131252.png
算法流程,红车为被控对象,场景为前车交汇,最终选择cost最小并且满足安全性的轨迹

采样过程:

/images/apollo决策规划--实践部分/20231009_2039135647.png
纵向、横向分别采样,然后拟合成一条三维曲线,并可以将其转换为笛卡尔坐标系下

/images/apollo决策规划--实践部分/20231009_2039142462.png
横向采样过程(这是在状态空间进行采样)

/images/apollo决策规划--实践部分/20231009_2039142271.png
纵向采样,分为三种情况

最后对采样轨迹进行评价:

/images/apollo决策规划--实践部分/20231009_2039141723.png
评价指标(速度限制与目的有关,看目的是巡航还是停车)

/images/apollo决策规划--实践部分/20231009_2039144518.png
评价指标(向心加速度——转弯或掉头时需要减速慢行)

EM planner

计算期望值E,M则最大化E,然后交替进行。E步骤相当于把问题变换为图搜索问题,M步骤相当于解决搜索+非凸优化问题

/images/apollo决策规划--实践部分/20231009_2039145047.png
算法流程图(DP为了得到决策结果,QP为了对DP结果进行平滑)

路径规划:

/images/apollo决策规划--实践部分/20231009_2039141538.png
E步骤:红车为被控对象,将预测障碍物轨迹在SL空间进行投影:红色的部分是预测障碍物轨迹,蓝色的部分是自车轨迹,重叠部分(紫色区域)为估计交互区

/images/apollo决策规划--实践部分/20231009_2039151443.png
基于DP的路径决策:首先用lattice采样+DP搜索+代价函数 得到可行通道和粗参考轨迹;基于QP的样条优化:基于可行通道和粗参考轨迹,得到优化轨迹

速度规划:

/images/apollo决策规划--实践部分/20231009_2039154113.png
E步骤:将障碍物投影到ST图中,例如红色表示在2s时离自车40m远的障碍物

/images/apollo决策规划--实践部分/20231009_2039157521.png
M步骤:在E步骤得到的ST图中求解最优路径S(t),使用DP+样条曲线进行搜索,得到分段线性速度规划、可行通道和障碍物速度决策;然后用QP对分段速度进行优化平滑

算法比较

/images/apollo决策规划--实践部分/20231009_2039151979.png

规划器实现

onlaneplanning task

流程

/images/apollo决策规划--实践部分/20231009_2039152490.png
路径决策是指要不要换道,路径优化是指生成光滑无碰路径;速度决策是指当有前车并入时要不要超车

路径规划

/images/apollo决策规划--实践部分/20231009_2039156029.png
换道决策:根据车道数量决定是否换道,如果要换道会考虑:是否达到换道条件、前后方是否有障碍物

/images/apollo决策规划--实践部分/20231009_2039159764.png
路径重用决策:由于感知的不稳定性,需要判断是否保留上一帧规划的路径,当上一帧路径没有发生碰撞时,就沿用

/images/apollo决策规划--实践部分/20231009_2039156269.png
借道决策

/images/apollo决策规划--实践部分/20231009_2039162150.png
边界确定部分,分情况讨论

开始规划:

/images/apollo决策规划--实践部分/20231009_2039169446.png
根据参考路径进行路径优化

/images/apollo决策规划--实践部分/20231009_2039167292.png
当有多个路径时,进行评价选择

/images/apollo决策规划--实践部分/20231009_2039161204.png
最后给出绕行还是等待的决策

速度规划

/images/apollo决策规划--实践部分/20231009_2039161144.png
1. 在规划好的路径上进行停止决策

/images/apollo决策规划--实践部分/20231009_2039162713.png
2. 产生速度可行使边界,把障碍物投影到ST图中

/images/apollo决策规划--实践部分/20231009_2039173539.png
在2的基础上,使用粗优化的动态规划算法得到离散路径,决定是超车还是让行

/images/apollo决策规划--实践部分/20231009_2039176110.png
4. 决定了超车还是让行后,就可以把原来的非凸优化问题转换为凸优化问题,使用二次规划方法进行路径优化(根据道路限速、减速带等对速度进行限制),得到平滑曲线;使用非线性优化器考虑路径曲率对速度规划的影响

/images/apollo决策规划--实践部分/20231009_2039172232.png
5. 结合ST和SL曲线,得到完整轨迹

openspace task

该场景适用于自主泊车

/images/apollo决策规划--实践部分/20231009_2039174991.png
确定可行驶区域

/images/apollo决策规划--实践部分/20231009_2039174531.png
寻路+平滑,根据行驶方向分为前进段和后退段,分别下发

/images/apollo决策规划--实践部分/20231009_2039177226.png
检测是否会发生碰撞,如果为fallback模式,则规划一条在检测到碰撞的位置停车的轨迹