0

0

改进自动驾驶在不确定环境下的轨迹规划方法

WBOY

WBOY

发布时间:2023-10-06 14:17:03

|

1161人浏览过

|

来源于51CTO.COM

转载

论文题目:《基于改进的模型预测控制的自动驾驶车辆在不确定环境下的轨迹规划方法》

发表期刊: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呢?),不知道作者有没有在此基础上改代码。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

改进自动驾驶在不确定环境下的轨迹规划方法

图1 仿真环境搭建

(2)MRPI集的求取

改进自动驾驶在不确定环境下的轨迹规划方法

改进自动驾驶在不确定环境下的轨迹规划方法

改进自动驾驶在不确定环境下的轨迹规划方法

改进自动驾驶在不确定环境下的轨迹规划方法

图2 子系统的MRPI集

(3)case1:静态避障场景

静态避障场景指一辆障碍车静止不动,轨迹规划结果如下图:

改进自动驾驶在不确定环境下的轨迹规划方法

对比图3中一般的MPC方法和基于管道的MPC方法

这里我怀疑他图例有问题,按照前文,最终参考轨迹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的结果。

改进自动驾驶在不确定环境下的轨迹规划方法

图4展示了一般MPC方法和基于管道的MPC方法在速度变化方面的对比

改进自动驾驶在不确定环境下的轨迹规划方法

图5 横向位置对比

改进自动驾驶在不确定环境下的轨迹规划方法

需要进行改写的内容是:比较横纵向误差的图6

作者还对方向盘角度变化的平稳程度进行了比较,这里就不再详述,总之有所改善。同时,作者提出了调整轨迹效果良好的理论依据,加入后,轨迹误差始终在MRPI集合内,也就是说基于管道的模型预测控制(tube-based MPC)的跟踪偏差一直保持在MRPI集合内,而一般的模型预测控制(MPC)在不确定环境下没有一个边界,可能会很大

(4)case2:动态避障场景

与之前的场景相比,现在障碍车开始运动了。对于整体轨迹、速度变化、横纵向误差以及方向盘变化的平稳性等方面,不再赘述。在这里,只展示一个整体轨迹的图示

改进自动驾驶在不确定环境下的轨迹规划方法

图7 一般MPC方法和tube-based MPC方法的整体轨迹对比

(5)case3:真实驾驶场景

在这里,作者选择使用NGSIM数据集来验证自己的方法。首先,作者验证了融合预测方法。NGSIM数据集包含了车辆的轨迹数据,作者将其拆分为历史轨迹和未来轨迹,并构建了一个训练集,以便LSTM编码器-解码器进行学习。作者选择了10000条轨迹,其中7500条用作训练集,2500条用作验证集。优化器采用了Adam,并将学习率设置为0.01。预测效果如下图所示

改进自动驾驶在不确定环境下的轨迹规划方法

图8 横纵向上轨迹预测和不确定性的结果

作者在这篇文章中并没有使用轨迹预测领域常用的指标,比如ADE、FDE等。我认为这样的做法缺乏说服力,但也可以理解本文的重点在于基于基于tube-based MPC的轨迹规划

在验证完轨迹预测后又进行了轨迹规划进一步验证轨迹预测模块的作用,这里是比较了三种情况:

(a)在我已经知道障碍车未来真实轨迹的情况下,我去进行轨迹规划,这个作为对照组

通义千问
通义千问

阿里巴巴推出的全能AI助手

下载

在我不知道障碍车未来轨迹的情况下,我先进行轨迹预测(但是不计算不确定性),然后再进行轨迹规划

(c)在我不知道障碍车未来轨迹的情况下,我先进行轨迹预测(计算不确定性),再进行轨迹规划

图9显示了(a)、(b)和(c)的结果,分别对应True Position,Prediction Results和Proposed Method

Proposed Method 也就是本文的方法得出的结果,可以看到Proposed Method更接近True Position,说明这个融合预测方法(尤其是不确定性的计算)是有作用的。

改进自动驾驶在不确定环境下的轨迹规划方法

图9 三种方法对比验证轨迹预测模块

这里可以发现case1和case2验证的是轨迹规划部分,一般的模型预测控制(MPC)和基于管道的MPC前面的轨迹预测部分是一样的,这样比较可以说明基于管道的MPC的作用。case3则是验证轨迹预测模块,可以看到进行了两类验证。第一类是直接比较预测轨迹和真实轨迹,第二类是先已知未来轨迹/预测未来轨迹(不计算不确定性)/预测未来轨迹(计算不确定性),然后再进行轨迹规划。以真实位置为标准,对比有不确定性计算的轨迹预测方法和没有不确定性计算的轨迹预测方法的效果。对这两个模块的验证思路还是很清晰的

2. 实车实验验证

实验所用车辆如下图所示:

改进自动驾驶在不确定环境下的轨迹规划方法

需要重新写作的内容是:实验中使用的车辆的图片10

作者还提供了实验车辆的参数以及实验中使用的电脑和传感器的参数:

改进自动驾驶在不确定环境下的轨迹规划方法

需要重写的内容是:图11 电脑和传感器的参数

改进自动驾驶在不确定环境下的轨迹规划方法

需要重新写的内容是:实验车辆的参数,图12

为了安全着想,作者设置的实验场景和仿真实验case1一样,都是一个静态避障场景,还是比较整体轨迹、速度变化、横纵向误差、方向盘变化平稳性这些东西,不再赘述。

3. 阅读总结

首先,论文的思路是关于带有不确定性计算的轨迹预测模块和基于tube-based MPC的轨迹规划模块。其中,轨迹规划模块是主要内容。我对这个模块化的形式感到很满意,因为它将轨迹预测真正应用到了轨迹规划上。预测的输出作为规划的输入,而规划模块仅仅确定一个安全阈值给预测模块,两个模块的耦合性较弱。换句话说,预测模块可以用其他方法替代,只要能提供预测障碍车轨迹和不确定性的结果即可。未来,可以考虑使用更高级的神经网络来直接预测轨迹和不确定性。整体而言,这个融合预测算法的流程有些复杂,但我认为论文的思路很好。仿真和实车试验的思路和工作量也令人满意

其次是文章阅读时发现的一些低级的错误。比如在LSTM encoder-decoder那一部分,LSTM输出的是未来  步的轨迹点,公式里写的也是,但是文字里这写成了  

改进自动驾驶在不确定环境下的轨迹规划方法

图13 LSTM encoder-decoder部分的一些错误

然后是在仿真实验部分,计算MRPI Set时说system(21)也就是 error system分成了子系统(32)和(34),但是实际上是子系统(30)和(32),这些小错误不影响整体方法但是也会影响读者的阅读体验。

改进自动驾驶在不确定环境下的轨迹规划方法

图14 仿真实验部分MRPI Set原文

改进自动驾驶在不确定环境下的轨迹规划方法

图15中的错误系统被分为子系统(30)和(32)

改进自动驾驶在不确定环境下的轨迹规划方法

原文链接:https://mp.weixin.qq.com/s/0DymvaPmiCc_tf3pUArRiA

相关专题

更多
fprintf在matlab中的用法
fprintf在matlab中的用法

fprintf是MATLAB中用于格式化输出的函数。fprintf的基本语法为“fprintf(fileID, format, A)”,其中,fileID是一个标识符,用于指定要写入的文件,如果要将数据写入到命令窗口中,则可以使用1作为fileID的值,format是一个字符串,用于指定输出的格式,A是要输出的数据。

484

2023.09.28

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

685

2023.10.12

Matlab中length函数的用法
Matlab中length函数的用法

在Matlab中,length函数用于返回向量、数组或字符串中的元素个数。想了解更多length函数的相关内容,可以阅读本专题下面的文章。

313

2023.11.22

Matlab中axis函数用法
Matlab中axis函数用法

在Matlab中,axis函数用于控制坐标轴的范围和比例。想了解更多axis函数的相关内容,可以阅读本专题下面的文章。

773

2023.11.23

subplot在matlab中的用法
subplot在matlab中的用法

subplot在matlab中用于在同一个图窗中创建多个子图。通过指定子图的行数、列数和当前绘图位置,可以在每个子图中绘制不同的图形。想了解更多subplot在matlab中的用法,可以访问下面的文章。

142

2023.11.27

scilab和matlab的区别
scilab和matlab的区别

scilab和matlab的区别:1、注释符号;2、预设变量的表示;3、操作符的用法;4、矩阵的定义与调用;5、程序的编辑与执行;6、数据类型;7、函数库;8、图形界面;9、社区支持与生态系统;10、跨平台兼容性;11、价格。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

185

2023.12.11

Matlab如何四舍五入
Matlab如何四舍五入

Matlab可以通过round函数和格式化输出函数来对数值来进行四舍五入操作。更多关于Matlab相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

396

2023.12.12

Matlab中axis函数用法介绍
Matlab中axis函数用法介绍

在Matlab中,axis函数用于设置当前坐标轴的范围和刻度。想了解更多axis函数的相关内容,可以阅读本专题下面的文章。

163

2023.12.13

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.2万人学习

Rust 教程
Rust 教程

共28课时 | 4.7万人学习

Vue 教程
Vue 教程

共42课时 | 7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号