自动驾驶路径规划五大常用算法

谈思汽车 2024-01-28 10:30

 智能汽车安全新媒体 

无人驾驶系统的核心可分为四个部分:感知、定位、规划和控制。规划承接环境感知,并下启车辆控制,是实现无人驾驶的关键技术之一。

规划是指无人车为了到达某一目的地而做出决策和计划的过程,其规划出来的轨迹是带速度信息的路径,对于无人驾驶车辆而言,这个过程包括从起始地到达目的地,要避开障碍物,同时要不断优化行车路线和轨迹行为,以保证车辆安全舒适到达目的地。

根据这两点要求可将路径规划分为全局路径规划和局部路径规划,全局路径规划为静态规划,局部路径规划为动态规划。全局路径规划需要掌握所有的环境信息,根据环境地图的所有信息进行路径规划;局部路径规划只需要与传感器实时采集环境信息,了解环境地图信息,然后确定出所在地图的位置及其局部的障碍物分布情况,从而可以选出从当前结点到某一子目标结点的最优路径。

常用路径规划算法大致可分为以下几类:

01

最常用的传统经典算法

1.Dijkstra算法
Dijkstra算法是由计算机科学家Edsger W. Dijkstra在1956年提出的。Dijkstra算法用来寻找图形中节点之间的最短路径的算法。采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。Dijkstra算法在扩展的过程中,都是取出未访问结点中距离该点距离最小的结点,然后利用该结点去更新其他结点的距离值。
优点:如果最优路径存在,那么一定能找到最优路径。
缺点:有权图中可能是负边;扩展的节点很多,效率低。
2.A*算法
A* 算法发表于1968年,A* 算法是将Dijkstra算法与广度优先搜索算法(BFS, Breath First Search)二者结合而成,通过借助启发式函数的作用,能够使该算法能够更快的找到最优路径。A*算法是静态路网中求解最短路径最有效的直接搜索方法。
贪婪的最佳优先搜索算法与Dijkstra有着类似的工作方式,但是使用的是以每个节点到达终点的距离作为优先级,Dijkstra是以每个节点距离起点的移动代价进行优先级排序的,优先选择代价最小的作为下一个遍历的节点。最佳优先搜索算法比Dijkstra算法运行更快。
Dijkstra算法不同之处在于,A* 算法是一个“启发式”算法,它已经有了一些我们告诉它的先验知识,如“朝着终点的方向走更可能走到”。它不仅关注已走过的路径,还会对未走过的点或状态进行预测。因此A* 算法相较于Dijkstra而言,调整了进行BFS的顺序,少搜索了哪些“不太可能经过的点”,更快地找到目标点的最短路径。另外一点,由于H选取的不同,A * 算法找到的路径可能并不是最短的,但是牺牲准确率带来的是效率的提升。
优点:利用启发式函数,搜索范围小,提高了搜索效率;如果最优路径存在,那么一定能找到最优路径。
缺点:A*算法不适用于动态环境;不适用于高维空间,计算量大;目标点不可达时会造成大量性能消耗。 

3.D*算法

D* 算法(Dynamic A Star)是卡耐基梅隆机器人中心的Stentz在1994年提出的主要用于机器人探路,并且美国火星探测器上就是应用的D* 路径规划算法。A* 算法适用于在静态路网中寻路,在环境变化后,往往需要replan,由于A* 不能有效利用上次计算的信息,故计算效率较低。D* 算法由于储存了空间中每个点到终点的最短路径信息,故在重规划时效率大大提升。A* 是正向搜索,而D* 特点是反向搜索,即从目标点开始搜索过程。在初次遍历时候,与Dijkstra算法一致,它将每个节点的信息都保存下来。
优点:适用于动态环境的路径规划,搜索效率高
缺点:不适用于高维空间,计算量大

02

人工势场法


人工势场法是由Khatib在1985年提出的一种基于虚拟力场的局部路径规划算法,该算法的基本思想是:假设行驶目标点对车辆产生引力,而障碍物对车辆产生斥力,控制车辆沿势场中“势峰”间的“势谷”前进。其中,引力与车辆到行驶目标点的距离成正比,斥力与车辆到障碍物的距离成反比。通过求解车辆所受引力和斥力的合力作为车辆的合外力来控制车辆的行驶速度和运动方向。该方法具有易于数学表达、反应速度快、易于实现算法与环境形成闭环控制等优点,但它在求解过程中极易出现局部最优解而导致产生死锁现象。
优点:规划出的路径一般是比较平滑且安全;人工势场法是一种反馈控制策略,具有一定的鲁棒性
缺点:容易陷入局部最优的问题;距离目标点较远时,引力特别大,斥力相对较小,可能会发生碰撞;当目标点附近有障碍物时,斥力非常大,引力较小,很难到达目标点

03

基于图搜索的运动规划和方法

路径规划首先需要建立规划模型,利用状态空间法描述规划模型是建立非线性优化模型的关键,图搜索算法可以很好地解决该问题。
基本思想是:将车辆的初始位姿和目标位姿映射到一个状态空间,然后将状态空间离散化,并将其构成一个图,随后从图中搜索满足约束条件的最优轨迹。目前主流的方法主要包括Voronoi图、栅格地图与代价地图、Lattice状态图、驾驶通道图等。为了兼顾实时性与障碍物约束空间处理能力,一般采用Lattice和通道图方法生成安全轨迹。
图搜索算法包括Dijkstra算法和A*算法等,以及A*算法的变种。

04

基于随机采样的路径规划算法

随机采样方法的基本思想是在构型空间中随机采样,并筛选出满足性能需求的最优采样点,具备概率完备性,但其最大的缺点是舒适性较差,且计算效率随着障碍物数量的增长而下降。最常用的方法包括概率路标算法(PRM)以及快速搜索随机树算法(RRT)。
1.概率路线图方法(PRM)
PRM算法首先在可行使空间中进行离线采样,构造出路线网络图(Roadmap),随后根据起始点与目标点在路线网络图中进行查询,得到可行的行驶路径。整个过程分为预处理阶段和查询阶段。
1.预处理阶段:对状态空间内的安全区域均匀随机采样n个点,每个采样点分别与一定距离内的邻近采样点连接,并丢弃掉与障碍物发生碰撞的轨迹,最终得到一个连通图。
2.查询阶段:对于给定的一对初始和目标状态,分别将其连接到已经构建的图中,再使用搜索算法寻找满足要求的轨迹。
优点:适用于高维空间和复杂约束的路径规划问题;搜索效率高,搜索速度快
缺点:概率完备但不是最优
2.快速扩展随机树方法(RRT)
RRT算法是适用于高维空间,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,较好地处理带有非完整约束的路径规划问题,有效地解决了高维空间和复杂约束的路径规划问题。该算法是概率完备但不是最优的算法。

05

基于曲线插值方法

曲线插值法的核心思想就是基于预先构造的曲线类型,根据车辆期望达到的状态(位置、速度、加速度、航向角等),将这些期望值作为边界条件代入曲线类型进行方程求解,获得曲线的相关系数。所有系数计算出后,曲线轨迹规划完成。包括多项式参数化模型、样条曲线、螺旋线、回旋曲线和贝塞尔曲线等变种参数化曲线方法。
1.多项式参数化模型
设计思想是根据车辆的初始状态和目标状态对变道轨迹进行规划,使车辆在指定的时间到达相邻车道。试图在用函数f(x,y,t)描述的函数族类中寻找一条轨迹,能充分描述车辆从起始位置过渡到目标位置整个过程的动态特性。随着多项式次数的变大,曲线的拟合效果越好,但次数的增多也会导致参数求解的运算量指数增长,通常选用五次多项式进行变道轨迹的规划。在x方向、y方向分别选用五次多项式构造变道轨迹的曲线簇,如下式所示。


在道路结构的约束下,由五次多项式规划的曲线无论是在纵向上还是在侧向上都能达到期望的位置,车辆能在规定的变道时间内平顺的完成变道,且轨迹曲线的曲率在起始点和终了点都能达到零的期望值。
但是,基于多项式的轨迹规划方法也存在变道时间和终了点必须预先已知的局限,对多项式中参数的确定需要有较充分的条件,对纵向车速变化的情况和实际车辆变道过程中终了点并不唯一的机动性和自适应性较差。
多项式曲线通常有三次、五次和七次多项式曲线,每个能确定的每一个期望点的维度数不一样,三次多项式是位置和速度;五次多项式是位置、速度和加速度;七次多项式是位置、速度、加速度和加加速速度。
2.贝塞尔曲线
贝塞尔曲线于1962年,由法国工程师皮埃尔·贝济埃(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计,贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线。
基于贝塞尔缺陷的路径规划方法通过控制点的选取来改变曲线的形状,通常定义N阶贝塞尔曲线由N+1个控制点组成。

 


贝塞尔曲线表达式为:

 


Pi、t分别是控制点i的坐标值与时间参数,上图中式子2是Bi(t)是Bernstein多项式。
因其线条光滑且曲率值小的特点而被广泛地应用于轨迹曲线规划中。 
以上几种算法简单总结:
最经典普适的Dijkstra算法,如有最优路径存在一定能找到最与路径,但是扩展的结点多,效率低下;和A*算法适合全局路径规划,利用启发式函数,搜索范围小,提高了搜索效率,但不适用于高维空间,计算量大;D*算法适用于局部路径规划,搜索效率高,但是计算量大。
图搜索法适合做全局规划,算法收敛慢,环境建模复杂,计算效率低;随机采样法适用于局部范围场景,计算速度较快,但是难以胜任复杂条件下的运动规划问题。
曲线插值法求解路径的速度较快,并且能够满足路径平滑性、可行性,但是无法充分发挥车辆的全部运动能力;人工势场法计算速度快,实时性也好,但存在局部最优解、复杂势场难以搭建的情况。
以上为几大常见规划算法分享。

内容来源:

https://mp.weixin.qq.com/s/tBvv9QkiEVwlIw8UnL_VPA

-  THE END  -


 精品活动推荐 

因文章部分文字及图片涉及到引用,如有侵权,请及时联系17316577586,我们将删除内容以保证您的权益。

谈思汽车 智能汽车安全新媒体
评论
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 23浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 26浏览
  • 在快速发展的能源领域,发电厂是发电的支柱,效率和安全性至关重要。在这种背景下,国产数字隔离器已成为现代化和优化发电厂运营的重要组成部分。本文探讨了这些设备在提高性能方面的重要性,同时展示了中国在生产可靠且具有成本效益的数字隔离器方面的进步。什么是数字隔离器?数字隔离器充当屏障,在电气上将系统的不同部分隔离开来,同时允许无缝数据传输。在发电厂中,它们保护敏感的控制电路免受高压尖峰的影响,确保准确的信号处理,并在恶劣条件下保持系统完整性。中国国产数字隔离器经历了重大创新,在许多方面达到甚至超过了全球
    克里雅半导体科技 2025-01-03 16:10 121浏览
  • 车身域是指负责管理和控制汽车车身相关功能的一个功能域,在汽车域控系统中起着至关重要的作用。它涵盖了车门、车窗、车灯、雨刮器等各种与车身相关的功能模块。与汽车电子电气架构升级相一致,车身域发展亦可以划分为三个阶段,功能集成愈加丰富:第一阶段为分布式架构:对应BCM车身控制模块,包含灯光、雨刮、门窗等传统车身控制功能。第二阶段为域集中架构:对应BDC/CEM域控制器,在BCM基础上集成网关、PEPS等。第三阶段为SOA理念下的中央集中架构:VIU/ZCU区域控制器,在BDC/CEM基础上集成VCU、
    北汇信息 2025-01-03 16:01 173浏览
  • 在测试XTS时会遇到修改产品属性、SElinux权限、等一些内容,修改源码再编译很费时。今天为大家介绍一个便捷的方法,让OpenHarmony通过挂载镜像来修改镜像内容!触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙OpenHarmony3.2-5.0系统,适合鸿蒙开发入门学习。挂载镜像首先,将要修改内容的镜像传入虚拟机当中,并创建一个要挂载镜像的文件夹,如下图:之后通过挂载命令将system.img镜像挂载到sys
    Industio_触觉智能 2025-01-03 11:39 113浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 16浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 161浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 21浏览
  • 物联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于物联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备,国产固态继电器(SSR)已成为满足中国这些需求的关键解决方案。本文探讨了国产SSR如何满足物联网应用的需求,重点介绍了它们的优势、技术能力以及在现实场景中的应用。了解物联网中的固态继电器固态继电器是一种电子开关设备,它使用半导体而不是机械触点来控制负载。与传统的机械继电器不同,固态继电器具有以下优势:快速切换:确保精确快速的响应,这对于实时物联网系统至
    克里雅半导体科技 2025-01-03 16:11 165浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 29浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 158浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦