Apollo采用路径规划和速度规划解耦的方式,先进行路径规划,在得到的规划路径上再进行速度规划。利用ST Graph,将障碍物、限速等投影在ST图上,利用全局搜索方法DP算法得到决策,在利用最优化方法进行速度规划。
1. 算法原理
百度已经将算法原理发表在论文《Optimal Trajectory Generation for Autonomous Vehicles Under Centripetal Acceleration Constraints for In-lane Driving Scenarios》中。
1.1 优化模型离散方式
在处理最优化问题时,一般会转化成离散形式,将轨迹s(t)s(t)s(t)按照某参数离散,并计算离散点处的约束和costcostcost。不同的离散方式会构建不同的优化模型。对于速度规划问题,一般可以按照等间距离散(Spatial Parameter Discretization)和等时间离散(Temporal Parameter Discretization)。
1.1.1 Spatial Parameter Discretization
使用纵向距离sss作为离散采样参数,假设第一个采样点s=0s=0s=0,连续采样离散点之间等间隔Δs\Delta sΔs离散,那么优化问题的决策变量为每个离散点的s˙,s¨\dot{s},\ddot{s}s˙,s¨和相邻采样点之间的时间间隔Δt\Delta tΔt。

优点:
- 参考线或者规划路径的曲率κ\kappaκ是纵向距离sss的函数,因此向心加速度约束是容易处理的;
- 地图限速等速度约束是和纵向距离sss相关的,那么优化问题的s˙\dot{s}s˙约束容易计算;
缺点:
- 优化问题的目标函数难以建模。
Apollo规划算法用来优化纵向冲击度最小,冲击度使用相邻两个离散点的差分计算,如果采用Δs\Delta sΔs离散会使决策变量之间有除法运算,形成非凸优化问题; - 难以施加安全约束。障碍物一般投影在
ST Graph中,会得到每个时刻下的安全行驶范围(smin,smax)(s_{min},s_{max})(smin,smax),即可行驶区域sfree(t)s_{free}(t)sfree(t)是时间ttt的函数。
1.1.2 Temporal Parameter Discretization
使用时间ttt作为离散采样参数,假设第一个采样点t=0t=0t=0,连续采样离散点之间等间隔Δt\Delta tΔt离散,那么优化问题的决策变量为每个离散点的s,s˙,s¨s,\dot{s},\ddot{s}s,s˙,s¨。

使用等时间间隔离散的方式,和使用等距离离散方式的优缺点恰好相反。
优点:
- 优化模型可以保持凸包性质,冲击度的计算仍然是线性形式;
- 障碍物的安全约束容易施加在优化模型中;
缺点:
- 由于曲率是sss的函数,因此向心加速度约束难以处理;
- 速度约束难以处理;
- 最小任务完成时间的优化目标难以处理;
处理方法:
- 使用规划路径的最大曲率计算向心加速度限制;
- 将离散点处的位置sss与
DP得到纵向位置sss的差作为目标函数的一部分,使用DP结果在采样时刻t处的s处对应的速度限值; - 将离散采样点处的速度s˙\dot{s}s˙与目标速度(
reference speed)的差作为目标函数的一部分。以保证完成任务花费的时间最少;
此外,Apollo还设计了非线性速度规划来处理以上问题。
1.2 优化问题建模
1.2.1 cost function
J=ws¨∗∑i=0n−1s¨i2+ws(3)∗∑i=0n−2(s(3))i→i+12+wac∗∑i=0n−1s˙i2∗κ(si)+wsref∗∑i=0n−1(si−si,ref)2+ws˙ref∗∑i=0n−1(si˙−s˙i,ref)2+wstask∗(sn−1−stask)2+ws˙task∗(s˙n−1−s˙task)2+ws¨task∗(s¨n−1−s¨task)2(1-1) J = w_{\ddot{s}} * \sum^{n-1}_{i=0}{\ddot{s}^2_{i}} + w_{ {s}^{(3)}} * \sum^{n-2}_{i=0}{({s}^{(3)})^2_{i \rightarrow i+1}} + w_{a_{c}} * \sum^{n-1}_{i=0}{\dot{s}^2_{i} * \kappa (s_{i})} \\ + w_{s_{ref}} * \sum^{n-1}_{i=0}({s_{i} - s_{i,ref})^2} + w_{\dot{s}_{ref}} * \sum^{n-1}_{i=0}{(\dot{s_{i}} - \dot{s}_{i,ref})^2} \\ + w_{s_{task}} * ({s_{n-1} - s_{task})^2} + w_{\dot{s}_{task}} * (\dot{s}_{n-1} - \dot{s}_{task})^2 + w_{\ddot{s}_{task}} * (\ddot{s}_{n-1} - \ddot{s}_{task})^2 \tag{1-1} J=ws¨∗i=0∑n−1s¨i2+ws(3)∗i=0∑n−2(s(3))i→i+12+wac∗i=0∑n−1s˙i2∗κ(si)

本文深入解析了Apollo自动驾驶系统的速度规划算法。重点介绍了Apollo如何利用STGraph进行障碍物预测,并结合DP算法实现路径与速度的解耦规划。文章还详细探讨了优化模型的建立及其求解方法。
最低0.47元/天 解锁文章
1万+





