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

文档序号:32944208发布日期:2023-01-14 10:04阅读:103来源:国知局
机器人的路径规划方法及装置、机器人、存储介质与流程

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


背景技术:

2.目前,基于弓字型全覆盖路径规划已经逐渐成为家用清洁机器人的常用算法,得到了广泛的应用,取得了较好的效果和经济价值,同时可引申成为互相垂直的双弓字型全覆盖路径规划方法,成为清洁领域中的一种基础方案,目前弓字全覆盖路径规划的主要方案有:
3.基于广度搜索的全覆盖路径规划方法,通过以当前点为中心,逐渐搜索到可清洁区域,在搜索到最大区域后,形成新的规划点,依次往复,形成最终的清扫方案,该方案复杂度大,计算量高,在复杂环境下,容易在局部陷入最优。
4.基于分割的全覆盖路径规划方案,该方案以广度搜索的全覆盖路径规划方案为基础,通过将复杂区域分割为独立的小区块后,对小区块进行规划,该方案有效解决了局部最优问题,但该方案存在分割复杂性难度大,同时仍存在分割块内部生成的覆盖路径规划的排序问题,仍存在一定的不确定性,同时该方案连接后,全局下,弓字型覆盖的间隔可能存在差异,难以保证一致性。


技术实现要素:

5.本技术实施例提供了机器人的路径规划方法,用以降低路径规划的复杂度。
6.本技术实施例提供了一种机器人的路径规划方法,所述方法包括:
7.针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合;
8.根据所述割线集合中每条割线与待清洁区域轮廓的交点数量,确定割线集合中按照预设分组规则进行分组的分组数量,所述预设分组规则为:将交点数量连续相同的割线划分为一组;
9.选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
10.在一实施例中,所述针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合之后,所述方法还包括:
11.针对每个割线集合,根据所述割线集合中每条割线与所述待清洁区域轮廓的交点数量,选取交点总数最小或小于预设值的割线集合;其中,选取的所述割线集合用于进行分组。
12.在一实施例中,所述针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合,包括
13.根据所述待清洁区域轮廓的四周边缘点以及每个边缘点对应的方向,从每一边缘
点出发按照对应的方向,以预设间距间隔生成与待清洁区域轮廓具有交点的多条割线,得到每个方向对应的割线集合。
14.在一实施例中,所述从每一边缘点出发按照对应的方向,以预设间距间隔生成与待清洁区域轮廓具有交点的多条割线,包括:
15.针对任一边缘点,按照所述边缘点对应的方向,以预设间距间隔生成与待清洁区域轮廓具有至少两个交点的割线,得到所述方向对应的割线集合。
16.在一实施例中,所述选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径,包括:
17.若选取的所述割线集合的分组数量为1,以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
18.在一实施例中,所述选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径,包括:
19.若选取的所述割线集合的分组数量不为1,根据所述割线集合中每个分组的每条割线与所述待清洁区域轮廓的交点数量,确定每个分组的割线所在区域的分区数量;
20.根据每个分组的割线所在区域的分区数量,对所述待清洁区域轮廓进行分区,并为每个分区分配相应的割线;
21.根据机器人当前所处位置,对不同分区进行先后排序,具有先后顺序的每个分区的割线在待清洁区域中的部分,作为弓扫路径。
22.在一实施例中,在所述根据机器人当前所处位置,对不同分区进行先后排序之前,所述方法还包括:
23.根据相邻分区的边界割线的端点之间的距离,将距离最近或距离小于阈值的相邻分区合并为一个分区。
24.本技术实施例还提供了一种机器人的路径规划装置,包括:
25.割线生成模块,用于针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合;
26.割线分组模块,用于根据所述割线集合中每条割线与待清洁区域轮廓的交点数量,确定割线集合中按照预设分组规则进行分组的分组数量,所述预设分组规则为:将交点数量连续相同的割线划分为一组;
27.路径选取模块,用于选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
28.本技术实施例还提供了一种机器人,所述机器人包括:
29.处理器;
30.用于存储处理器可执行指令的存储器;
31.其中,所述处理器被配置为执行上述机器人的路径规划方法。
32.本技术实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述机器人的路径规划方法。
33.上述实施例提供的技术方案,针对每个方向,沿该方向间隔生成覆盖待清洁区域的割线集合,基于每条割线与待清洁区域轮廓的交点数量,对割线集合中额所有割线进行分组,获得分组数量,最后选取分组数量小的割线集合,将该割线集合中每条割线在待清洁
区域内的部分,作为弓扫路径,从而减少了因广度搜索可清洁点带来的时间复杂性,由于无需先将区域分割为几个小区块,再分别进行规划,解决了分割难度大的问题,也解决了分割后排序复杂的问题,可见,本技术实施例提供的方案减少了计算量,提高了路径规划效率。
附图说明
34.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
35.图1为本技术实施例提供的一种机器人的硬件架构示意图;
36.图2是本技术实施例提供的一种机器人的路径规划方法的流程示意图;
37.图3a、图3b、图3c是本技术实施例提供的基于待清洁区域轮廓确定四周边缘点的示意图;
38.图4a、图4b、图4c、图4d是本技术实施例提供的四种割线前进方向的示意图;
39.图5a、图5b、图5c、图5d是本技术实施例提供的四种割线集合的示意图;
40.图6是本技术实施例提供的生成割线的过程示意图;
41.图7a、图7b、图7c是本技术实施例提供的不同割线方向的交点个数变化示意图;
42.图8是图2实施例中步骤s230的细节流程图;
43.图9a、图9b是本技术实施例提供的不同割线生成方案时的分区示意图;
44.图10a、图10b、图10c是本技术实施例提供的给不同分区分配割线的过程示意图;
45.图11a、图11b、图11c、图11d是本技术实施例提供的分区合并的原理示意图;
46.图12a、图12b是本技术实施例提供的分区排序的原理示意图;
47.图13a、图13b是本技术实施例提供的轮廓图以及边缘点示意图;
48.图14a、图14b、图14c、图14d是本技术实施例提供的是四种割线方向对应的割线集合;
49.图15为本技术一实施例示出的机器人的路径规划装置的框图。
具体实施方式
50.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
51.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
52.图1为本技术实施例提供的一种机器人的硬件架构示意图,如图1所示,该机器人100可以包括处理器110以及用于存储处理器110可执行指令的存储器120;处理器110被配置为执行本技术实施例提供的机器人的路径规划方法。
53.所述处理器110可以是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对机器人中的其它组件的数据进行处理,还可以控制机器人中的其它组件以执行期望的功能。
54.所述存储器120可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易
失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的机器人的路径规划方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
55.本技术是一种适用于需要对某个区域进行全遍历工作场景的机器人,常见的机器人有服务机器人、扫地机器人、拖地机器人、扫拖一体机器人、擦窗机器人等,该方案在该领域可得到广泛应用,同时该方案兼顾了计算效率与实现简便性。
56.图2是本技术实施例提供的一种机器人的路径规划方法的流程示意图。如图2所示,该方法包括以下步骤s210-步骤s230。
57.步骤s210:针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合。
58.设定方向可以包括:从左到右、从右到左、从上到下,从下到上。针对每个方向可以生成割线集合,故四个方向可以有四个割线集合。
59.以从左到右这个方向举例来说,割线集合包括从左到右排列的多条割线,相邻割线之间的间隔可以相等,从而保证弓扫路径之间的均匀性。
60.待清洁区域是指机器人所处环境中无障碍覆盖并指示需要清扫的区域,可以由机器人提前扫描得到,也可以由用户自主划定待清洁区域。
61.在一实施例中,可以根据待清洁区域轮廓的四周边缘点以及每个边缘点对应的方向,从每一边缘点出发按照对应的方向,以预设间距间隔生成与待清洁区域轮廓具有交点的多条割线,得到每个方向对应的割线集合。
62.如图3a所示,机器人通过沿边或地图数据获取到了离散数据点作为待清洁区域轮廓。如图3b所示,通过建立“东北天”坐标系,给定每个点在坐标系下的绝对位置,通过这些绝对位置信息,通过获取x轴的最大最小值所在的点,y轴最大最小值所在点。如图3c所示,将这些点定义为极左点(xmin,y1)、极右点(xmax,y2),最上点(x1,ymax),最下点(x1,ymin),上述极左点、极右点、最上点和最下点可以认为是四周边缘点。
63.每个边缘点具有对应的方向(即割线前进方向),四个边缘点分别有且只有一个弓字型规划前进方向,如图4a所示,极左点的割线方向是从左到右,如图4b所示,极右点的割线方向是从右到左,如图4c所示,最上点的割线方向是从上到下,如图4d所示,最下点的割线方向是从下到上。
64.预设间距是指相邻割线之间的距离,即弓字型清扫间距d
sweep
,根据割线方向以及预设间距可以生成所有的割线,生成条件为与外轮廓图形具有相交点的线。
65.如图5a所示,是极左点对应的割线集合;如图5b所示,是极右点对应的割线集合,如图5c所示,是最上点对应的割线集合,如图5d所示,是最下点对应的割线集合。
66.在一实施例中,为减少割线数量,简化计算,每条割线与待清洁区域轮廓的交点至少是2个。具体生成割线的过程可以如图6所示,获取环境轮廓数据,获得轮廓最边缘点数据,针对任一边缘点,按照边缘点对应的方向,以边缘点为起点,弓扫宽度为距离,规划割线。判断该割线的交点数量是否可被2整除,若否,重新计算;若可被2整除,判断该割线的交点数量是否等于0,如果是,则结束,如果否,生成割线,并挪动一个弓扫宽度,继续规划下一条割线。故每条割线与轮廓的交点为2n个,n大于等1。
67.步骤s220:根据所述割线集合中每条割线与待清洁区域轮廓的交点数量,确定割线集合中按照预设分组规则进行分组的分组数量,所述预设分组规则为:将交点数量连续相同的割线划分为一组。
68.举例来说,针对某个割线集合,如果连续三条割线与待清洁区域轮廓的交点数量都是2,则这三条割线为一组。如果连续三条割线与待清洁区域轮廓的交点数量都是4,则这三条割线为一组。也就是说,交点数量连续相同的几条割线划分为一组。最终一个割线集合中的所有割线可以被划分为几组,就是分数数量。
69.如图7a所示割线集合,对所有割线子自左到右进行搜索,每条割线与轮廓的交点都是2个,即n的值始终为1,故这些割线集合是一组。如图7b所示割线集合,对所有割线自上到下进行搜索,每条割线与轮廓的交点从2个到4个最后又到2个,即n的值从1到2最后再到1,该割线集合划分为3组。如图7c所示割线集合,对所有割线自下到上进行搜索,每条割线与轮廓的交点从4个到2个,即n的值从2到1,该割线集合划分为2组。
70.在一实施例中,为了减少计算量,在上述步骤s220之前,针对每个割线集合,可以根据割线集合中每条割线与待清洁区域轮廓的交点数量,选取交点总数最小或小于预设值的割线集合。步骤s220中进行分组的割线集合可以是选取的交点总数最小或小于预设值的割线集合。
71.四种割线方向(从左到右、从右到左、从上到下,从下到上)对应有四个割线集合,针对每个割线集合,根据该割线集合中每条割线与轮廓的交点数量,可以计算出该割线集合中所有割线与轮廓的交点总数。进而可以选取交点总数最少的割线集合。图5a所示共有28个交点,图5b中共有30个交点,图5c中共有28个交点,图5d中共有28个交点。因此此时可进入到下一个环节的有图5a、图5c、图5d,作为候选的割线集合,在步骤s220参与计算,确定每个割线集合的分组数量。
72.步骤s230:选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
73.需要说明的是,由于分组数量越多,代表分区数量越多,在路径规划的过程中,分区与分区的衔接路线往往需要很多的规划,意味着机器人的运动过程加长,轨迹越杂乱,因此需要选取分组数量较少的结果进入下一环节。
74.图7a所示割线集合的分组数量1,图7b所示割线集合的分组数量是3,图7c所示割线集合的分组数量是2,故可以选取分组数量最小的割线集合,即选取图7a所示割线集合。该割线集合中每条割线在轮廓内的部分,即弓扫路径。弓扫路径可以认为是机器人的清扫路线或者运动路线。或者,选取一分组数量小于2的割线集合,即选取图7c所示割线集合,该割线集合中每条割线在轮廓内的部分,即弓扫路径。弓扫路径可以认为是机器人的清扫路线或者运动路线。
75.上述实施例提供的技术方案,针对每个方向,沿该方向间隔生成覆盖待清洁区域的割线集合,基于每条割线与待清洁区域轮廓的交点数量,对割线集合中所有割线进行分组,获得分组数量,最后选取分组数量小的割线集合,将该割线集合中每条割线在待清洁区域内的部分,作为弓扫路径,从而减少了因广度搜索可清洁点带来的时间复杂性,由于无需先将区域分割为几个小区块,再分别进行规划,解决了分割难度大的问题,也解决了分割后排序复杂的问题,可见,本技术实施例提供的方案减少了计算量,提高了路径规划效率。
76.在一实施例中,若步骤s230选取的分组数量最少的割线集合,该割线集合的分组数量为1,则可以将该割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
77.在另一实施例中,若步骤s230选取的分组数量最少的割线集合,该割线集合的分组数量不为1,例如是2、3等,如图8所示,可以执行以下步骤s240-步骤s260。
78.步骤s240:根据割线集合中每个分组的每条割线与待清洁区域轮廓的交点数量,确定每个分组的割线所在区域的分区数量;
79.举例来说,如果一个割线集合分为3组,第一组的每条割线的交点数量是2(即2n,其中n=1)个,则第一组的割线所在区域的分区数量可以是1,即一个分区。第二组的每条割线的交点数量是4(即2n,n=2)个,则第二组的割线所在区域的分区数量可以是2,即两个分区,第三组的每条割线的交点数量是2(即2n,其中n=1)个,则第三组的割线所在区域的分区数量是1,即一个分区。
80.如图9a所示,割线集合中每条割线与轮廓的交点都是2个(即n=1),所有割线划分为一组,由于n=1,代表有且仅有一个分区。图9b所示割线集合,从上到下,交点数量从2个到4个到2个,即n从1到2到1,n=1为一个分区,n=2代表2个分区,故图9b所示割线集合,可以分为4个分区。
81.步骤s250:根据每个分组的割线所在区域的分区数量,对待清洁区域轮廓进行分区,并为每个分区分配相应的割线。
82.由于每条割线均具有2n个交点,因此可通过从左到右,或者从右到左,或者从上到下或者从下到上进行分配,此时分配策略可根据实际割线前进方向确定。如图10a所示,区块2、3的各个交点均被同一根割线相交,形成各自的交点,通过从左到右,或者从右到左的分配方法,如图10b所示,第一个区域首先分配两个,随后将剩下两个交点分配到另一个区域,如图10c所示,形成最终的分配结果。同理也可按照自右向左分配,结果相同。
83.步骤s260:根据机器人当前所处位置,对不同分区进行先后排序,具有先后顺序的每个分区的割线在待清洁区域中的部分,作为弓扫路径。
84.为了避免机器人绕路,机器人所在分区可以优先清扫,之后清扫相邻的分区以及较远的分区,故可以对每个分区进行排序,经过排序的每个分区的割线在待清洁区域内的部分,即为弓扫路径。
85.在一实施例中,在上述步骤s260之前,还可以根据相邻分区的边界割线的端点之间的距离,将距离最近或距离小于阈值的相邻分区合并为一个分区。
86.以图9b所示,可能存在细小的分区,如分区4,这些分区可并入其他的分区进行整合规划,此时,需要按照一定的原则进行合并。
87.首先提取每个分区的边界割线,如图11a所示。该割线集合的割线前进方向如图11b所示,分区1的最下割线与分区2的最上割线进行比较,或者分区1的最下割线与分区3的最上割线进行比较,其比较的方式有:两条割线的距离d=dsweep(弓扫间距),割线端点之间的距离需要最小。
88.具体的,割线前进方向是从上到下,如图11c所示,可以从左到右进行选取,以分区1最下割线的最左点作为起点,计算该起点与分区1相邻的分区2最上割线的最近距离a,以及该起点与分区1相邻的分区3中最上割线的最近距离c,a小于c,最终可将分区1和分区2合并。在计算分区3时,最下割线无相邻区域,因此独立成一个新区域;分区2最下割线,与分区
4相邻,通过计算,可将其合并。因此可得到最终的合并结果如图11d所示,即最终变成2个分区。
89.此时,机器人已经完成了全覆盖路径规划的计算,之后可以根据机器人自身位置,对几个分区进行排序,如图12a所示,如果机器人在分区1,则分区排序为1到2,即先清扫分区1再清扫分区2。如图12b所示,如果机器人在分区2,则分区排序为2到1,即先清扫分区2再清扫分区1,形成最优的路径规划方案。
90.下面以一个具体应用场景举例来说。
91.图13a是机器人在环境中沿边生成的轨迹图,首先找到4个边缘点如图13b所示。之后,针对每个边缘点以及该边缘点对应的割线前进方向,以预设间隔生成割线,如图14a、图14b、图14c、图14d是四种割线方向对应的割线集合。
92.为了减少计算量,可以筛选出交点总数最少的割线集合作为后续的输入量,图14a中共有22个交点,图14b中共有22个交点,图14c中共有22个交点,图14d中共有22个交点,依次简称a、b、c、d方案。因此此时可进入到下一个环节的有a、b、c、d四种割线方案。
93.a方案中,对所有割线自左到右进行搜索,每条割线与轮廓的交点数量可以用2n表示,a方案中n的值始终为1,分组数量为1;b方案中,对所有割线自右到左进行搜索,每条割线与轮廓的交点数量可以用2n表示,b方案中n的值也始终为1,因此分组数量为1;c方案中,对所有割线自上到下进行搜索,每条割线与轮廓的交点数量可以用2n表示,故n的值从2到3最后再到1,因此分组数量为3;d方案中,对所有割线自下到上进行搜索,每条割线与轮廓的交点数量可以用2n表示,故n的值从1到3到2,因此分组数量为3。
94.由于分组数量越多,代表小分区数量越多,在路径规划的过程中,分区与分区的衔接路线往往需要跟多的规划,意味着机器人的运动过程加长,轨迹越杂乱,因此需要选取分组数量较少的结果进入下一环节,a、b方案进入下一个环节,c、d方案由于分组数量过多去除。
95.由于a、b方案均只有一个分组,分区数量只有1个,则无需进行后续集聚、合并以及排序,可将a和b方案中轮廓内的割线直接作为机器人的弓扫路径。
96.本技术实施例通过外部轮廓与割线,轮廓与割线形成一定的交点,该交点直接形成弓字型路径的端点,直接解决了广度搜索计算量大的问题,无需进行搜索;同时如果某单一割线与轮廓形成多个路径交点,则该区域必然可进行分割,形成小区域清洁分割块,解决了小区域分割的复杂性的问题;同时通过多端点集聚,可进一步解决房间分割问题,形成一种适用于复杂环境的弓字型全覆盖路径规划方案,可有效提升清洁效率与覆盖率。
97.下述为本技术装置实施例,可以用于执行本技术上述机器人的路径规划方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术机器人的路径规划方法实施例。
98.图15为本技术一实施例示出的机器人的路径规划装置的框图,如图15所示,该装置包括:割线生成模块1510、割线分组模块1520以及路径选取模块1530。
99.割线生成模块1510,用于针对设定方向中的每一方向,确定沿该方向间隔生成的覆盖待清洁区域的割线集合。
100.割线分组模块1520,用于根据所述割线集合中每条割线与待清洁区域轮廓的交点数量,确定割线集合中按照预设分组规则进行分组的分组数量,所述预设分组规则为:将交点数量连续相同的割线划分为一组。
101.路径选取模块1530,用于选取一分组数量小于设定值或分组数量最小的割线集合,并以所选取的割线集合中的割线在待清洁区域中的部分,作为弓扫路径。
102.上述装置中各个模块的功能和作用的实现过程具体详见上述机器人的路径规划方法中对应步骤的实现过程,在此不再赘述。
103.在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
104.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
105.功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1