一种仿人机器人路径规划方法及装置转让专利

申请号 : CN201810715045.5

文献号 : CN109163722B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张雷刘卉玲刘晨曦于佳圆张华琰杨瀚霆袁飞沈瑞婷

申请人 : 北京建筑大学

摘要 :

本发明提供一种仿人机器人路径规划方法及装置,所述方法包括:对进行路径规划的待检索列表中目标栅格地图各结点的评价函数值进行排序,将最小的所述评价函数值对应的结点作为当前结点;根据各所述相邻结点和所述预设终点结点的坐标,获取各所述相邻结点与所述预设终点结点之间的连线;若所述连线中没有所述预设障碍结点,则将所述连线作为从各所述相邻结点到所述预设终点结点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始结点到所述预设终点结点的总路径。本发明通过对目标栅格地图的整体判断,直接将确定的连线作为从相邻结点到预设终点结点的路径,从而大大提高路径规划的效率。

权利要求 :

1.一种仿人机器人路径规划方法,其特征在于,包括:

对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;

若所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中,则根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;

对于任一所述相邻节点,若该相邻节点与所述预设终点节点之间的连线中没有所述预设障碍节点,则将该相邻节点与所述预设终点节点之间的连线作为从该相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的从预设起始节点到该相邻节点的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径。

2.根据权利要求1所述的方法,其特征在于,对待检索列表中目标栅格地图各节点的评价函数值进行排序的步骤之前还包括:使用位于目标场景上方的视觉传感器对所述目标场景进行全局监控,获取所述目标场景的全局环境图像;

根据所述全局环境图像,建立所述目标栅格地图。

3.根据权利要求1所述的方法,其特征在于,对待检索列表中目标栅格地图各节点的评价函数值进行排序的步骤之前还包括:基于评价函数,获取待检索列表中目标栅格地图各节点的评价函数值;

其中,所述评价函数f(m)的公式为:

f(m)=g(m)+h(m)+k(m);

其中,g(m)为从预设起始节点到当前节点的代价,h(m)为从所述当前节点到所述目标栅格地图中的预设终点节点的估算代价,k(m)为转向时间。

4.根据权利要求1所述的方法,其特征在于,获取各所述相邻节点与所述预设终点节点之间的连线的步骤具体包括:若各所述相邻节点与所述预设终点节点的横坐标相同、纵坐标相同,或者横坐标之差与纵坐标之差相同,则连接各所述相邻节点与所述预设终点节点,获取所述连线;

若各所述相邻节点与所述预设终点节点的横坐标之差与纵坐标之差不相同且均不为

0,则根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线;

其中,所述方向信息为各所述相邻节点相对于所述当前节点的方向。

5.根据权利要求4所述的方法,其特征在于,根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线的步骤具体包括:若所述横坐标之差大于所述纵坐标之差,则获知所述连线为横向线段和45度方向的斜线的组合;

若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;

若所述相邻节点的方向信息为横向,则所述横向线段的一端为所述相邻节点。

6.根据权利要求4所述的方法,其特征在于,根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线的步骤具体包括:若所述横坐标之差小于所述纵坐标之差,则获知所述连线为纵向线段和45度方向的斜线的组合;

若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;

若所述相邻节点的方向信息为纵向,则所述纵向线段的一端为所述相邻节点。

7.根据权利要求1-6任一所述的方法,其特征在于,若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径的步骤还包括:若所述连线中有所述预设障碍节点,则判断各所述相邻节点是否在所述待检索列表中;

若各所述相邻节点不在所述待检索列表中,则将各所述相邻节点添加到所述待检索列表中,将所述当前节点作为各所述相邻节点的父节点,并记录各所述相邻节点的评价函数值和从预设起始节点到各所述相邻节点的代价;

若各所述相邻节点在所述待检索列表中,则若经过所述当前节点从预设起始节点到各所述相邻节点的代价比记录的从预设起始节点到各所述相邻节点的代价小,则将各所述相邻节点的父节点更改为所述当前节点,并更新记录;

将更新后的所述待检索列表作为下一次进行路径规划的待检索列表。

8.一种仿人机器人路径规划装置,其特征在于,包括:

排序模块,用于对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;

第一获取模块,用于在所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中时,根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;

第二获取模块,用于对于任一所述相邻节点,在该相邻节点与所述预设终点节点之间的连线中没有所述预设障碍节点时,将该相邻节点与所述预设终点节点之间的连线作为从该相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的从预设起始节点到该相邻节点的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径。

9.一种电子设备,其特征在于,包括:

至少一个处理器、至少一个存储器和总线;其中,

所述处理器和存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。

10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。

说明书 :

一种仿人机器人路径规划方法及装置

技术领域

[0001] 本发明属于智能机器人技术领域,更具体地,涉及一种仿人机器人路径规划方法及装置。

背景技术

[0002] 随着人工智能和自动化领域的发展,仿人机器人的研究也越来越深入。“人机”自然共居是仿人机器人服务人类最主要的方式。在“人机”自然共居的环境中,仿人机器人作业控制最迫切需要解决的问题是作业环境的理解和作业路径规划。
[0003] A*(A-Star,A星)算法是一种常用的仿人机器人路径规划方法。A*算法既拥有类似BFS(Breadth First Search,广度优先搜索)算法等启发式算法快速搜索路径的优点,同时还能保证找到一条最短路径。根据传统A*方法搜索策略可以发现,A*算法对所有OPEN列表中的节点逐步进行检索。根据检索的情况选择合适的节点在进行下一循环的检索。这种亦步亦趋的搜索策略可以避免优秀节点的疏漏。但是环境地图中有可能出现一些其他的情况,例如环境中没有障碍;或者机器人作业初始位置与目标终点位置之间没有障碍的情况;又或者路径搜索过程进行到某节点时,该节点到初始点的路径已经搜索结束,该点与目标节点之间不存在阻塞。A*算法依然是亦步亦趋地检索列表中的节点,并没有对当前的作业环境进行任何的整体判断。如果环境地图的精度不高,地图中的单位栅格数目并不多,例如在20×20的地图上,直接应用传统A*算法进行路径搜索不会花费多少时间,但如果作业环境要求精度非常高,地图中单位栅格数目很多,例如640×480的地图中,直接应用传统A*算法进行路径搜索就会大大增加检索时间。
[0004] 综上所述,采用传统A*算法进行仿人机器人路径规划仅亦步亦趋地检索列表中的节点,对作业环境地图缺乏整体的判断,导致在一些情况下大大增加检索时间,路径规划效率低。

发明内容

[0005] 为克服上述现有仿人机器人路径规划方法检索时间长和效率低的问题或者至少部分地解决上述问题,本发明提供一种仿人机器人路径规划方法及装置。
[0006] 根据本发明的第一方面,提供一种仿人机器人路径规划方法,包括:
[0007] 对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;
[0008] 若所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中,则根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;
[0009] 若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径;
[0010] 所述第二分段路径为从预设起始节点到各所述相邻节点的路径。
[0011] 根据本发明第二方面提供一种仿人机器人路径规划装置,包括:
[0012] 排序模块,用于对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;
[0013] 第一获取模块,用于在所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中时,根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;
[0014] 第二获取模块,用于在所述连线中没有所述预设障碍节点时,将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径;
[0015] 所述第二分段路径为从预设起始节点到各所述相邻节点的路径。
[0016] 根据本发明的第三方面,提供一种电子设备,包括:
[0017] 至少一个处理器、至少一个存储器和总线;其中,
[0018] 所述处理器和存储器通过所述总线完成相互间的通信;
[0019] 所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前所述的方法。
[0020] 根据本发明的第四方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前所述的方法。
[0021] 本发明提供一种仿人机器人路径规划方法及装置,该方法通过根据各所述相邻节点和所述预设终点节点的坐标,直接获取当前节点的相邻节点与预设终点节点之间的连线,若连线中没有所述预设障碍节点,则预先基于A*算法获取的从预设起始节点到各所述相邻节点的路径和连线共同构成从预设起始节点到预设终点节点的总路径,从而通过对目标栅格地图的整体判断,直接将确定的连线作为从相邻节点到预设终点节点的路径,从而大大提高路径规划的效率。

附图说明

[0022] 图1为本发明实施例提供的仿人机器人路径规划方法整体流程示意图;
[0023] 图2为本发明实施例提供的仿人机器人路径规划装置整体结构示意图;
[0024] 图3为本发明实施例提供的电子设备整体结构示意图。

具体实施方式

[0025] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0026] 在本发明的实施例之前先介绍A*算法的原理和搜索策略,以及现有的仿人机器人路径规划方法中采集环境地图的视觉传感器的安装。
[0027] A*算法的原理是把Dijkstra(迪杰斯特拉)算法和BFS算法的搜索策略结合起来,其评价函数为:
[0028] f(m)=g(m)+h(m);
[0029] 其中,g(m)代表从预设起始节点到节点m的代价,h(m)代表从节点m与预设终点节点的估算代价。仿人机器人应用A*算法进行路径搜索时,从预设起始节点开始向预设终点节点移动,每次移动之前A*算法权衡g(m)和h(m)两者,检查f(m)最小的节点m。当h(m)等于0时,这种情况仅有g(m)起作用,此时A*退化为Dijkstra算法,依然能确保检索到最佳路径。若h(m)的估算代价比当前m通往目标点的真实代价小或者相等,则A*算法与Dijkstra算法一样,这时同样确保能检索到一条最佳路径。但是h(m)的估算代价越小,A*算法检索时扫描的栅格就越多,导致需要更长时间,运行变慢。若存在某种情况满足h(m)的估算代价与当前节点m通往目标节点的真实代价精确一致,则A*算法仅会检索最佳路径位置上的栅格而几乎不检索其他任何栅格,此时A*算法达到性能最佳,仿人机器人运行速度快。尽管这种情况在有障碍物存在的地图上几乎不可能发生,但仍可以在一些特殊的情况下达到部分阶段精确地相等。若h(m)的估算代价比从当前节点m移动到目标节点的真实代价高,此时A*算法运行速度变快,搜索时间缩短,但不能确保找到一条最佳路径。如果h(m)的估算代价比g(m)大很多,例如h(m)的估算算法是欧式距离的平方,此时几乎只有A*算法中的h(m)在起作用,A*算法退化成BFS算法。
[0030] A*算法规划的路径在计算机中运行时的确是总长度最短的路径,但仿人机器人有其自身特性,当前进方向发生改变时,由于惯性和机器人自身的运动学特性等原因,机器人转向需要时间,同时不同仿人机器人处理前进方向改变问题时采取的策略不同。在A*算法中,若搜索方向为8方向搜索,则路径中存在的转弯方向角只有45°。因为转向需要时间,仿人机器人路径规划整个系统中的最短路径仅仅是路径的长度最短就局限化了。A*算法仅仅结合了广度搜索过程与启发式搜索过程,搜索阶段没有结合仿人机器人的自身特性,导致规划的路径仅存在理论意义,路径阶梯状非常明显,仿人机器人执行路径命令时存在多次转向等问题。
[0031] A*算法的具体搜索策略如下:
[0032] 1、将预设起始节点,即仿人机器人的起始点添加到待检索列表OPEN列表中。
[0033] 2,重复进行如下步骤1)、2)和3):
[0034] 1)将OPEN列表中的节点根据f(m)值进行排序,将f(m)值最低的节点作为当前节点,并将其从OPEN列表中移除,放入到封闭列表CLOSED列表中。
[0035] 2)对当前节点的相邻8方向的每一个相邻节点进行如下操作:
[0036] (a)如果该相邻节点是预设终点节点,即目标点,则路径被找到,停止搜索。
[0037] (b)如果该相邻节点为预设障碍节点或者已经在CLOSED列表中,则忽略该相邻节点,不进行任何操作。
[0038] (c)如果该相邻节点不在OPEN列表中,把该相邻节点添加进OPEN列表,把当前节点作为该相邻节点的父节点,并记录该相邻节点的f和g值。
[0039] (d)如果该相邻节点之前已放入OPEN列表中,以g(m)值为对比标准,比较新的路径代价是否更小。更低的g(m)值代表着更低的作业代价,即规划的路径更佳。若其代价更小,就将该相邻节点的父节点更改为当前节点,并更新该相邻节点的f和g值。
[0040] 3)在OPEN列表中所有节点都已检索完毕,且没有新的节点放入OPEN列表中时,依然没有找到预设终点节点,该情况表明路径不存在,停止搜索。
[0041] 3.整理路径。反向整理,从最终预设终点节点起,依次顺着每个节点的父节点返回,直到到达预设起始节点,从而获取规划的路径。
[0042] 现有的仿人机器人路径规划方法中将为仿人机器人提供视觉信息的视觉传感器安装在仿人机器人本体上,采集方向朝向机器人前进的方向,因此采集的图像内容为局部的区域地形,不利于对作业环境的全局把控。同时由于仿人机器人高度不确定的问题,安装在仿人机器人本体上的视觉传感器势必会被高大障碍物阻挡视线。但是环境中的仿人机器人面对前进方向上即将行走的地面必须具备理解和决策的能力。
[0043] 在本发明的一个实施例中提供一种仿人机器人路径规划方法,图1为本发明实施例提供的仿人机器人路径规划方法整体流程示意图,该方法包括:S101,对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;
[0044] 其中,待检索列表为存储有待检索的节点的列表。目标栅格地图为仿人机器人路径规划所在环境的栅格地图。目标栅格地图的节点为目标栅格地图中的一个单位栅格。初始时,将预设起始节点即预先设定的仿人机器人的出发起始点放入待检索列表中。在将节点放入待检索列表时记录各节点的评价函数值f和从预设起始节点到各节点的代价g。评价函数值f根据评价函数进行计算。g根据从设起始节点到各节点的路径长短确定。对待检索列表中各节点的评价函数值进行排序,将最小的评价函数值对应的节点作为当前节点,并将当前节点从待检索列表中删除,放入到封闭列表中。封闭列表中的节点为不在进行检索的节点,从而避免重复检索。
[0045] S102,若所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中,则根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;
[0046] 其中,不实施例不限于相邻节点的范围,可以选择通用的8邻域。预设终点节点为预先设定的目标栅格地图中仿人机器人的运行终点。预设障碍节点为预先设定的目标栅格地图中仿人机器人不能通过的节点。若各相邻节点为预设终点节点,则路径被找到,停止搜索。若各相邻节点为预设障碍节点或已经在封闭列表中,则忽略各相邻节点,不进行任何操作。若所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中,则根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线。所述连线为一条直线,或者一条直线和一条45度方向的斜线的组合。
[0047] S103,若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径;所述第二分段路径为从预设起始节点到各所述相邻节点的路径。
[0048] 具体地,判断连线中是否有预设障碍节点。若连线中有预设障碍节点,则继续基于A*算法更新待检索列表,对更新后的检索列表中的节点继续进行S101-S103的操作,直到当前节点为预设终点节点,或者OPEN列表中所有节点都已检索完毕,没有新的节点放入列表。若连线中有预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的路径,停止搜索。第一分段路径为相邻节点与预设终点节点之间的连线。第二分段路径为从当前节点到相邻节点的路径和步骤S101之前预先基于A*算法获取的从预设起始节点到当前节点的路径总和。第一分段路径和第二分段路径为从所述预设起始节点到所述预设终点节点的总路径。
[0049] 本实施例通过根据各所述相邻节点和所述预设终点节点的坐标,直接获取当前节点的相邻节点与预设终点节点之间的连线,若连线中没有所述预设障碍节点,则预先基于A*算法获取的从预设起始节点到各所述相邻节点的路径和连线共同构成从预设起始节点到预设终点节点的总路径,从而通过对目标栅格地图的整体判断,直接将确定的连线作为从相邻节点到预设终点节点的路径,从而大大提高路径规划的效率。
[0050] 在上述实施例的基础上,本实施例中对待检索列表中目标栅格地图各节点的评价函数值进行排序的步骤之前还包括:使用位于目标场景上方的视觉传感器对所述目标场景进行全局监控,获取所述目标场景的全局环境图像;根据所述全局环境图像,建立所述目标栅格地图。
[0051] 具体地,本实施例中将视觉传感器从仿人机器人本体中脱离出来,安装在目标场景上方,如房间的天花板上。使其不受仿人机器人自身特性的限制。视觉传感器采集方向垂直正对地面,角度不随仿人机器人的位姿而改变,同时避免了高大障碍物的遮挡,采集到的全局环境图像中将包含更多信息,可以全局监控。通过视觉传感器提取的视频全局图像是真实家居环境的图像,仿人机器人不能理解这些信息,所以需要将图像信息转化为数字信息,便于机器人理解和计算。同时,视频图像信息非常丰富,需要对图像进行处理,在图像中提取关键信息,为之后的路径规划提供数据。对获取的视觉信息进行信息采集和信息处理,确定障碍物的边界矩形坐标之后,进行仿人机器人作业环境建模。
[0052] 本实施例应用的地图建模方法是传统的栅格法模型,原理是模拟仿人机器人的作业环境建立栅格地图,从而构建仿人机器人作业空间的数学模型。视频传感器获得的图像为矩形,根据视觉信息建立的整个栅格地图也为矩形。在栅格地图中,仿人机器人作业空间被转化为平面三维数组,障碍物转化为一组单位障碍栅格。具体过程是根据作业环境场地大小,将其分割成相同边长的单位方形栅格,分割出的栅格水平和竖直方向的数量根据具体实验精度需求调整。这些等分的单位方形栅格构成的矩形地图为仿人机器人作业环境栅格地图,即目标栅格地图。
[0053] 在上述实施例的基础上,本实施例中对待检索列表中目标栅格地图各节点的评价函数值进行排序的步骤之前还包括:
[0054] 基于评价函数,获取待检索列表中目标栅格地图各节点的评价函数值;
[0055] 其中,所述评价函数f(m)的公式为:
[0056] f(m)=g(m)+h(m)+k(m);
[0057] 其中,g(m)为从预设起始节点到当前节点的代价,h(m)为从所述当前节点到所述目标栅格地图中的预设终点节点的估算代价,k(m)为转向时间。
[0058] 具体地,本实施例在原有的A*算法评价函数上增加一个新的约束条件k(m),k(m)表示转向过程所需要的时间,即机器人自身特性所限制的运动转向时间。根据新的评价函数判断路径中各节点的代价。整个路径的评价因素不再仅仅是距离的长短,还包括路径中的转向时间。路径的长短仍然是评价的关键因素,但不再是唯一因素。模型地图中的每一个节点都与一个一维数组相对应,数组元素记录每个节点的信息,包括在目标栅格地图中的横坐标、纵坐标、是否为预设障碍节点、相对前一节点的方向、g值、h值、k值和f值。如果规划路径下一步的前进方向与前一步方向一样,则k(m)为0,如果不一样k(m)就是一个常数,该常数等于仿人机器人转向过程所需要的时间。
[0059] 本实施例结合仿人机器人的自身特性设计评价函数,综合路径长短和时间两方面因素进行评价,代价计算方式根据运动方向而有所改变。路径发生转向,代价增加,故在路径规划中会减少出现阶梯状路径,路径的转折点减少,路径有可能变长,但整个仿人机器人路径规划的时间将大大缩减。
[0060] 在上述实施例的基础上,本实施例中获取各所述相邻节点与所述预设终点节点之间的连线的步骤具体包括:若各所述相邻节点与所述预设终点节点的横坐标相同、纵坐标相同,或者横坐标之差与纵坐标之差相同,则连接各所述相邻节点与所述预设终点节点,获取所述连线;若各所述相邻节点与所述预设终点节点的横坐标之差与纵坐标之差不相同且均不为0,则根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线;其中,所述方向信息为各所述相邻节点相对于所述当前节点的方向。
[0061] 具体地,计算各相邻节点与终点节点之间的的横坐标之差Xd和纵坐标之差Yd。若Xd为0,即相邻节点与预设终点节点的横坐标相同,则连接相邻节点与所述预设终点节点的直线为一条纵向连线。提取连线上每个节点对应的数组中存储的是否为预设障碍节点元素,因为计算机中布尔运算的效率最高,故应用布尔运算中的“与”运算检测连线中是否有预设障碍节点。若Yd为0,即相邻节点与预设终点节点的纵坐标相同,连接相邻节点与所述预设终点节点的直线为一条横向连线。若Xd和Yd均不为0,且Xd=Yd,则连接相邻节点与所述预设终点节点的直线为一条45度方向的斜线。若各所述相邻节点与所述预设终点节点的横坐标之差与纵坐标之差不相同且均不为0,则根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线。方向信息为相邻节点相对于上一个节点,即当前节点的方向。
[0062] 在上述实施例的基础上,本实施例中根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线的步骤具体包括:若所述横坐标之差大于所述纵坐标之差,则获知所述连线为横向线段和45度方向的斜线的组合;若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;若所述相邻节点的方向信息为横向,则所述横向线段的一端为所述相邻节点。
[0063] 具体地,若所述横坐标之差大于所述纵坐标之差,则获知所述连线为横向线段和45度方向的斜线的组合。提取相邻节点的方向信息,若方向信息与斜线方向相同,则将斜线与相邻节点相连,将横向线段与预设终点节点相连。所述相邻节点的方向信息为横向,则将横向线段与相邻节点相连,将斜线与预设终点节点相连,从而减少路径的转弯次数,缩短路径规划的时间。
[0064] 在上述实施例的基础上,本实施例中根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线的步骤具体包括:若所述横坐标之差小于所述纵坐标之差,则获知所述连线为纵向线段和45度方向的斜线的组合;若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;若所述相邻节点的方向信息为纵向,则所述纵向线段的一端为所述相邻节点。
[0065] 具体地,若所述横坐标之差小于所述纵坐标之差,则获知所述连线为纵向线段和45度方向的斜线的组合。提取相邻节点的方向信息,若方向信息与斜线方向相同,则将斜线与相邻节点相连,将纵向线段与预设终点节点相连。所述相邻节点的方向信息为纵向,则将纵向线段与相邻节点相连,将斜线与预设终点节点相连,从而减少路径的转弯次数,缩短路径规划的时间。
[0066] 在上述各实施例的基础上,本实施例中若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径的步骤还包括:若所述连线中有所述预设障碍节点,则判断各所述相邻节点是否在所述待检索列表中;若各所述相邻节点不在所述待检索列表中,则将各所述相邻节点添加到所述待检索列表中,将所述当前节点作为各所述相邻节点的父节点,并记录各所述相邻节点的评价函数值和从预设起始节点到各所述相邻节点的代价;若各所述相邻节点在所述待检索列表中,则若经过所述当前节点从预设起始节点到各所述相邻节点的代价比记录的从预设起始节点到各所述相邻节点的代价小,则将各所述相邻节点的父节点更改为所述当前节点,并更新记录;将更新后的所述待检索列表作为下一次进行路径规划的待检索列表。
[0067] 具体地,若所述连线中有所述预设障碍节点,则继续基于A*算法更新待检索列表。将更新后的所述待检索列表作为下一次进行路径规划的待检索列表,迭代进行路径规划,直到当前节点为预设终点节点,或者OPEN列表中所有节点都已检索完毕,没有新的节点放入待检索列表。
[0068] 改进的搜索策略如下:
[0069] 1、将预设起始节点,即仿人机器人的起始点添加到待检索列表OPEN列表中。
[0070] 2,重复进行如下步骤1)、2)和3):
[0071] 1)将OPEN列表中的节点根据f(m)值进行排序,将f(m)值最低的节点作为当前节点,并将其从OPEN列表中移除,放入到封闭列表CLOSED列表中。
[0072] 2)对当前节点的相邻8方向的每一个相邻节点进行如下操作:
[0073] (a)标定该相邻节点相对当前节点的方向。
[0074] (b)如果该相邻节点是预设终点节点,即目标点,则路径被找到,停止搜索。
[0075] (c)如果该相邻节点为预设障碍节点或者已经在CLOSED列表中,则忽略该相邻节点,不进行任何操作。
[0076] (d)计算该节点与终点节点横纵坐标之差,分别为Xd和Yd;根据Xd和Yd获取各所述相邻节点与所述预设终点节点之间的连线;若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的路径,停止搜索。
[0077] (c)如果该相邻节点不在OPEN列表中,把该相邻节点添加进OPEN列表,把当前节点作为该相邻节点的父节点,并记录该相邻节点的f和g值。
[0078] (d)如果该相邻节点之前已放入OPEN列表中,以g(m)值为对比标准,比较新的路径代价是否更小。更低的g(m)值代表着更低的作业代价,即规划的路径更佳。若其代价更小,就将该相邻节点的父节点更改为当前节点,并更新该相邻节点的f和g值。
[0079] 3)在OPEN列表中所有节点都已检索完毕,且没有新的节点放入OPEN列表中时,依然没有找到预设终点节点,该情况表明路径不存在,停止搜索。
[0080] 在本发明的另一个实施例中提供一种仿人机器人路径规划装置,该装置用于实现前述各实施例中的方法。因此,在前述各实施例中仿人机器人路径规划方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图2为本发明实施例提供的仿人机器人路径规划装置整体结构示意图,该装置包括分组模块201、获取模块202和生成模块203;其中:
[0081] 排序模块201用于对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点,并将所述当前节点从所述待检索列表移动到封闭列表中;第一获取模块202用于在所述当前节点的各相邻节点不是预设终点节点和预设障碍节点,且各所述相邻节点不在所述封闭列表中时,根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;第二获取模块203用于在所述连线中没有所述预设障碍节点时,将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径;所述第二分段路径为从预设起始节点到各所述相邻节点的路径。
[0082] 在上述实施例的基础上,本实施例中还包括构建模块,用于使用位于目标场景上方的视觉传感器对所述目标场景进行全局监控,获取所述目标场景的全局环境图像;根据所述全局环境图像,建立所述目标栅格地图。
[0083] 在上述实施例的基础上,本实施例中还包括第三获取模块,用于基于评价函数,获取待检索列表中目标栅格地图各节点的评价函数值;
[0084] 其中,所述评价函数f(m)的公式为:
[0085] f(m)=g(m)+h(m)+k(m);
[0086] 其中,g(m)为从预设起始节点到当前节点的代价,h(m)为从所述当前节点到所述目标栅格地图中的预设终点节点的估算代价,k(m)为转向时间。
[0087] 在上述实施例的基础上,本实施例中第一获取模块具体用于:若各所述相邻节点与所述预设终点节点的横坐标相同、纵坐标相同,或者横坐标之差与纵坐标之差相同,则连接各所述相邻节点与所述预设终点节点,获取所述连线;若各所述相邻节点与所述预设终点节点的横坐标之差与纵坐标之差不相同且均不为0,则根据所述横坐标之差、所述纵坐标之差和各所述相邻节点的方向信息,获取所述连线;其中,所述方向信息为各所述相邻节点相对于所述当前节点的方向。
[0088] 在上述实施例的基础上,本实施例中第一获取模块进一步具体用于:若所述横坐标之差大于所述纵坐标之差,则获知所述连线为横向线段和45度方向的斜线的组合;若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;若所述相邻节点的方向信息为横向,则所述横向线段的一端为所述相邻节点。
[0089] 在上述实施例的基础上,本实施例中第一获取模块进一步具体用于:若所述横坐标之差小于所述纵坐标之差,则获知所述连线为纵向线段和45度方向的斜线的组合;若所述相邻节点的方向信息与所述斜线的方向相同,则所述斜线的一端为所述相邻节点;若所述相邻节点的方向信息为纵向,则所述纵向线段的一端为所述相邻节点。
[0090] 在上述各实施例的基础上,本实施例中还包括后续处理模块,用于若所述连线中有所述预设障碍节点,则判断各所述相邻节点是否在所述待检索列表中;若各所述相邻节点不在所述待检索列表中,则将各所述相邻节点添加到所述待检索列表中,将所述当前节点作为各所述相邻节点的父节点,并记录各所述相邻节点的评价函数值和从预设起始节点到各所述相邻节点的代价;若各所述相邻节点在所述待检索列表中,则若经过所述当前节点从预设起始节点到各所述相邻节点的代价比记录的从预设起始节点到各所述相邻节点的代价小,则将各所述相邻节点的父节点更改为所述当前节点,并更新记录;将更新后的所述待检索列表作为下一次进行路径规划的待检索列表。
[0091] 本实施例通过根据各所述相邻节点和所述预设终点节点的坐标,直接获取当前节点的相邻节点与预设终点节点之间的连线,若连线中没有所述预设障碍节点,则预先基于A*算法获取的从预设起始节点到各所述相邻节点的路径和连线共同构成从预设起始节点到预设终点节点的总路径,从而通过对目标栅格地图的整体判断,直接将确定的连线作为从相邻节点到预设终点节点的路径,从而大大提高路径规划的效率。
[0092] 本实施例提供一种电子设备,图3为本发明实施例提供的电子设备整体结构示意图,该设备包括:至少一个处理器301、至少一个存储器302和总线303;其中,[0093] 处理器301和存储器302通过总线303完成相互间的通信;
[0094] 存储器302存储有可被处理器301执行的程序指令,处理器调用程序指令能够执行上述各方法实施例所提供的方法,例如包括:对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点;根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径。
[0095] 本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:对进行路径规划的待检索列表中目标栅格地图各节点的评价函数值进行排序,将最小的所述评价函数值对应的节点作为当前节点;根据各所述相邻节点和所述预设终点节点的坐标,获取各所述相邻节点与所述预设终点节点之间的连线;若所述连线中没有所述预设障碍节点,则将所述连线作为从各所述相邻节点到所述预设终点节点之间的第一分段路径,将所述第一分段路径和预先基于A*算法获取的第二分段路径作为从所述预设起始节点到所述预设终点节点的总路径。
[0096] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0097] 以上所描述的电子设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0098] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
[0099] 最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。