首页 > 其他分享 >《A Review of Motion Planning Techniques for Automated Vehicles》阅读

《A Review of Motion Planning Techniques for Automated Vehicles》阅读

时间:2024-04-07 16:56:31浏览次数:26  
标签:采样 基于 路径 优化 Review Vehicles Motion Planning 规划

这是一篇2015年的老论文了,但其中提到的很多技术至今仍在使用,在这里做一个简单的梳理。文章主要对用于自动驾驶的运动规划技术进行了梳理。

在讲解具体的算法之前,有必要对自动驾驶的规划控制整体有一个了解。

image-20240402165400236

规划控制的整体流程如图所示,我们用一个例子来解释上图。假设你现在准备进行一次从北京到上海的自驾游。首先你会打开地图软件,设置起点,终点,这样你就得到了一条从北京到上海的路径,这条路径会包含你应该上那条高架、走那个高速等信息。这个过程就是Route Planning。Route Planning的任务是从地图上找到一条到达目的地的可行路径。接下了,你开车沿着Route Planning给的路径出发了,现在,前方出现了一个行人,这时你要决定是绕行,还是停车等待,这个过程就是Behavior Planner或者说叫决策,真实的路况是复杂的,你需要知道什么时候躲避行人,什么变道,什么时候超车,Behavior Planner解决的就是这个问题。躲过行人之后,你准备变道超车了,这时,你要怎么变道,是往左还是往右,是猛打方向盘迅速变道还是慢慢的变过去?这个过程就是运动规划,也叫局部规划。当年决定从左边变道时,你需要控制油门和方向盘来完成变道,这就是Motion Control。车辆根据油门的大小和方向盘的转动角度给车施加加速度和转动角度,这就是最后的Vehicle Control。

这篇文章的重点是Motion Planning。在这里我们不讨论端到端的Motion Planning。传统的Motion Planning由以下两部分组成

image-20240402171334914

Path Finding的主要任务是找到可行性的路径,确保路径是上是没有障碍物的,且满足车辆的动力学约束。Trajectory Optimization(轨迹优化)的主要任务是对找到的路径,再次进行优化。在实际驾驶场景中,我们希望打方向盘的角度相对较小,这样乘客的体验比较好,这就要求轨迹尽可能的平滑。总的来说Path Finding的任务是找到能走的路,轨迹优化的任务是找到好走的路。

了解了这些之后,我们再来看这篇论文。论文总体上来说分为:背景介绍、研究挑战、运动规划技术、未来研究方向和研究团队。在这篇博客中,我主要对运动规划技术进行一个简单的梳理,简单讲解每种方法在整个规划过程中的位置。

论文将路径规划算法分为了4类:基于图搜索、基于采样、基于插值、和基于数值优化。前两种用于path Finding,后两种方法用于轨迹优化。

规划方法

根据规划的方式将路径规划算法分为基于图搜索的规划算法和基于采样的路径规划方法。基于图搜索的算法可以保证一定可以找到最短路径;而基于采样的方法则是概率完备的:经过若干次采样之后,一定可以找到一条最短路径,但这条路径并不能保证是全局最优(最短的)的。

基于图搜索的规划方法

基于图搜索的路径规划方法是建立在已经获得了地图数据的基础上的,包括全局地图(全局规划)和局部地图(局部规划)。简单来说,无人车已经根据高精地图抽象出了图结构,接下来,我们要在图结构上寻找最短路径。

代表算法:Dijkstra算法、A*算法和state Lattices

image-20240407145027178

基于采样的规划方法

基于采样的规划方法一般是指PRM(概率路图)和RRT(快速搜索随机树)。下图展示的PRM的过程

PRM分为两步:1、在地图空间内进行随机采样,将相邻最近的采样点连接,得到图结构。

2、根据得到的图结构,使用Dijkstra或者A*等算法对路径进行搜索。

image-20240407145456445

RRT算法则是将建图的过程和搜索的过程相结合,在采样的同时建立搜索树,当采样结束时,最短路径也就找到了。

轨迹优化方法

无人车使用上文提到的规划方法之后,就会输出一条路径,如果使用简单的A*或者RRT,得到的路径并不一定是符合车辆的运动学与动力学约束的,比如,无人车是不可能进行左右平移的。如图所示,在使用RRT算法之后,我们得到了一条通往目标点的路径,但这条路径并不平滑,存在一些拐角,这种路径后端的控制器是很难进行追踪的。考虑到车辆的运动学与动力学约束,我们可以对已有的路径进行优化,使路径平滑并且满足车辆的动力学约束。

image-20240407164306745

轨迹优化的方法有2种,基于插值曲线和基于优化的方法。

基于插值的轨迹优化方法

简单来说,对于规划得到的路径,我们不直接对路径优化,我们把路径上的节点拿出来。设计一条平滑的曲线穿过所有的节点,这样就可以得到平滑的路径。根据选择的曲线的不同,可以有不同的轨迹优化方法。

image-20240407154208241

基于优化的轨迹优化方法

​ 建立运动学方程,通过最小化目标函数(速度、加速度、加加速度)来获得获得一条轨迹,这样得到的轨迹每个参数都具有实际的物理意义,比较容易进行优化,借助现有的凸优化工具包快速的对路径进行优化。

image-20240407160902595

标签:采样,基于,路径,优化,Review,Vehicles,Motion,Planning,规划
From: https://www.cnblogs.com/sophomores/p/18119376

相关文章

  • 【期刊】人工智能评论 Artificial Intelligence Review
    Overview 概述ArtificialIntelligenceReviewisafullyopenaccessjournalpublishingstate-of-the-artresearchinartificialintelligenceandcognitivescience.《人工智能评论》是一本完全开放获取的期刊,发表人工智能和认知科学领域的最新研究。Publishes......
  • 代码质量与技术债系列分享之一 - 如何做好 Code Review
    TL;DRCodeReview速查手册参考资料https://composity.com/post/too-busy-to-improvehttps://commadot.com/wtf-per-minute/https://dl.acm.org/doi/10.1145/3585004#d1e372https://google.github.io/eng-practices/review/reviewer/standard.htmlhttps://book.douban.co......
  • AT_arc174_b [ARC174B] Bought Review 题解
    题目翻译针对\(T\)个测试用例解决以下问题:在美食评论网站EatCocoder上,你可以评论餐厅的星级(从\(1\)到\(5\)的整数)。最初,由厨师长\(B\)管理的餐厅有\(A_i\)条\(i\)星级评价。(\(1≤i≤5\))厨师可以向EatCocoder管理部门行贿提供\(P_i\)日元,以获得一......
  • Lecture 02 Review of Linear Algebra
    Lecture02ReviewofLinearAlgebra图形学的依赖基础数学线性代数微积分统计学基础物理光学力学杂项信号处理数值分析一点美学向量(数学上称为向量,物理上称为矢量)\(\vec{AB}\)=B-A向量表示方向和长度向量的大小\(\Vert\vec{a}\rVert\)单位向量\(\wi......
  • [ARC174B] Bought Review 题解
    【题目描述】你开了一家店,有\(A_i\)个\(i\)星级评论,你可以花费\(P_i\)元买到一个\(i\)星评论,问使得这家店评论的星星平均值不小于\(3\),最少要花多少钱。\(1\lei\le5\)。【思路】首先读入,判断平均值是否小于\(3\),如果大于等于,直接输出\(0\)​然后根据\(3\t......
  • 【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack
    AzureAppService.NETProfiler在AppService服务中,如果部署了.NET应用,平台有一个非常好的工具可以查看请求的性能分布及异常时的StackTraces。进入路径:AppServiceAzureOverview-->  Networking(网络)-->Troubleshoot(排除故障)--> Collect.NETProfilerTrace......
  • 从公司的code Review 中提升编码能力
    1、对于只有一个ifelse并且简单赋值可以用三元表达式优化修改之前:优化后:对于不变的并且结构很长的这种对象或数组,可以放到一个ts文件,通过引入的方式,这样代码看起来会代码更简洁明了2、用map映射替换重复判断的ifelse修改之前:优化后:对于重复的ifelse判断,可......
  • Preview pipeline: Display_Out SetupTargetBuffer
    camx/src/core/hal/camxhaldevice.cppCamxResultHALDevice::ProcessCaptureRequest(Camera3CaptureRequest*pRequest){result=GetCHIAppCallbacks()->chi_override_process_request(reinterpret_cast<constcamera3_device*>(&m_c......
  • .NET Aspire Preview 4 发布!
    .NETAspirePreview4isnowavailable!Here'sasummaryofwhat'snewinthispreviewrelease:.NETAspirePreview4现已推出!以下是此预览版中新增内容的摘要:Podman  Supportforrunningappswith podman支持使用 podman 运行应用程序Dashboard  仪表板......
  • Windows Server 2025 简体中文版下载 (Inside Preview, updated Mar 2024) - 下一代 W
    WindowsServer2025简体中文版下载(InsidePreview,updatedMar2024)-下一代Windows11ServerWindowsServer2025正式版发布在即请访问原文链接:https://sysin.org/blog/windows-server-2025/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org我们知道Windo......