【技术实现步骤摘要】
一种基于牛耕式运动的全覆盖路径规划方法
[0001]本专利技术属于单机器人全覆盖路径规划领域,尤其涉及一种基于牛耕式运动的全覆盖路径规划方法。
技术介绍
[0002]全覆盖路径规划可应用于单机器人的清洁、除锈、探伤、扫雷等任务场景,其目的是为机器人在计算机/处理器的控制下,有序、完全地遍历目标区域提供支撑。
[0003]现有的全覆盖路径规划专利,例如,一种基于多边形分解的全覆盖路径规划算法(CN202111669496.8)、基于单元分解的全覆盖路径规划方法及相关设备(CN202111579455.X)等,在进行路径规划时,是通过单元分解的方式,依据障碍物的形状和位置分布,将目标区域划分为多个易遍历的子区域,且子区域间转化为旅行商问题求解来进行的。虽然它们能够获得一条遍历任务区域的路径,但当目标区域具有边缘不规则,或是区域内障碍物数量较多、分布随机等特点时,这些方法所得规划路径较长(即路径重复率较高),原因在于,此种情况下机器人易陷入死区(即机器人周围均为障碍物或是已遍历区域),且由于环境复杂,子区域数目较多,机器人在逃离死区以及子区域间移动的过程中将再次经过部分已遍历的区域,导致最终路径重复率较高。
[0004]因此,需要研究一种应用于上述较复杂平面区域的全覆盖路径规划方法,并确保所得路径具有较小的路径重复率。
技术实现思路
[0005]本专利技术目的在于提供一种基于牛耕式运动的全覆盖路径规划方法,以解决现有算法在较复杂平面区域获取的全覆盖路径存在路径重复率较高或是区域覆盖率较低的技
【技术保护点】
【技术特征摘要】
1.一种基于牛耕式运动的全覆盖路径规划方法,其特征在于,包括如下步骤:步骤1:用栅格划分地图,用不同阴影表示障碍物和机器人待覆盖区域,机器人从初始位置开始,进行牛耕式运动;步骤2:重复步骤1,直到机器人当前位置的上下左右4个相邻栅格均非未覆盖,即陷入死区,此时跳转至步骤3;步骤3:对当前未遍历的栅格进行划分,生成若干个栅格集合;步骤4:判断各栅格集合是否满足路径插入条件;步骤5:对步骤4中满足要求的各栅格集合依次进行路径插入操作;步骤6:重复步骤4
‑
5,直到不存在满足路径插入条件的栅格集合;步骤7:判断当前是否已完成所有栅格的覆盖任务,若是,则跳转至步骤9;若否,则跳转至步骤8;步骤8:以A*算法计算所有仍未覆盖的栅格到机器人当前所在栅格的移动距离,选取其中最短距离,并将机器人移动至对应未覆盖栅格,同时在C
Nav
中已有路径末端记录该栅格,之后跳转至步骤1;步骤9:根据最终得到的有序导航点集合C
Nav
,以A*算法补全集合中前后相邻排列的两个栅格之间的实际移动路径;步骤10:合并各移动路径,得到最终机器人实际运动路径。2.根据权利要求1所述的基于牛耕式运动的全覆盖路径规划方法,其特征在于,所述步骤1包括如下具体步骤:栅格地图的坐标原点位于左上角,向下方向为X轴,向右方向为Y轴,以坐标(m,n)表示第m行、第n列栅格,机器人从初始位置开始,进行牛耕式运动,并优先Y轴方向,若机器人当前位置的左右两个相邻栅格均未覆盖,则随机选择一个栅格移动;若左右两个相邻栅格只有一个未覆盖,则移动到该未覆盖栅格;若左右两个相邻栅格均非未覆盖,则判断上下两个相邻栅格的覆盖情况并确定下一个移动目标,与左右类似,同时,在机器人的移动过程中,依次记录其新覆盖的栅格及其坐标,得到机器人先后经历的有序导航点集合C
Nav
。3.根据权利要求1所述的基于牛耕式运动的全覆盖路径规划方法,其特征在于,所述步骤3包括如下具体步骤:对栅格地图,沿X轴方向,依次以一直线横穿整个地图,并将每一行直线所串联的未被障碍物阻断的未覆盖栅格归于同一集合。4.根据权利要求1所述的基于牛耕式运动的全覆盖路径规划方法,其特征在于,所述步骤4包括如下具体步骤:对某一集合C
m
而言,选取该集合中所有栅格的上方或下方相邻栅格,临时组成一新集合C0,若C0同时满足:(1)集合中不存在未覆盖的栅格;(2)集合中所有已覆盖的栅格未被障碍物阻断;则C
m
满足要求。5.根据权利要求4所述的基于牛耕式运动的全覆盖路径规划方法,其特征在于,所述步骤5包括如下具体步骤:步骤5.1:寻找与当前集合C
m
对应的步骤4中临时组成的新集合C0中,Y轴数值最小和最
大的已遍历栅格;步骤5.2:寻找这两个栅格在C
Nav
中的排序序号,设Y轴数值最小值的序号为P
Ymin
,最大值的序号为P
Ymax
,并取P
min
=min(P
Ymin
,P
Ymax
),P
max
=max(P
Ymin
,P
Ymax
);步骤5.3:对C
Nav
中序号在P
min
和P
max
之间的所有栅格,依次判断前后相邻排列的两个栅格,设序号以及坐标分别为P
n
、P
n+1
,(x
n
,y
n
)、(x
n+1
,y
n+1
),是否满足:(a)x
n
=x
n+1
=x0;其中,x0为集合C0中栅格的X轴坐标值;(b)|y
n
‑
y
n+1
|=1;若不满足要求,则继续判断下一组,即取n=n+1;若满足要求,则将栅格地图中,与(x
n
,y
n
)相邻的栅格(x
m
,y
n
)、与(x
n+1
,y
n+1
)相邻的栅格(x
m
,y
n+1
)依次插入在C
Nav
中序号P
n
与P
n+1
之间(x
m
为C
m
中栅格的X轴数值),并继续取n=n+1重复进行;步骤5.4:判断集合C
m
中是否仍存在未插入的栅格,若否,则跳过此步骤;若...
【专利技术属性】
技术研发人员:宋伟,吴靖宇,郑涛,朱世强,陈贤雷,
申请(专利权)人:之江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。