HybridA* 论文解读

本文旨在对原论文进行翻译,对混合A*有一个大概的理解
论文题目Practical Search Techniques in Path Planning for Autonomous Driving

1 摘要

本文描述了一个实用的路径规划算法,无人驾驶汽车在未知的环境中,障碍物通过机器人的传感器实时检测产生平滑的路径。这项工作的动机和实验验证了在2007年DARPA城市挑战赛,机器人必须在停车场自主导航。本文的方法有两个主要步骤:
① 使用众所周知的A* 搜索算法的变体,应用于车辆的3D运动状态空间,但是具有修改的状态更新规则,其在A* 的离散节点中捕获车辆的连续状态-保证路径的运动可行性 。
② 通过数值非线性优化来提高解决方案的质量,从而获得局部(通常是全局)最优解。
本文描述的路径规划算法用于斯坦福大学城市挑战赛。Junior在复杂的一般路径规划任务中表现出完美的性能,例如在停车场导航和在堵塞的道路上执行U形转弯,典型的全周期重新规划时间为50- 300毫秒

2 引言和相关的工作

本文解决的路径规划问题:无人驾驶车辆在未知的环境中运行。假设机器人有足够的传感和定位能力,必须能在线重规划当一步一步建立障碍物地图时。这种情况的部分动机是DARPA城市挑战赛,其中车辆必须自由地在停车场导航。下面描述的路径规划算法被斯坦福大学赛车队的机器人Junior in the Urban Challenge(DARPA 2007)使用。Junior(图1)在复杂的一般路径规划任务中表现出了完美的性能,其中许多任务涉及倒车,例如在停车场导航、执行U形转弯以及处理堵塞的道路和十字路口,在现代PC上的典型全周期重新规划时间为50- 300 ms
在这里插入图片描述
在开发一个实用的路径规划器的自由导航区的主要挑战之一来自于这样的事实,即所有机器人控制的空间是连续的 - 因此轨迹导致一个复杂的连续变量优化景观。

许多关于搜索算法的先前工作:路径规划(Ersson和Hu 2001; Koenig和Likhachev 2002; Ferguson和Stentz 2005; Nash等2007)产生离散状态空间的快速算法,但是这些算法往往产生非光滑的路径,并且通常不满足飞行器的非完整约束。保证运动学可行性的替代方法是连续坐标中的前向搜索,例如,使用快速探索随机树(RRT)(Kavraki et al. 1996; LaValle 1998; Plaku,Kavraki,and Vardi 2007)。使这种连续搜索算法在在线实现中实用的关键在于有效的引导启发式。另一种方法是将路径规划问题直接公式化为控制或参数化曲线空间中的非线性优化问题(Cremean et al. 2006),但在实践中,由于局部最小值,保证此类程序的快速收敛是困难的。

本文的算法建立在上述现有工作的基础上,包括两个主要阶段。
使用连续坐标中的启发式搜索,以保证计算轨迹的运动学可行性。虽然缺乏理论上的最优性保证,但在实践中,这第一步通常产生位于全局最优值附近的轨迹。
使用共轭梯度(CG)下降来提高局部解的质量,产生至少局部最优的路径,但通常也达到全局最优。

另一个实际的挑战是设计一个成本函数的路径,产生所需的驾驶行为。困难源于这样一个事实:即我们希望获得长度接近最优的路径,但同时是平滑的,并与障碍物保持合适的距离。一种常用的惩罚接近障碍物的方法是使用势场(Andrews and Hogan 1983; Khatib 1986;Pavlov and Voronin 1984; Miyazaki and Arimoto 1985)。然而,正如许多研究人员所观察到的那样(Tilove1990; Koren and Borenstein 1991),势场的缺点之一是,它们在狭窄的通道中产生高电势区域,从而使得这些通道实际上不可通过。为了解决这个问题,本文引入了基于几何的工作空间重新缩放的设想,允许在狭窄的通道中精确导航,同时有效地将机器人推离障碍物到更宽更开放的区域。

3 混合状态A* 搜索

本文方法第一阶段使用了一个著名的A* 算法的变体应用到三维运动状态空间的车辆,但是这是修改后的状态更新规则,捕捉连续状态数据的离散搜索节点的A*。正如在传统A* 中一样,搜索空间 ( x , y , θ ) (x,y,θ) (x,y,θ)是离散化的,但与传统A* 不同的是,传统A* 只允许访问单元的中心,我们的混合状态A* 与每个网格单元相关联,车辆的连续3D状态,如图2所示。
在这里插入图片描述
如上所述,混合状态A* 不能保证找到最小成本解决方案,因为它合并了在离散空间中占据相同单元的连续坐标状态。然而,所得到的路径保证是可驱动的(而不是像标准A* 那样是分段线性的)。此外,在实践中,混合A * 解决方案通常位于全局最优解的邻域中,允许通过第二阶段(其使用梯度下降以局部地改进路径,如下所述)。
混合状态A* 的主要优点体现在紧凑空间中的机动中,其中离散化误差变得至关重要。算法计划向前和向后运动,并对反向驾驶以及切换运动方向进行处罚
在这里插入图片描述

图3:A* 算法。二维欧氏距离扩展了21,515个节点(a)。非完整无障碍启发法是一个重大的改进:它扩展了(b)中的1465个节点,但在更复杂的设置中可能会导致浪费地探索死胡同:(c)中的68730个节点。这一点可以通过将后者与有障碍的完整性启发法结合使用来纠正:(d)中有10588个节点。

第一种启发式:“non-holonomic-without-obstacles” - 忽略障碍,但考虑到汽车的非完整性质。为了计算它,我们假设目标状态为 ( x g , y g , θ g ) (x_g,y_g,θ_g) (xg,yg,θg)= ( 0 , 0 , 0 ) (0,0,0) (0,0,0),并计算从目标的某个离散邻域中的每个点 ( x , y , θ ) (x,y,θ) (x,y,θ)到目标的最短路径,假设完全没有障碍。然后,使用一个最大的non-holonomic-without-obstacles成本和二维欧氏距离作为我们的启发式。这种启发式的效果是,它修剪了接近目标的错误标题的搜索分支。请注意,由于此启发式算法不依赖于运行实时的传感器信息,因此可以完全离线预先计算,然后简单地进行转换和旋转以匹配当前目标。
第二种启发式:第一个启发式算法的对偶,因为它忽略了汽车的非完整性,但**使用障碍图通过在2D中执行动态规划来计算到目标的最短距离。**这种启发式搜索的好处是,它可以在2D中发现所有U形障碍物和死胡同,然后引导更昂贵的3D搜索远离这些区域。
这两种算法在A* 意义上都是数学上可接受的,因此可以使用两者中的最大值。

解析展开上述的前向搜索使用控制动作(转向)的离散化空间。这意味着搜索永远不会到达精确的连续坐标目标状态(精度取决于A* 中网格的分辨率)。为了解决这个精度问题,并进一步提高搜索速度,增加了搜索与解析扩展的基础上Reed-Shepp模型(Reeds和Shepp 1990)。在上述搜索中,树中的节点通过模拟汽车的运动学模型-使用特定的控制动作-在一小段时间内(对应于网格的分辨率)来扩展。

除了以这种方式生成的子节点之外,对于某些节点,通过计算从当前状态到目标的最佳Reed-and-Shepp路径来生成额外的子节点(假设无障碍环境)。然后检查Reed-andShepp路径是否与当前障碍物贴图发生冲突,并且仅将子节点添加到树中如果路径是无碰撞的。出于计算的原因,不希望将Reed-Shepp展开应用于每个节点(特别是远离目标的节点,其中大多数此类路径可能会穿过障碍物)。在我们的实现中,我们使用了一个简单的选择规则,其中Reed-Shepp展开应用于每N个节点中的一个,其中N作为目标成本启发式的函数而减小(随着我们接近目标,导致更频繁的分析展开)。图4显示了一个带有Reed-Shepp展开的搜索树。由节点的短增量扩展生成的搜索树显示在黄绿色范围内,Reed-Shepp扩展显示为通向目标的单条紫色线。我们发现,这种分析扩展的搜索树导致在准确性和规划时间有着显着的好处。
在这里插入图片描述

4 使用Voronoi场的路径代价函数

我们使用下面的势场,我们称之为Voronoi场,来定义路径长度和障碍物接近度之间的权衡。Voronoi域定义如下:
在这里插入图片描述
其中 d 0 d_0 d0 d V d_V dV是到最近障碍物和广义Voronoi图(GVD)的边缘的距离, α > 0 α > 0 α>0 d O > 0 d_O>0 dO>0控制场的衰减速率最大有效范围的常数。在(1)式中, d O ≤ d O m a x d_O≤d_O^{max} dOdOmax,否则 p V ( x , y ) = 0 p_V(x,y)=0 pV(x,y)=0

这个势有以下性质:i)当 d O ≥ d O m a x d_O ≥ d_O^{max} dOdOmax时它为零; ii) ρ V ( x , y ) ∈ [ 0 , 1 ] ρ_V(x,y)∈ [0,1] ρV(xy)[01]并且在 ( x , y ) (x,y) (x,y)上连续,因为我们不能同时使 d O = d V = 0 d_O = d_V = 0 dO=dV=0; iii)它只在障碍物内达到最大值。iv)它仅在GVD的边缘上达到其最小值。

Voronoi场相对于传统势场的主要优点是,场值与导航的总可用间隙成比例。因此,即使是狭窄的开口仍然可以航行,而标准势场并不总是如此。图5说明了这个属性。图5a显示了Voronoi场的二维投影,图5b给出了相应的广义Voronoi图。请注意,相互靠近的障碍物之间的狭窄通道不会被电势阻挡,它们之间总是有一条连续的 ρ V = 0 ρ_V = 0 ρV=0路径。与图5c所示的自然势场 ρ ( x , y ) = α ( α + d O ( x , y ) ) − 1 ρ(x,y)= α(α+d_O(x,y))−1 ρ(x,y)=α(α+dO(x,y))1相比,它在窄通道障碍物与障碍物之间具有高电位区。
在这里插入图片描述

图6示出了Voronoi场和用于真实的停车场的驱动轨迹。
在这里插入图片描述
应该注意到,Voronoi图和势场的使用早已在机器人运动规划的背景下提出。例如,Voronoi图可以用来推导自由空间的非线性化(Choset and Burdick 2000)。然而,导航沿着Voronoi图是不可能的非完整的汽车。
导航函数(Koditschek 1987; Rimon and Koditschek 1992)和拉普拉斯势(Connolly,Burns,and韦斯1990)也与我们的Voronoi场相似,因为它们构造的势函数没有局部极小值,可以进行全局导航。我们不使用Voronoi Field进行全局导航。然而,我们观察到,对于具有凸障碍物的机器人,Voronoi场可以用全局吸引力势来增强,从而产生一个没有局部极小值的场,因此适合于全局导航。

5 局部优化与平滑

混合状态A* 产生的路径通常仍然是次优的,值得进一步改进。根据经验,我们发现这样的路径是可驾驶的,但可能包含不自然的转向,需要不必要的转向。因此,我们通过应用以下两阶段优化程序对混合状态A* 解进行后处理。
① 制定了一个非线性优化程序的顶点的路径,提高了解决方案的长度和光滑度的坐标。
② 使用具有更高分辨率的路径离散化的共轭梯度的另一迭代来执行非参数插值。

给定一个顶点序列 X i = ( x i , y i ) , i ∈ [ 1 , N ] X_i =(x_i,y_i),i ∈ [1,N] Xi=(xi,yi),i[1N],我们定义几个量: o i o_i oi,最接近顶点的障碍物的位置; △ x i = x i − x i − 1 \bigtriangleup x_i = x_i − x_{i−1} xi=xixi1,顶点处的位移向量; △ φ i = ∣ t a n − 1 △ y i + 1 △ x i + 1 − t a n − 1 △ y i △ x i ∣ \bigtriangleupφ_i =| tan^{−1}\frac{\bigtriangleup y_i+1} {\bigtriangleup x_i+1} −tan^{−1}\frac{\bigtriangleup y_i} {\bigtriangleup x_i}| φi=tan1xi+1yi+1tan1xiyi,顶点处的切向角的变化。
目标函数:
在这里插入图片描述
其中 ρ V ρ_V ρV是Voronoi场; κ m a x κ_{max} κmax是路径的最大允许曲率(由汽车的转弯半径定义), σ o σ_o σo σ κ σ_κ σκ是惩罚函数(根据经验,我们发现简单的二次惩罚效果很好); w ρ w_ρ wρ w o w_o wo w κ w_κ wκ w s w_s ws是权重。
成本函数的第一项有效地引导机器人远离狭窄和宽阔通道中的障碍物。第二项惩罚与障碍物的碰撞。第三项上限的瞬时曲率的轨迹在每个节点和强制执行的非完整约束的车辆。第四项是衡量道路的平滑度。

以如下所述的直接方式计算上述成本函数的梯度。对于Voronoi场项,当 d 0 ≤ d 0 m a x d_0 ≤ d^{max}_ 0 d0d0max时有:
在这里插入图片描述
其中 v i v_i vi是广义Voronoi图(GVD)的边缘上最接近顶点 i i i的点的坐标的2D向量。我们通过维护所有障碍点和GVD边缘点的kd树并在每次共轭梯度迭代时更新顶点的最近邻居来计算最近障碍 o i oi oi和最近GVD边缘点 v i v_i vi
对于具有二次 σ 0 σ_0 σ0的碰撞惩罚,如果 ∣ X i − o i ∣ ≤ d m a x |Xi − oi| ≤ dmax Xioidmax
在这里插入图片描述
对于顶点 i i i处的最大曲率项,我们必须对影响点 i i i处曲率的三个点求导数: i − 1 i − 1 i1 i i i i + 1 i + 1 i+1。对于该计算,节点 i i i处的切向角的变化最好表示为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引入以下归一化正交补:
在这里插入图片描述
图7显示了第二次优化和平滑步骤的效果:红线是A* 解决方案,蓝线是CG优化获得的路径。
在这里插入图片描述
使用上面描述的CG平滑,我们获得了比A* 解决方案更平滑的路径但它仍然是分段线性的,顶点之间的距离很大(在我们的实现中大约为0.5m-1 m)。这可能导致物理车辆上的非常突然的转向。因此,我们使用CG解决方案的顶点之间的插值来进一步平滑路径。许多参数内插技术对输入中的噪声非常敏感并且加剧输出中的任何这样的噪声(例如,当输入顶点彼此靠近时,三次样条可能导致输出中任意大的振荡)。
因此,我们使用非参数插值,其中我们通过添加新顶点来对路径进行超采样,并使用CG来最小化路径的曲率,同时保持原始顶点固定。图8b中示出了对图8a中的路径进行插值的结果。
在这里插入图片描述

6 Results

图9描绘了Junior在DARPA城市挑战赛中的几个轨迹。图9a至图9c示出了在阻塞道路上的U形转弯,图9c示出了涉及在停车场中导航的任务。
在这里插入图片描述
图10显示了在模拟中计算的更复杂的迷宫状环境的解决方案。在http://ai.stanford.edu/ ddolgov/gpp maze.avi上有一段视频,显示了机器人在逐步检测障碍物并构建图10场景中的障碍物地图时的重新规划。
在这里插入图片描述
规划器使用了以下参数:障碍物地图尺寸为160 m × 160 m,分辨率为0.15 cm; A* 使用尺寸为160 m × 160 m ×360 m的网格,x-y分辨率为0.5 m,航向θ分辨率为5 m。涉及混合A* 搜索、CG平滑和插值的完整重新规划周期的典型运行时间为50- 300 ms的量级。

在这里插入图片描述


到这结束,基本上是对混合A*有了基本的理解了。不正之处,望读者积极指正。

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

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

相关文章

计算机毕业设计 | SSM 凌云招聘平台(附源码)

1,绪论 人力资源是企业产生效益、创造利润的必不可少的、最重要的资源。人作为人力资源的个体可看作是一个承载着有效知识、能力的信息单元。这样的信息单元可看作是一个为企业产生价值和利润的个体。从而使得这样的信息单元所具有的信息就是一个有价值的信息。 校…

day34WEB 攻防-通用漏洞文件上传黑白盒审计逻辑中间件外部引用

目录 一,白盒审计-Finecms-代码常规-处理逻辑 黑盒思路:寻找上传点抓包修改突破获取状态码及地址 审计流程:功能点-代码文件-代码块-抓包调试-验证测试 二,白盒审计-CuppaCms-中间件-.htaccess 三,白盒审计-Metin…

银行数据仓库体系实践(11)--数据仓库开发管理系统及开发流程

数据仓库管理着整个银行或公司的数据,数据结构复杂,数据量庞大,任何一个数据字段的变化或错误都会引起数据错误,影响数据应用,同时业务的发展也带来系统不断升级,数据需求的不断增加,数据仓库需…

adb测试冷启动和热启动 Permission Denial解决

先清理日志 adb shell logcat -c 打开手机模拟器中的去哪儿网,然后日志找到包名和MainActivity adb shell logcat |grep Main com.Qunar/com.mqunar.atom.alexhome.ui.activity.MainActivity 把手机模拟器的去哪儿的进程给杀掉 执行 命令 adb shell am start -W…

专业133总分400+上海交通大学819考研经验分享上交819电子信息与通信工程

今年专业819信号系统与信号处理133,总分400,如愿考上梦中上海交通大学,通过自己将近一年的复习,实现了人生中目前为止最大的逆袭(自己本科学校很普通),总结自己的复习经历,希望可以给…

苹果Arcade会员的交易开通

arcade是苹果的游戏订阅服务,会员可以畅玩200多个苹果商店精品游戏,包括美区apple id绑卡apple tv购买内购游戏apple one、A2K、狂野飙8,同时ChatGPT也可以,并且这些游戏没有广告没有内购项目,可以在线玩也可以离线玩&…

华为云WAF,开启web网站的专属反爬虫防护罩

背景 从保护原创说起 作为一个原创技术文章分享博主,日常除了Codeing就是总结Codeing中的技术经验。 之前并没有对文章原创性的保护意识,直到在某个非入驻的平台看到了我的文章,才意识到,辛苦码字、为灵感反复试验创作出来的文…

JavaScript模块系统入门教程

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ 目录 ✨ 前言 ✨ 正文 一、模块 (Module) 简介 什么是模块 导出与导入 默…

QGIS编译(跨平台编译)之二十四:libbz2编译(Windows、Linux、MacOS环境下编译)

文章目录 1、libbz2介绍2、文件下载3、Linux下编译4、MacOS下编译5、Windows下编译1、libbz2介绍 bzip2是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。它是一款免费软件。可以自由分发免费使用。 bzip2能够进行高质量的数据压缩。…

【代码随想录15】110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和

目录 110. 平衡二叉树题目描述参考代码 257. 二叉树的所有路径题目描述参考代码 404.左叶子之和题目描述参考代码 110. 平衡二叉树 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树…

AI数字人-数字人视频创作数字人直播效果媲美真人

在科技的不断革新下,数字人技术正日益融入到人们的生活中。近年来,随着AI技术的进一步发展,数字人视频创作领域出现了一种新的创新方式——AI数字人。数字人视频通过AI算法生成虚拟主播,其外貌、动作、语音等方面可与真实人类媲美…

huggingface高速下载模型的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Neo4j 国内镜像下载与安装

Neo4j 5.x 简体中文版指南 社区版:https://neo4j.com/download-center/#community 链接地址(Linux版):https://neo4j.com/artifact.php?nameneo4j-community-3.5.13-unix.tar.gz 链接地址(Windows)&#x…

蓝桥杯省赛无忧 编程13 肖恩的投球游戏

#include <iostream> #include <vector> using namespace std; int main() {int n, q;cin >> n >> q;vector<int> a(n 1);vector<int> diff(n 2, 0); // 初始化差分数组// 读取初始球数&#xff0c;构建差分数组for (int i 1; i < …

Go 从标准输入读取数据

fmt.Scan系列 fmt.Scan函数定义如下&#xff1a; // Scan scans text read from standard input, storing successive space-separated values into successive arguments. // Newlines count as space. // It returns the number of items successfully scanned. // If tha…

DS:单链表的实现(超详细!!)

创作不易&#xff0c;友友们点个三连吧&#xff01; 在博主的上一篇文章中&#xff0c;很详细地介绍了顺序表实现的过程以及如何去书写代码&#xff0c;如果没看过的友友们建议先去看看哦&#xff01; DS&#xff1a;顺序表的实现&#xff08;超详细&#xff01;&#xff01;&…

JAVA大学生兼职平台后台管理

运行环境&#xff1a; tomcat7.0jdk1.7或以上 eclipse或idea 使用技术&#xff1a; springboot 功能描述&#xff1a; 求职人员 注册&#xff0c;登录 选定登录角色&#xff08;1、兼职人员2、发布兼职招聘人员&#xff09; 书写简历&#xff0c;上传学生证照片&#…

力扣每日一题 ---- 1039. 多边形三角剖分的最低得分

这题的难点在哪部分呢&#xff0c;其实是怎么思考。这道题如果之前没做过类似的话&#xff0c;还是很难看出一些性质的&#xff0c;这题原本的话是没有图片把用例显示的这么详细的。这题中有个很隐晦的点没有说出来 剖出来的三角形是否有交叉&#xff0c;这题中如果加一个三角…

网络防御——NET实验

一、实验拓扑 二、实验要求 1、生产区在工作时间&#xff08;9&#xff1a;00---18&#xff1a;00&#xff09;内可以访问服务区&#xff0c;仅可以访问http服务器&#xff1b; 2、办公区全天可以访问服务器区&#xff0c;其中&#xff0c;10.0.2.20可以访问FTP服务器和HTTP服…

水文模型SWMM与LisFlood耦合(pdf文档、软件见资源)

总技术路线图 INP生成图解 文献&#xff1a;面向服务的Web-SWMM构建研究 regardingINP为ArcGIS Pro项目 1.SWMM模型数据准备与参数设置 1.子汇水区 文件位于&#xff1a;beforeGenerateINP/generateSub.py&#xff08;一级划分&#xff09; 问题&#xff1a; 水文分析阈值划…