技术新讯 > 控制调节装置的制造及其应用技术 > 一种基于分区域和单位分解的全覆盖路径规划方法与流程  >  正文

一种基于分区域和单位分解的全覆盖路径规划方法与流程

  • 国知局
  • 2024-08-30 15:03:33

本发明属于机器人建图处理,特别涉及一种基于分区域和单位分解的全覆盖路径规划方法。

背景技术:

1、现有技术中,清洁机器人建图过程的路径规划是必须的步骤之一。目前已有的栅格地图分区的算法大多采用沿预设的搜索方向,逐行或逐列查找栅格地图内所有的连续线段数,所述连续线段为从一个边缘栅格沿搜索方向连续延伸至另一个边缘栅格的线段,所述边缘栅格为紧贴栅格地图边缘的栅格;依次匹配相邻的连续线段,形成至少一个连通区域。这种方式的分区使得地图被分的很细碎,经常会出现将一个房间分成许多小块区域,不利于做全覆盖弓字型路径规划;另外,在一个待清扫的环境中,清洁机器人先清扫哪个区域后清扫哪个区域都是随机的,导致清洁效率不高。

2、此外,现有技术中常用技术术语包括:

3、1、区域分割:是指对移动机器人所构建出来的栅格地图进行分块处理。

4、2、栅格地图:以机器人开始建图的出发点为中心,x轴和y轴的分辨率为单个格子大小,x轴和y轴的分辨率为0.05m,每个格子根据自己的状态是障碍物还是空地,分别赋予不同的值,0代表空地,1代表障碍物,这样的二维格子图就是栅格地图。

5、3、voronoi图:它是计算几何中很重要的组成部分,如图1所示。voronoi图根据平面中点的相邻程度将平面划分成若干区域。假设p是区域内的点集,由p构成的voronoi图中,每一块区域内只包含一个点pi,而这个点到自己所在的区域的距离比其他任何点到此区域的距离都要小。相邻的两个区域的公共边是构成这两个区域点间线段的垂直平分线。

技术实现思路

1、为了解决上述问题,本技术的目的在于:通过引入voronoi图的概念对地图进行分区,能够将整个地图进行分割,防止因为障碍物边界的影响而把一个房间分割成多个区域;同时获取计算机器人的位置,然后计算待清扫区域与机器人的距离,每次先打扫机器人附近的待清扫区域。

2、具体地,本发明提供一种基于分区域和单位分解的全覆盖路径规划方法,所述方法包括以下步骤:

3、s1,开始,控制移动机器人通过激光雷达扫描待打扫区域,创建一个栅格地图;

4、s2,将概率栅格地图转化成0-1二值图,对于每个栅格,概率值大于45的值变成1,小于等于45的变成0;

5、s3,通过采用delaunay三角剖分算法将二值图分割成不均匀的三角网格,也即voronoi图;

6、s4,然后再将voronoi图中的小面积区域与相邻的大面积区域进行拼接融合,得到最终的分割图;

7、s5,判断所有区域是否打扫完毕?如果是,则结束;如果否,则进行步骤s6;

8、s6,获取机器人的位置,查找离机器人位置最近的未打扫区域;

9、s7,对该待打扫区域进行单位分解;

10、s8,对每一个分解单元进行弓字型路径规划,遍历所有单元格。

11、所述步骤s4进一步包括:

12、s4.1,提取voronoi图上的临界节点,这些节点是voronoi图上至少有3个相邻点,这些点都至少与三个相邻的区域挨着;

13、s4.2,然后按照从左到右从上到下的顺序遍历所有临界点,将距离小于0.25m的相邻临界点给删除掉,这一步操作防止后面生成voronoi图的时候容易出现面积很小的分块;

14、s4.3,然后遍历每一个临界节点,找到与其最近的两个地图边界点,这两个地图边界点分别与该临界点进行连线,要保证同一个临界点的两条线最大限度地靠近180度,这样才能尽可能的把房间给分割开;

15、s4.4,将小区域进行融合,将面积小于12.5m2的小区域与相邻的大区域进行融合,这就完成了对地图的分割,然后会对每一个分区进行编号并填充不同的颜色,每个区域都有一个中心点。

16、所述步骤s6进一步包括:

17、获取机器人当前的位置,基于所述的机器人当前位置来确定当前待打扫的区域,这个待打扫的区域就是上述s4所述的分割算法分割出来的区域。

18、所述步骤s7中的对所述待打扫区域进行单位分解是基于单元分解方法,即对机器人当前所处的分割区域进行进一步的细分,细分的作用是根据该区域内障碍物的形状和大小将该区域细分成无障碍物的小单元,这些不存在障碍物的可清扫单元就是用来进行全覆盖路径规划的单元区域。

19、所述步骤s7进一步包括:

20、s7.1,找到待打扫区域的主方向,也即该区域最长的轴线,然后将该待打扫区域的主方向旋转至欧式坐标系的x轴同向,先计算出该主方向与x轴的夹角,然后通过这个夹角计算出旋转矩阵,记作r;

21、s7.2,然后对旋转后的待清洁区域进行逐行遍历,逐行遍历的目的就是计算每一行被障碍物分割的连接段的数量,这个待打扫区域能够被障碍物分成许多个单元,连接段是指地图中每一行被障碍物分成几段连续的线段。

22、s7.3,基于每行的连接段数,将待打扫区域划分成不存在障碍物的可清扫单元;这个过程中包括融合单元格,分析前后两行的分段数,对每行的单元格进行编号标记,将编号相同的单元格确定为同一个单元,即单元分解。

23、所述单元分解的具体流程进一步包括:

24、s7.3.1,开始,从上到下、从左到右依此遍历地图;

25、s7.3.2,判断是否找到区间?如果否,则进行步骤s7.3.13结束;如果是,则进行步骤s7.3.3;

26、s7.3.3,退出当前行的遍历,保存当前行的分段数num1、障碍物x坐标列表p_x、当前行y坐标;

27、s7.3.4,从y+1行开始遍历地图;

28、s7.3.5,判断是否遍历完地图?如果是,则进行步骤s7.3.13结束;如果否,则进行步骤s7.3.6;

29、s7.3.6,统计当前行的分段数num2,保存当前行的障碍物的起始坐标current_start_x和终止坐标列表current_end_x;

30、s7.3.7,判断是否当前行分段数与上一行相同?如果是,则进行s7.3.8;如果否,则进行步骤s7.3.9;

31、s7.3.8,判断是否发生shift事件?如果否,则结束;如果是,则进行步骤s7.3.10;

32、s7.3.9,判断是否当前行分段数比上一行的大?如果是,则进行s7.3.10;如果否,则进行步骤s7.3.11;其中,所述shift事件,是指当前行的分段数与上一行的分段数一样,但是上一行的障碍物的位置和当前行的障碍物的位置不相同;

33、s7.3.10;从当前行x坐标为0开始遍历,找到障碍物焦点,则从该点开始往左和右两个方向生成一条直线;并继续进行步骤s7.3.12;

34、s7.3.11,从上一行x坐标为0开始遍历,找到障碍物焦点,则从该点开始往左和右两个方向生成一条直线;

35、s7.3.12,num1=num2;p_x=current_end_x;

36、s7.3.13,结束。

37、所述步骤s8中,全覆盖路径规划是根据扫地机器人的清扫半径r=0.15m对每一个分解单元进行弓字型规划,从每一个单元格的第一行开始从左到右的顺序生成弓字型路径,当前行到达单元的末尾之后顺时针旋转90度,然后向前规划0.3m,再顺时针转90度,开始从右往左进行直行,当到达单元格的最左端的时候,逆时针旋转90度,然后再向前规划0.3m,再逆时针旋转90度,如此往复,实现对整个单元格的弓字型路径覆盖,然后扫地机器人按照该路径进行清洁该区域。

38、由此,本技术的优势在于:本方法简单,在进行全覆盖路径规划的时候引入voronoi图的概念对地图进行分区,能够将整个地图按房间进行分割,这种分割方式是分割出来的区域更加规整,防止因为障碍物边界的影响而把一个房间分割成多个区域;同时获取计算机器人的位置,然后计算待清扫区域与机器人的距离,每次先打扫机器人附近的待清扫区域,这就避免机器在工作的时候从当前位置移动到很远的区域,大幅度提高清洁机器人的清洁效率。

本文地址:https://www.jishuxx.com/zhuanli/20240830/285321.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。