一种动态场景下的跳点搜索路径规划方法技术

技术编号:33662206 阅读:30 留言:0更新日期:2022-06-02 20:43
为解决快速变化的动态复杂场景下基于搜索的寻路算法中存在的算法效率低,路径局部最优等问题。在跳点搜索(jump point search,JPS)算法基础上,提出动态场景下的跳点搜索(dynamic jump point search,DJPS)路径规划方法。DJPS算法应对不同场景下的障碍物变化,设计一套完整的“跳点

【技术实现步骤摘要】
一种动态场景下的跳点搜索路径规划方法


[0001]本专利技术涉及人工智能与无人系统领域,具体涉及自动驾驶路径规划
,尤其涉及一种动态场景下的跳点搜索路径规划方法。

技术介绍

[0002]在无人系统领域无人车的自动驾驶中,路径规划是关键的技术之一,针对这一技术,截止至今已经开展了大量的研究工作。无人车路径规划可以分为静态路径规划和动态路径规划。其中A*算法、Dijkstra算法等目前主要应用于已知的静态场景中,而人工势场法、D*算法等则大多应用于环境未知动态场景中。其中跳点搜索(JumpPointSearch,JPS)是对A*搜索算法的优化,通过剪枝规则,打破栅格的对称性,减少无效节点的访问,保留关键“跳点”,能让搜索在栅格上直线长“跳跃”,具有较好的路径寻优性能。但是,跳点搜索算法依然只能处理静态路径规划问题。对于复杂化且实时更新的动态栅格地图,若仍想利用在静态场景下效率更高的跳点搜索算法进行寻路工作,则需反复不停的调用静态的跳点搜索算法,会在节点搜索和跳点识别阶段会消耗大量时间,且每次寻路后的计算结果不会被保存,在下一次刷新地图后仍需重新进行起点到终点的探索,所耗时间过长,无法处理无人车的动态避障问题,需做大量优化处理。
[0003]针对上述问题,文献《面向未知环境的机器人动态路径规划算法研究》提出面对动态地图的跳点搜索算法,存在如下问题:
[0004](1)该文章中,仅将障碍物可能出现的情况分为“直线型障碍物”以及“凹形障碍物”,并以此设计出两种应对策略,策略分别为“指定动态跳点策略”和“重搜索策略”。但实际的复杂场景中,障碍物的变化情况复杂多样,无法仅用这两种“障碍物模型”来穷举组合出所有更新障碍物对已得路径造成的影响,这无疑是简化了动态地图中各种复杂的障碍物变化情况;并且,在原始的静态场景下,跳点搜索算法便已经可解决一切基于栅格点的避障寻路问题,应对动态场景时,无需再根据自己所设定的“障碍物模型”重新设计一套寻路方案,只需沿用原算法中的跳点搜索逻辑,做距离更短的JPS寻路即可。
[0005](2)该文章中提到的“指定动态跳点策略”将其分为了“双临近非斜向”,“单临近斜向”以及“运动堵塞”三种情况。其提到的前两种情况,只是原始 JPS探索的其中部分过程:将当前节点相邻处的非障碍物节点加入到邻居节点中,以邻居节点所在方向,扫描直线段上的跳点位置,并将搜索到的跳点加入到OpenList中,全部搜索完毕以后,在OpenList选择估计代价值最小的跳点,加入Closelist中,并以当前节点继续向目标点发起下一步迭代寻路搜索。该文章中所提方案仅为当前所述JPS算法部分步骤的简化,并且无法应对可能出现的所有情况,只能解决这种“直线型障碍物”出现在原始路径中的情况。
[0006](3)针对该文章中所述的第三种“运动阻塞”情况,该文章所述方案中,在探索到“直线型障碍物”阻塞了前方路径,就退出运算并放弃寻路。但实际的场景中,到达目标点的路径可能不止一条。同时跳点搜索算法为全局寻路算法,不应仅因为扫描到机器人前方出现局部阻断路径的“直线型障碍物”,便放弃全局寻路探索;
[0007](4)该文章中提出的“重搜索策略”,会以当前机器人的运动位置,向终点处重新进行JPS探索,这代表完全放弃了上次寻路探索中所得路径,重新进行了大量无用节点的扫描,大幅度降低了算法面对复杂场景时的运算效率;
[0008](5)该文章提出的障碍物检测策略,是根据机器人所在位置处判断是否在路径中出现了新的障碍物。只有当机器人前方检测到了障碍物时,才调用对应处理逻辑修正运动路径。此种障碍物检测方法的弊端在于,该方法只能对距离机器人位置很近处的障碍物进行检测。如果在接下来的机器人要走的路径中,后端路径发生大幅度变动,导致本应重新修正机器人移动路线时,却未能及时做出决策,这便会导致机器人不停的在走“冤枉路”,不停的陷入“局部最优”。并且这种探测方式,未利用到栅格法探测时可以快速探测大量节点的优势,探测节点仅限于机器人位置附近。运行效率同样不及人工势场法,无法处理快速复杂场景下的动态地图变化。

技术实现思路

[0009]本专利技术提供一种动态场景下的跳点搜索路径规划方法,考虑到地图的实时更新,针对不同障碍物更新情况,设计一套完整的跳点与路径的更新规则。首先检测跳点是否被更新为障碍物,如果检测到障碍物变化,调用“跳点

障碍物处理函数”,接着检测直线段路径是否更新出障碍物,如果检测到障碍物出现,则调用“直线路径

障碍物处理函数”,最后检测是否由于障碍物的更新出现了新的“近路”,同时对于路径进行优化处理。设计改进的动态跳点搜索算法实现了动态场景下的快速寻路。在检测障碍物变化的时候,不需要再进行全地图的地形变化探索,只对路径段及其附近节点的地形变化进行检索,减少了无效探索时间。同时,利用原算法中未寻路结束的“最优的废弃路径”,限制探索寻路的长度,保证路径的最优性,降低了算法的时间复杂度和空间复杂度。
[0010]为达到上述目的,本专利技术提供一种动态场景下的跳点搜索路径规划方法,包括以下步骤:
[0011]S1、采用栅格法将地图划分区域,扫描障碍物所在位置,将对应栅格标记为不可行走区域;
[0012]S2、运行静态JPS算法,完成初次寻路探索;
[0013]S3、重新扫描地图中障碍物位置变化,更新对应栅格中的障碍物位置信息;
[0014]S4、调用动态JPS算法,对更新后的地图进行路径更新,扫描在原始路径上的障碍物变化,判断是否在原始路径上出现新的障碍物,以及扫描路径附近的邻接点,判断是否出现了新的“近路”并实现路径优化过程。
[0015]所述的S2中,使用跳点搜索算法进行初次寻路工作:
[0016]将每个节点的对应邻居节点所在方向处的邻居节点加入邻居数组中,分为斜向,横向和纵向三种情况进行讨论,依据邻居节点识别规则,裁剪掉冗余的邻居节点;
[0017]依据跳点搜索算法的路径探索规则,循环处理所有邻居节点。同时依据剪枝规则,去掉冗余的对称节点,确定强制邻节点和跳点。沿每个邻居节点方向上探索有没有跳点存在,如果是横向或纵向探索,则沿原路径递归调用此函数迭代搜索;如果是斜向探索,则先进行横向或纵向的迭代探索,在每个节点的横纵两个方向都探索完毕以后,再沿着斜向继续迭代探索下一个节点;
[0018]剪枝规则:
[0019]在栅格地图上进行探索分为水平方向,竖直方向和斜向,对于水平和竖直方向,裁剪掉所有符合以下条件的节点n:
[0020]len(<p(a),

,n>\a)≤len(<p(a),a,n>)
[0021]其中:len(<p(a),

,n>\a)为p(a)节点不经过a节点到达n节点的最短路径, len(<p(a),a,n>)为p(a)节点经过a节点到达n节点的最短路径,a表示a节点,n表示n节点,p(a)表示节点a的父节点;
[0022]对于斜向,裁剪掉所有符合以下条件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态场景下的跳点搜索路径规划方法,其特征在于,包括以下步骤:S1、采用栅格法将地图划分区域,扫描障碍物所在位置,将对应栅格标记为不可行走区域;S2、运行静态JPS算法,完成初次寻路探索;S3、重新扫描地图中障碍物位置变化,更新对应栅格中的障碍物位置信息;S4、调用动态JPS算法,对更新后的地图进行路径更新,扫描在原始路径上的障碍物变化,判断是否在原始路径上出现新的障碍物,以及扫描路径附近的邻接点,判断是否出现了新的“近路”并实现路径优化过程;具体S4包括以下步骤:S41、从终点开始对PathList中所有跳点进行循环探测,判断当前跳点是否更新为障碍物,如果检测到其被更新为障碍物,则调用“跳点

障碍物”处理函数对当前节点进行处理,循环检测直到检测完起点为止;“跳点

障碍物”处理函数:(1)沿当前节点到其子节点方向,对于两者之间的中间节点依次发起探索,搜索不为障碍物的节点,将被探索到的首个不为障碍物的节点,更新为跳点,并标记名为“新起点”,将当前节点的父节点的子节点更换为被探索的节点;(2)沿当前节点到其子节点方向,对于两者之间的中间节点依次发起探索,搜索不为障碍物的节点,将被探索到的首个不为障碍物的节点处,更新为跳点,并标记名为“新终点”,将当前节点的子节点的父节点更换为被探索的节点;(3)以“新起点”为起点,向“新终点”发起探索,进行单层循环的限制长度的JPS探索;(4)依次遍历在首次JPS寻路时得到的OpenList中的节点,找到OpenList中代价值f(n)最小的节点,其父节点必然已存于CloseList,并且沿着父节点方向进行探索,必然能搜索到首次寻路时的起点,而将其连起来所得路径,即为除了得到的最优路径以外,首次探索时没有完成寻路工作的最优的“废弃路径”;(5)令当前OpenList中的节点,递归调用步骤S41至S42中的程序,以检验“最优的废弃路径中”有无障碍物更新的情况,如果检测到了障碍物更新,则会优先处理“最优的废弃路径”中的路径更新;如果未检测到障碍物更新,则跳转至步骤(6);(6)比较步骤(3)中选中的New_OpenList中的跳点的代价值f(n),以及步骤(4)中选中的OpenList中的跳点中的代价值f(n),选择代价值更小的一方,继续执行下一轮的“单层循环的限制长度的JPS探索”,循环执行步骤(3)至(6),每次都选择代价值更小的一方来执行下一轮的“单层循环的限制长度的JPS探索”,直到一方先找到终点为止;如果New_OpenList中的跳点先找到“新终点”,则跳转至步骤(7);如果OpenList中的跳点先找到终点,则跳转至步骤(8);如果New_OpenList中的跳点先一步搜索完毕...

【专利技术属性】
技术研发人员:栾添添尹昭然孙明晓胡占永王万鹏甄立强王楠张景睿
申请(专利权)人:哈尔滨理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1