一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-12-15 02:09:00 来源:中国专利 TAG:


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


背景技术:

2.一般地,环境中会存在桌子、椅子、床等障碍物,这些障碍物会阻碍机器人行走,因此机器人如何获取到能够避开这些障碍物的路径是非常重要的。
3.相关技术中,机器人获取全局地图之后,根据该全局地图规划全局路径,在根据该全局路径行走时,实时探测周围环境,若探测到周围环境中存在障碍物,则构建局部地图,从全局路径中选取一个位置,然后使用a星算法在局部地图中规划由当前位置至所选取的位置的局部路径。
4.然而,相比于构建全局地图时的环境,机器人移动时周围环境中的障碍物情况很有可能已经发生变化,因而从全局路径中选取的位置有可能落在障碍物区域,此时使用a星算法将无法规划出由当前位置至所选取的位置的局部路径。


技术实现要素:

5.本技术提供了一种路径规划方法、装置、机器人和存储介质,可以在第二位置点存在障碍物的情况下,根据a星算法成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动,还可以减少搜索范围,提高机器人规划局部路径的速率,以此满足机器人规划局部路径时的高频率要求。所述技术方案如下:
6.第一方面,提供了一种路径规划方法,应用于机器人,所述方法包括:
7.若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
8.获取所述局部地图中的第一位置点,所述第一位置点是所述机器人当前所处的位置点;
9.将所述全局路径位于所述局部地图内的一段路径中与所述第一位置点的距离为第一预设距离的位置点作为第二位置点;
10.根据a星算法获取所述局部地图中的第一局部路径,所述第一局部路径是由所述第一位置点至目标位置点的路径,所述目标位置点是根据所述第二位置点确定出的不存在障碍物的位置点。
11.在本技术中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着获取局部地图中的第一位置点,将全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点作为第二位置点,然后根据a星算法获取局部地图中的由第一位置点至目标位置点的路径。由于第二位置点是全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点,也即说明,是在全局路径处于局部地图内的一段路径中选取与机器人较近的目标点作为局部路径
的终点,因此,可以减少搜索范围,提高机器人规划局部路径的速率,以此满足机器人规划局部路径时的高频率要求,从而防止机器人因局部路径规划不及时而出现机器卡顿。其次,由于目标位置点是根据第二位置点确定出的不存在障碍物的位置点,所以根据a星算法能够成功获取到由第一位置点至目标位置点的路径,也即能够成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动。
12.可选地,所述全局路径是在全局地图中规划出的路径;
13.所述若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,包括:
14.若根据所述全局路径移动的过程中探测到不在所述全局地图的障碍物,则根据探测到的环境信息构建所述局部地图。
15.可选地,所述根据a星算法获取所述局部地图中的第一局部路径,包括:
16.使用所述a星算法在所述局部地图中规划第二局部路径,所述第二局部路径是由所述第一位置点至所述第二位置点的路径;
17.在使用所述a星算法规划所述第二局部路径的过程中,根据所述第二位置点从规划出的路径点中选择一个路径点作为所述目标位置点,将已规划出的由所述第一位置点至所述目标位置点的路径作为所述第一局部路径。
18.可选地,所述在使用所述a星算法规划所述第二局部路径的过程中,根据所述第二位置点从规划出的路径点中选择一个路径点作为所述目标位置点,包括:
19.在使用所述a星算法规划所述第二局部路径的过程中,若最新规划出的路径点与所述第二位置点的距离小于或等于第二预设距离,则将所述路径点作为所述目标位置点。
20.可选地,所述在使用所述a星算法规划所述第二局部路径的过程中,根据所述第二位置点从规划出的路径点中选择一个路径点作为所述目标位置点,包括:
21.在使用所述a星算法规划所述第二局部路径的过程中,若规划出的所有路径点包括所述局部地图内的无障碍物区域中的所有位置点,且不包括所述第二位置点,则将规划出的所有路径点中距离所述第二位置点最近的路径点作为所述目标位置点。
22.可选地,所述在使用所述a星算法规划所述第二局部路径的过程中,根据所述第二位置点从规划出的路径点中选择一个路径点作为所述目标位置点,包括:
23.在使用所述a星算法规划所述第二局部路径的过程中,若规划出的连续n个路径点与所述第二位置点之间的距离依次增大,则将规划出的所有路径点中距离所述第二位置点最近的路径点作为所述目标位置点,所述n为大于或等于2的整数。
24.可选地,所述根据a星算法获取所述局部地图中的第一局部路径之后,还包括:
25.使用动态窗口算法预测所述第一局部路径对应的目标速度;
26.若所述目标速度不为0,则以所述目标速度,按照所述第一局部路径移动;
27.若所述目标速度为0,则停止移动,并重新执行所述根据探测到的环境信息构建局部地图的步骤以及后续步骤。
28.第二方面,提供了一种路径规划装置,应用于机器人,所述装置包括:
29.构建模块,用于若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
30.第一获取模块,用于获取所述局部地图中的第一位置点,所述第一位置点是所述
机器人当前所处的位置点;
31.第二获取模块,用于将所述全局路径位于所述局部地图内的一段路径中与所述第一位置点的距离为第一预设距离的位置点作为第二位置点;
32.第三获取模块,用于根据a星算法获取所述局部地图中的第一局部路径,所述第一局部路径是由所述第一位置点至目标位置点的路径,所述目标位置点是根据所述第二位置点确定出的不存在障碍物的位置点。
33.可选地,所述全局路径是在全局地图中规划出的路径;
34.所述构建模块还用于:
35.若根据所述全局路径移动的过程中探测到不在所述全局地图的障碍物,则根据探测到的环境信息构建所述局部地图。
36.可选地,所述第三获取模块包括:
37.规划单元,用于使用所述a星算法在所述局部地图中规划第二局部路径,所述第二局部路径是由所述第一位置点至所述第二位置点的路径;
38.选择单元,用于在使用所述a星算法规划所述第二局部路径的过程中,根据所述第二位置点从规划出的路径点中选择一个路径点作为所述目标位置点,将已规划出的由所述第一位置点至所述目标位置点的路径作为所述第一局部路径。
39.可选地,所述选择单元用于:
40.在使用所述a星算法规划所述第二局部路径的过程中,若最新规划出的路径点与所述第二位置点的距离小于或等于第二预设距离,则将所述路径点作为所述目标位置点。
41.可选地,所述选择单元用于:
42.在使用所述a星算法规划所述第二局部路径的过程中,若规划出的所有路径点包括所述局部地图内的无障碍物区域中的所有位置点,且不包括所述第二位置点,则将规划出的所有路径点中距离所述第二位置点最近的路径点作为所述目标位置点。
43.可选地,所述选择单元用于:
44.在使用所述a星算法规划所述第二局部路径的过程中,若规划出的连续n个路径点与所述第二位置点之间的距离依次增大,则将规划出的所有路径点中距离所述第二位置点最近的路径点作为所述目标位置点,所述n为大于或等于2的整数。
45.可选地,所述装置还包括:
46.预测模块,用于使用动态窗口算法预测所述第一局部路径对应的目标速度;
47.移动模块,用于若所述目标速度不为0,则以所述目标速度,按照所述第一局部路径移动;
48.第一触发模块,用于在所述目标速度为0的情况下,则停止移动,并触发所述构建模块根据探测到的环境信息构建局部地图。
49.第三方面,提供了一种机器人,所述机器人包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的路径规划方法。
50.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的路径规划方法。
51.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得
计算机执行上述的路径规划方法的步骤。
52.可以理解的是,上述第二方面、第三方面、第四方面、第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
53.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1是本技术实施例提供的一种路径规划方法的流程图;
55.图2是本技术实施例提供的一种路径规划的结构示意图;
56.图3为本技术实施例提供的一种机器人的结构示意图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
58.应当理解的是,本技术提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,比如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
59.在对本技术实施例进行详细地解释说明之前,先对本技术实施例的应用场景予以说明。
60.a星算法是一种经典的路径规划算法,被应用于机器人,用于规划环境地图中的路径。具体地,a星算法可以包括以下步骤(1)

步骤(7):
61.(1)将环境地图划分为多个网格,该环境地图包括机器人当前所处的位置点、机器人需要到达的终点;
62.(2)将机器人当前所处的位置点所在网格作为第一目标网格添加到路径列表;
63.(3)确定该多个网格中与第一目标网格相邻、且不是障碍物所在网格的至少一个第二目标网格;
64.(4)遍历计算该至少一个第二目标网格中的所有第二目标网格,以获得由第一目标网格至该至少一个第二目标网格中的每个第二目标网格的移动代价;其中,遍历计算该至少一个第二目标网格中的所有第二目标网格的所有网格,包括:以该至少一个第二目标网格中的一个第二目标网格作为计算对象,记为计算网格;将由该计算网格至机器人需要到达的终点所在网格的距离和由第一目标网格至该计算网格的距离相加,得到由第一目标网格移动至该计算网格的移动代价;
65.(5)将该至少一个第二目标网格中移动代价最小的第二目标网格添加到该路径列
表;
66.(6)若最新添加到该路径列表中的第二目标网格不是机器人需要到达的终点所在网格,则将该最新添加到该路径列表的第二目标网格作为第一目标网格,返回上述步骤(3);
67.(7)若最新添加到该路径列表中的第二目标网格是机器人需要到达的终点所在网格,则根据该路径列表中的网格的添加顺序,将该路径列表中的所有网格的中心点依次连接起来,得到由机器人当前所处的位置点至机器人需要到达的终点的路径。
68.由于a星算法是在环境地图中的不是障碍物所在网格的多个网格中确定可以用于构成环境地图中的路径的网格,因此,在机器人需要到达的终点所在网格存在障碍物的情况下,a星算法无法规划出由机器人当前所处的位置点至机器人需要到达的终点的路径。
69.为此,本技术实施例提供了一种路径规划方法,可以应用于机器人,例如,可以应用于移动服务型机器人等,也可以应用于其它类型的机器人,本技术实施例对此不作限定。本技术实施例提供的路径规划方法可以根据a星算法成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动,还可以减少搜索范围,提高机器人规划局部路径的速率,以此满足机器人规划局部路径时的高频率要求。
70.下面对本技术实施例提供的路径规划方法进行详细地解释说明。
71.图1是本技术实施例提供的一种路径规划方法的流程图。参见图1,该方法包括以下步骤。
72.步骤101:若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图。
73.环境信息是能够反映当前机器人所处环境的信息。环境信息可以是机器人通过自身的传感器采集得到的,该传感器可以包括摄像头、激光雷达、碰撞传感器、距离传感器、跌落传感器等,本技术实施例对此不作限定。
74.全局地图是能够体现当前机器人所处环境整体布局的环境信息的地图。可选地,管理人员可以预先将构建好的全局地图存储至机器人,如此机器人就可以获取到全局地图。或者,机器人在进入一个新环境后,探测该环境,并根据探测到的环境信息构建全局地图,如此机器人就可以获取到全局地图。例如,机器人可根据探测的环境信息,利用slam(simultaneous localization and mapping,同步定位与建图)技术构建全局地图。
75.全局路径是根据全局地图规划出的路径。可选地,机器人获取全局地图之后,可以使用路径规划算法规划全局路径。如,机器人在获取全局地图之后,可以使用a星算法规划全局路径,当然机器人也可以使用dijkstra(迪杰斯特拉)算法、bfs(bread3

first

search,广度优先查找)算法等路径规划算法规划全局路径,本技术实施例对此不作限定。
76.局部地图是机器人在根据全局地图中的全局路径移动的过程中,根据当前自身所处的位置周围的环境构建的地图。局部地图的区域大小小于全局地图的区域大小。由于局部地图是在机器人根据全局路径行走的过程中实时构建的,为保证路径规划的速率,机器人可以只构建固定区域大小的局部地图,该固定区域大小可以设置地较小,以快速规划出局部路径,防止因局部地图过大导致局部路径规划不及时而出现机器卡顿。
77.全局地图和局部地图中均可以包含障碍物信息。障碍物可以是茶几、地毯、桌子、椅子、人等,障碍物信息可以包括障碍物的位置、边界、高度等。
78.机器人所处的环境是会不断变化的。也就是说,相比于构建全局地图时的环境,机器人在实际移动时环境可能已经发生变化。如,机器人在根据全局地图中的全局路径进行移动的过程中,有一个椅子被放到了机器人移动的前方,且在全局路径上,此时若继续根据全局路径移动,机器人会直接撞到这个椅子。因此,机器人在根据全局路径移动的过程中,需要探测自身所处环境,并根据探测到环境信息构建局部地图,根据局部地图规划局部路径,然后按照局部路径移动,以使机器人避开障碍物。由于局部地图是根据当前时刻机器人在当前位置上所能探测到的环境信息构建的,因此,局部地图中包含的环境信息相比于全局地图中的与局部地图指示同一区域的部分地图更准确,因而根据局部地图规划出的局部路径可以避开障碍物。
79.若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,说明机器人在根据全局路径移动的过程中探测所处环境,若探测到的环境信息中包括障碍物,则根据探测到的环境信息构建局部地图。
80.机器人根据全局路径移动的过程中探测环境信息的操作可以为:在根据全局地图中的全局路径移动的过程中,利用自身具有的传感器探测所处环境,得到环境信息。例如,机器人可以利用自身具有的激光雷达探测自身所处环境,激光雷达一般设置在机器人的顶部,在工作时,激光雷达进行360
°
旋转,并通过激光雷达的发射器向当前所处环境发射激光信号,激光信号在遇到障碍物时被反射,从而激光雷达的接收器接收反射回来的激光信号。激光雷达对接收的激光信号进行分析,以获取环境信息。当然,机器人也可以通过机器人的机身上安装的摄像头探测自身所处环境,具体可以通过摄像头来采集所处环境的图像,然后对采集的图像进行分析,得到环境信息。
81.机器人根据探测到的环境信息构建局部地图的操作可以为:根据探测到的环境信息,利用slam技术构建局部地图。当然,机器人还可以通过其它方式生成局部地图,本技术实施例对此不作限定。
82.进一步地,若机器人在根据全局地图中的全局路径移动的过程中探测到不在全局地图的障碍物,则根据探测到的环境信息构建局部地图。说明,机器人在根据全局地图中的全局路径移动的过程中,探测所处环境,若探测到的环境信息中包括不在全局地图的障碍物,也即有障碍物阻挡了全局路径,机器人需要绕过障碍物以便继续前行,则根据探测到的环境信息构建局部地图。也即说明,是在探测到不在全局地图的障碍物的情况下,才构建局部地图。
83.步骤102:机器人获取局部地图中的第一位置点。
84.第一位置点是机器人当前所处的位置点,也即第一位置点是局部地图中的局部路径的起点。
85.在一些实施例中,机器人可以将局部地图划分为多个网格,该多个网格中的每个网格就是一个位置点。也就是说,本技术实施例中所述的位置点实际上就是局部地图中的网格。具体地,机器人可以按照预设规则将局部地图划分为多个网格。预设规则可以预先进行设置。比如,预设规则可以是按照预先设定的区域大小(包括但不限于可以是4cm(厘米)*4cm的正方形大小)将局部地图划分为多个网格,这种情况下,多个网格的区域大小相同,且是固定的区域大小。当然,预设规则也可以根据具体的场景设置为其他规则,本技术实施例对此不作限定。
86.步骤103:机器人将全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点作为第二位置点。
87.第二位置点是局部地图中的局部路径的终点。
88.第一预设距离可以预先进行设置。比如,第一预设距离可以是1m(米),此时是将全局路径处于局部地图内的一段路径中与第一位置点的距离为1m的位置点作为第二位置点,也即是将全局路径处于局部地图内的一段路径中与第一位置点的距离为1m的位置点作为局部地图中的局部路径的终点。第一预设距离可以根据机器人自身的算力和实际需求进行设置,本技术实施例对此不作限定。
89.将全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点作为第二位置点,也即,是将全局路径处于局部地图内的一段路径中与机器人当前所处的位置点的距离为第一预设距离的位置点作为局部路径的终点,也即说明,是在全局路径处于局部地图内的一段路径中选取与机器人较近的目标点作为局部路径的终点,如此,可以减少搜索范围,提高机器人规划局部路径的速率,以满足机器人在局部路径规划时的高频率要求,从而防止机器人因局部路径规划不及时而出现机器卡顿。
90.值得注意的是,机器人所处的环境是会不断变化的。也就是说,相比于构建全局地图时的环境,机器人在实际移动时环境可能已经发生变化。因此,从全局路径位于局部地图内的一段路径中选取的第二位置点有可能存在障碍物。
91.步骤104:机器人根据a星算法获取局部地图中的第一局部路径。
92.第一局部路径是由第一位置点至目标位置点的路径。
93.目标位置点是根据第二位置点确定出的不存在障碍物的位置点,说明a星算法根据第一位置点和目标位置点能够成功获取到由第一位置点至目标位置点的路径,也即能够成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动。
94.具体地,步骤104的操作可以为:机器人使用a星算法在局部地图中规划第二局部路径;在使用a星算法规划第二局部路径的过程中,根据第二位置点从规划出的路径点中选择一个路径点作为目标位置点,将已规划出的由第一位置点至目标位置点的路径作为第一局部路径。
95.第二局部路径是由第一位置点至第二位置点的路径。由于第二位置点有可能存在障碍物,且a星算法是在地图中的无障碍物区域规划路径的,因此,在第二位置点存在障碍物的情况下,使用a星算法无法规划出第二局部路径。
96.目标位置点是根据第二位置点从规划出的路径点中选择的一个路径点。本技术实施例中,不再将第二位置点作为局部路径的终点,而是将目标位置点作为局部路径的终点。
97.在使用a星算法规划第二局部路径的过程中规划出的路径点,是a星算法在执行过程中添加到路径列表中的网格,也即是可以用于确定局部地图中的局部路径的路径点。
98.根据第二位置点从规划出的路径点中选择一个路径点作为目标位置点,将已规划出的由第一位置点至目标位置点的路径作为第一局部路径,说明此时将目标位置点作为局部路径的终点,将得到的第一局部路径作为局部地图中的局部路径,后续机器人也是按照第一局部路径行走。
99.由于a星算法是在地图中的无障碍物区域规划路径的,因此从规划出的路径点中
选择的目标位置点是不存在障碍物的位置点。其次,目标位置点是根据第二位置点从规划出的路径点中选择的一个路径点,则说明在使用a星算法规划由第一位置点至第二位置点的路径(即第二局部路径)的过程中,已经确定出了从第一位置点至目标位置点的所有路径点,因而此时可以直接将已规划出的由第一位置点至目标位置点的路径作为第一局部路径。
100.在一些实施例中,若第二位置点不存在障碍物,则机器人可以直接根据a星算法获取到第一位置点至第二位置点的路径(即,第二局部路径)。
101.在另一些实施例中,机器人所处的环境是不断变化的,相比于构建全局地图时的环境,机器人实际移动时环境中的障碍物情况很有可能已经发生变化,因而从全局路径中选取的第二位置点有可能存在障碍物,此时使用a星算法将无法规划出由第一位置点至第二位置点的路径。这种情况下,可以通过下列几种可能的方式来获取局部路径:
102.第一种可能的方式中,机器人在使用a星算法规划第二局部路径的过程中,若最新规划出的路径点与第二位置点的距离小于或等于第二预设距离,则将该路径点作为目标位置点;将已规划出的由第一位置点至目标位置点的路径作为第一局部路径。
103.第二预设距离可以预先进行设置。比如,第二预设距离可以设置为20cm(厘米)。第二预设距离可以根据局部地图的大小来设置,若局部地图较小,则第二预设距离可以设置地较小;若局部地图较大,则第二预设距离可以设置地较大,本技术实施例对此不作限定。
104.最新规划出的路径点可以是最新添加到该路径列表中的网格。
105.若最新规划出的路径点与第二位置点的距离小于或等于第二预设距离,则机器人将该路径点作为目标位置点,然后将已规划出的由第一位置点至目标位置点的路径作为第一局部路径。也即,在最新规划出的路径点与第二位置点的距离小于或等于第二预设距离的情况下,将该最新规划出的路径点作为局部路径的终点,然后将已规划出的由第一位置点至目标位置点的路径作为第一局部路径,此时是将第一局部路径作为局部地图中的局部路径。在最新规划出的路径点与第二位置点的距离小于或等于第二预设距离的情况下,将该最新规划出的路径点作为局部路径的终点,也就是说,在本技术实施例中,在根据a星算法规划第二局部路径的过程中,可以不需要在最新规划的路径点是第二位置点的情况下才确定局部路径,而是在最新规划的路径点与第二位置点的距离小于或等于第二预设距离的情况下,就可以确定局部路径,如此可以提高机器人规划局部路径的速率,以满足机器人在局部路径规划时的高频率要求,从而防止机器人因局部路径规划不及时而出现机器卡顿。并且,在这种情况下,即使第二位置点存在障碍物,根据a星算法也依旧可以输出局部路径。
106.其中,机器人将已规划出的由第一位置点至目标位置点的路径作为第一局部路径的操作可以为:将已规划出的由第一位置点至目标位置点的所有路径点按照规划顺序依次连接起来,以得到由第一位置点至目标位置点的路径(也即第一局部路径)。
107.将已规划出的由第一位置点至目标位置点的所有路径点按照规划顺序依次连接起来,也即是按照添加顺序,将该路径列表中的所有网格的中心点依次连接起来,以得到第一局部路径。
108.在第二种可能的方式中,机器人在使用a星算法规划第二局部路径的过程中,若规划出的所有路径点包括局部地图内的无障碍物区域中的所有位置点,且不包括第二位置点,则将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点;将已规划
出的由第一位置点至目标位置点的路径作为第一局部路径。
109.规划出的所有路径点包括局部地图内的无障碍物区域中的所有位置点,且不包括第二位置点,说明当前已经遍历完局部地图内的所有无障碍物区域,但还是没有获取到为第二位置点的路径点,也就是说,机器人使用a星算法无法规划出第二局部路径,说明第二位置点很有可能存在障碍物。这种情况下,将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点,将已规划出的由第一位置点至目标位置点的路径作为第一局部路径,如此可以尽可能使第一局部路径的终点位于第二位置点附近。这样,在第二位置点很有可能存在障碍物的情况下,根据a星算法也依旧可以输出局部路径。
110.其中,机器人将已规划出的由第一位置点至目标位置点的路径作为第一局部路径的操作可以为:将已规划出的由第一位置点至目标位置点的所有路径点按照规划顺序依次连接起来,以得到第一局部路径。
111.在第三种可能的方式中,机器人在使用a星算法规划第二局部路径的过程中,若规划出的连续n个路径点与第二位置点之间的距离依次增大,则将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点;将已规划出的由第一位置点至目标位置点的路径作为第一局部路径。
112.规划出的连续n个路径点与第二位置点之间的距离依次增大,说明规划出的连续n个路径点逐渐远离第二位置点,也即,规划出的路径点与第二位置点之间的距离越来越大,说明第二位置点很有可能存在障碍物,使用a星算法有可能规划不出第二局部路径。这种情况下,将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点,将已规划出的由第一位置点至目标位置点的路径作为第一局部路径,如此可以尽可能使第一局部路径的终点位于第二位置点附近。这样,在第二位置点很有可能存在障碍物的情况下,根据a星算法也依旧可以输出局部路径。
113.n为大于或等于2的整数,n可以预先进行设置,如,n可以设置为5,本技术实施例对此不作限定。
114.示例地,若n为5,则机器人在使用a星算法规划第二局部路径的过程中,若规划出的连续5个路径点与第二位置点之间的距离依次增大,则将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点,然后将已规划出的由第一位置点至目标位置点的所有路径点按照规划顺序依次连接起来,以得到由第一位置点至目标位置点的路径(即,第一局部路径)。
115.可选地,机器人在确定出第一局部路径后,使用dwa(dynamic window approach,动态窗口算法)算法预测局部路径对应的目标速度;若目标速度不为0,则以目标速度,按照局部路径移动;若目标速度为0,则停止移动,并重新执行上述步骤101。
116.dwa算法用于预测机器人的移动速度,使机器人根据该移动速度行走,还可以使机器人在碰到障碍物之前停下来,以达到紧急避障的效果,避免造成机器人损伤。
117.dwa算法具体是根据机器人所能达到的最大速度、最小速度、电机性能等影响,确定出移动速度范围,然后根据障碍物信息以及局部路径,从该移动速度范围中,确定局部路径对应的目标速度,以使机器人以目标速度,按照局部路径移动。由于机器人自身具有的传感器可以实时探测到所处环境的环境信息,且dwa算法可以实时调取机器人探测到的该环境信息,因此在机器人移动方向的前方突然出现一个障碍物时,dwa算法会根据自身当前的
移动速度和当前位置与该障碍物之间的距离,预测目标速度,使机器人根据目标速度移动时可以在碰到障碍物之前停下来,以达到紧急避障的效果。
118.目标速度为0,说明dwa算法预测出的移动速度为0,此时需要控制机器人停止移动,这种情况下,机器人需要重新执行上述步骤101,以使机器人采集当前环境信息,并根据采集到的当前环境信息构建局部地图,重新规划局部路径,以使机器人在当前环境下继续行走,直至机器人行走至全局路径的终点位置。
119.在本技术实施例中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着获取局部地图中的第一位置点,将全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点作为第二位置点,然后根据a星算法获取局部地图中的由第一位置点至目标位置点的路径。由于第二位置点是全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点,也即说明,是在全局路径处于局部地图内的一段路径中选取与机器人较近的目标点作为局部路径的终点,因此,可以减少搜索范围,提高机器人规划局部路径的速率,以此满足机器人规划局部路径时的高频率要求,从而防止机器人因局部路径规划不及时而出现机器卡顿。其次,由于目标位置点是根据第二位置点确定出的不存在障碍物的位置点,所以根据a星算法能够成功获取到由第一位置点至目标位置点的路径,也即能够成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动。
120.图2是本技术实施例提供的一种路径规划装置的结构示意图。该路径规划装置可以由软件、硬件或者两者的结合实现成为机器人的部分或者全部,该机器人可以为下文图3所示的机器人。参见图2,该装置包括:构建模块301、第一获取模块302、第二获取模块303、第三获取模块304。
121.构建模块301,用于若根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图;
122.第一获取模块302,用于获取局部地图中的第一位置点,第一位置点是机器人当前所处的位置点;
123.第二获取模块303,用于将所述全局路径位于所述局部地图内的一段路径中与所述第一位置点的距离为第一预设距离的位置点作为第二位置点;
124.第三获取模块304,用于根据a星算法获取局部地图中的第一局部路径,第一局部路径是由第一位置点至目标位置点的路径,目标位置点是根据第二位置点确定出的不存在障碍物的位置点。
125.可选地,全局路径是在全局地图中规划出的路径;
126.构建模块301还用于:
127.若根据全局路径移动的过程中探测到不在全局地图的障碍物,则根据探测到的环境信息构建局部地图。
128.可选地,第三获取模块304包括:
129.规划单元,用于使用a星算法在局部地图中规划第二局部路径,第二局部路径是由第一位置点至第二位置点的路径;
130.选择单元,用于在使用a星算法规划第二局部路径的过程中,根据第二位置点从规划出的路径点中选择一个路径点作为目标位置点,将已规划出的由第一位置点至目标位置
点的路径作为第一局部路径。
131.可选地,选择单元用于:
132.在使用a星算法规划第二局部路径的过程中,若最新规划出的路径点与所述第二位置点的距离小于或等于第二预设距离,则将路径点作为目标位置点。
133.可选地,选择单元用于:
134.在使用a星算法规划第二局部路径的过程中,若规划出的所有路径点包括局部地图内的无障碍物区域中的所有位置点,且不包括第二位置点,则将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点。
135.可选地,所述选择单元用于:
136.在使用a星算法规划第二局部路径的过程中,若规划出的连续n个路径点与第二位置点之间的距离依次增大,则将规划出的所有路径点中距离第二位置点最近的路径点作为目标位置点,n为大于或等于2的整数。
137.可选地,该装置还包括:
138.预测模块,用于在获取所述第一局部路径后,使用动态窗口算法预测第一局部路径对应的目标速度;
139.移动模块,用于在目标速度不为0的情况下,以目标速度,按照第一局部路径移动;
140.第一触发模块,用于在目标速度为0的情况下,则停止移动,并触发所述构建模块探测机器人所处环境,根据探测到的环境信息构建局部地图。
141.在本技术实施例中,若机器人根据全局路径移动的过程中探测到障碍物,则根据探测到的环境信息构建局部地图,接着获取局部地图中的第一位置点,将全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点作为第二位置点,然后根据a星算法获取局部地图中的由第一位置点至目标位置点的路径。由于第二位置点是全局路径位于局部地图内的一段路径中与第一位置点的距离为第一预设距离的位置点,也即说明,是在全局路径处于局部地图内的一段路径中选取与机器人较近的目标点作为局部路径的终点,因此,可以减少搜索范围,提高机器人规划局部路径的速率,以此满足机器人规划局部路径时的高频率要求,从而防止机器人因局部路径规划不及时而出现机器卡顿。其次,由于目标位置点是根据第二位置点确定出的不存在障碍物的位置点,所以根据a星算法能够成功获取到由第一位置点至目标位置点的路径,也即能够成功获取到第一局部路径,从而后续机器人可以按照第一局部路径进行移动,保证了机器人的正常移动。
142.需要说明的是:上述实施例提供的路径规划装置在规划路径时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
143.上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术实施例的保护范围。
144.上述实施例提供的路径规划装置与路径规划方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘
述。
145.图3为本技术实施例提供的一种机器人的结构示意图。如图3所示,机器人3包括:处理器30、存储器31以及存储在存储器31中并可在处理器30上运行的计算机程序32,处理器30执行计算机程序32时实现上述实施例中的路径规划方法中的步骤。
146.在具体实现中,图3仅仅是机器人3的举例,并不构成对机器人3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
147.处理器30可以是中央处理单元(central processing unit,cpu),处理器30还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

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

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

rom(compact disc read

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

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献