作者 | fhwim 编辑 | 汽车人
原文链接:https://zhuanlan.zhihu.com/p/658853155
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【规划控制】技术交流群
本文只做学术分享,如有侵权,联系删文
论文题目《An Improved Model Predictive Control-Based Trajectory Planning Method for Automated Driving Vehicles Under Uncertainty Environments》
发表期刊:IEEE Transactions on Intelligent Transportation Systems
发表时间:2023.04
以下是我自己的论文阅读笔记,主要是我自己觉得重点的部分,非全文翻译,该文章接着前一篇文章,梳理了本论文的实验验证部分。前一篇文章如下:
fhwim:一种针对不确定环境下自动驾驶车辆的基于改进的模型预测控制的轨迹规划方法
https://zhuanlan.zhihu.com/p/658708080
1. 仿真验证
(1)仿真环境
联合仿真工具包括Prescan、PyCharm、Matlab/Simulink,其中Prescan用于搭建仿真的交通场景,PyCharm(有神经网络还是用pytorch轻松)用来写融合预测模块,Matlab/Simulink(有MPC工具箱)用来搭建轨迹规划模块以及实现车辆控制,整体工具的选择思路还是比较自然合理。控制这一部分横向控制用的是LQR,纵向控制用的是PID,也是比较常用的控制方法。融合预测模块中的LSTM encoder-decoder采用的是开源代码,作者说来自参考文献[31]Comprehensive Review of Neural Network-Based Prediction Intervals and New Advances这篇文章,但是我看这篇文章发表于2011年,有点久远(2011就有LSTM encoder-decode呢?),不知道作者有没有在此基础上改代码。
![a9a17e12f9bc807169b136b413c7b968.png](https://img-blog.csdnimg.cn/img_convert/a9a17e12f9bc807169b136b413c7b968.png)
(2)MRPI集的求取
![ea71b84e087631eef4bd05b31e396e3f.png](https://img-blog.csdnimg.cn/img_convert/ea71b84e087631eef4bd05b31e396e3f.png)
![89c3392b64304dea048b7c1a63c3cb6a.png](https://img-blog.csdnimg.cn/img_convert/89c3392b64304dea048b7c1a63c3cb6a.png)
![f83998d5b4a619f30d2ab9f12b4c5d48.png](https://img-blog.csdnimg.cn/img_convert/f83998d5b4a619f30d2ab9f12b4c5d48.png)
![580fd687ec2781e4ed40f8c27b355b3f.png](https://img-blog.csdnimg.cn/img_convert/580fd687ec2781e4ed40f8c27b355b3f.png)
(3)case1:静态避障场景
静态避障场景指一辆障碍车静止不动,轨迹规划结果如下图:
![2ff3119f7abd465b2428932206022a3e.png](https://img-blog.csdnimg.cn/img_convert/2ff3119f7abd465b2428932206022a3e.png)
这里我怀疑他图例有问题,按照前文,最终参考轨迹reference trajectory由期望轨迹desired trajectory 和调整轨迹adjustment trajectory相加得到,同时他在分析结果的时候也说tube-based MPC在图3(b)区域 和 的误差较大,由于adjustment trajectory减小了误差,那应该是把图3(b)的desired trajectory和reference trajectory两个图例交换一下才符合他这个文章的逻辑,也就是绿线是最终的reference trajectory,蓝线是中间结果desired trajectory。包括下面的速度曲线、横纵向误差曲线也是,不过大概懂作者意思就行,tube-based MPC中绿色曲线是最终的结果,蓝色曲线是未加adjustment trajectory的结果。
![57c51d13fdd65df3f65e34ff56cccdfa.png](https://img-blog.csdnimg.cn/img_convert/57c51d13fdd65df3f65e34ff56cccdfa.png)
![9b9ad2ed9f9d2ca99b7e1d9ce1423607.png](https://img-blog.csdnimg.cn/img_convert/9b9ad2ed9f9d2ca99b7e1d9ce1423607.png)
![e3d772bb4f26f3337236e6f292d6a6eb.png](https://img-blog.csdnimg.cn/img_convert/e3d772bb4f26f3337236e6f292d6a6eb.png)
作者还比较了方向盘角度变化的平稳程度,这里就不赘述了,反正是有所提升。同时作者给出了加adjustment trajectory效果好的理论理由,加了之后轨迹的误差总是在MRPI集合内,就是说tube-based MPC的跟踪偏差始终在MRPI集中,而一般的MPC的跟踪偏差在不确定环境下没有一个边界,可能会很大。
(4)case2:动态避障场景
和上一个场景相比就是障碍车动起来了,还是比较整体轨迹、速度变化、横纵向误差、方向盘变化平稳性这些东西,不再赘述,这里只放一个整体轨迹的图。
![c575c0ee14d001d540587e2a7446691b.png](https://img-blog.csdnimg.cn/img_convert/c575c0ee14d001d540587e2a7446691b.png)
(5)case3:真实驾驶场景
作者在这里选择使用NGSIM数据集来验证自己的方法,首先是验证融合预测方法,NGSIM数据集中有车辆的轨迹数据,拆分成历史轨迹和未来轨迹构成训练集让LSTM encoder-decoder去学习,作者选了10000条轨迹,其中7500条作为训练集,2500条作为验证集,优化器用的Adam,学习率设置为0.01。预测效果如下图:
![ad867198124ba4d13236b15f54f6edd9.png](https://img-blog.csdnimg.cn/img_convert/ad867198124ba4d13236b15f54f6edd9.png)
不过作者并没有用轨迹预测领域一些常用的指标比如ADE、FDE之类的我感觉说服力不是那么强,不过也可以理解本文的重心还是在基于tube-based MPC的轨迹规划上。
在验证完轨迹预测后又进行了轨迹规划进一步验证轨迹预测模块的作用,这里是比较了三种情况:
(a)在我已经知道障碍车未来真实轨迹的情况下,我去进行轨迹规划,这个作为对照组
(b)在我不知道障碍车未来轨迹的情况下,我先进行轨迹预测(但是不计算不确定性),再进行轨迹规划
(c)在我不知道障碍车未来轨迹的情况下,我先进行轨迹预测(计算不确定性),再进行轨迹规划
结果如图9,(a)、(b)、(c)的结果分别对应True Position, Prediction Results, Proposed Method
Proposed Method 也就是本文的方法得出的结果,可以看到Proposed Method更接近True Position,说明这个融合预测方法(尤其是不确定性的计算)是有作用的。
![0e0e8234c04ca98282bf81639961c7ed.png](https://img-blog.csdnimg.cn/img_convert/0e0e8234c04ca98282bf81639961c7ed.png)
这里可以发现case1和case2验证的是轨迹规划部分,一般的MPC和tube-based MPC前面的轨迹预测部分是一样的,比较说明tube-based MPC的作用,case3则是验证轨迹预测模块,可以看到做了两类验证,第一类:直接比较预测轨迹和真实轨迹,第二类:先已知未来轨迹/预测未来轨迹(不计算不确定性)/预测未来轨迹(计算不确定性),再进行轨迹规划,以True Position为标准,去对比有不确定性计算的轨迹预测方法和没有有不确定性计算的轨迹预测方法的效果。对两个模块验证的思路还是很清晰的。
2. 实车实验验证
实验所用车辆如下图所示:
![c310213aacea308e0ac7f064f332fd93.png](https://img-blog.csdnimg.cn/img_convert/c310213aacea308e0ac7f064f332fd93.png)
作者还给出了实验车辆的参数和实验所用电脑、传感器的参数:
![59b9db4b676a00475d19e39f21fb200d.png](https://img-blog.csdnimg.cn/img_convert/59b9db4b676a00475d19e39f21fb200d.png)
![ec125a086fa6a7c9c4e72fe9259180c8.png](https://img-blog.csdnimg.cn/img_convert/ec125a086fa6a7c9c4e72fe9259180c8.png)
为了安全着想,作者设置的实验场景和仿真实验case1一样,都是一个静态避障场景,还是比较整体轨迹、速度变化、横纵向误差、方向盘变化平稳性这些东西,不再赘述。
3. 阅读总结
首先是论文的思路,文章的主要内容就是带不确定性计算的轨迹预测模块和基于tube-based MPC的轨迹规划模块,主要还是轨迹规划模块,让我比较有收获的其实是他把轨迹预测真的用到轨迹规划上了,而且是这种模块化的形式,预测的输出作为规划的输入,规划这一部分仅仅只是确定一个安全阈值给到预测模块,两个模块的耦合性较弱,其实换句话讲这个预测模块完全可以换成别的方法,只要给出的结果是预测的障碍车的轨迹和不确定性就行了,未来完全可以换成一个更高级的神经网络来做预测直接给出轨迹和不确定性,这个融合预测算法感觉流程还是有点复杂。但是文章整体的思路我感觉还是很好,仿真和实车试验的思路和工作量都令人满意。
其次是文章阅读时发现的一些低级的错误。比如在LSTM encoder-decoder那一部分,LSTM输出的是未来 步的轨迹点,公式里写的也是,但是文字里这写成了 。
![b89d3ed6ca09b4e0d80059ce952ba49f.png](https://img-blog.csdnimg.cn/img_convert/b89d3ed6ca09b4e0d80059ce952ba49f.png)
然后是在仿真实验部分,计算MRPI Set时说system(21)也就是 error system分成了子系统(32)和(34),但是实际上是子系统(30)和(32),这些小错误不影响整体方法但是也会影响读者的阅读体验。
![d98103c27bfc7aff275e3dac01edc21b.png](https://img-blog.csdnimg.cn/img_convert/d98103c27bfc7aff275e3dac01edc21b.png)
![f59d4735f255e7298255233ecffd4267.png](https://img-blog.csdnimg.cn/img_convert/f59d4735f255e7298255233ecffd4267.png)
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
![9b3018ba5e7ceb4cfe9751bfa268bc3f.png](https://img-blog.csdnimg.cn/img_convert/9b3018ba5e7ceb4cfe9751bfa268bc3f.png)
② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
![7e8a1fc1a3f3f64a2807f0822a0ce666.png](https://img-blog.csdnimg.cn/img_convert/7e8a1fc1a3f3f64a2807f0822a0ce666.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!