简单的无人驾驶系统的整体架构如下图所示:
![f34eb0e3c8c5c90104c654de0dfb85fd.png](https://i-blog.csdnimg.cn/blog_migrate/385078e5499420daaf7037f29acf723e.jpeg)
- 最底层的是车辆平台,主要是三电(转向、驱动、制动)可以线控;
- 然后是硬件平台,无人驾驶汽车刚开始兴起的时候主要是工控机,后来有英伟达的TX2、PX2,现在各无人驾驶玩家都开始有自家提供的硬件平台;
- 再往上,就是操作系统;
- 最上面就是和无人驾驶系统相关的传感器和三大功能模块(感知、决策、控制)。
更完善的系统架构,可以参考Apollo的技术框架。
![a9d8be566bea95061f9214edf1db55d4.png](https://i-blog.csdnimg.cn/blog_migrate/5c50e65490b4f7f5f5cc75fec5a54b63.jpeg)
其中,速度规划是在 Decision 大模块中,在 Motion Planning 的子模块中,其根据高精度地图和定位模块给出的定位信息,全局路径规划给出的参考路径,感知和预测模块给出的其他物体的信息,以及本车的状态信息,计算出当前的期望加速度(acc),下发给车辆控制模块。
![2e96a3340176192dcdb0c924f3851837.png](https://i-blog.csdnimg.cn/blog_migrate/4968afe1ac8e6f0e9c8bb745897f5310.jpeg)
这里需要先对汽车不同工况的加速度大小,以及加加速度有个基本概念。
汽车在不同工况下的制动减速度大小
无人驾驶汽车的速度控制:加加速度Jerk的概念
注:后文提到的加速度acc,有正负,正为加速,负为减速。acc越大,代表加速越猛;acc越小,代表制动越猛。
为了理解方便,用减速度dec描述制动的acc,dec只有正,越大代表制动越猛。
需要注意的是,这里给出的速度规划模块要点,用于处理直道或弯道时的跟车场景,如下图所示。主要包括四部分:
- 预处理
- 计算限速
- 计算期望acc
- acc的后处理
![f29e9a2fce9b36f12ac9329ea484d534.png](https://i-blog.csdnimg.cn/blog_migrate/747433c603e2f056f6c2fbee58947abe.jpeg)
跟车场景
一、预处理
已知信息包括:
- 本车车速,为防止反馈的当前车速跳变或突然变为0,需要加一些特殊处理;
- 前车车速,与本车车速类似的处理,但其可突变,即第一帧检测到前车;若前车不存在,保守的策略,出于安全考虑,可设为0.0m/s;激进的策略,则可设为该路段的道路限速;
- 与前车的距离,为防止误检(只出现单帧或两三帧),需要加一些滤波;若前车不存在,通常可设为传感器能够感知到的最远距离。
需要估算的信息:
- 本车的加速度
- 前车的加速度
![f8cd19a0cd87e2659d8ef83ee3351973.png](https://i-blog.csdnimg.cn/blog_migrate/dd541ed119df9e90d70c15bee5278bf9.jpeg)
二、计算限速
限速可分为两类,静态限速和动态限速,主要包括:
- 车辆自身限速
- 系统设定限速
- 路网限速(来源于高精度地图)
- 曲率限速(弯道和换道的曲率限速参数需要分开设置)
- 风险限速(来源于一些决策逻辑)
限速不局限以上五种的计算,限速信息会记录到参考行驶轨迹的每个点上。
三、计算期望acc
这里是最核心的部分,也是最简单又复杂的部分,简单在于查表,复杂在于这个表是怎么来的。
查表,即根据本车车速、前车车速、与前车的距离,查表得到期望的加速度acc。
这个表怎么来的呢?
![66b01fc7c407c14fbb06229fa4a3f654.png](https://i-blog.csdnimg.cn/blog_migrate/1d1cf4e5dacac5865434050258215703.jpeg)
通常先根据公式或模型,计算得到一张基本表;然后在各种工况下测试,不断微调此表。
这里就体现出用表的好处:可以单点调整,而不影响其他地方。
基于多项式曲线的速度规划
四、acc的后处理
查表得到期望的acc之后,还需要一些后处理,包括:
- 考虑前车的加速度信息,即将前车的加速度乘以一个系数,再加到期望acc上。与前车距离越远,该系数越小;与前车距离越近,该系数越大;
- 考虑自车加加速度Jerk的限制,与前车距离越近,Jerk越大;期望acc越小(dec越大),Jerk越大;
- 停车时的特殊处理,在停车时,dec需要持续大于某一值,防止越来越小最后为0,溜车;
- 自车的加速度限制,最后的最大最小值的限制,通常若是制动,dec需要大于某一最小响应值。
实际工程中,后处理是比较麻烦的地方,后处理也不局限于上述几种情况。
以上就是跟车场景下速度规划模块要点。
对于路口的速度规划,在上述四点的基础上,还需要用到ST速度规划,这里不做介绍。感兴趣的可以查看:
基于S-T图的速度规划介绍-Apollo学习笔记
![ecd5b3db76a483c447d695ae1d50b60d.png](https://i-blog.csdnimg.cn/blog_migrate/c0c60ee8c33ffca606384554176fb60e.jpeg)
路口场景
扩展阅读
无人驾驶系统中的车辆运动学模型
无人驾驶系统的路径规划模块介绍
自动驾驶系统的决策技术介绍-Apollo学习笔记
无人车的避障系统介绍:障碍物的检测、轨迹预测和避障路径生成
特别感谢Apollo的公开课。
文中图片部分来源于网上,若涉及侵权,联系删除。