路径规划算法_自动驾驶汽车路径规划算法浅析

7e92d87c523c285dc4ffff66443672ea.png

自动驾驶汽车的路径规划算法最早源于机器人的路径规划研究,但是就工况而言却比机器人的路径规划复杂得多,自动驾驶车辆需要考虑车速、道路的附着情况、车辆最小转弯半径、外界天气环境等因素。

本文将为大家介绍四种常用的路径规划算法,分别是搜索算法、随机采样、曲线插值和人工势场法。

1.搜索算法搜索算法主要包括遍历式和启发式两种,其中Dijkstra算法属于传统的遍历式,A*算法属于启发式,在A*算法的基础上,还衍生出了D*Lite算法、Weighted A*算法等其他类型。Dijkstra算法最早由荷兰计算机学家狄克斯特拉于1959年提出,算法核心是计算从一个起始点到终点的最短路径,其算法特点是以起始点开始向周围层层扩展,直到扩展到终点为止,再从中找到最短路径,算法搜索方式如图(1-1)所示。A*算法在Dijkstra算法上结合了最佳优先算法,在空间的每个节点定义了一个启发函数(估价函数),启发函数为当前节点到目标节点的估计值,从而减少搜索节点的数量从而提高效率。A*算法中的启发函数包括两部分,表示从初始点到任意节点n的代价,表示节点n到目标点的启发式评估代价,在对象从初始点开始向目标点移动时,不断计算的值,从而选择代价最小的节点。一般来说遍历式算法可以取得全局最优解,但是计算量大,实时性不好;启发式算法结合了遍历式算法以及最佳优先算法的优点,具有计算小、收敛快的特点。图(1-2)是最佳优先算法示意图,可以看出该算法有一定的选择性,但是面对图中的u型障碍物会出现计算效率低的情况。而A*算法完美的结合了Dijkstra算法和最佳优先算法,不仅有一定的选择性,并且计算量相对也是最少的,更快得找到了最短路径。

23594f6db257bd7beb16b8dd45ff2181.png

图1-1 Dijkstra算法示意图

2e9d2316711afc8fcc2eb2a9badf81e3.png

图1-2 最佳优先算法示意图

4be99bf29e36fb42b6b8dc13bf2a43b7.png

图1-3 A*算法示意图2.随机采样随机采样主要包括蚁群算法以及RRT(快速扩展随机树)算法。蚁群算法是由Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。其算法基本原理如下:1.蚂蚁在路径上释放信息素。2.碰到还没走过的路口,随机选一条走,同时释放与路径长度有关的信息素。3.信息素浓度与路径长度成反比。后来蚂蚁再次碰到该路口时,就选择信息浓度较高的路径。4.最优路径上的信息素浓度越来越大。5.信息素浓度最大的路径为最优路径。其在小规模TSP中性能尚可,再大规模TSP问题中性能下降,容易停滞。实际道路环境是比较复杂的,不光有道路、障碍物等的限制,也有其自身动力学的约束,所以该算法更适合做全局路径规划,不太适合局部路径规划。

41e9f9b09256e32b8ef7b4a5fe475e47.png

图2-1 蚁群算法示意图3.曲线插值曲线插值的方法是按照车辆在某些特定条件(安全、快速、高效)下,进行路线的曲线拟合,常见的有贝塞尔曲线、多项式曲线、B样条曲线等。一般就多项式算法而言,主要考虑以下几个几何约束,从而确定曲线的参数。几何约束:1.起始点的位置与姿态。2.最小转弯半径。3.障碍物约束。4.目标点的位置与姿态。根据考虑的几何约束不同,多项式算法的阶数从三阶到六阶甚至更高阶,阶数越高的算法复杂度越高,收敛速度越慢。四次多项式的形式如式(3-1)所示,参数由几何约束条件确定。基于参数化曲线来描述轨迹,这种类型的算法比较直观,也可以更加准确的描述车辆所需满足的道路条件,规划出的轨迹也十分平坦、曲率变化连续并可进行约束。缺点是计算量较大,实时性不太好,并且其评价函数也比较难以找到最优的,未来的研究方向主要集中于简化算法以及更加完善的评价函数。目前,曲线拟合算法是采用比较广泛的规划方法。

684b33a2fbf7c5c8bcb6158777e11d63.png        (3-1)

4.人工势场法人工势场法(Artificial PotentialField,APF)是由Khatib于1986年提出的。该算法是假设目标点会对自动驾驶车辆产生引力,障碍物对自动驾驶车辆产生斥力,从而使自动驾驶车辆沿“势峰”间的“势谷”前进。这种算法的优点就是结构简单,有利于底层控制的实时性,可大大减少计算量和计算时间,并且生成相对光滑的路径,利于保持自动驾驶车辆的稳定性。算法的缺点是有可能陷入局部最优解,难以对规划出的路径进行车辆动力学约束,复杂环境下的势场搭建也比较棘手。势场的基本步骤如下:首先搭建势场,包括障碍物势场以及目标点势场,然后通过求势场负梯度,可以得到车辆在势场中所受的障碍物斥力以及目标点引力。将所受的所有障碍物斥力与目标点引力叠加,就可以得到车辆在势场中任意位置的受力情况,最后根据合力情况不断迭代更新位置,就可以得到从起始点到终点的完整路径。

e8c233a428a44bd53187a90e2fc88ff9.png

图4-1 基于人工势场法搭建的势能场        

106c50f08d64b0c28ca8ec83c6691ada.png

图4-2 基于人工势场法规划的路径点最后以下表对本文介绍的四种算法的优缺点、计算效率进行一个简要的对比总结。不难发现,其中人工势场法的计算速度最快,实时性也最好,但是存在局部最优解、复杂势场难以搭建的情况,这也是未来该算法的研究热点、难点;其中,曲线插值是目前较常见的一种算法,虽然该算法的计算效率不高,但是相信在未来车载计算机的计算能力大幅度提升之后,该算法可以被更广泛得使用。

91ccc1bffeed92247111dd706b5d2602.png

【欢迎大家提供行业新闻热点,商业合作请联系:18562613430】

40f425595dd34fa0ff6e1e34fd06b16e.png

推荐阅读

2bfa3cf7094381ce73752e47a4c186e5.png

92014d83dade9a14d32204ba680e5e2b.png

免责声明:

凡本公众号注明“来源:XXX(非智车科技)”的作品,均转载自其它媒体,转载目的在于传递和分享更多信息,并不代表本平台赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。 

9442e65c5c87336ad0d453a0c4463061.png

564fb4a855385ab20f3c3a5bd13efa2f.png

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

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

相关文章

【转载】interpolation(插值)和 extrapolation(外推)的区别

根据已有数据以及模型(函数)预测未知区域的函数值,预测的点在已有数据范围内就是interpolation(插值), 范围外就是extrapolation(外推)。 The Difference Between Extrapolation and…

vue computed使用_vue computed正确使用方式

最近面试中,遇到一个小伙子,谈到了vue中的 computed 和 watch 区别,最后得到了一个让我瞠目结舌的答案,只用 watch,从不用 computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中…

Apache实验-目录别名

一、作用介绍 在一些情况下,我们的资源文件都在非/var/www/html目录下,例如/var/www/html/sohu。这样的话我们在输入网址的时候就需要在网站根目录下再输入完整的目录。所以我们可以定义一个别名来替代这个路径。可以简写网站的网址。 二、实例操作 目前…

黑苹果适合什么用途?_黑苹果系统,Ozmosis和四叶草、变色龙相比有什么区别和优势?...

黑苹果单系统,Ozmosis和四叶草、变色龙相比有什么区别和优势?黑苹果系统用于影视后期处理ozmosis由于调试灵活性差,每次调试都要刷bios,主板厂商提供的bios也就8mb,要把,ozmosis引导程序放进去,…

Apache的虚拟主机

一、虚拟主机的分类 基于IP的虚拟主机:一台服务器,多个ip,搭建多个网站 基于端口的虚拟主机:一台服务器,一个ip,利用不同端口,搭建多个网站 基于域名的虚拟主机:一台服务器&#xff…

zabbix解决中文乱码

解决中文乱码 yum install -y wqy-microhei-fonts #解决方法 中文乱码 \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf #或者是服务器没有安装中文转载于:https://www.cnblogs.com/zhaojingyu/p/11438733.html

springboot启动过程_spring5/springboot2源码学习 -- spring boot 应用的启动过程

推荐阅读:Spring全家桶笔记:SpringSpring BootSpring CloudSpring MVC疫情期间“闭关修炼”,吃透这本Java核心知识,跳槽面试不心慌2020“闭关”跳槽季,啃透分布式三大技术:限流、缓存、通讯基本环境开发工具…

不出来信号 quartus_男人一旦动了真情,会向你发出这6个“信号”不爱的人装不出来...

恋爱的时候,女人都想知道一个男人是否真的爱你,是否真的在乎你,女人常常在猜测男人的心思。而对一个聪明的女人来说,她们会用眼睛,用心观察身边的那个男人。有人说如果男人对女人动了真情,他会在女人面前表…

python turtle画烟花_用Python写一个绚丽的烟花!

Python人工智能 - 一节课快速认识人工智能必备语言:python - 创客学院直播室​www.makeru.com.cn 哈喽大家好,小编来教大家如何用Python写一个绚丽的烟花,下面我们开始吧~ Turtle库Turtle,也叫海龟渲染器,使用Turtle库画图也叫海龟…

zabbix详解

官网地址 https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent 使用率 转载于:https://www.cnblogs.com/zhaojingyu/p/11440579.html

怎么把整个网站的代码中的一个词去掉_【杭州南牛网络】网站优化的最新优化方法...

【杭州南牛网络】如果你是一名企业主,你有建立企业官方网站的经验,在2-3年的运营过程中,我相信你至少对网站做了一次修改,甚至对SEO战略进行了重大调整。 原因很简单:当我们刚开始建一家公司时,很多时间都是…

数字电影打包内容(Packaging)

在数字电影领域,打包(Packaging)是指将节目素材(含图像、声音和字幕)按照一定的规则进行封装和组织,以用于节目传输和存储。在数字电影发展初期,下发到影院的数字节目没有统一的播放格式&#x…

阿里云盾AliYunDun服务IO超高

停止阿里云盾AliYunDun服务解决大量写磁盘问题-小内存ECS服务器 阿里云数据库在没备案,涉及大量IO操作时会自动启动阿里云盾这个服务,会导致服务器变得很卡,一直持续百分之99,一顿重启没有什么卵用! 最后关…

CORS 请求未能成功_当遇到跨域开发时, 我们如何处理好前后端配置和请求库封装(koa/axios版)...

我们知道很多大型项目都或多或少的采用跨域的模式开发, 以达到服务和资源的解耦和高效利用. 在大前端盛行的今天更为如此, 前端工程师可以通过nodejs或者Nginx轻松搭建起web服务器.这个时候我们只需要请求后端服务器的接口即可实现系统的业务功能开发.这个过程中会涉及到web页面…

java 数组存入数据库_Java中关于二维数组的理解与使用

今天练习的时候遇到一个题目,题目需求是这样的:需求说明:根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩分析:要实现这个功能需要存储两个信息:一个是班级信息&#xff…

sql删除元组_Lecture #02: 中级SQL

本专栏是对CMU15445的笔记的翻译,原文地址:https://15445.courses.cs.cmu.edu/fall2020/notes/02-advancedsql.pdf1 关系语言在20世纪70年代,Edgar Codd发布了一篇关于关系模型的论文。最初,他只定义了数据库在关系模型上运行查询…

iCloud官方文档

官方地址:iOS App Programming Guide -> iCloud Storage这个偏理论一些,提供了很多iCloud应用设计层面的东西,大家感兴趣,可以一看。如果需要iCloud上手教程,可以参考我的另外一个贴子:http://www.cocoa…

0x00000000指令引用的内存不能为written_变量和内存访问

计算机世界有一个常识——所有的数据和指令必须经由内存才能进入CPU的寄存器进而被CPU使用,那么我们程序操作的主战场就是内存,内存操作也就顺理成章成为了程序中最高频的操作。为了节目的效果,我们先来看一段8086平台下的汇编代码&#xff1…

Zabbix 3.0 配置企业微信报警(注册---测试)

一、申请企业微信 1、登录企业微信官网,点击企业注册 二、配置企业微信 1、邀请管理员使用企业微信,如果有多个人直接添加新成员 2、管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3、创建应用 4、填写应用信息&#xff…