路径规划方法、装置、机器人和存储介质与流程

文档序号:27754100发布日期:2021-12-03 21:12阅读:87来源:国知局
路径规划方法、装置、机器人和存储介质与流程

1.本技术涉及机器人技术领域,特别涉及一种路径规划方法、装置、设备和存储介质。


背景技术:

2.机器人是一种能够进行半自主或全自主工作的智能机器,已被广泛应用于物流、宣传、医疗等多个领域。一般地,机器人在获取所处环境的全局地图之后,根据该全局地图规划全局路径,然后根据全局路径行走,以实现自主工作。但是,当全局路径上突然出现障碍物时,机器人会直接撞到该障碍物。因此,如何使机器人在行走的过程中避开障碍物是非常重要的。
3.相关技术中,机器人根据全局路径行走的过程中,使用dwa(dynamic window approach,动态窗口算法)进行局部路径规划,以避开障碍物。
4.然而,在障碍物比较多的情况下,或者因障碍物而导致可通行路径比较狭窄的情况下,dwa算法容易陷入局部最优解,从而导致机器人在两个位置之间来回徘徊,无法继续前进。


技术实现要素:

5.本技术提供了一种路径规划方法、装置、机器人和存储介质,可以规划出能够避开障碍物的局部路径,且在根据该局部路径移动时会一直前进,而不会在两个位置之间来回徘徊。所述技术方案如下:
6.第一方面,提供了一种路径规划方法,所述方法包括:
7.若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
8.将所述局部地图划分为多个网格,所述局部地图包括第一位置、第二位置和障碍物位置,所述第一位置是所述机器人当前所在的位置、所述第二位置是所述全局路径在所述局部地图内的一段路径中与所述全局路径的目的地位置距离最近的位置,障碍物位置是所述局部地图中的障碍物所在的位置;
9.将所述第一位置所在网格作为第一目标网格添加到路径列表;
10.确定所述多个网格中满足预设条件的至少一个第二目标网格,所述预设条件包括:第二目标网格是与所述第二位置所在网格的距离小于所述第一目标网格与所述第二位置所在网格的距离,且第二目标网格不是所述障碍物位置所在网格;
11.获取从所述第一目标网格移动至所述至少一个第二目标网格中的每个第二目标网格的移动代价;
12.将在所述至少一个第二目标网格中移动代价最小的第二目标网格添加到所述路径列表;
13.若最新添加到所述路径列表的第二目标网格不是所述第二位置所在网格,则将所
述最新添加到所述路径列表的第二目标网格作为所述第一目标网格,返回执行所述确定所述多个网格中满足预设条件的至少一个第二目标网格的步骤以及后续步骤;
14.若最新添加到所述路径列表的第二目标网格是所述第二位置所在网格,则根据所述路径列表中的所有网格,在所述局部地图中确定从所述第一位置移动至所述第二位置的局部路径。
15.在本技术中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着将局部地图划分为多个网格,该局部地图包括第一位置、第二位置、障碍物位置,第一位置是机器人当前所在的位置,第二位置是全局路径位于局部地图内的一段路径中距离全局路径的目的地位置最近的位置。然后,机器人将第一位置所在网格作为第一目标网格添加到路径列表,确定该多个网格中满足预设条件的至少一个第二目标网格,接着获取从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价,将该至少一个第二目标网格中移动代价最小的第二目标网格添加到该路径列表,如此,也就确定了第一目标网格之后的后一个网格。在最新添加到该路径列表的第二目标网格不是第二位置所在网格的情况下,机器人将该最新添加到该路径列表的第二目标网格作为新的第一目标网格,继续确定新的第一目标网格之后的后一个网格,在最新添加到该路径列表的第二目标网格是第二位置所在网格的情况下,根据该路径列表中的所有网格,在局部地图中确定从第一位置移动至第二位置的局部路径。由于该预设条件包括第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离、且第二目标网格不是障碍物位置所在网格,所以使机器人只能将位于第一目标网格向第二位置所在网格靠近的方向上的、不存在障碍物的第二目标网格添加到该路径列表,也即只能将位于机器人移动方向的正前方的、不存在障碍物的第二目标网格添加到该路径列表。如此,根据该路径列表中的所有网格确定出的局部路径是能够避开障碍物的,且从第一位置所在网格不断向第二位置所在网格靠近的路径,从而机器人在根据该局部路径移动时,会一直前进至第二位置所在网格,而不会在两个位置之间来回徘徊。
16.可选地,所述全局路径是在全局地图中规划出的路径;
17.所述若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,包括:
18.若根据所述全局路径移动的过程中探测到不在所述全局地图的障碍物,则根据探测到的环境信息构建所述局部地图。
19.可选地,所述获取从所述第一目标网格移动至所述至少一个第二目标网格中的每个第二目标网格的移动代价,包括:
20.将所述障碍物位置所在网格周围预设范围内的网格所在区域确定为膨胀区域;
21.遍历计算所述至少一个第二目标网格中的所有第二目标网格,以获得从所述第一目标网格移动至所述至少一个第二目标网格中的每个第二目标网格的移动代价;
22.其中,遍历计算所述至少一个第二目标网格中的所有第二目标网格,包括:
23.以所述至少一个第二目标网格中的一个第二目标网格作为计算对象,记为计算网格;
24.将从所述第一目标网格移动至所述计算网格的距离作为第一距离,将从所述计算网格移动至所述第二位置所在网格的距离作为第二距离;
25.若所述计算网格不在所述膨胀区域内,则将所述第一距离、所述第二距离和预设惩罚值相加,得到从所述第一目标网格移动至所述计算网格的移动代价;
26.若所述计算网格在所述膨胀区域内,则将所述第一距离和所述第二距离相加,得到从所述第一目标网格移动至所述计算网格的移动代价。
27.可选地,所述预设条件还包括:第二目标网格是与所述第一目标网格相邻,且第二目标网格不是所述路径列表中的网格。
28.可选地,所述第一位置所在网格是所述机器人当前在所述多个网格中所占据的所有网格,所述障碍物位置所在网格是所述局部地图中的障碍物在所述多个网格中所占据的所有网格。
29.可选地,所述方法还包括:
30.在确定出所述局部路径后,使用动态窗口算法预测所述局部路径对应的目标速度;
31.若所述目标速度不为0,则以所述目标速度,按照所述局部路径移动;
32.若所述目标速度为0,则停止移动,并重新执行所述根据探测到的环境信息构建局部地图的步骤以及后续步骤。
33.可选地,所述若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图之前,还包括:
34.获取所述机器人当前所处环境的全局地图;
35.获取所述全局地图中的导航起始位置和目的地位置;
36.使用a星算法对所述全局地图进行规划,得到从所述导航起始位置移动至所述目的地位置的所述全局路径。
37.第二方面,提供了一种路径规划装置,应用于机器人,所述装置包括:
38.构建模块,用于若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
39.划分模块,用于将所述局部地图划分为多个网格,所述局部地图包括第一位置、第二位置和障碍物位置,所述第一位置是所述机器人当前所在的位置、所述第二位置是所述全局路径在所述局部地图内的一段路径中与所述全局路径的目的地位置距离最近的位置,障碍物位置是所述局部地图中的障碍物所在的位置;
40.第一添加模块,用于将所述第一位置所在网格作为第一目标网格添加到路径列表;
41.第一确定模块,用于确定所述多个网格中满足预设条件的至少一个第二目标网格,所述预设条件包括:第二目标网格是与所述第二位置所在网格的距离小于所述第一目标网格与所述第二位置所在网格的距离,且第二目标网格不是所述障碍物位置所在网格;
42.第一获取模块,用于获取从所述第一目标网格移动至所述至少一个第二目标网格中的每个第二目标网格的移动代价;
43.第二添加模块,用于将在所述至少一个第二目标网格中移动代价最小的第二目标网格添加到所述路径列表;
44.第一触发模块,用于若最新添加到所述路径列表的第二目标网格不是所述第二位置所在网格,则将所述最新添加到所述路径列表的第二目标网格作为所述第一目标网格,
触发所述第一确定模块确定所述多个网格中满足预设条件的至少一个第二目标网格;
45.第二确定模块,用于若最新添加到所述路径列表的第二目标网格是所述第二位置所在网格,则根据所述路径列表中的所有网格,在所述局部地图中确定从所述第一位置移动至所述第二位置的局部路径。
46.可选地,所述全局路径是在全局地图中规划出的路径;
47.所述构建模块还用于:
48.若根据所述全局路径移动的过程中探测到不在所述全局地图的障碍物,则根据探测到的环境信息构建所述局部地图。
49.可选地,所述获取模块用于:
50.将所述障碍物位置所在网格周围预设范围内的网格所在区域确定为膨胀区域;
51.遍历计算所述至少一个第二目标网格中的所有第二目标网格,以获得从所述第一目标网格移动至所述至少一个第二目标网格中的每个第二目标网格的移动代价;
52.其中,遍历计算所述至少一个第二目标网格中的所有第二目标网格,包括:
53.以所述至少一个第二目标网格中的一个第二目标网格作为计算对象,记为计算网格;
54.将从所述第一目标网格移动至所述计算网格的距离作为第一距离,将从所述计算网格移动至所述第二位置所在网格的距离作为第二距离;
55.若所述计算网格不在所述膨胀区域内,则将所述第一距离、所述第二距离和预设惩罚值相加,得到从所述第一目标网格移动至所述计算网格的移动代价;
56.若所述计算网格在所述膨胀区域内,则将所述第一距离和所述第二距离相加,得到从所述第一目标网格移动至所述计算网格的移动代价。
57.可选地,所述预设条件还包括:第二目标网格是与所述第一目标网格相邻,且第二目标网格不是所述路径列表中的网格。
58.可选地,所述第一位置所在网格是所述机器人当前在所述多个网格中所占据的所有网格,所述障碍物位置所在网格是所述局部地图中的障碍物在所述多个网格中所占据的所有网格。
59.可选地,所述装置还包括:
60.预测模块,用于在确定出所述局部路径后,使用动态窗口算法预测所述局部路径对应的目标速度;
61.移动模块,用于若所述目标速度不为0,则以所述目标速度,按照所述局部路径移动;
62.第二触发模块,用于若所述目标速度为0,则停止移动,并触发所述构建模块根据探测到的环境信息构建局部地图。
63.可选地,所述装置还包括:
64.第二获取模块,用于获取所述机器人当前所处环境的全局地图;
65.第三获取模块,用于获取所述全局地图中的导航起始位置和目的地位置;
66.第四获取模块,用于使用a星算法对所述全局地图进行规划,得到从所述导航起始位置移动至所述目的地位置的所述全局路径。
67.第三方面,提供了一种机器人,所述机器人包括存储器、处理器以及存储在所述存
储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的路径规划方法的步骤。
68.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的路径规划方法。
69.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的路径规划方法的步骤。
70.可以理解的是,上述第二方面、第三方面、第四方面、第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
71.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
72.图1是本技术实施例提供的一种路径规划方法的流程图;
73.图2是本技术实施例提供的一种路径规划装置的结构示意图;
74.图3为本技术实施例提供的一种机器人的结构示意图。
具体实施方式
75.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
76.应当理解的是,本技术提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,比如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
77.在对本技术实施例进行详细地解释说明之前,先对本技术实施例的应用场景予以说明。
78.现实生活中,机器人所处环境中会存在茶几、桌子、椅子、床、行人、其他移动设备等障碍物,因此,机器人如何规划出能够避开障碍物的路径是非常重要的。
79.为此,本技术实施例提供了一种路径规划方法,可以应用于机器人,例如,可以应用于移动服务型机器人等,也可以应用于其它类型的机器人,本技术实施例对此不作限定。
80.下面对本技术实施例提供的路径规划方法进行详细地解释说明。
81.一些实施例中,在使用机器人进行自主导航时,需要将导航起始位置和目的地位置发送给机器人,以使机器人在获取导航起始位置和目的地位置之后,可以规划出从导航起始位置移动至目的地位置的全局路径,从而可以根据全局路径,从导航起始位置移动至目的地位置。
82.具体地,机器人获取从导航起始位置移动至目的地位置的全局路径的操作可以为:获取机器人当前所处环境的全局地图;获取全局地图中的导航起始位置和目的地位置;使用a星算法对全局地图进行规划,得到从导航起始位置移动至目的地位置的全局路径。
83.全局地图是能够体现当前机器人所处环境整体布局的环境信息的地图。环境信息是能够反映当前机器人所处环境的信息。环境信息可以是机器人通过自身的传感器采集得到的,该传感器可以包括摄像头、激光雷达、碰撞传感器、距离传感器、跌落传感器等,本技术实施例对此不作限定。
84.导航起始位置是机器人进行导航时的起始位置。
85.目的地位置是机器人进行导航时需要到达的位置。
86.全局路径是在全局地图中规划出的路径。
87.a星算法是一种经典的路径规划算法,被应用于机器人,用于规划全局地图中的路径。
88.可选地,管理人员可以预先将构建好的全局地图存储至机器人,如此机器人就可以获取到全局地图。或者,机器人在进入一个新环境后,探测该环境,并根据探测到的环境信息构建全局地图,如此机器人就可以获取到全局地图。例如,机器人可根据探测到的环境信息,利用slam(simultaneous localization and mapping,同步定位与建图)技术构建全局地图。
89.其中,导航起始位置和目的地位置可以由管理人员直接存储至机器人,如此机器人获取导航起始位置和目的地位置。
90.机器人使用a星算法对全局地图进行规划的操作与相关技术中使用a星算法对某一地图进行规划的操作类似,本技术实施例对此不再赘述。当然,机器人还可以使用dijkstra(迪杰斯特拉)算法、bfs(bread3

first

search,广度优先算法)等路径规划算法规划全局路径,本技术实施例对此不作限定。
91.机器人所处的环境是会不断变化的。也就是说,相比于构建全局地图时的环境,机器人在实际移动时环境可能已经发生变化。如,机器人在根据全局地图中的全局路径进行移动的过程中,有一个椅子被放到了机器人移动的前方,且在全局路径上,此时若继续根据全局路径移动,机器人会直接撞到这个椅子。因此,机器人在根据全局路径移动的过程中,可以通过下述路径规划方法避开障碍物,并继续移动,以移动至目的地位置。
92.图1是本技术实施例提供的一种路径规划方法的流程图。参见图1,该方法包括以下步骤。
93.步骤101:若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图。
94.局部地图是机器人在根据全局地图中的全局路径移动的过程中,根据当前自身所处的位置周围的环境构建的地图。局部地图的区域大小小于全局地图的区域大小。由于局部地图是在机器人根据全局路径行走的过程中实时构建的,为保证路径规划的速率,机器人可以只构建固定区域大小的局部地图,该固定区域大小可以设置地较小,以快速规划出局部路径,防止因局部地图过大导致局部路径规划不及时而出现机器卡顿。
95.全局地图和局部地图中均可以包含障碍物信息。障碍物可以是茶几、地毯、桌子、椅子、人等,障碍物信息可以包括障碍物的位置、边界、高度等。由于局部地图是根据当前时
刻机器人在当前位置上所能探测到的环境信息构建的,因此,局部地图中包含的环境信息相比于全局地图中的与局部地图指示同一区域的部分地图更准确,因而根据局部地图规划出的局部路径可以避开障碍物。
96.若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,说明机器人在根据全局路径移动的过程中探测所处环境,若探测到的环境信息中包括障碍物,则根据探测到的环境信息构建局部地图。
97.机器人根据全局路径移动的过程中探测环境信息的操作可以为:在根据全局地图中的全局路径移动的过程中,利用自身具有的传感器探测所处环境,得到环境信息,从环境信息中获取障碍物。例如,机器人可以利用自身具有的激光雷达探测自身所处环境,激光雷达一般设置在机器人的顶部,在工作时,激光雷达进行360
°
旋转,并通过激光雷达的发射器向当前所处环境发射激光信号,激光信号在遇到障碍物时被反射,从而激光雷达的接收器接收反射回来的激光信号。激光雷达对接收的激光信号进行分析,以获取环境信息。当然,机器人也可以通过机器人的机身上安装的摄像头探测自身所处环境,具体可以通过摄像头来采集所处环境的图像,然后对采集的图像进行分析,得到环境信息。
98.机器人根据探测到的环境信息构建局部地图的操作可以为:根据探测到的环境信息,利用slam技术构建局部地图。当然,机器人还可以通过其它方式生成局部地图,本技术实施例对此不作限定。
99.进一步地,若机器人在根据全局地图中的全局路径移动的过程中探测到不在全局地图的障碍物,则根据探测到的环境信息构建局部地图。说明,机器人在根据全局地图中的全局路径移动的过程中,探测所处环境,若探测到的环境信息中包括不在全局地图的障碍物,也即有障碍物阻挡了全局路径,机器人需要绕过障碍物以便继续前行,则根据探测到的环境信息构建局部地图。也即说明,是在探测到不在全局地图的障碍物的情况下,才构建局部地图。
100.步骤102:机器人将局部地图划分为多个网格。
101.局部地图包括第一位置、第二位置和障碍物位置。
102.第一位置是机器人当前所在的位置,也即第一位置是局部地图中的局部路径的起始位置。
103.第二位置是全局路径在局部地图内的一段路径中与全局路径的目的地位置距离最近的位置,障碍物位置是局部地图中的障碍物所在的位置,也即第二位置是局部地图中的局部路径的终点位置。
104.障碍物位置是局部地图中的障碍物所在的位置。
105.一般地,在规划局部路径时,需要将局部地图划分为多个网格,以方便快捷地确定出局部路径。具体地,机器人可以按照预设规则将局部地图划分为多个网格。
106.预设规则可以预先进行设置。比如,预设规则可以是按照预先设定的区域大小(包括但不限于可以是4cm(厘米)*4cm的正方形大小)将局部地图划分为多个网格,这种情况下,多个网格的区域大小相同,且是固定的区域大小。当然,预设规则也可以根据具体的场景设置为其他规则,本技术实施例对此不作限定。
107.步骤103:机器人将第一位置所在网格作为第一目标网格添加到路径列表。
108.第一位置所在网格是机器人当前在该多个网格中所占据的所有网格。
109.第一目标网格是用于确定局部地图中的局部路径的网格。
110.路径列表用于存放确定出的可以用于构成局部地图中的局部路径的网格。
111.将第一位置所在网格作为第一目标网格,也即将第一位置所在网格作为局部地图中的局部路径的起始网格,也即将第一位置作为局部地图中的局部路径的起始位置。
112.机器人在规划局部地图中的局部路径时,先将第一位置所在网格作为第一目标网格,然后根据第一目标网格,确定下一个可以用于构成局部地图中的局部路径的网格。
113.步骤104:机器人确定多个网格中满足预设条件的至少一个第二目标网格。
114.该预设条件包括:第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离,且第二目标网格不是障碍物位置所在网格。可选地,该预设条件还可以包括:第二目标网格是与第一目标网格相邻,且第二目标网格不是路径列表中的网格。
115.第二目标网格是根据第一目标网格确定的可以用于构成局部地图中的局部路径的网格。
116.障碍物位置所在网格是局部地图中的障碍物在该多个网格中所占据的所有网格。
117.第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离,说明第二目标网格与第二位置所在网格之间的距离要比第一目标网格与第二位置所在网格之间的距离近,也即说明第二目标网格是在第一目标网格向第二位置所在网格靠近的方向上,也即第二目标网格是在机器人移动方向的正前方,以在机器人未移动过的网格中确定出不断靠近第二位置的网格。
118.第二目标网格不是障碍物位置所在网格,这样可以确定出能够避开障碍物的局部路径,从而机器人根据该局部路径移动的过程中,可以避开障碍物。
119.第二目标网格是与第一目标网格相邻,这样可以避免确定出的局部路径发生跳变,也就避免了机器人在移动过程中震荡。
120.第二目标网格不是路径列表中的网格,说明第二目标网格未被加入路径列表,这样可以避免同一个网格被反复加入路径列表,也就避免了机器人在移动过程中退回某一个网格。
121.示例地,若预设条件为:第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离、且第二目标网格不是障碍物位置所在网格、第二目标网格是与第一目标网格相邻、且第二目标网格不是路径列表中的网格,则机器人根据第一目标网格,确定出的第二目标网格实际上是位于机器人移动方向的正前方的网格中,与第一目标网格相邻、且不存在障碍物、也尚未被加入路径列表的网格。
122.步骤105:机器人获取从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价。
123.移动代价是从第一目标网格移动至该至少一个第二目标网格中的任意一个第二目标网格所需的代价。第二目标网格的移动代价越小,说明机器人从第一目标网格移动至这个第二目标网格所需的代价越小。
124.具体地,步骤105的操作可以为:将障碍物所在网格周围预设范围内的网格所在区域确定为膨胀区域;遍历计算该至少一个第二目标网格中的所有第二目标网格,以获得从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价。
125.膨胀区域是障碍物所在网格周围预设范围内的网格所在区域。该预设范围可以预先进行设置,如,该预设范围为可以设置为0.5m(米),这种情况下,该膨胀区域为障碍物所在网格周围0.5m以内的网格所在区域。
126.其中,遍历计算该至少一个第二目标网格中的所有第二目标网格,以获得从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价的操作可以为:以该至少一个第二目标网格中的一个第二目标网格作为计算对象,记为计算网格;将从第一目标网格移动至该计算网格的距离作为第一距离,将从该计算网格移动至第二位置所在网格的距离作为第二距离;若计算网格不在膨胀区域内,则将第一距离、第二距离和预设惩罚值相加,得到从第一目标网格移动至该计算网格的移动代价;若该计算网格在膨胀区域内,则将第一距离和第二距离相加,得到从第一目标网格移动至该计算网格的移动代价。
127.如此,遍历该至少一个第二目标网格中的所有第二目标网格,针对每一个第二目标网格计算出从第一目标网格移动至这一第二目标网格的移动代价。
128.以该至少一个第二目标网格中的一个第二目标网格作为计算对象,说明是为了计算这个第二目标网格的移动代价。
129.计算网格是当前需要计算移动代价的第二目标网格。
130.预设惩罚值可以预先进行设置,如该预设惩罚值可以设置为20。
131.机器人在获取计算网格的移动代价时,先判断该计算网格是否在膨胀区域内,若该计算网格在膨胀区域,则将从第一目标网格移动至该计算网格的距离(即,第一距离)和从该计算网格移动至第二位置所在网格的距离(即,第二距离)相加,得到从第一目标网格移动至该计算网格的移动代价;若该计算网格不在膨胀区域,则将从第一目标网格移动至该计算网格的距离(即,第一距离)、从该计算网格移动至第二位置所在网格的距离(即,第二距离)和预设惩罚值相加,得到从第一目标网格移动至该计算网格的移动代价。这种情况下,相比于在膨胀区域内的网格,不在膨胀区域内的网格的移动代价更高。如此,可以使机器人偏向于在膨胀区域内确定可以用于构成局部路径的网格,也即使机器人在障碍物所在网格周围确定可以用于构成局部路径的网格,以快速地规划出能够避开障碍物的局部路径。
132.步骤106:机器人将在该至少一个第二目标网格中移动代价最小的第二目标网格添加到该路径列表。
133.对于该至少一个第二目标网格中移动代价最小的第二目标网格,机器人从第一目标网格移动至这个第二目标网格所需的移动代价最小。因而机器人在得到该至少一个第二目标网格中每个第二目标网格的移动代价后,将该至少一个第二目标网格中移动代价最小的第二目标网格添加到路径列表,如此,也就是确定了局部路径中处于第一目标网格之后的后一个网格,从而方便后续根据该路径列表中的所有网格确定局部地图中的局部路径。
134.步骤107:若最新添加到该路径列表的第二目标网格不是第二位置所在网格,则机器人将该最新添加到该路径列表的第二目标网格作为第一目标网格,返回执行上述步骤104

步骤106。
135.在最新添加到该路径列表的第二目标网格不是第二位置所在网格的情况下,机器人将最新添加到该路径列表的第二目标网格作为新的第一目标网格,接着重新确定该多个网格中满足该预设条件的至少一个第二目标网格,获取从新的第一目标网格移动至该至少
一个第二目标网格中的每个第二目标网格的移动代价,然后将该至少一个第二目标网格中移动代价最小的第二目标网格添加到该路径列表,如此,也就是确定了局部路径中处于新的第一目标网格之后的后一个网格。在最新添加到该路径列表的第二目标网格还不是第二位置所在网格的情况下,继续将最新添加到该路径列表的第二目标网格确定为新的第一目标网格,以此循环,依次确定局部路径中处于新的第一目标网格之后的下一个网格,直至最新添加到该路径列表的第二目标网格是第二位置所在网格,也即最新添加到该路径列表的第二目标网格是局部路径的终点位置,则执行步骤108。
136.步骤108:若最新添加到该路径列表的第二目标网格是第二位置所在网格,则机器人根据该路径列表中的所有网格,在该局部地图中确定从第一位置移动至第二位置的局部路径。
137.若最新添加到该路径列表的第二目标网格是第二位置所在网格,则机器人当前获取到从第一位置所在网格移动至第二位置所在网格所需要经过的所有网格,如此机器人就可根据该路径列表中的所有网格,在该局部地图中确定从第一位置移动至第二位置的局部路径。
138.示例地,机器人可以按照该路径列表中的网格的添加顺序,将该路径列表中的所有网格的中心点依次连接起来,以此得到从第一位置移动至第二位置的局部路径。
139.可选地,机器人在确定出局部路径后,使用dwa(dynamic window approach,动态窗口算法)算法预测该局部路径对应的目标速度;若目标速度不为0,则以目标速度,按照局部路径移动;若目标速度为0,则停止移动,并重新执行上述步骤101。
140.dwa算法用于预测机器人的移动速度,使机器人根据该移动速度行走,还可以使机器人在碰到障碍物之前停下来,以达到紧急避障的效果,避免造成机器人损伤。
141.dwa算法具体是根据机器人所能达到的最大速度、最小速度、电机性能等影响,确定出移动速度范围,然后根据障碍物信息以及局部路径,从该移动速度范围中,确定局部路径对应的目标速度,以使机器人以目标速度,按照局部路径移动。由于机器人自身具有的传感器可以实时探测到所处环境的环境信息,且dwa算法可以实时调取机器人探测到的该环境信息,因此在机器人移动方向的前方突然出现一个障碍物时,dwa算法会根据自身当前的移动速度和当前位置与该障碍物之间的距离,预测目标速度,使机器人根据目标速度移动时可以在碰到障碍物之前停下来,以达到紧急避障的效果。
142.目标速度为0,说明dwa算法预测出的移动速度为0,此时需要控制机器人停止移动,这种情况下,机器人需要重新执行上述步骤101,以使机器人采集当前环境信息,并根据采集到的当前环境信息构建局部地图,重新规划局部路径,以使机器人在当前环境下继续行走,直至机器人行走至全局路径的终点位置。
143.在本技术实施例中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着将局部地图划分为多个网格,该局部地图包括第一位置、第二位置、障碍物位置,第一位置是机器人当前所在的位置,第二位置是全局路径位于局部地图内的一段路径中距离全局路径的目的地位置最近的位置。然后,机器人将第一位置所在网格作为第一目标网格添加到路径列表,确定该多个网格中满足预设条件的至少一个第二目标网格,接着获取从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价,将该至少一个第二目标网格中移动代价最小的第二目标网格添加
到该路径列表,如此,也就确定了第一目标网格之后的后一个网格。在最新添加到该路径列表的第二目标网格不是第二位置所在网格的情况下,机器人将该最新添加到该路径列表的第二目标网格作为新的第一目标网格,继续确定新的第一目标网格之后的后一个网格,在最新添加到该路径列表的第二目标网格是第二位置所在网格的情况下,根据该路径列表中的所有网格,在局部地图中确定从第一位置移动至第二位置的局部路径。由于该预设条件包括第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离、且第二目标网格不是障碍物位置所在网格,所以使机器人只能将位于第一目标网格向第二位置所在网格靠近的方向上的、不存在障碍物的第二目标网格添加到该路径列表,也即只能将位于机器人移动方向的正前方的、不存在障碍物的第二目标网格添加到该路径列表。如此,根据该路径列表中的所有网格确定出的局部路径是能够避开障碍物的,且从第一位置所在网格不断向第二位置所在网格靠近的路径,从而机器人在根据该局部路径移动时,会一直前进至第二位置所在网格,而不会在两个位置之间来回徘徊。
144.图2是本技术实施例提供的一种路径规划装置的结构示意图。该路径规划装置可以由软件、硬件或者两者的结合实现成为机器人的部分或者全部,该机器人可以为下文图3所示的机器人。参见图2,该装置包括:构建模块201、划分模块202、第一添加模块203、第一确定模块204、第一获取模块205、第二添加模块206、第一触发模块207、第二确定模块208。
145.构建模块201,用于若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
146.划分模块202,用于将局部地图划分为多个网格,局部地图包括第一位置、第二位置和障碍物位置,第一位置是机器人当前所在的位置、第二位置是全局路径在局部地图内的一段路径中与全局路径的目的地位置距离最近的位置,障碍物位置是局部地图中的障碍物所在的位置;
147.第一添加模块203,用于将第一位置所在网格作为第一目标网格添加到路径列表;
148.第一确定模块204,用于确定该多个网格中满足预设条件的至少一个第二目标网格,该预设条件包括:第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离,且第二目标网格不是障碍物位置所在网格;
149.第一获取模块205,用于获取从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价;
150.第二添加模块206,用于将在该至少一个第二目标网格中移动代价最小的第二目标网格添加到路径列表;
151.第一触发模块207,用于若最新添加到所述路径列表的第二目标网格不是所述第二位置所在网格,则将该最新添加到该路径列表的第二目标网格作为第一目标网格,触发第一确定模块确定所述多个网格中满足预设条件的至少一个第二目标网格;
152.第二确定模块208,用于若最新添加到所述路径列表的第二目标网格是所述第二位置所在网格,则根据该路径列表中的所有网格,在所述局部地图中确定从所述第一位置移动至所述第二位置的局部路径。
153.可选地,全局路径是在全局地图中规划出的路径;
154.构建模块201还用于:
155.若根据所述全局路径移动的过程中探测到不在所述全局地图的障碍物,则根据探
测到的环境信息构建所述局部地图。
156.可选地,第一获取模块205用于:
157.将障碍物位置所在网格周围预设范围内的网格所在区域确定为膨胀区域;
158.遍历计算该至少一个第二目标网格中的所有第二目标网格,以获得从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价;
159.其中,遍历计算该至少一个第二目标网格中的所有第二目标网格,包括:
160.以该至少一个第二目标网格中的一个第二目标网格作为计算对象,记为计算网格;
161.将从第一目标网格移动至该计算网格的距离作为第一距离,将从该计算网格移动至第二位置所在网格的距离作为第二距离;
162.若该计算网格不在膨胀区域内,则将第一距离、第二距离和预设惩罚值相加,得到从第一目标网格移动至该计算网格的移动代价;
163.若该计算网格在膨胀区域内,则将第一距离和第二距离相加,得到从第一目标网格移动至该计算网格的移动代价。
164.可选地,该预设条件还包括:第二目标网格是与第一目标网格相邻,且第二目标网格不是该路径列表中的网格。
165.可选地,第一位置所在网格是机器人当前在所述多个网格中所占据的所有网格,障碍物位置所在网格是局部地图中的障碍物在该多个网格中所占据的所有网格。
166.可选地,该装置还包括:
167.预测模块,用于在确定出局部路径后,使用动态窗口算法预测该局部路径对应的目标速度;
168.移动模块,用于若所述目标速度不为0,则以所述目标速度,按照所述局部路径移动;
169.第二触发模块,用于若所述目标速度为0,则停止移动,并触发构建模块根据探测到的环境信息构建局部地图。
170.可选地,该装置还包括:
171.第二获取模块,用于获取机器人当前所处环境的全局地图;
172.第三获取模块,用于获取全局地图中的导航起始位置和目的地位置;
173.第四获取模块,用于使用a星算法对全局地图进行规划,得到从导航起始位置移动至目的地位置的全局路径。
174.在本技术实施例中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着将局部地图划分为多个网格,该局部地图包括第一位置、第二位置、障碍物位置,第一位置是机器人当前所在的位置,第二位置是全局路径位于局部地图内的一段路径中距离全局路径的目的地位置最近的位置。然后,机器人将第一位置所在网格作为第一目标网格添加到路径列表,确定该多个网格中满足预设条件的至少一个第二目标网格,接着获取从第一目标网格移动至该至少一个第二目标网格中的每个第二目标网格的移动代价,将该至少一个第二目标网格中移动代价最小的第二目标网格添加到该路径列表,如此,也就确定了第一目标网格之后的后一个网格。在最新添加到该路径列表的第二目标网格不是第二位置所在网格的情况下,机器人将该最新添加到该路径列表的
第二目标网格作为新的第一目标网格,继续确定新的第一目标网格之后的后一个网格,在最新添加到该路径列表的第二目标网格是第二位置所在网格的情况下,根据该路径列表中的所有网格,在局部地图中确定从第一位置移动至第二位置的局部路径。由于该预设条件包括第二目标网格是与第二位置所在网格的距离小于第一目标网格与第二位置所在网格的距离、且第二目标网格不是障碍物位置所在网格,所以使机器人只能将位于第一目标网格向第二位置所在网格靠近的方向上的、不存在障碍物的第二目标网格添加到该路径列表,也即只能将位于机器人移动方向的正前方的、不存在障碍物的第二目标网格添加到该路径列表。如此,根据该路径列表中的所有网格确定出的局部路径是能够避开障碍物的,且从第一位置所在网格不断向第二位置所在网格靠近的路径,从而机器人在根据该局部路径移动时,会一直前进至第二位置所在网格,而不会在两个位置之间来回徘徊。
175.需要说明的是:上述实施例提供的路径规划装置在规划路径时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
176.上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术实施例的保护范围。
177.上述实施例提供的路径规划装置与路径规划方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
178.图3为本技术实施例提供的一种机器人的结构示意图。如图3所示,机器人3包括:处理器30、存储器31以及存储在存储器31中并可在处理器30上运行的计算机程序32,处理器30执行计算机程序32时实现上述实施例中的路径规划方法中的步骤。
179.在具体实现中,图3仅仅是机器人3的举例,并不构成对机器人3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
180.处理器30可以是中央处理单元(central processing unit,cpu),处理器30还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
181.存储器31在一些实施例中可以是机器人3的内部存储单元,比如机器人3的硬盘或内存。存储器31在另一些实施例中也可以是机器人3的外部存储设备,比如计算机设备3上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器31还可以既包括计算机设备3的内部存储单元也包括外部存储设备。存储器31用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,比如计算机程序的程序代码等。存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
182.本技术实施例还提供了一种机器人,该机器人包括:至少一个处理器、存储器以及存储在该存储器中并可在该至少一个处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述任意各个方法实施例中的步骤。
183.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
184.本技术实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
185.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、rom(read

only memory,只读存储器)、ram(random access memory,随机存取存储器)、cd

rom(compact disc read

only memory,只读光盘)、磁带、软盘和光数据存储设备等。本技术提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
186.应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
187.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
188.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
189.在本技术所提供的实施例中,应该理解到,所揭露的装置/机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/机器人实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
190.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
191.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实
施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1