掌桥专利:专业的专利平台
掌桥专利
首页

基于双向动态跳点搜索的路径规划方法、装置及介质

文献发布时间:2024-04-18 20:00:50


基于双向动态跳点搜索的路径规划方法、装置及介质

技术领域

本申请涉及路径规划技术领域,尤其涉及一种基于双向动态跳点搜索的路径规划方法、装置及介质。

背景技术

在自动驾驶和机器人导航领域,路径规划是其关键技术之一。路径规划问题是一个NP-hard问题,路径规划被定义为:根据已知环境信息,利用优化算法计算出一条无碰撞路径,该路径连接起始点和目标点,满足时间最少或路径最短等指标。目前常用的路径规划算法有A-Star算法、蚁群算法、快速搜索随机树算法等。A-Star算法作为全局最优算法在自动驾驶和机器人导航领域应用广泛,但是传统A-Star算法复杂度高、搜索效率低。

针对A-Star算法的缺点,Daniel Harabor等提出了跳点搜索(Jump PointSearch,JPS)算法,保留了A-Star算法的框架,优化了A-Star算法寻找后继节点的操作,提高了搜索效率。但是,当地图环境较大时,JPS算法总是会在搜索跳点时耗时;其次在某些特殊环境,比如当起始点附近障碍物密度较低而目标点处于稠密障碍物环境时,JPS算法会优先搜索周围的平坦区域,再向目标点方向寻找跳点,此时JPS算法的效率甚至低于A-Star算法。

因此,亟需一种用于路径规划的跳点搜索方法,来缩短路径规划过程中的节点搜索时间,提高效率。

发明内容

本申请提供一种基于双向动态跳点搜索的路径规划方法、装置及介质,用以提高路径搜索效率。

一方面,本申请提供一种基于双向动态跳点搜索的路径规划方法,所述方法包括:

对环境地图进行栅格化处理,得到栅格地图;所述栅格地图中,用于表示自由行走空间的栅格为第一值,用于表示障碍物的栅格为第二值;

在所述栅格地图中,基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索,得到规划路径;所述预设代价函数与所述初始点到所述当前节点的距离代价值、所述当前节点到所述目标点间的预估距离值、障碍物密度、转弯代价正相关。

在另一种可能实现的方式中,所述预设代价函数为f(s,g),f(s,g)=αG(s,n)+βH(n,g),其中,s为所述初始点,g为所述目标点,n为所述当前节点,α、β是权重系数,0<α<1,0<β<1,α+β=1,G(s,n)为从所述初始点到所述当前节点实际走过的距离代价值,H(n,g)为从所述当前节点到所述目标点之间的预估代价值,H(n,g)=d

在另一种可能实现的方式中,所述基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索之前,所述方法还包括:

创建第一开列表和第二开列表,并初始化所述第一开列表和所述第二闭列表,使所述第一开列表用于存放正向搜索的起始点、所述第二开列表用于存放反向搜索的起始点。

在另一种可能实现的方式中,所述基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索,包括:

在所述第一开列表不为空时,从所述第一开列表中取出预估代价值最低的当前节点,并以所述当前节点开始进行预设扩展搜索;所述预估代价值是基于所述预设代价函数计算的;

在完成所述预设扩展搜索时,将所述当前节点从所述第一开列表中取出,并加入第一闭列表,所述第一闭列表用于存放完成所述预设扩展搜索的当前节点;

取出所述第一开列表中所述预估代价值最低的更新节点,并判断所述更新节点是否是所述目标点;

若是,则搜索结束,否则,判断反向搜索的最佳路径上是否存在所述更新节点,若存在,则将所述更新节点加入所述第一开列表中。

在另一种可能实现的方式中,所述基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索,包括:

在所述第二开列表不为空时,从所述第二开列表中取出预估代价值最低的当前节点,并以所述当前节点开始进行预设扩展搜索;所述预估代价值是基于所述预设代价函数计算的;

在完成所述预设扩展搜索时,将所述当前节点从所述第二开列表中取出,并加入第二闭列表,所述第二闭列表用于存放完成所述预设扩展搜索的当前节点;

取出所述第二开列表中所述预估代价值最低的更新节点,并判断所述更新节点是否是所述目标点;

若是,则搜索结束,否则,判断正向搜索的最佳路径上是否存在所述更新节点,若存在,则将所述更新节点加入所述第二开列表中。

在另一种可能实现的方式中,所述以所述当前节点开始进行预设扩展搜索,包括:

在直线方向展开搜索,当水平方向或竖直方向遇到障碍物或边界时,在对角线方向展开搜索;

在搜索到的跳点不在开列表时,将所述跳点加入所述开列表中,并计算所述跳点的预估代价值,确定所述当前节点为所述跳点的父节点;所述开列表为所述第一开列表或所述第二开列表;

在搜索到的跳点在所述开列表时,则更新所述跳点的预估代价值,并确定所述当前节点为所述跳点的父节点。

在另一种可能实现的方式中,所述基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索,得到规划路径,包括:

当所述正向搜索和所述反向搜索同时以同一节点为目标点,或者所述正向搜索中的当前节点与所述方向搜索中的当前节点为同一节点时,基于所述第一闭列表和所述第二闭列表,得到所述规划路径。

第二方面,本申请提供一种基于双向动态跳点搜索的路径规划装置,包括:

处理模块,用于对环境地图进行栅格化处理,得到栅格地图;所述栅格地图中,用于表示自由行走空间的栅格为第一值,用于表示障碍物的栅格为第二值;

搜索模块,用于在所述栅格地图中,基于预设代价函数对从初始点到目标点和从所述目标点到所述初始点两个方向进行预设扩展搜索,得到规划路径;所述预设代价函数与所述初始点到所述当前节点的距离代价值、所述当前节点到所述目标点间的预估距离值、障碍物密度、转弯代价正相关。

在另一种可能实现的方式中,所述预设代价函数为f(s,g),f(s,g)=αG(s,n)+βH(n,g),其中,s为所述初始点,g为所述目标点,n为所述当前节点,α、β是权重系数,0<α<1,0<β<1,α+β=1,G(s,n)为从所述初始点到所述当前节点实际走过的距离代价值,H(n,g)为从所述当前节点到所述目标点之间的预估代价值,H(n,g)=d

在另一种可能实现的方式中,所述搜索模块还用于:

创建第一开列表和第二开列表,并初始化所述第一开列表和所述第二闭列表,使所述第一开列表用于存放正向搜索的起始点、所述第二开列表用于存放反向搜索的起始点。

在另一种可能实现的方式中,所述搜索模块具体用于:

在所述第一开列表不为空时,从所述第一开列表中取出预估代价值最低的当前节点,并以所述当前节点开始进行预设扩展搜索;所述预估代价值是基于所述预设代价函数计算的;

在完成所述预设扩展搜索时,将所述当前节点从所述第一开列表中取出,并加入第一闭列表,所述第一闭列表用于存放完成所述预设扩展搜索的当前节点;

取出所述第一开列表中所述预估代价值最低的更新节点,并判断所述更新节点是否是所述目标点;

若是,则搜索结束,否则,判断反向搜索的最佳路径上是否存在所述更新节点,若存在,则将所述更新节点加入所述第一开列表中。

在另一种可能实现的方式中,所述搜索模块具体用于:

在所述第二开列表不为空时,从所述第二开列表中取出预估代价值最低的当前节点,并以所述当前节点开始进行预设扩展搜索;所述预估代价值是基于所述预设代价函数计算的;

在完成所述预设扩展搜索时,将所述当前节点从所述第二开列表中取出,并加入第二闭列表,所述第二闭列表用于存放完成所述预设扩展搜索的当前节点;

取出所述第二开列表中所述预估代价值最低的更新节点,并判断所述更新节点是否是所述目标点;

若是,则搜索结束,否则,判断正向搜索的最佳路径上是否存在所述更新节点,若存在,则将所述更新节点加入所述第二开列表中。

在另一种可能实现的方式中,所述搜索模块具体用于:

在直线方向展开搜索,当水平方向或竖直方向遇到障碍物或边界时,在对角线方向展开搜索;

在搜索到的跳点不在开列表时,将所述跳点加入所述开列表中,并计算所述跳点的预估代价值,确定所述当前节点为所述跳点的父节点;所述开列表为所述第一开列表或所述第二开列表;

在搜索到的跳点在所述开列表时,则更新所述跳点的预估代价值,并确定所述当前节点为所述跳点的父节点。

在另一种可能实现的方式中,所述搜索模块具体用于:

当所述正向搜索和所述反向搜索同时以同一节点为目标点,或者所述正向搜索中的当前节点与所述方向搜索中的当前节点为同一节点时,基于所述第一闭列表和所述第二闭列表,得到所述规划路径。

第三方面,本申请提供一种电子设备,包括处理器以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上第一方面任一项所述的方法。

本申请提供一种基于双向动态跳点搜索的路径规划方法、装置及介质,其中,本申请的方法中,将环境地图、初始点、目标点输入至电子设备后,电子设备首先对环境地图进行栅格化处理,得到环境地图对应的栅格地图。然后,基于引入了障碍物密度和转弯代价的预设代价函数,对从初始点到目标点和从目标点到初始点两个方向进行预设扩展搜素,最终得到规划路径。本申请提出的预设代价函数,充分考虑了搜索过程中的障碍物和转弯影响,从而使得搜索过程更加准确、高效。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种基于双向动态跳点搜索的路径规划方法的应用场景示意图;

图2为本申请实施例提供的一种基于双向动态跳点搜索的路径规划方法的流程示意图一;

图3为本申请实施例提供的一种基于双向动态跳点搜索的路径规划方法的流程示意图二;

图4为本申请实施例提供的一种基于双向动态跳点搜索的路径规划装置的结构示意图;

图5为本申请实施例提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

路径规划是运动规划的主要研究内容之一。运动规划由路径规划和轨迹规划组成,连接起点位置和终点位置的序列点或曲线称之为路径,构成路径的策略称之为路径规划。在自动驾驶和机器人导航领域,路径规划是其关键技术之一。

目前常用的路径规划算法有A-Star算法、蚁群算法、快速搜索随机树算法等。A-Star算法作为全局最优算法在自动驾驶和机器人导航领域应用广泛,但是传统A-Star算法复杂度高、搜索效率低。针对A-Star算法的缺点,Daniel Harabor等提出了跳点搜索(JumpPoint Search,JPS)算法,保留了A-Star算法的框架,优化了A-Star算法寻找后继节点的操作,提高了搜索效率。

但是,当地图环境较大时,JPS算法总是会在搜索跳点时耗时;其次在某些特殊环境,比如当起始点附近障碍物密度较低而目标点处于稠密障碍物环境时,JPS算法会优先搜索周围的平坦区域,再向目标点方向寻找跳点,此时JPS算法的效率甚至低于A-Star算法。

本申请提供一种基于双向动态跳点搜索的路径规划方法、装置及介质,用于解决上述搜索效率低的问题。具体的,本申请中对搜索过程的代价函数提出改进,考虑搜索过程中障碍物密度和转弯代价,从而有利于使得搜索过程更加准确,进而有利于提升搜索效率。

图1为本申请实施例提供的一种基于双向动态跳点搜索的路径规划方法的应用场景示意图,如图1所示,本申请的方法可以应用于货物分拣机器人,在将货物起始点和货物目标点输入货物分拣机器人后,货物分拣机器人根据本申请的方法首先对货物分拣地的地图进行栅格化处理,得到栅格地图。然后在栅格地图中,基于与障碍物密度和转弯代价正相关的预设代价函数,对从货物起始点到货物目标点,以及从货物目标点到货物起始点两个方向进行预设扩展搜索,以得到规划路径。

如图1所示的场景中,Robot用于表示货物分拣机器人,栅格地图(未示出栅格,在本场景中,栅格的规格为5cm×5cm)中的矩形框用于表示货物架。可以理解的是,货物起始点为货物分拣机器人的所在位置,货物目标点用图中的○标识。此外,本场景中,以六边形表示障碍物,可以理解的是,障碍物可能为其它货物分拣机器人,也可能为货物、工作人员等。在将货物起始点和货物目标点在栅格地图中的位置坐标输入货物分拣机器人后,货物分拣机器人基于预设代价函数,对从货物起始点到货物目标点,以及从货物目标点到货物起始点两个方向进行预设扩展搜索,得到如图1中虚线部分所示的最优解,将该最优解作为规划路径,并基于该规划路径进行货物分拣。

下面结合各附图,对本申请的一些实施方式做详细说明。在各实施例不冲突的情况下,下述的实施例及实施例中的特征可以相互结合。

图2为本申请实施例提供的一种变速器拨叉故障分析方法的流程示意图一,如图2所示,本实施例提供的方法包括:

S201,对环境地图进行栅格化处理,得到栅格地图。

具体的,栅格地图中,用于表示自由行走空间的栅格为第一值,用于表示障碍物的栅格为第二值。

在本实施例中,将环境地图输入电子设备中,电子设备对环境地图进行栅格化处理,以得到环境地图对应的栅格地图。可以理解的是,电子设备中预设有栅格规格,以得到相应栅格规格的栅格地图,示例性的,可以为5cm×5cm的栅格地图。

进一步的,电子设备根据环境地图配置在本实施例中,将1作为第一值,用于表示可以自由行走空间,将0作为第二值,用于表示障碍物。对于如图1所示的场景,六边形和矩形框所在栅格对应的值均为0,用于表示相应栅格中存在障碍物。在实际应用中,还可以将0作为第一值,1作为第二值,只要可以使电子设备可以区分障碍物和自由行走空间即可,本实施例中不对此进行限定。

S202,在栅格地图中,基于预设代价函数对从初始点到目标点和从目标点到初始点两个方向进行预设扩展搜索,得到规划路径。

其中,预设代价函数与初始点到当前节点的距离代价值、当前节点到目标点间的预估距离值、障碍物密度、转弯代价正相关。

在本实施例中,初始点到当前节点的距离代价值和当前节点到目标点间的预估距离值,可以通过欧氏距离、曼哈顿距离、切比雪夫距离等方式来计算,本实施例中不对此进行限定。

可以理解的是,电子设备在从起始点到目标点时,需要避开障碍物,即规划路径时,在遇到障碍物时需要绕开。因此,可以理解的是,若某一区域障碍物密度较高,则说明需要穿过该区域的代价越高。因此,本实施例中在设计启发函数时,加入障碍物密度项。同样的,若两条路径长度相同,则会优先选择转弯次数少的路径,以降低电子设备下发控制指令的次数,从而有利于提高电子设备性能以及效率。

具体的,在本实施例中,基于当前节点与目标点所组成的矩形区域内存在障碍物的栅格数量,和当前节点与目标点所组成的举行区域内存在的栅格总数量,确定障碍物密度,以将障碍物密度对于最优解的影响考虑在内。基于当前跳点的父节点和当前跳点的下一个几点之间的直线距离,以及当前节点的父节点和当前节点组成的向量与当前节点和当前节点的下一节点组成的向量间的夹角,确定转弯代价,以将转弯次数对最优解的影响考虑在内。

本实施例的方法中,将环境地图、初始点、目标点输入至电子设备后,电子设备首先对环境地图进行栅格化处理,得到环境地图对应的栅格地图。然后,电子设备基于预设代价函数,对从初始点到目标点和从目标点到初始点两个方向进行预设扩展搜素,最终得到规划路径。其中,预设代价函数除包括初始点到当前节点的距离代价值、当前节点到目标点间的预估距离值这两项外,还包括用于表示障碍物密度和转弯代价的两项,充分考虑了搜索过程中的障碍物和转弯影响,从而使得搜索过程更加准确、高效。

图3为本申请实施例提供的一种基于双向动态跳点搜索的路径规划方法的流程示意图二,具体的,本实施例在前述实施例的基础上,着重对基于预设代价函数进行搜索的过程进行详细说明。如图3所示,本实施例提供的方法包括:

S301,对环境地图进行栅格化处理,得到栅格地图。

具体的,栅格地图中,用于表示自由行走空间的栅格为第一值,用于表示障碍物的栅格为第二值。

在本实施例中,以1作为第一值,0作为第二值,分别用于表示自由行走空间的栅格,和存在障碍物的栅格。可以理解的是,一个栅格中只要存在障碍物,则该栅格的值即为0。

S302,创建第一开列表和第二开列表,并初始化第一开列表和第二闭列表,使第一开列表用于存放正向搜索的起始点、第二开列表用于存放反向搜索的起始点。

在本实施例中,创建并维护第一开列表和第二开列表,其中,第一开列表用于存储将要被搜索的节点。具体的,第一开列表中存放的是正向搜索时的起始点,第二开列表存放的是反向搜索的起始点。

在本实施例中,采用启发式搜索,通过在搜索过程中添加相关的启发式信息来加速最优解的确定。具体的,本实施例中启发式搜索的代价函数为f(s,g),为起始点与目标点之间的综合代价值,主要由两部分构成,第一部分是起始点到当前节点实际走过的距离代价值G(s,n),第二部分是当前节点到目标节点之间的预估代价值H(n,g)。

在本实施例中,f(s,g)=αG(s,n)+βH(n,g),其中,s为初始点,g为目标点,n为当前节点,α、β是权重系数,0<α<1,0<β<1,α+β=1。本实施例中,考虑在距离目标点远近不同时,G(s,n)、H(n,g)对启发函数值影响的不同,引入权重系数α、β,满足不同需求,平衡路径长度和转弯次数等因素。

具体的,H(n,g)=d

ρ

t

S303,判断第一开列表和第二开列表是否均不为空,若是,则执行S304,否则,执行S310。

S304,从第一开列表或第二开列表中取出预估代价值最低的当前节点,并以当前节点开始在直线方向展开搜索,当水平方向或竖直方向遇到障碍物或边界时,在对角线方向展开搜索。

具体的,在搜索到的跳点不在开列表时,将跳点加入开列表中,并计算跳点的预估代价值,确定当前节点为跳点的父节点;开列表为第一开列表或第二开列表;

在搜索到的跳点在开列表时,则更新跳点的预估代价值,并确定当前节点为跳点的父节点。

S305,在完成预设扩展搜索时,将当前节点从第一开列表或第二开列表中取出,并加入第一闭列表或第二开列表,第一闭列表或第二开列表用于存放完成预设扩展搜索的当前节点。

S306,取出第一开列表或第二开列表中预估代价值最低的更新节点,并判断更新节点是否是目标点;若否,则执行S307,若是,则执行S309。

S307,判断反向搜索的最佳路径上是否存在更新节点,若存在,则将更新节点加入第一开列表或第二开列表中。

S308,判断正向搜索和反向搜索同时以同一节点为目标点,或者正向搜索中的当前节点与方向搜索中的当前节点为同一节点;若是,则执行S309,否则执行S303。

S309,基于第一闭列表和第二闭列表,得到规划路径。

S310,路径寻优结束。

具体的,本实施例中的路径搜索过程如下:

①判断第一开列表和第二开列表是否为空,若为空,则搜索结束;若不为空,继续进行步骤②;

②进行从起始点到目标点的正向搜索:

1)在正向搜索的第一开列表中取出f(s,g)值最低的点,以当前节点n开始进行节点扩展搜索。

2)以当前节点n开始搜索时,优先在直线方向展开搜索,当水平方向或者竖直方向碰到障碍物或者边界时,直线方向节点搜索完成,若没有搜索到跳点,或者返回的点在第一闭列表中,则忽略;若返回的跳点不在第一开列表中,则将其加入第一开列表,并计算其f(s,g)值,当前点为该跳点的父节点;若返回的跳点在第一开列表中,则更新f(s,g)值,并判断其是否低于之间的f(s,g)值,同时修改当前点为该跳点新的父节点;

3)然后沿对角线方向前进,重复步骤2);

4)当直线方向和对角线方向均完成搜索后,将当前节点从第一开列表中取出,加入第一闭列表,通过代价函数选择代价最小的节点作为下一个扩展点;

5)取出第一开列表中f(s,g)值最低的点,判断其是否是目标点,若是,则搜索结束,若不是,则判断其是否在反向搜索的最佳路径上,若存在,则将该节点加入正向搜索的第一开列表中;

③进行从目标点向起始点的反向搜索,具体步骤同步骤(4);

④完成一轮正反向搜索后更新目标点;

⑤当正向搜索和反向搜索同时以同一节点为目标点,或者当前节点的下一个节点与相对方向上的当前节点为同一节点时,寻路过程结束,从两个方向的第一闭列表和第二闭列表中进行父节点遍历即可得到规划路径;

⑥对规划出的路径进行节点优化处理,删除冗余节点,平滑处理路径点,路径寻优结束。

本实施例中,在更新目标点时,两个方向上的节点搜索不再简单的将正反向搜索结合,独立地以固定的目标点进行节点扩展,而是以彼此为参照,动态定义启发式搜索的目标点,将对方搜索方向上当前节点的父节点作为当前搜索方向上的目标点。每一次循环结束时动态更新目标点,保证搜索跳点同时更新。

可选的,在路径生成时,取当前节点n

使用三次B样条曲线对生成的路径进行平滑处理。路径规划形成的路径点集合为{X

本实施例提供的方法中,引入双向搜索策略,考虑地图障碍物稠密程度对路径点搜索的影响,改进启发函数,动态定义启发式搜索的目标点,在同样的地图环境中,本方法只需扩展少量的节点即可完成对最优路径的搜索,提高了搜索速度,用时更少,搜索效率高。

此外,本方法规划出的路径经过平滑处理,更符合自动驾驶车辆或移动机器人的控制需求,具有较强的通用性和可扩展性。

上述实施例从方法流程的角度介绍一种基于双向动态跳点搜索的路径规划方法,下述实施例从虚拟模块或虚拟单元的角度介绍了一种基于双向动态跳点搜索的路径规划装置,具体详见下述实施例。

本申请实施例提供一种基于双向动态跳点搜索的路径规划装置,图4为本申请实施例提供的一种基于双向动态跳点搜索的路径规划装置的结构示意图,如图4所示,该装置包括处理模块41和搜索模块42,其中,

处理模块,用于对环境地图进行栅格化处理,得到栅格地图;栅格地图中,用于表示自由行走空间的栅格为第一值,用于表示障碍物的栅格为第二值;

搜索模块,用于在栅格地图中,基于预设代价函数对从初始点到目标点和从目标点到初始点两个方向进行预设扩展搜索,得到规划路径;预设代价函数与初始点到当前节点的距离代价值、当前节点到目标点间的预估距离值、障碍物密度、转弯代价正相关。

本申请实施例的另一种可能的实现方式,预设代价函数为f(s,g),f(s,g)=αG(s,n)+βH(n,g),其中,s为初始点,g为目标点,n为当前节点,α、β是权重系数,0<α<1,0<β<1,α+β=1,G(s,n)为从初始点到当前节点实际走过的距离代价值,H(n,g)为从当前节点到目标点之间的预估代价值,H(n,g)=d

本申请实施例的另一种可能实现的方式,搜索模块42还用于:

创建第一开列表和第二开列表,并初始化第一开列表和第二闭列表,使第一开列表用于存放正向搜索的起始点、第二开列表用于存放反向搜索的起始点。

本申请实施例的另一种可能的实现方式,搜索模块42具体用于:

在第一开列表不为空时,从第一开列表中取出预估代价值最低的当前节点,并以当前节点开始进行预设扩展搜索;预估代价值是基于预设代价函数计算的;

在完成预设扩展搜索时,将当前节点从第一开列表中取出,并加入第一闭列表,第一闭列表用于存放完成预设扩展搜索的当前节点;

取出第一开列表中预估代价值最低的更新节点,并判断更新节点是否是目标点;

若是,则搜索结束,否则,判断反向搜索的最佳路径上是否存在更新节点,若存在,则将更新节点加入第一开列表中。

本申请实施例的另一种可能的实现方式,搜索模块42具体用于:

在第二开列表不为空时,从第二开列表中取出预估代价值最低的当前节点,并以当前节点开始进行预设扩展搜索;预估代价值是基于预设代价函数计算的;

在完成预设扩展搜索时,将当前节点从第二开列表中取出,并加入第二闭列表,第二闭列表用于存放完成预设扩展搜索的当前节点;

取出第二开列表中预估代价值最低的更新节点,并判断更新节点是否是目标点;

若是,则搜索结束,否则,判断正向搜索的最佳路径上是否存在更新节点,若存在,则将更新节点加入第二开列表中。

本申请实施例的另一种可能的实现方式,搜索模块42具体用于:

在直线方向展开搜索,当水平方向或竖直方向遇到障碍物或边界时,在对角线方向展开搜索;

在搜索到的跳点不在开列表时,将跳点加入开列表中,并计算跳点的预估代价值,确定当前节点为跳点的父节点;开列表为第一开列表或第二开列表;

在搜索到的跳点在开列表时,则更新跳点的预估代价值,并确定当前节点为跳点的父节点。

本申请实施例的另一种可能的实现方式,搜索模块42具体用于:

当正向搜索和反向搜索同时以同一节点为目标点,或者正向搜索中的当前节点与方向搜索中的当前节点为同一节点时,基于第一闭列表和第二闭列表,得到规划路径。

本申请实施例提供的一种基于双向动态跳点搜索的路径规划装置,适用于上述方法实施例,在此不再赘述。

本申请实施例中提供了一种电子设备,图5为本申请实施例提供的一种电子设备的结构示意图,如图5所示,图5所示的电子设备包括:处理器51和存储器52。其中,处理器51和存储器52相连,如通过总线53相连。可选地,电子设备还可以包括收发器54。需要说明的是,实际应用中收发器54不限于一个,该电子设备的结构并不构成对本申请实施例的限定。

处理器51可以是中央处理器51(Central Processing Unit,CPU),通用处理器51,数据信号处理器51(Digital Signal Processor,DSP),专用集成电路(ApplicationSpecific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器51也可以是实现计算功能的组合,例如包含一个或多个微处理器51组合,DSP和微处理器51的组合等。

总线53可包括一通路,在上述组件之间传送信息。总线53可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线53或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线53等。总线53可以分为地址总线53、数据总线53、控制总线53等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线53或一种类型的总线53。

存储器52可以是只读存储器52(Read Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器52(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器52(Electrically Erasable Programmable Read Only Memory,EEPROM)、只读光盘(CompactDisc Read Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器52用于存储执行本申请方案的应用程序代码,并由处理器51来控制执行。处理器51用于执行存储器52中存储的应用程序代码,以实现前述方法实施例所示的内容。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质,具体地,该计算机可读存储介质中存储有程序指令,程序指令用于实现上述各实施例中的方法。

本申请实施例中还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 车辆安全防护系统、车辆及方法
  • 一种公路桥梁车辆上部撞击防护系统及其防护方法
  • 应用于轨道车调车作业安全辅助防护系统的车辆定位方法
  • 公共交通车辆消防安全防护系统及其控制方法
  • 车辆碰撞安全防护方法、车辆碰撞安全防护系统和车辆
  • 车辆驾驶防护的方法、车辆驾驶防护系统及存储介质
技术分类

06120116543592