当前位置: 首页 > 专利查询>之江实验室专利>正文

一种基于牛耕式运动的全覆盖路径规划方法技术

技术编号:36185620 阅读:49 留言:0更新日期:2022-12-31 20:48
本发明专利技术属于单机器人全覆盖路径规划领域,公开了一种基于牛耕式运动的全覆盖路径规划方法,以路径长度最短(路径重复率较低)为目标的、基于牛耕式运动的单机器人全覆盖路径规划方法,可应用于机器人扫地、除锈、扫雷、探伤等环境已知的二维平面场景。本方法在栅格地图上进行,通过机器人的牛耕式运动,并在陷入死区时更新未遍历栅格集合,之后对已生成路径进行路径插入操作,以及A*算法逃离死区的方式,获取一条路径重复率较低的规划路径。本发明专利技术能够在具有较复杂的区域边界、障碍物的二维已知环境下获取一条长度较短(路径重复率较低)的单机器人全覆盖路径。机器人全覆盖路径。机器人全覆盖路径。

【技术实现步骤摘要】
一种基于牛耕式运动的全覆盖路径规划方法


[0001]本专利技术属于单机器人全覆盖路径规划领域,尤其涉及一种基于牛耕式运动的全覆盖路径规划方法。

技术介绍

[0002]全覆盖路径规划可应用于单机器人的清洁、除锈、探伤、扫雷等任务场景,其目的是为机器人在计算机/处理器的控制下,有序、完全地遍历目标区域提供支撑。
[0003]现有的全覆盖路径规划专利,例如,一种基于多边形分解的全覆盖路径规划算法(CN202111669496.8)、基于单元分解的全覆盖路径规划方法及相关设备(CN202111579455.X)等,在进行路径规划时,是通过单元分解的方式,依据障碍物的形状和位置分布,将目标区域划分为多个易遍历的子区域,且子区域间转化为旅行商问题求解来进行的。虽然它们能够获得一条遍历任务区域的路径,但当目标区域具有边缘不规则,或是区域内障碍物数量较多、分布随机等特点时,这些方法所得规划路径较长(即路径重复率较高),原因在于,此种情况下机器人易陷入死区(即机器人周围均为障碍物或是已遍历区域),且由于环境复杂,子区域数目较多,机器人在逃离死区以及子区域间移动的过程中将再次经过部分已遍历的区域,导致最终路径重复率较高。
[0004]因此,需要研究一种应用于上述较复杂平面区域的全覆盖路径规划方法,并确保所得路径具有较小的路径重复率。

技术实现思路

[0005]本专利技术目的在于提供一种基于牛耕式运动的全覆盖路径规划方法,以解决现有算法在较复杂平面区域获取的全覆盖路径存在路径重复率较高或是区域覆盖率较低的技术问题。
[0006]为解决上述技术问题,本专利技术的一种基于牛耕式运动的全覆盖路径规划方法的具体技术方案如下:一种基于牛耕式运动的全覆盖路径规划方法,包括如下步骤:步骤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:合并各移动路径,得到最终机器人实际运动路径。
[0007]进一步地,所述步骤1包括如下具体步骤:栅格地图的坐标原点位于左上角,向下方向为X轴,向右方向为Y轴,以坐标(m,n)表示第m行、第n列栅格,机器人从初始位置开始,进行牛耕式运动,并优先Y轴方向,若机器人当前位置的左右两个相邻栅格均未覆盖,则随机选择一个栅格移动;若左右两个相邻栅格只有一个未覆盖,则移动到该未覆盖栅格;若左右两个相邻栅格均非未覆盖,则判断上下两个相邻栅格的覆盖情况并确定下一个移动目标,与左右类似,同时,在机器人的移动过程中,依次记录其新覆盖的栅格及其坐标,得到机器人先后经历的有序导航点集合C
Nav

[0008]进一步地,所述步骤3包括如下具体步骤:对栅格地图,沿X轴方向,依次以一直线横穿整个地图,并将每一行直线所串联的未被障碍物阻断的未覆盖栅格归于同一集合。
[0009]进一步地,所述步骤4包括如下具体步骤:对某一集合C
m
而言,选取该集合中所有栅格的上方或下方相邻栅格,临时组成一新集合C0,若C0同时满足:(1)集合中不存在未覆盖的栅格;(2)集合中所有已覆盖的栅格未被障碍物阻断;则C
m
满足要求。
[0010]进一步地,所述步骤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
中是否仍存在未插入的栅格,若否,则跳过此步骤;若是,则此时分三种情况讨论;(a)步骤5.3中未插入任何栅格到C
Nav
中,此时判断栅格地图上机器人在集合C0中的移动方向,若为Y轴正向,则将C
m
中所有栅格按照X轴数值从小到大的顺序,依次插入到C
Nav
中序号P
max
前一位;若为Y轴负向,则将Cm中所有栅格按照X轴数值从大到小的顺序,依次
插入到C
Nav
中序号P
min
前一位;(b)未插入栅格位于栅格地图上已插入栅格的中间位置,此时寻找集合C0中与该栅格在地图上相邻的栅格在C
Nav
中的排序,并将其插入到该序号的前两位处;(c)非(b)中未插入的栅格,此时若机器人移动方向为Y轴正向,则当地图上某一未插入栅格的右侧相邻栅格为已插入时,将其插入在C
Nav...

【技术保护点】

【技术特征摘要】
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
中是否仍存在未插入的栅格,若否,则跳过此步骤;若...

【专利技术属性】
技术研发人员:宋伟吴靖宇郑涛朱世强陈贤雷
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1