Apollo规划模块基本原理学习笔记(1)

参考Apollo官方公开课

直播回顾丨Apollo自动驾驶论坛①规划模块算法解析 (qq.com)

Apollo规划解析_210207_哔哩哔哩_bilibili

近期开始学习Apollo的规划模块,决定将原理分成很多个小细节进行学习,之后再去对代码进行解析。本篇博客会简要介绍规划模块原理,也供我自己日后查阅。

1.Planning模块的功能

输出一条安全舒适的驾驶轨迹

Apollo规划模块基本原理学习笔记(1)

2.Planning模块的方案

场景分类的框架+

基于Frenet路径规划和速度规划解耦+

基于规则的路径及速度决策+

优化算法生成路径和速度

Apollo规划模块基本原理学习笔记(1)

3.场景和任务管理

双层状态机:

上层是场景状态机,下层是Planner规划器状态机(On Lane Planning Tasks是默认的规划器)

Apollo规划模块基本原理学习笔记(1)

Path decision路径决策会把道路边界测出来

path planning路径规划(优化算法Optimizer)

Speed Decision速度决策会把速度边界测出来

Speed Planning速度规划(优化算法Optimizer)

4.Frenet坐标

Apollo规划模块基本原理学习笔记(1)

将笛卡尔坐标系xy转化为Frenet SL坐标系

S轴为纵向,始终代表参考线的方向;

L轴为横向,始终代表参考线的法线方向;

横纵向解耦降低规划的复杂度

5.参考线平滑器

直接优化离散点位置,用QCQP来解优化点间曲率,运算时间大概是10ms。

下图中成本函数等式cost function中:

第一项是PkPk+1,Pk-1Pk两个向量之差的模的平方,3点共线时是最小的,处于舒适性考虑,实际上变相约束曲率,平滑度代价;

第二项Pk-Pkref的模的平方,代表路径偏离参考线的程度,偏离代价;

第三项Pk+1-Pk的模的平方,规划路径相邻点之间不要间隔太远,长度代价;

不等式约束(硬约束)中Pk属于β,β代表路径在参考线附近的边界;

d表示离散点之间的平均长度,d^2/Rmin类似v^2/R代表横向加速度(最小转弯半径)约束

Apollo规划模块基本原理学习笔记(1)
  1. 路径边界决策

交通标识和信号、虚拟墙和障碍物共同来影响路径决策

在做路径决策时,我们只考虑静止障碍物,动态障碍物是在速度规划时考虑

Apollo规划模块基本原理学习笔记(1)

车道内路径边界

Apollo规划模块基本原理学习笔记(1)

有了路径边界后,调用路径优化器得到平滑路径,然后在路径上进行速度决策;

7.速度边界决策

对整条或部分路径产生一或多个速度边界,将多个速度集成

Apollo规划模块基本原理学习笔记(1)

得到速度限制后,利用ST图来得到时间上的位置限制边界

障碍车的预测轨迹和主车的交会关系在ST中表示出来

  1. t1为障碍车预测轨迹和主车路径的交会时间。
  2. s1、s2为交汇时障碍车在主车路径上的位置。
  3. s1代表车尾位置,s2代表车头位置。

Apollo规划模块基本原理学习笔记(1)

在ST图中,我们要找一条不和障碍物碰撞的曲线,同时还要满足速度限制,如下图:

时间上的纵向位置限制为了避免碰撞就是下图的两条虚线;

红实线代表自车加速前进,赶在黑车变道前超越;

绿实线代表跟在变道的黑车后面行进;

Apollo规划模块基本原理学习笔记(1)

最终把速度边界和位置边界传给速度优化器得到平滑的速度规划

Apollo规划模块基本原理学习笔记(1)

8.路径优化

路径优化应用SL图,S轴代表参考线的方向,L轴代表参考线法线方向。

在路径边界允许的SL空间间隔Δs进行采样,得到每个离散点上的L,L’,L”分别代表偏离参考线距离/速度/加速度

根据目标函数找到最优路径;

横向位置运动三阶系统表示(L,L’,L”)

目标函数:

第一项是li^2代表偏离参考线的程度(横向距离);

第二项是li’^2代表偏离参考线速度(横向速度);

第三项li”^2代表偏离参考线的加速度(横向加速度),防止方向盘打太猛;

第四项li”’^2代表偏离参考线的加加速度(横向加加速度),防止方向盘打太快;

第五项代表偏离路径左右边界中心线的程度;

Apollo规划模块基本原理学习笔记(1)

车辆运动学约束

车辆tan(δ)=L/R其中R不能小于最小转弯半径,L代表车辆轴距,δ代表前轮转角,最小转弯半径对应最大前轮转角

Apollo规划模块基本原理学习笔记(1)

9.速度优化

速度优化是应用ST图,S轴代表车辆沿参考线走过的距离,T代表时间轴

纵向位置运动根据Δt在最优路径上采样用三阶系统表示(s0,s0′,s0”)

根据目标函数找最优的速度规划

目标函数:

第一项Si-Starget代表与期望末端纵向位置误差最小;Starget是末端纵向位置吗?代表时间项;

第二项代表si^2*k代表横向加速度项;

第三项代表纵向加速度项

第四项代表纵向加加速度项

Apollo规划模块基本原理学习笔记(1)

约束

速度优化的约束主要是纵向位置边界,纵向速度范围,纵向加速度范围,纵向加加速度范围,横向加速度范围在允许值内

速度约束可能是分段不同的,是非线性约束;

横向加速度约束导致的纵向速度约束也是非线性的;

Apollo规划模块基本原理学习笔记(1)

Original: https://blog.csdn.net/weixin_39199083/article/details/122675724
Author: wujiangzhu_xjtu
Title: Apollo规划模块基本原理学习笔记(1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598238/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球