自动驾驶车辆运动规划方法综述 - 论文阅读

本文旨在对自己的研究方向做一些记录,方便日后自己回顾。论文里面有关其他方向的讲解读者自行阅读。
参考论文:自动驾驶车辆运动规划方法综述

1 摘要

规划决策模块中的运动规划环节负责生成车辆的局部运动轨迹 ,决定车辆行驶质量的决定因素
未来关注的重点:

(1)精准建模描述车辆的运动过程
(2)清晰地描述环境情况
(3)完成算法地容错冗余设计
(4)简化求解难度以及如何保障算法的泛化求解能力

2 车辆运动规划的概念

车辆运动规划:指生成衔接车辆起点与终点的几何路径,同时给出车辆沿该路径运动的速度信息,并使车辆在整个运动过程中满足运动学 / 动力学约束、碰撞躲避约束以及其他源自内部系统或外部环境的时间和 / 或空间约束条件

路径规划仅仅负责生成满足空间约束条件的几何曲线,忽略了与时间相关的约束条件。在轮式移动车辆领域认为运动规划 / 轨迹规划的结果较路径规划的结果更为全面

实际工程运用中,下发的往往是路径而不是轨迹,意味着轨迹规划被分解为路径规划+运动配时两阶段计算架构。采用这种方案的原因:
(1)轨迹规划计算过程困难,将其分解为“SL + ST”,能够大幅度降低求解负担
(2)通过规划生成的轨迹难以在后继控制模块中被有效跟踪
(3)决策规划模块仅需生成路径而非轨迹,车辆实际运动速度暂时无法或无需决策。

3 运动规划方法

自2017年以来,国内公开发表的学术文献中,面向自动驾驶车辆的路径规划/轨迹规划方法主要包括:曲线插值方法、采样方法、机器学习方法、最优控制方法

3.1 曲线插值方法

曲线插值方法主要包括曲线元素组合方法以及插值拟合方法,能够生成具备良好连续平滑的行驶路径。
(1)曲线元素组合方法一般用于车辆低速行驶工况下,主要场景和任务:泊车。车辆在低速行驶时,往往被允许中途短暂停泊并原地调整转角姿态,使最小转弯半径所对应的圆弧得以被充分利用。

Dubins 曲线、Reeds-Shepp 曲线算法的拓展和改进

(2)插值拟合方法能将行驶路径显示地表述为数学函数,通过确定函数的参数来决定行驶路径的形态。这种方式生成的路径一般具有较好的平滑性,常用于城市道路高速行驶情况中。

三次B样条、三次多项式函数、五次多项式、四次多项式

3.2 采样方法

采样方法Basic idea:在构型空间(configuration space)中生成样本点,并寻找满足任务需求的样本点序列作为规划结果。常见的采样方法:随机采样和固定采样

随机采样:PRM、RRT
固定采样:按照明确给定的规则生成一系列待选样本点

3.3 机器学习方法

机器学习方法应用在车辆运动规划问题上,应该以任务需求、车辆初始运动状态、场景设置等基本信息作为输入,以车辆期望的行驶路径/轨迹作为输出。应用大量已有的输入-输出样本进行训练,从而获得输入-输出的内在映射关系,随后将这种映射关系用于求解实际的规划问题。

3.4 最优控制方法

描述车辆运动的直接方式是建立微分方程组,而在运动学微分方程的基础上补充必要的约束条件以及车辆行驶性能的指标,构成标准的开环最优控制问题。

将车辆运动规划问题描述为最优控制问题,具有客观、准确、直接、统一、完备的优点,使前面方法所不具备的。
采用数值方法求解最优控制问题
(1)将高速无人驾驶车辆运动规划问题建立为二次型非线性规划问题,加入了车辆避免滑移或侧倾的约束条件,在将车辆运动系统在工况点线性化近似,采用 CVXGEN 求解器进行数值求解
(2)建立车辆换道行驶局部轨迹规划模型时,将安全性、舒适性、拟人性等约束条件转化为惩罚项补入目标函数中,构建了无约束的二次型非线性规划问题,随后采用图优化方法求解
(3)处理车道变更路径规划任务时,基于线性化的车辆系统运动模型构造二次型非线性规划问题,采用 Hildreth 算法进行数值求解。

用于准确描述车辆运动规划命题的非线性最优控制问题难以直接求解,现有方法往往对车辆系统进行局部线性化处理,或者将一些约束条件转化为目标函数,从而达到简化求解难度的目的。

碰撞躲避约束条件是造成最优控制问题模型复杂的重要因素,精确描述车辆与自由摆放障碍物之间的碰撞躲避约束条件会造成所构建非线性规划问题具有强非线性,甚至体现严重的非凸性和病态性。

4 各类运动规划方法优缺点分析

曲线插值方法:
(1)求解路径的速度较快,并且能够满足路径平滑性、可行性;
(2)由于采用特定类型的曲线函数描述行车路径,因此这一类方法无法充分发挥车辆的全部运动能力,车辆的运动学 / 动力学方程组并不等价于该方法中所使用的曲线函数

采样方法:
(1)具备较快的计算速度
(2)由于采样方法通过试探与筛选逐步确定运动路径,因此适用于局部范围场景,并且需要运动规划任务中不包含复杂约束条件或对求解精度要求不高。
(3)生成的备选运动方案数量有限,因此难以胜任复杂条件下的运动规划问题;而且,随机采样方法中的随机机制具有盲目性,这使得复杂约束条件在理论与实践层面上均无法得到精确满足。

机器学习方法:
将采集到的人类驾驶汽车或模拟器的数据作为训练样本,将使得自动驾驶智能化沦为拟人化,而这并非自动驾驶运动决策系统发展的终极目的。相比之下,无监督学习方法似乎在该领域具有更大的潜力。

最优控制方法:
两大技术关键:(1)问题模型的精确建立 (2)高效求解方法
(1)模型的精度往往受制于优化求解方法的能力范围以及时效性
(2)在建模精度较高的需求下,最优控制方法主要瓶颈在于计算时效性的低下。

5 展望

4 类运动规划方法将继续并行发展。面向实际问题时,随着用户对求解精度的要求逐步提高,这些方法将更倾向于通过相互“取长补短”来提供满意的路径 / 轨迹。
(1)对车辆运动能力的恰当建模描述。现阶段运动规划算法对车辆运动过程的描述往往只到 2 自由度自行车模型,一般无法覆盖车轮打滑、车辆横向漂移、车体惯性及车身悬架振动等实际工况。如能够在决策规划模块建立更贴近实际工况的车辆运动模型并进行高效率求解,则可以分担后继控制模块的压力,真正体现智能驾驶中智慧决策的意义。

(2)对行车环境的客观、统一描述。在通常的行车环境中,障碍物信息主要来源包括预设的导航地图标记信息和车载雷达感知到的周围障碍物点云信息。导航地图往往提供道路边界线等规则形态的几何形状 ( 点、线、面 ),而车载雷达获得的点云由散点构成。如何在运动规划模型中巧妙地描述这两类障碍物,并尽量避免场景模型复杂程度随环境变化,是未来值得关注的一项议题。此外,环境中往往存在不确定性,主要来源为感知误差以及场景中的非协作运动体(其他车辆、行人等)。如何客观、统一、有效地描述这些不确定因素,值得着重研究

(3)容错规划方案的设计合理。容错冗余设计是保障系统安全的重要环节。在设计运动规划算法时,应注重对算法核心或薄弱环节进行冗余设计,从而在这些环节失效时避免出现不可控制或不可预知的后果。

(4)运动规划求解效率的提高。各类运动规划算法往往包含计算过程,如能够在不损害求解质量的前提下,适当简化求解空间,则可以进一步提升计算效率。这一思路对于依赖数值求解的最优控制类算法效果尤为显著

(5)算法泛化求解能力的保障。运动规划算法应精准满足用户的差异化偏好。如何规避算法应用范围的局限性,也是未来在算法设计中值得关注的因素

其他运动规划相关综述参考文章:

1)[5]余卓平,李奕姗,熊璐 . 无人车运动规划算法综述[J]. 同济大学学报(自然科学版),2017,45(8):1150-1159. YU Z P, LI Y S, XIONG L. A Review of the Motion Planning Problem of Autonomous Vehicle[J]. Journal of Tongji University(Natural Science), 2017, 45(8):1150–1159.
2)[48]高健博 . 无人驾驶汽车运动规划方法研究综述[J]. 汽车工业研究,2018(8):37-42.
3)[49]任子玉 . 智能车自主避障路径规划研究综述[J]. 软件导刊 ,2017,16(10):209-212.
REN Z Y. A Summary of Research on Autonomous Vehicles of Intelligent Vehicles[J]. Software Guide, 2017, 16(10):209-212

4)[50]周伟,李军 . 自动驾驶车辆避障路径规划研究综述[J]. 汽车工程师,2018(5):55-58.
5)[51]SCHWARTING W, ALONSO-MORA J, RUS D. Planning andDecision-Making for Autonomous Vehicles[J]. Annual Review ofControl, Robotics, and Autonomous Systems, 2018(1):187-210.

6)[52]AMER N H, ZAMZURI H, HUDHA K, et al. Modelling andcontrol strategies in path tracking control for autonomous groundvehicles: a review of state of the art and challenges[J]. Journal of Intelligent & Robotic Systems, 2017, 86(2):225-254.
7)[53]MOHANAN M G, SALGOANKAR A. A survey of robotic motionplanning in dynamic environments[J]. Robotics and Autonomous Systems, 2018(100):171-185.
8)[54]MOHAMED A, EL-GINDY M, REN J. Advanced control techniques for unmanned ground vehicle: literature survey[J].International Journal of Vehicle Performance, 2018, 4(1):46-73.
9)[55]DIXIT S, FALLAH S, MONTANARO U, et al. Trajectory planningand tracking for autonomous overtaking: State-of-the-art and futureprospects[J]. Annual Reviews in Control, 2018( 45):76-86.
10)[56]GUANETTI J, KIM Y, BORRELLI F. Control of connected andautomated vehicles: State of the art and future challenges[J].Annual Reviews in Control, 2018(45):18-40.

文献 [53]聚焦于动态环境中的方法回顾,文献 [55] 回顾了超车行为中的运动规划方法,文献 [56] 则着重关注智能网联汽车编队的协同运动与决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ如何保证消息不丢失?

RabbitMQ如何保证消息不丢失? 消息丢失的情况 生产者发送消息未到达交换机生产者发送消息未到达队列MQ宕机,消息丢失消费者服务宕机,消息丢失 生产者确认机制 解决的问题:publisher confirm机制来避免消息发送到MQ过程中消失。…

数据结构排序——计数排序和排序总结(附上912. 排序数组讲解)

数据结构排序——计数排序和排序总结 现在常见算法排序都已讲解完成,今天就再讲个计数排序。再总结一下 文章目录 1.计数排序2.排序总结3.排序oj(排序数组)题目详情代码思路 1.计数排序 计数排序是一种非基于比较的排序算法,它通…

STL标准库与泛型编程(侯捷)笔记2

STL标准库与泛型编程(侯捷) 本文是学习笔记,仅供个人学习使用。如有侵权,请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

SLA(服务等级协议)

在硅谷一线大厂所维护的系统服务中,我们经常可以看见SLA这样的承诺。 例如,在谷歌的云计算服务平台Google Cloud Platform中,他们会写着“99.9% Availability”这样的承诺。那什么是“99.9% Availability”呢? 要理解这个承诺是…

七:Day07_redis进阶02

第一章 Redis 事务 1.1 节 数据库事务复习 在数据库层面,事务是指一组操作,这些操作要么全都被成功执行,要么全都不执行。 数据库事务的四大特性: A:Atomic, 原子性。要么全部执行,要么全部不…

复合机器人作为一种新型的智能制造装备高效、精准和灵活的生产方式

随着汽车制造业的快速发展,对于高效、精准和灵活的生产方式需求日益增强。复合机器人作为一种新型的智能制造装备,以其独特的优势在汽车制造中发挥着越来越重要的作用。因此,富唯智能顺应时代的发展趋势,研发出了ICR系列的复合机器…

03 Strategy策略

抽丝剥茧设计模式 之 Strategy策略 - 更多内容请见 目录 文章目录 一、Strategy策略二、Comparable和Comparator源码分析使用案例Arrays.sort源码Collections.sort源码Comparable源码Comparator源码 一、Strategy策略 策略模式是一种设计模式,它定义了一系列的算法…

Unity-生命周期函数

目录 生命周期函数是什么? 生命周期函数有哪些? Awake() OnEnable() Start() FixedUpdate() Update() Late Update() OnDisable() OnDestroy() Unity中生命周期函数支持继承多态吗? 生命周期函数是什么? 在Unity中&…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -关于我们页面实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

4_【Linux版】重装数据库问题处理记录

1、卸载已安装的oracle数据库。 2、知识点补充: 3、调整/dev/shm/的大小 【linux下修改/dev/shm tmpfs文件系统大小 - saratearing - 博客园 (cnblogs.com)】 mount -o remount,size100g /dev/shm 4、重装oracle后没有orainstRoot.sh 【重装oracle后没有orains…

隧道应用2-netsh端口转发监听Meterpreter

流程介绍: 跳板机 A 和目标靶机 B 是可以互相访问到的,在服务器 A 上可以通过配置 netsh 端口映射访问 B 服务器。如果要拿 B 服务器的权限通常是生成正向后门,使用 kali 的 msf 正向连接B服务器,进而得到 Meterpreter&#xff0c…

点云相关论文总结

点云Backbone 全链接 - PointNet: https://arxiv.org/pdf/1706.02413.pdf Transformer - Point Transformer: https://openaccess.thecvf.com/content/ICCV2021/papers/Zhao_Point_Transformer_ICCV_2021_paper.pdf 3D CNN - https://arxiv.org/abs/1904.08755 点云检测 PointP…

大模型微调及生态简单介绍

大模型 大模型生态OpenAI大模型生态: 全球开源大模型性能评估榜单中文语言模型——ChatGLM基于ChatGLM的多模态⼤模型 大模型微调LLM⼤语⾔模型 ⼀般训练过程为什么需要微调高效微调技术⽅法概述⾼效微调⽅法一:LoRA微调方法高效微调⽅法⼆:P…

代码随想录算法训练营第五天天| 总结数组专题

数组:二分查找、双指针(包括快慢指针)、滑动窗口、模拟 链表:双指针、三指针、虚拟头指针、复杂指针操作画图明确每一步(标好次序) 数组 代码随想录总结的很好,如下图。我再结合自己的一些理解…

具于xilinx FPGA的可动态配置DDS频率控制字的DDS IP核使用例程详解

目录 1 概述2 IP examples功能3 IP 使用例程4注意事项5 DDS IP Examples下载位置 1 概述 本文用于讲解xilinx IP 的dds ip examples(动态配置频率)的功能说明,方便使用者快速上手。 2 IP examples功能 本examples 是月隐编写的针对DDS的使…

Awesome Mac:好用的Mac应用程序、软件以及工具

优秀好用的Mac应用:https://github.com/jaywcjlove/awesome-mac/blob/master/README-zh.md Awesome Mac目录开发者工具 编辑器开发者实用工具正则编辑器API开发和分析网络分析命令行工具版本控制GUI版本控制系统数据库设计和产品 设计工具原型流程作图工具截图工具其…

一篇文章带你了解Redis的发展史

Redis 是一个开源的内存数据存储和处理系统,它在过去的几十年中经历了重大的发展和演进。以下是 Redis 的发展历程概述: 早期阶段(2000年代初至中期):在这个时期,网站的访问量通常较低,单个数据…

代码随想录算法训练营29期Day18|LeetCode 513,112,113,106,105

文档讲解:找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树 513.找树左下角的值 题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ 思路: 本题要求我们找到树最深一层的最左节点的值。搜索的话复…

xtu oj 1183 sum times

题目描述 整数a,b,其中ab c,a*b d,已知c和d,问是否存在a和b? 输入 第一行是一个整数K,表示样例个数。 每个样例占1行,两个整数c和d,0≤c,d≤109。 输出 每行输出一个样例的结果,a和b(a≤b)&#xff…

vite 创建 react 项目

npm create vitelatest 选择 react 和 ts 安装 react-redux 、react-router-dom 、redux 安装 reset-css 样式初始化 npm i --save-dev sass // 禁用文字选中 user-select: none; img{ // 禁止图片拖动 -webkit-user-drag: none; } 正确的样式引入顺序 样式初始化即 re…