基于地图的路径规划方法、终端设备及计算机存储介质与流程

文档序号:19732020发布日期:2020-01-18 04:03阅读:185来源:国知局
基于地图的路径规划方法、终端设备及计算机存储介质与流程

本申请涉及机器人应用技术领域,特别是涉及一种基于地图的路径规划方法、终端设备及计算机存储介质。



背景技术:

路径规划是移动机器人控制领域研究的一个重要方向,它是指依据某些指标在一个障碍物环境下搜寻一条从起点到目标点的最优或近似最优无碰撞路径。

在现有的路径规划技术中,为了减少重复路径规划步骤,地图信息中的同一节点不会被重复搜索。但是,由于移动机器人的路径规划中需要考虑移动机器人的旋转与朝向问题,移动机器人可能需要在其它节点调整角度后再返回原路径,节点不会被重复搜索将会导致路径规划失败。



技术实现要素:

本申请提供了一种基于地图的路径规划方法、终端设备及计算机存储介质,主要解决的技术问题是如何将虚拟节点加入地图信息,以提高路径规划的准确性。

为解决上述技术问题,本申请提供了一种基于地图的路径规划方法,所述路径规划方法包括:

获取地图信息,所述地图信息中包括多个节点,每个节点包括自身与其它节点的连通信息和流动至其它节点的方向信息;

基于所述每个节点的方向信息,确定满足预设方向要求的待处理节点;

根据所述待处理节点的连通信息,对应所述待处理节点建立连通数量的虚拟节点,所述虚拟节点包括连通信息和方向信息;

将所述虚拟节点加入所述地图信息,基于添加所述虚拟节点的地图信息进行路径规划。

为解决上述技术问题,本申请还提供了一种终端设备,所述终端设备包括存储器以及与所述存储器耦接的处理器;

其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的路径规划方法。

为解决上述技术问题,本申请还提供了一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现如上述的路径规划方法。

与现有技术相比,本申请的有益效果是:终端设备获取地图信息,地图信息中包括多个节点,每个节点包括自身与其它节点的连通信息和流动至其它节点的方向信息;基于每个节点的方向信息,确定满足预设方向要求的待处理节点;根据待处理节点的连通信息,对应待处理节点建立连通数量的虚拟节点,虚拟节点包括连通信息和方向信息;将虚拟节点加入地图信息,基于添加虚拟节点的地图信息进行路径规划;在节点搜索中,终端设备虽然不会直接重复搜索待处理节点,但可以通过搜索虚拟节点代替搜索待处理节点的方式间接搜索待处理节点,从而提高路径规划的准确性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中:

图1是本申请提供的现有技术路径规划路径一实施例的示意图;

图2是本申请提供的路径规划方法第一实施例的流程示意图;

图3是本申请提供的路径规划方法第二实施例的流程示意图;

图4是本申请提供的路径规划方法第三实施例的流程示意图;

图5是本申请提供的终端设备一实施例的结构示意图;

图6是本申请提供的计算机存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在移动机器人的路径规划任务中,任务对移动机器人的起点朝向和终点朝向有严格要求,地图信息中的各个节点旋转属性同样可能受到限制,因此在每次搜索当前节点的相邻节点时,路径规划需要充分考虑移动机器人的运动能力和环境对移动机器人的运动约束。

在上述路径规划任务中,由于对任务的角度存在限制,可能需要在合适的节点执行移动机器人的角度调整。若原先规划的全局路径中不存在可供移动机器人调整角度的节点且路径终点对移动机器人角度的要求与当前朝向角度不同,则移动机器人必须先离开规划路径,在其它节点调整角度后再返回原路径,才能达到路径规划路径任务的要求。然而,在传统的a*算法中,地图信息中的同一节点不会被重复搜索,导致路径规划失败。

具体地,请参阅图1,图1是本申请提供的现有技术的路径规划路径一实施例的结构示意图。如图1所示,当前规划的拓扑地图一共有四个节点;其中节点0、节点1和节点2均不可旋转,节点3可旋转。当移动机器人在节点0时,头部朝向向右,终点为节点2,朝向要求向左。在传统的a*算法中,终端设备从节点0开始向右搜索,当搜索到节点2时停止。因此输出的路径为0-1-2,但是由于实际上这三个节点均不可旋转,无法调整移动机器人角度,该路径实际上无法执行。实际上可执行的路径应规划为0-1-2-3-2,移动机器人需要先移动到节点3,在节点3旋转后调整头部朝向为向左,再走到节点2,才能完成任务。但是,由于传统的a*算法无法多次搜索同一个节点,因此无法得到可执行的路径。

为解决传统的a*算法的问题,本申请提出了一种基于地图的路径规划方法,具体请参阅图2,图2是本申请提供的路径规划方法第一实施例的流程示意图。本申请的路径规划方法引入虚拟节点,通过虚拟节点,终端设备可以间接重复搜索对应的待处理节点。

本申请以移动agv(automatedguidedvehicle,自动导引运输车)为平台,在以下描述中统称为移动机器人,根据下发的任务对移动机器人进行路径规划。通过引入虚拟节点这一个概念解决传统a*算法无法重复搜索同一节点的问题。具体地,如图2所示,本实施例的路径规划方法包括以下步骤:

s101:获取地图信息,地图信息中包括多个节点,每个节点包括自身与其它节点的连通信息和流动至其它节点的方向信息。

其中,本实施例的路径规划方法应用于一种终端设备,该终端设备可以为移动机器人本身,也可以为具有无线通信功能的移动终端;具体地,移动终端可以根据移动机器人的运动能力以及地图信息规划出可执行的路径,并将该路径传输给移动机器人,以使移动机器人可以根据路径移动。

具体地,终端设备获取移动机器人所在区域的初始化地图信息,地图信息由多个节点组成,每个节点包括自身与其它节点的连通信息和流动至其它相邻节点的方向信息。进一步地,地图信息还可以包括全图拓信息,每个节点的id信息、坐标信息,障碍属性以及旋转属性等。

每个节点的连通信息由两部分信息组成,即该节点的移动机器人可以从哪些相邻节点驶入以及该节点的移动机器人能够驶向哪些相邻节点。

每个节点流动至其它节点的方向信息的计算方式可以表示为:若移动机器人可以从当前节点直接到达后续节点,则根据从当前节点到达该后续节点的角度计算在后续节点位置移动机器人的朝向角度,并以该朝向角度作为当前节点与后续节点之间的方向信息。

进一步地,若在当前节点移动机器人不能旋转,后续节点处移动机器人的朝向将保持与原朝向角度相同;若在当前节点移动机器人可以旋转,则终端设备根据移动机器人是否可以倒退,确定移动机器人的朝向角度。例如,若移动机器人不可以倒退,则移动机器人的朝向角度与所在路径的朝向角度相同;若移动机器人可以倒退,则移动机器人的朝向角度可以与所在路径的朝向角度相同,也可以与所在路径的朝向角度相反。

s102:基于每个节点的方向信息,确定满足预设方向要求的待处理节点。

其中,终端设备遍历地图当前处理节点的每个相邻节点,首先舍弃所有已处理过的相邻节点,再将所有满足机器人行走朝向角度的相邻节点作为待处理节点。

具体地,假设在当前节点移动机器人不能旋转,且移动机器人当前朝向为0度。若移动机器人不能后退,则终端设备搜索当前节点0度方向的相邻节点作为满足预设方向要求的待处理节点。若移动机器人能够后退,则终端设备搜索当前节点0度方向以及180度方向的相邻节点作为满足预设方向要求的待处理节点。

若在当前节点移动机器人能够旋转,则终端设备将当前节点所有相邻节点中未被处理过的节点作为满足预设方向要求的待处理节点。

s103:根据待处理节点的连通信息,对应待处理节点建立连通数量的虚拟节点,虚拟节点包括连通信息和方向信息。

其中,确定待处理节点后,终端设备根据待处理节点的连通信息,建立连通数量的虚拟节点。同样地,虚拟节点同样包括连通信息和方向信息。

具体地,终端设备可以遍历整个地图,并查询到符合预设方向要求的待处理节点,对符合要求的节点建立虚拟节点,在虚拟节点上设置不同于真实节点的虚拟节点信息用于标记。每个虚拟节点的连通信息可以对应于移动机器人从某个相邻节点驶入该待处理节点,如果该待处理节点共有n个相邻节点可以驶向该点,那么在建立完所有虚拟节点后,在该待处理节点处应该设置有一个真实节点以及对应的n-1个虚拟节点。

在a*搜索路径过程中,虚拟节点能够相当于真实节点被搜索,以使这类待处理节点能够以虚拟节点的形式被多次搜索。

s104:将虚拟节点加入所述地图信息,基于添加虚拟节点的地图信息进行路径规划。

其中,终端设备将建立的虚拟节点加入到地图信息中,以便基于添加虚拟节点的地图信息进行路径规划。在后续的路径规划中,规划的路径中包括虚拟节点的个数加1,即路径经过对应的待处理节点的次数。

在本实施例中,终端设备获取地图信息,地图信息中包括多个节点,每个节点包括自身与其它节点的连通信息和流动至其它节点的方向信息;基于每个节点的方向信息,确定满足预设方向要求的待处理节点;根据待处理节点的连通信息,对应待处理节点建立连通数量的虚拟节点,虚拟节点包括连通信息和方向信息;将虚拟节点加入地图信息,基于添加虚拟节点的地图信息进行路径规划;在节点搜索中,终端设备虽然不会直接重复搜索待处理节点,但可以通过搜索虚拟节点代替搜索待处理节点的方式间接搜索待处理节点,从而提高路径规划的准确性。

对于图2所示实施例中的步骤s104,本申请进一步提出了另一种具体的方法。具体请参阅图3,图3是本申请提供的路径规划方法第二实施例的流程示意图。

具体在上述步骤s104中,终端设备通过引入虚拟节点这一个概念解决传统a*算法无法重复搜索同一节点的问题,终端设备还需要基于添加虚拟节点的地图信息进行路径规划,才能输出可执行的路径,以便移动机器人根据该路径进行移动。

为了提高规划可执行路径的准确度,本实施例的路径规划方法具体提出了以下方法:

s201:计算地图信息中每个节点相对路径起点和路径终点的初始规划代价值,路径起点和路径终点为地图信息中的节点。

其中,终端设备基于代价评估函数初始化地图信息中所有节点的a*规划代价值。a*的代价评估函数基本形式可以表示为:f(n)=h(n)+g(n)。h(n)是距离评估函数,n代表地图上的某一个方格,距离计算方式包括欧几里得距离、曼哈顿距离等。g(n)是从起点移动到n的代价函数,n距离起点越远,付出的代价越高。起点到n的路径可能会有多条,每条路线的g(n)值各不相同。a*的基本代价评估函数仅仅是将该点的距离估值和代价值加起来,a*搜索的每一次寻径都会寻找评估值最小的节点。

具体地,终端设备将所有节点的g值初始化设置为int_max,h值初始化设置为0。其中,g值表示从起点到该节点的路径代价值,h值表示从该节点到路径终点的预估路径代价值,则f=g+h表示经过该节点的从起点到终点一条路径的代价值。

s202:将地图信息中的所有节点及所有节点的初始规划代价值加入到第一列表中作为节点的当前规划代价值。

其中,终端设备计算所有节点的规划代价值,并将所有节点以及对应的规划代价值加入到第一列表,作为每个节点的当前规划代价值。同时,第一列表中还可以记录移动机器人在每个节点时的方向信息。

s203:由路径起点开始,每次将第一列表中当前规划代价值最小的节点移动至第二列表,并更新第一列表中节点的当前规划代价值,直至所移动的当前规划代价值最小的节点为路径终点。

其中,终端设备首先判断第一列表中是否为空,即不存在任何节点以及对应的规划代价值;若是,则返回规划失败的信息。若否,则对第一列表的各个节点根据规划代价值从小到大进行排序,以取出第一列表中当前规划代价值最小的第一个节点n,移动至第二列表,并更新第一列表中其余节点的规划代价值。

在将节点n从第一列表移动到第二列表时,终端设备还可以判断节点n是否为路径终点。若节点n为路径终点,则进入步骤s204。

s204:确定移动至第二列表的路径终点的前一节点到路径终点的终点朝向。

其中,终端设备确定移动至第二列表的路径终点的前一节点到路径终点的终点朝向,计算方法与计算节点的朝向角度相同,在此不再赘述。

s205:在终点朝向满足路径终点的朝向要求时,以依次移动至第二列表中的节点表示路径规划。

其中,确定终点朝向后,终端设备比较节点n处移动机器人朝向与任务终点的目标朝向是否相同,如果两个集合存在交集,例如,节点n处移动机器人可以自由旋转或任务终点对移动机器人朝向没有要求,则任务路径规划成功。

终端设备以路径起点、路径终点以及依次移动至第二列表中的节点表示路径规划的结果。

如果两个集合不存在交集,则说明此时移动机器人没有以任务指定角度抵达终点,需要从其它路径前往终点,规划继续。

在本实施例中,终端设备在规划过程中充分考虑了地图连通性对移动机器人角度的影响,避免了因为部分节点的不可旋转的特性导致规划的失败;通过设置虚拟节点的方式保证各节点搜索的可重复性,当任务角度与当前搜索到该点的可能车头角度不一致时,能继续往前搜索,直到再次搜索到该节点,且可能的车头角度与任务角度一致时,搜索才停止。

对于图3所示实施例中的步骤s203,本申请进一步提出了另一种具体的方法。具体请参阅图4,图4是本申请提供的路径规划方法第三实施例的流程示意图。

在步骤s203中,若节点n不为路径终点时,终端设备还需要继续对后续节点进行寻径。为了对后续节点进行寻径,本实施例的路径规划方法具体提出了以下方法:

s301:将第一列表中当前规划代价值最小的当前节点移动至第二列表。

s302:基于当前节点的连通信息和方向信息,确定当前节点的后续节点。

其中,当节点n不为路径终点时,终端设备依次遍历所有后续节点。若该后续节点已经存在于第二列表中时,则删除该后续节点。若当前节点不能转弯,则终端设备在遍历后续节点时,只需要搜索与移动机器人头部朝向相差0°或180°(倒退)的后续节点。移动机器人是否具有倒退能力是规划算法选择相邻节点的重要依据。若移动机器人无法倒退,那么终端设备只需要搜索与移动机器人头部朝向一致的相邻节点;若移动机器人具有倒退能力,则终端设备可以搜索与移动机器人头部朝向一致或者相反的相邻节点。

s303:重新计算后续节点的当前规划代价值。

s304:若对于后续节点,重新计算的当前规划代价值小于第一列表中的当前规划代价值时,更新第一列表中后续节点的当前规划代价值。

其中,终端设备更新第一列表中后续节点的当前规划代价值时,若该后续节点已在第一列表中,先判断该后续节点的当前g值是否比记录的g值更小。若当前g值比记录的g值更小,表示从当前节点到该后续节点是更优的路径,则将该后续节点的前续节点更新为当前节点,并更新g值和f值,并将所有可能的移动机器人头部朝向都记录在第一列表中。

若该后续节点不在第一列表中,则说明算法尚未搜索过该节点,则将该节点坐标、朝向、路径代价值、父节点等信息记录后,将该节点加入第一列表中重新规划路径。

在本实施例中,终端设备解决了任务对移动机器人角度约束给路径规划带来的困难,在规划时考虑了各节点处运动体可能的姿态,通过设置虚拟节点的方式保证各节点搜索的可重复性,避免了传统a*搜索出来的路径由于终点车头角度与任务角度不一致导致路径无法执行的问题。

为实现上述实施例的路径规划方法,本申请还提出了一种终端设备,具体请参阅图5,图5是本申请提供的终端设备一实施例的结构示意图。

终端设备400包括存储器41和处理器42,其中,存储器41和处理器42耦接。

存储器41用于存储程序数据,处理器42用于执行程序数据以实现上述实施例的路径规划方法。

在本实施例中,处理器42还可以称为cpu(centralprocessingunit,中央处理单元)。处理器42可能是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器42也可以是任何常规的处理器等。

本申请还提供一种计算机存储介质,如图6所示,计算机存储介质500用于存储程序数据,程序数据在被处理器执行时,用以实现如本申请路径规划方法实施例中所述的方法。

本申请路径规划方法实施例中所涉及到的方法,在实现时以软件功能单元的形式存在并作为独立的产品销售或使用时,可以存储在装置中,例如一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1