CN117008586A - 全局路径生成方法、装置、机器人和计算机存储介质 - Google Patents
全局路径生成方法、装置、机器人和计算机存储介质 Download PDFInfo
- Publication number
- CN117008586A CN117008586A CN202210461807.XA CN202210461807A CN117008586A CN 117008586 A CN117008586 A CN 117008586A CN 202210461807 A CN202210461807 A CN 202210461807A CN 117008586 A CN117008586 A CN 117008586A
- Authority
- CN
- China
- Prior art keywords
- operated
- partition
- area
- main direction
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000005192 partition Methods 0.000 claims abstract description 374
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000000638 solvent extraction Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 28
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 7
- 238000005260 corrosion Methods 0.000 claims description 7
- 230000007797 corrosion Effects 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 6
- 238000004140 cleaning Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 238000005452 bending Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001417527 Pempheridae Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本申请涉及一种全局路径生成方法、装置、机器人和计算存储介质。所述方法包括:获取slam地图和待清洁区域;根据待清洁区域,从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别作业区域子图的第一主方向根据第一主方向和作业区域子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。采用本方法能够提高路径规划的精度以及行驶效率。
Description
技术领域
本申请涉及地图路径规划技术领域,特别是涉及一种全局路径生成方法、装置、机器人和计算机存储介质。
背景技术
随着自动化技术的发展,移动机器人在各个行业均展现了巨大的应用价值。例如,移动机器人可应用在清洁、巡航、排雷、收割等需要全覆盖作业的机器人、扫地机、无人机等行业。在移动机器人进行自主导航前,首先需要完成机器人在未知环境中的地图构建。基于构建的地图进行路径规划,完成作业。
现有的全局覆盖式路径规划主要有3种,弓字形规划、回形规划及随机搜索规划3种方式。随机搜索规划存在效率低,覆盖不完全的情况。而现有的全局覆盖式路径规划,在复杂的室内环境下,对任意的场景分布及任何形状的障碍物不能准确规划出合理的路径,导致规划的路径有较多尖角和转弯,实际行驶时效率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高路径规划的精度以及行驶效率的全局路径生成方法、机器人、装置、机器人、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种全局路径生成方法,应用于移动装置。所述方法包括:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业子图内的所述障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
在其中一个实施例中,所述从所述slam地图中确定作业区域子图,包括:
对所述slam地图进行预处理,得到待操作的二值化地图;
根据所述障碍物区域,将所述待操作的二值化地图进行调整,得到目标二值化地图,并对所述目标二值化地图进行腐蚀操作处理,得到处理后的所述目标二值化地图;
移动装置根据所述待清洁区域从处理后的所述目标二值化地图中提取作业区域子图;
和/或所述识别所述作业区域子图的第一主方向,包括:
提取所述作业区域子图的作业区域边缘,得到的多个第一待处理点;
根据所述多个第一待处理点对所述作业区域边缘进行多边形逼近处理,得到所述作业区域边缘对应的多边形;
将所述多边形中的最长边确定为所述作业区域子图的第一主方向。
在其中一个实施例中,所述根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区,包括:
通过仿射变换旋转所述作业区域子图,得到旋转地图;
根据所述旋转地图被所述障碍物的分割情况和所述第一主方向,对所述旋转地图进行分区处理,得到多个待作业分区。
在其中一个实施例中,所述根据所述旋转地图被所述障碍物的分割情况和所述第一主方向对所述旋转地图进行分区处理,得到多个待作业分区,包括:
在所述第一主方向上,在所述旋转地图上按照第一阈值,规划分若干条平行列,得到所述旋转地图的列集;
遍历所述列集中的各列,确定各列被所述旋转地图中障碍物分割的分割次数;
根据所述旋转地图中当前列被所述障碍物的分割次数和上一列被所述障碍物的分割次数之间的大小,对所述旋转地图进行分区处理,得到多个待作业分区。
在其中一个实施例中,所述根据所述旋转地图中当前列被所述障碍物的分割次数和上一列被所述障碍物的分割次数之间的大小,对所述旋转地图进行分区处理,得到多个待作业分区,包括以下任意一种:
在当前列被所述障碍物的分割次数大于上一列被所述障碍物的分割次数时,根据所述当前列和所述上一列之间的像素点在所述旋转地图上确定一个待作业分区,并增加两个待确认分区;
在当前列的分割次数小于上一列的分割次数时,根据所述当前列和所述上一列之间的像素点在所述旋转地图确定两个待作业分区,并增加一个待确认分区。
在其中一个实施例中,所述根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向,包括:
确定所述多个待作业分区中每个待作业分区的外接方形;所述多个待作业分区中每个待作业分区的外接方形的一边长与所述第一主方向平行;
在所述多个待作业分区中相应待作业分区的外接方形的最长边长与所述第一主方向平行时,将所述第一主方向作为相应待作业分区的第二主方向;或
在所述多个待作业分区中相应待作业分区的外接方形的最长边长与所述第一主方向垂直时,将所述第一主方向的垂直方向作为相应待作业分区的第二主方向;
和/或所述根据所述每个待作业分区的至少两条平行线段、所述几何中心,以及当前作业位置,得到所述作业区域子图的全局路径,包括:
分别获取所述每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到所述每个待作业分区的角点坐标;
根据所述每个待作业分区的所述角点坐标、所述几何中心、所述至少两条平行线段和当前作业位置,确定所述每个待作业分区的作业顺序和所述每个待作业分区的弓形线;
根据所述作业顺序、所述每个待作业分区的弓形线,得到所述作业区域子图的全局路径。
在其中一个实施例中,根据所述每个待作业分区的所述角点坐标、所述几何中心、所述至少两条平行线段和当前作业位置,确定所述每个待作业分区的作业顺序和所述每个待作业分区的弓形线,包括:
根据所述每个待作业分区的所述几何中心和所述角点坐标,以及当前作业位置,确定所述每个待作业分区与所述当前位置的距离代价值;
确定所述多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域,并从所述第一作业区域的角点坐标中确定所述第一作业区域的作业起点;
根据所述第一作业区域的作业起点,对所述第一作业区域的至少两条平行线段进行首尾连接,得到所述第一作业区域的弓形线;
将所述第一作业区域的弓形线中距离所述作业起点最远的点确定为所述第一作业区域的作业终点;
将所述第一作业区域的作业终点作为新的当前作业位置,根据所述多个待作业分区中除所述第一作业区域作为剩余待作业分区,根据所述剩余待作业分区中每个待作业分区的所述几何中心和所述角点坐标,以及新的当前作业位置,得到所述剩余待作业分区中每个待作业分区的弓形线。
在其中一个实施例中,并从所述第一作业区域的角点坐标中确定所述第一作业区域的作业起点,包括:
计算所述第一作业区域中各角点坐标与所述当前作业位置的距离;
将所述第一作业区域中角点坐标中距离所述当前作业位置的最小的角点确定为作业起点。
第二方面,本申请还提供了一种全局路径生成装置。所述装置包括:
地图获取模块,用于获取slam地图和待清洁区域;
识别提取模块,用于根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
主方向识别模块,用于识别所述作业区域子图的第一主方向;
地图分区模块,用于根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
几何信息确定模块,用于确定所述多个待作业分区中每个待作业分区的几何中心;还用于根据所述第一主方向,确定所述多个待作业分区中各待作业分区的第二主方向;
平行线生成模块,用于根据各所述第二主方向确定各所述待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
全局路径生成模块,用于根据各所述待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
第三方面,本申请还提供了一种机器人。所述机器人包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
上述全局路径规划方法、装置、机器人、计算机设备、存储介质和计算机程序产品,通过根据待清洁区域从slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;识别作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;确定所述多个待作业分区中每个待作业分区的几何中心;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。通过先识别作业区域子图的第一主方向,后根据第一主方向确定多个待作业分区中每个待作业分区的第二主方向,提高了每个待作业分区中主方向的精度;通过得到各待作业分区与第二主方向平行的至少两条平行线段,使规划的路径和每个待作业分区的第二主方向平行,减少了作业设备作业过程中路径重复和转弯次数,提高路径规划的合理性,进而提高作业设备的行驶效率。
附图说明
图1为一个实施例中全局路径生成方法的应用环境图;
图2为一个实施例中全局路径生成方法的流程示意图;
图3a为一个实施例中二值化处理的效果示意图;
图3b为一个实施例中slam地图经过二值化处理后再进行膨胀处理的效果示意图;
图4为一个实施例中作业区域子图的全局路径示意图;
图5为一个实施例中作业区域子图的全局路径生成方法的流程示意图;
图6为一个实施例中作业区域子图旋转前后的对比效果示意图;
图7为一个实施例中确定待作业分区的弓形线方法的流程示意图;
图8为另一个实施例中全局路径生成方法的流程示意图;
图9为一个实施例中作业分区处理方法的流程示意图;
图10为一个实施例中作业分区处理方法的示意图;
图11为一个实施例中全局路径的示意图;
图12为一个实施例中全局路径生成装置的结构框图;
图13为一个实施例中机器人的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的全局路径生成方法,可以应用于如图1所示的应用环境中。其中,移动装置102通过通信网络分别与第一终端104和第二终端106进行通信。数据存储系统可以存储第二终端需要处理的数据。数据存储系统可以集成在第二终端上,也可以放在云平台上。
移动装置102获取slam地图和待清洁区域;根据待清洁区域,从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;确定多个待作业分区中每个待作业分区的几何中心;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。
其中,第一终端104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和服务器等;第二终端可以但不限于是各种个人计算机、笔记本电脑、物联网设备和服务器等;移动装置可以但不限于是机器人、可移动的清洁设备。
slam地图可以存储在第二终端或移动装置的存储模块内,从而移动装置102可以从第二终端或移动装置的存储模块中获取slam地图。另外,移动装置或第一终端上设有用于显示地图的显示界面,用户可以在移动装置上或第一终端上所显示的地图中圈出清洁区域,也可以是移动装置中或第一终端中已预设了多个清洁区域,用户从中选择相应的清洁区域,从而将用户圈出的清洁区域或选择相应的清洁区域作为待清洁区域进行输出。如当第一终端为智能手机时,从而用户可以在第一终端上所显示的地图中圈出清洁区域,或第一终端中已预设了多个清洁区域,从中选择相应的清洁区域,进而第一终端将用户圈出的清洁区域或选择相应的清洁区域作为待清洁区域发送至移动装置。
在一个实施例中,如图2所示,提供了一种全局路径生成方法,以该方法应用于图1中的移动装置为例进行说明,包括以下步骤:
步骤202,获取slam地图和待清洁区域。
其中,slam地图(时定位与地图构建,Simultaneous Localization And Mapping)指的是机器人在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。slam地图中包括可通行区域和障碍物区域。其中,这里待清洁区域的确认可以是移动装置,也可以是其他与移动装置通信连接的第一终端,如电脑等,待清洁区域是指预先确定的要作业的区域。
步骤204,根据待清洁区域,从slam地图中确定作业区域子图,作业区域子图包括障碍物区域。
具体地,获取slam地图,对slam地图进行预处理,得到处理后的slam地图。提取处理后的slam地图中各个像素点的像素坐标;根据待清洁区域,确定图像坐标系中x轴上的最小值和最大值,以及y轴上的最小值和最大值;根据x轴上的最小值和最大值,以及y轴上的最小值和最大值确定作业区域子图。根据待清洁区域,确定待清洁区域对应的N边形,获取N边形的顶点坐标。进一步地,对slam地图进行预处理,得到待操作的二值化地图;根据障碍物区域,将待操作的二值化地图进行调整,得到目标二值化地图,并对目标二值化地图进行腐蚀操作处理,得到处理后的目标二值化地图;移动装置根据待清洁区域从处理后的目标二值化地图中提取作业区域子图。其中,对slam地图进行预处理包括二值化处理、噪点滤波处理、二值地图填充处理、膨胀处理和腐蚀处理操作中等。其中,二值化处理是指对获取的slam地图对应的灰度图,将得到的灰度图进行二值化处理,得到二值化图像。二值化图像包括可通行区域和不可通行区域,其中在二值化图像中可通行区域和不可通行区域的像素值不同,不可通行区域为障碍物区域。其中0表示可通行区域,不可通行区域为254。如图3a所示,为一个实施例中二值化处理的效果示意图。
噪点滤波处理是指对二值化图像中离群点或噪点进行过滤处理,进而提高二值化图像的准确性。其中,离群点或噪点的确定方式为:对二值化图像中目标像素点(如,像素值为254的点)进行4邻域或8邻域的连通depth first search(深度优先搜索),统计该连通域格点值为254的个数N,若N小于阈值(预先设定的数值),就是离群点或噪点,将此联通域所有格点值(即像素点的像素值)重置为0。
其中,4邻域定义为:N4(p)=p∪([x-1,y],[x+1,y],[x,y-1],[x,y+1]);
8邻域定义为:
N8(p)=N4(p)∪([x-1,y-1],[x-1,y+1],[x+1,y-1],[x+1,y+1])。
二值地图填充处理,是指获取图像采集数据,将图像采集数据插入到二值地图中,得到填充后的二值地图。其中,图像采集数据包括禁区数据、虚拟墙数据、不便移动的物体所在位置等障碍物数据。禁区为任意形状多边形,虚拟墙为直线,在多边形内、直线上的格点及不便移动的物体所在位置均重置为254障碍点。
膨胀处理是指对填充后的二值地图进行膨胀处理;其中膨胀半径自定义,一般大于机器人半径,膨胀时将值为254且是轮廓的格点坐标放入优先队列,进行广度优先搜索breadth first search。对膨胀处理可以通过现有处理方法实现,在此不做赘述,如图3b所示,为一个实施例中slam地图经过二值化处理后再进行膨胀处理的效果示意图。腐蚀处理操作通过现有的处理方式实现,在此不做赘述。通过对二值地图进行膨胀处理和腐蚀处理操作,对轮廓进行一定程度的光滑,减少锯齿。
步骤206,识别作业区域子图的第一主方向。
具体地,提取作业区域子图的作业区域边缘,得到的多个第一待处理点;
根据多个第一待处理点对作业区域边缘进行多边形逼近处理,得到作业区域边缘对应的多边形;将多边形中的最长边确定为作业区域子图的第一主方向。
其中,多边形逼近处理采用的是道格拉斯算法,道格拉斯算法处理的过程包括:将多个第一待处理点中进行首末连接得到一条曲线,在多个第一待处理点中找出距离最远的两点,求其他所有中间点与这两点确定的直线的距离,并找出最大距离值distmax,用distmax与抽稀阈值threshold相比较:若distmax<threshold,这中间点全部舍去;若distmax≥threshold,则以该点为界,把曲线分为两部分,对这两部分曲线重复上述过程,直至所有的点都被处理完成,得到作业区域边缘对应的多边形。可以理解的是,多边形逼近处理可以采用现有的方式来实现,在此不做赘述。
步骤208,根据第一主方向和作业区域子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区。
其中,障碍物区域是指障碍物在作业区域子图中对应的区域。
具体地,在第一主方向上,在作业区域子图上按照第一阈值,规划分若干条平行列,得到作业区域子图的列集;遍历列集中的各列,确定各列被作业区域子图中障碍物分割的分割次数;根据作业区域子图中当前列被障碍物的分割次数和上一列被障碍物的分割次数之间的大小,对作业区域子图进行分区处理,得到多个待作业分区。其中,第一阈值为图像的每一列,是以像素点为单位;可以理解的是,每个像素点所在的列为一列,依次可到作业区域子图的列集。
步骤210,根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向。
其中,第二主方向与第一主方向平行或者垂直。
具体地,确定多个待作业分区中每个待作业分区的外接方形;多个待作业分区中每个待作业分区的外接方形的一边长与第一主方向平行;在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向平行时,将第一主方向作为相应待作业分区的第二主方向;或在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向垂直时,将第一主方向的垂直方向作为相应待作业分区的第二主方向。其中,确定多个待作业分区中每个待作业分区的外接方形可为确定多个待作业分区中每个待作业分区的最小外接方形。
步骤212,根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行。
其中,任意两条相邻的平行线之间的距离小于作业设备(如机器人)的半径。通过确保任意两条相邻的平行线之间的距离小于作业设备的半径,提高作业设备的作业效率。例如,在清洁作业时,可以提高作业设备的清洁效果。
步骤214,确定多个待作业分区中每个待作业分区的几何中心。
其中,几何中心是根据每个待作业分区中像素点的位置坐标确定的,为现有的实现方式。
步骤216,根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。
具体地,分别获取每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到每个待作业分区的角点坐标;根据每个待作业分区的角点坐标、几何中心、至少两条平行线段和当前作业位置,确定每个待作业分区的作业顺序和每个待作业分区的弓形线;根据作业顺序、每个待作业分区的弓形线,得到作业区域子图的全局路径。其中,确定每个待作业分区的作业顺序是根据每个待作业分区与当前位置的距离代价值来确定的,将距离代价值做下的待作业分区作为下一个作业区。每个待作业分区与当前位置的距离代价值,是根据每个待作业分区的几何中心和角点坐标,以及当前作业位置来确定的。如图4所示,为一个实施例中得到作业区域子的全局路径示意图,包括多个待作业分区和障碍物区域,以及各待作业分区之间的路径连接。
上述全局路径规划方法中,通过根据待清洁区域从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。通过先识别作业区域子图的第一主方向,后根据第一主方向确定多个待作业分区中每个待作业分区的第二主方向,提高了每个待作业分区中主方向的精度;进而得到各待作业分区与第二主方向平行的至少两条平行线段,使得确定的作业区域子图的全局路径尽可能平滑墙边,减少了作业设备作业过程中的减弯次数,提高路径规划的合理性,进而提高作业设备的行驶效率。
在一个实施例中,如图5所示,提供了一种作业区域子图的全局路径生成方法,以该方法应用于图1中的移动装置为例进行说明,包括以下步骤:
步骤502,分别获取每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到每个待作业分区的角点坐标。
其中,其中,待作业分区根据作业区域子图被作业区域子图中障碍物的分割情况,和作业区域子图的第一主方向,对作业区域子图进行分区处理得到的。可选地,在对作业区域子图进行分区处理之前,对作业区域子图进行仿射变换旋转处理,得到旋转地图,仿射变换旋转处理的目的在于便于对作业区域子图的分区处理。如图6所示,为一个实施例中作业区域子图旋转前后的对比效果示意图。
步骤504,根据每个待作业分区的角点坐标、几何中心、至少两条平行线段和当前作业位置,确定每个待作业分区的作业顺序和每个待作业分区的弓形线。
具体地,根据每个待作业分区的角点坐标、几何中心、至少两条平行线段和当前作业位置,确定每个待作业分区与当前位置的距离代价值;根据距离代价值的数值大小确定每个待作业分区的作业顺序,以及确定每个待作业分区中的作业起点;根据每个待作业分区中的作业起点,对每个作业区域的至少两条平行线段进行首尾连接,得到每个待作业分区的弓形线。
其中,在一个实施例中,如图7所示,确定待作业分区的弓形线方法,以该方法应用于图1中的移动装置为例进行说明,包括以下步骤:
步骤702,根据每个待作业分区的几何中心和角点坐标,以及当前作业位置,确定每个待作业分区与当前位置的距离代价值。
其中,角点坐标是包括待作业分区中第一条平行线和最后一条平行线的两个端点,即4个角点,可以表示为core[4]。当前作业位置是指作业设备的位置。
具体地,确定每个待作业分区的几何中心和当前作业位置之间的第一距离,确定当前作业位置和每个待作业分区的角点坐标之间的第二距离;第二距离为当前作业位置和每个待作业分区的角点坐标之间的最小值。获取第一权值和第二权值,根据第一权值、第二权值、第一距离和第二距离确定每个待作业分区与当前位置的距离代价值。
距离代价值function可以表示为:
function=alpha*distance(p,center)+beat*min(distance(core[i],p))
其中,distance(p,q)表示两点的欧式距离,alpha,beta分别表示第一权值和第二权值,i=0,1,2,3。
步骤704,确定多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域,并从第一作业区域的角点坐标中确定第一作业区域的作业起点。
其中,作业起点是根据第一作业区域每个角点与当前作业位置的距离确定的,将距离当前作业位置最小的角点作为作业起点。
具体地,计算第一作业区域中各角点坐标与当前作业位置的距离;将第一作业区域中角点坐标中距离当前作业位置的最小的角点确定为作业起点。
步骤706,根据第一作业区域的作业起点,对第一作业区域的至少两条平行线段进行首尾连接,得到第一作业区域的弓形线。
步骤708,将第一作业区域的弓形线中距离作业起点最远的点确定为第一作业区域的作业终点。
步骤710,将第一作业区域的作业终点作为新的当前作业位置,根据多个待作业分区中除第一作业区域作为剩余待作业分区。
步骤712,根据剩余待作业分区中每个待作业分区的几何中心和角点坐标,以及新的当前作业位置,得到剩余待作业分区中每个待作业分区的弓形线。
具体地,根据每个作业区域的作业终点更新当前作业位置,得到新的当前作业位置,根据多个待作业分区中除第一作业区域作为剩余待作业分区,返回步骤702,根据剩余待作业分区中每个待作业分区的几何中心和角点坐标,以及新的当前作业位置,得到剩余待作业分区中每个待作业分区的弓形线。
上述确定待作业分区的弓形线方法中,通过根据每个待作业分区的几何中心和角点坐标,以及当前作业位置,确定每个待作业分区与当前位置的距离代价值;确定多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域,并从第一作业区域的角点坐标中确定第一作业区域的作业起点;根据第一作业区域的作业起点,对第一作业区域的至少两条平行线段进行首尾连接,得到第一作业区域的弓形线。根据第一作业区域的作业起点更新当前作为位置,依次得到剩余待作业分区中每个待作业分区的弓形线;减少弓形中尖角和转弯,提高了作业区域的作业覆盖率。
步骤506,根据作业顺序、每个待作业分区的弓形线,得到作业区域子图的全局路径。
上述作业区域子图的全局路径生成方法中,通过对作业区域子图进行分区处理得到多个待作业分区,分别获取每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到每个待作业分区的角点坐标;根据每个待作业分区的角点坐标、几何中心、至少两条平行线段和当前作业位置,确定每个待作业分区的作业顺序和每个待作业分区的弓形线;根据作业顺序、每个待作业分区的弓形线,得到作业区域子图的全局路径;可以对作业区域子图进行分区处理,得到每个待作业分区的弓形线,对任意的场景分布及任何形状的障碍物,也能规划出可通行路径。通过规划的直线路径和每个区域的主方向平行,减少转弯次数;确保在作业过程中减少重复路径及转弯次数,并保证作业的覆盖率。
在另一个实施例中,如图8所示,提供了一种全局路径生成方法,以该方法应用于图1中的移动装置为例进行说明,包括以下步骤:
步骤802,获取slam地图和待清洁区域。
步骤804,根据待清洁区域,从slam地图中确定作业区域子图,作业区域子图包括障碍物区域。
步骤806,识别作业区域子图的第一主方向。
步骤808,通过仿射变换旋转作业区域子图,得到旋转地图。
具体地,以作业区域子图的中心为原点,将作业区域子图按顺时针或逆时针旋转θ得到新的旋转地图;通过对作业区域子图进行旋转,便于数据的处理,以及确保数据处理的准确性。例如,令作业区域子图宽高分别为w0、h0,旋转后地图的宽高分别为w1、h1及仿射变化矩阵M,则有:
w1=w0|cos(θ)|+h0|sin(θ)|;
h1=w0|sin(θ)|+h0|cos(θ)|;
其中[x0,y0]为作业区域子图像素点坐标,[x1,y1]为旋转后旋转地图中的像素点坐标。
步骤810,根据旋转地图被障碍物的分割情况和第一主方向,对旋转地图进行分区处理,得到多个待作业分区。
其中,在一个实施例中,作业分区处理方法包括以下步骤:
步骤902,在第一主方向上,在旋转地图上按照第一阈值,规划分若干条平行列,得到旋转地图的列集。
步骤904,遍历列集中的各列,确定各列被旋转地图中障碍物分割的分割次数。
步骤906,在当前列被障碍物的分割次数大于上一列被障碍物的分割次数时,根据当前列和上一列之间的像素点在旋转地图上确定一个待作业分区,并增加两个待确认分区。
步骤908,在当前列的分割次数小于上一列的分割次数时,根据当前列和上一列之间的像素点在旋转地图确定两个待作业分区,并增加一个待确认分区。
具体地,遍历列集中的各列,确定各列被旋转地图中障碍物分割的分割次数;当前列被障碍物的分割次数大于上一列被障碍物的分割次数时,即分割次数增加,根据当前列和上一列之间的像素点在旋转地图上确定一个待作业分区,并增加两个待确认分区。当前列的分割次数小于上一列的分割次数时,即分割次数减少,根据当前列和上一列之间的像素点在旋转地图确定两个待作业分区,并增加一个待确认分区。在一个实施例中,如图10所示,为作业分区处理方法的示意图,其中白色区域代表障碍物,黑色区域代表可通行区域。
上述作业分区处理方法中,在作业区域子图的第一主方向上,对旋转地图按照第一阈值,规划分若干条平行列,得到旋转地图的列集;遍历列集中的各列,确定各列被旋转地图中障碍物分割的分割次数;根据分割次数的增加和减少情况,确定待作业分区和增加待确认分区,得到作业区域子图的所有作业分区;通过根据被障碍物分割次数的增加或减少来划分作业分区,提高作业分区的准确性;在复杂的室内环境下,对任意的场景分布及任何形状的障碍物,也能准确进行作业分区。
步骤812,根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心。
具体地,确定多个待作业分区中每个待作业分区的外接方形;多个待作业分区中每个待作业分区的外接方形的一边长与第一主方向平行;在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向平行时,将第一主方向作为相应待作业分区的第二主方向;或在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向垂直时,将第一主方向的垂直方向作为相应待作业分区的第二主方向。
可选地,在一个实施例中,通过提取各多个待作业分区中每个待作业分区的边缘,得到各多个待作业分区中每个待作业分区边缘的多个第二待处理点;根据每个待作业分区边缘的多个第二待处理点对对应的待作业分区进行多边形逼近处理,得到各每个待作业分区对应的第二多边形;根据第一主方向和每个第二多边形,确定为各相应待作业分区的第二主方向。进一步地,从每个第二多边形中确定与第一主方向垂直或平行的最长边,得到各相应待作业分区的第二主方向。
步骤814,根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行。
步骤816,根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。
具体地,分别获取每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到每个待作业分区的角点坐标。根据每个待作业分区的几何中心和角点坐标,以及当前作业位置,确定每个待作业分区与当前位置的距离代价值;确定多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域,并从第一作业区域的角点坐标中确定第一作业区域的作业起点;根据第一作业区域的作业起点,对第一作业区域的至少两条平行线段进行首尾连接,得到第一作业区域的弓形线;将第一作业区域的弓形线中距离作业起点最远的点确定为第一作业区域的作业终点。
将第一作业区域的作业终点作为新的当前作业位置,根据多个待作业分区中除第一作业区域作为剩余待作业分区,根据剩余待作业分区中每个待作业分区的几何中心和角点坐标,以及新的当前作业位置,得到剩余待作业分区中每个待作业分区的弓形线。根据作业顺序、每个待作业分区的弓形线,得到作业区域子图的全局路径。
可选地,在一个实施例中,在根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径之后,以作业区域子图中心为原点,对待作业分区每条弓形直线的两个端点旋转-θ(与步骤808中将作业区域子图按顺时针或逆时针旋转θ的旋转方向相反),旋转到原地图坐标系下,得到实际作业区域子图的全局路径,如图11所示。
上述全局路径生成方法中,通过根据待清洁区域从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别旋转后的作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。通过识别作业区域子图的第一主方向,以及根据作业区域子图被障碍物分割次数进行分区,得到多个待作业分区。确定多个待作业分区中每个待作业分区与第一主方向垂直或平行的第二主方向,提高了每个待作业分区中主方向的精度;通过确定各待作业分区与第二主方向平行的至少两条平行线段,确保在复杂的室内环境下,对任意的场景分布及任何形状的障碍物,也能规划出可通行路径;规划的路径和每个待作业分区的第二主方向平行,使得作业设备在分区覆盖时减少重复路径及转弯次数,进而提高作业设备的行驶效率。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的全局路径生成方法的全局路径生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个全局路径生成装置实施例中的具体限定可以参见上文中对于全局路径生成方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种全局路径生成装置,包括:地图获取模块1202、识别提取模块1204、主方向识别模块1206、地图分区模块1208、几何信息确定模块1210、平行线生成模块1212和全局路径生成模块1214,其中:
地图获取模块1202,用于获取slam地图和待清洁区域。
识别提取模块1204,用于根据待清洁区域,从slam地图中确定作业区域子图,作业区域子图包括障碍物区域。
主方向识别模块1206,用于识别作业区域子图的第一主方向。
地图分区模块1208,用于根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区。
几何信息确定模块1210,用于确定多个待作业分区中每个待作业分区的几何中心;并用于根据第一主方向,确定多个待作业分区中各待作业分区的第二主方向。
平行线生成模块1212,用于根据各第二主方向确定各待作业分区的至少两条平行线段;每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行。
全局路径生成模块1214,用于根据各待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。
上述全局路径规划装置,通过根据待清洁区域从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。通过先识别作业区域子图的第一主方向,后根据第一主方向确定多个待作业分区中每个待作业分区的第二主方向,提高了每个待作业分区中主方向的精度;进而得到各待作业分区与第二主方向平行的至少两条平行线段,使得确定的作业区域子图的全局路径尽可能平滑墙边,减少了作业设备作业过程中的减弯次数,提高路径规划的合理性,进而提高作业设备的行驶效率。
在另一个实施例中,提供了一种全局路径生成装置,除包括地图获取模块1202、识别提取模块1204、主方向识别模块1206、地图分区模块1208、几何信息确定模块1210、平行线生成模块1212和全局路径生成模块1214之外,还包括:预处理模块、边缘提取模块、旋转模块、角点坐标确定模块、弓形线确定模块、代价值确定模块、作业起点确定模块和作业终点确定模块,其中:
预处理模块,用于对slam地图进行预处理,得到待操作的二值化地图;
根据障碍物区域,将待操作的二值化地图进行调整,得到目标二值化地图,并对目标二值化地图进行腐蚀操作处理,得到处理后的目标二值化地图。
可选地,在其中一个实施例中,地图获取模块1202还用于获取移动装置反馈的待清洁区域。
可选地,在一个实施例中,识别提取模块1204还用于根据待清洁区域从处理后的目标二值化地图中提取作业区域子图。
边缘提取模块,用于提取作业区域子图的作业区域边缘,得到的多个第一待处理点。
多边形逼近处理模块,用于根据多个第一待处理点对作业区域边缘进行多边形逼近处理,得到作业区域边缘对应的多边形。
可选地,在一个实施例中,主方向识别模块1206还用于将多边形中的最长边确定为作业区域子图的第一主方向。
旋转模块,用于通过仿射变换旋转作业区域子图,得到旋转地图。
可选地,在一个实施例中,地图分区模块1208还用于根据旋转地图被障碍物的分割情况和第一主方向,对旋转地图进行分区处理,得到多个待作业分区。
可选地,在一个实施例中,地图分区模块1208还用于在第一主方向上,在旋转地图上按照第一阈值,规划分若干条平行列,得到旋转地图的列集;遍历列集中的各列,确定各列被旋转地图中障碍物分割的分割次数;根据旋转地图中当前列被障碍物的分割次数和上一列被障碍物的分割次数之间的大小,对旋转地图进行分区处理,得到多个待作业分区。
可选地,在一个实施例中,地图分区模块1208还用于在当前列被障碍物的分割次数大于上一列被障碍物的分割次数时,根据当前列和上一列之间的像素点在旋转地图上确定一个待作业分区,并增加两个待确认分区;
在当前列的分割次数小于上一列的分割次数时,根据当前列和上一列之间的像素点在旋转地图确定两个待作业分区,并增加一个待确认分区。
可选地,在一个实施例中,几何信息确定模块1210还用于确定多个待作业分区中每个待作业分区的外接方形;多个待作业分区中每个待作业分区的外接方形的一边长与第一主方向平行;
在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向平行时,将第一主方向作为相应待作业分区的第二主方向;或
在多个待作业分区中相应待作业分区的外接方形的最长边长与第一主方向垂直时,将第一主方向的垂直方向作为相应待作业分区的第二主方向。
角点坐标确定模块,用于分别获取每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到每个待作业分区的角点坐标。
弓形线确定模块,用于根据每个待作业分区的角点坐标、几何中心、至少两条平行线段和当前作业位置,确定每个待作业分区的作业顺序和每个待作业分区的弓形线。
可选地,在一个实施例中,全局路径生成模块1214还用于根据作业顺序、每个待作业分区的弓形线,得到作业区域子图的全局路径。
代价值确定模块,用于根据每个待作业分区的几何中心和角点坐标,以及当前作业位置,确定每个待作业分区与当前位置的距离代价值;确定多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域。
作业起点确定模块,用于从第一作业区域的角点坐标中确定第一作业区域的作业起点;
弓形线确定模块,用于根据第一作业区域的作业起点,对第一作业区域的至少两条平行线段进行首尾连接,得到第一作业区域的弓形线;
作业终点确定模块,用于将第一作业区域的弓形线中距离作业起点最远的点确定为第一作业区域的作业终点。
可选地,在一个实施例中,弓形线确定模块还用于将第一作业区域的作业终点作为新的当前作业位置,根据多个待作业分区中除第一作业区域作为剩余待作业分区,根据剩余待作业分区中每个待作业分区的几何中心和角点坐标,以及新的当前作业位置,得到剩余待作业分区中每个待作业分区的弓形线。
可选地,在一个实施例中,作业起点确定模块还用于计算第一作业区域中各角点坐标与当前作业位置的距离;将第一作业区域中角点坐标中距离当前作业位置的最小的角点确定为作业起点。
在一个实施例中,通过根据待清洁区域从slam地图中确定作业区域子图,作业区域子图包括障碍物区域;识别旋转后的作业区域子图的第一主方向;根据第一主方向和作业子图内的障碍物区域,对作业区域子图进行分区处理,得到多个待作业分区;根据第一主方向,确定多个待作业分区中每个待作业分区的第二主方向和几何中心;根据每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;根据每个待作业分区的至少两条平行线段、几何中心以及当前作业位置,得到作业区域子图的全局路径。通过识别作业区域子图的第一主方向,以及根据作业区域子图被障碍物分割次数进行分区,得到多个待作业分区。
确定多个待作业分区中每个待作业分区与第一主方向垂直或平行的第二主方向,提高了每个待作业分区中主方向的精度;通过确定各待作业分区与第二主方向平行的至少两条平行线段,确保在复杂的室内环境下,对任意的场景分布及任何形状的障碍物,也能规划出可通行路径;规划的路径和每个待作业分区的第二主方向平行,使得作业设备在分区覆盖时减少重复路径及转弯次数的减弯次数,进而提高作业设备的行驶效率。
上述全局路径生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于机器人中的处理器中,也可以以软件形式存储于机器人中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种机器人,其内部结构图可以如图13所示。该机器人包括处理器、存储器、通信接口、显示单元和输入装置。其中,该机器人的处理器用于提供计算和控制能力。该机器人的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人的通信接口用于与外部的移动装置进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种全局路径生成方法。
在一个实施例中,提供了一种机器人,该机器人可以是移动装置。该机器人包括处理器、存储器、通信接口、显示单元和输入装置。其中,该机器人的处理器用于提供计算和控制能力。该机器人的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人的通信接口用于与外部的移动装置进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种全局路径生成方法。该机器人的显示单元可以是液晶显示屏或者电子墨水显示屏,该机器人的输入装置可以是显示屏上覆盖的触摸层,也可以是机器人外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的机器人的限定,具体的机器人可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种机器人,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种全局路径生成方法,应用于移动装置,其特征在于,所述方法包括:
获取slam地图和待清洁区域;
根据所述待清洁区域,从所述slam地图中确定作业区域子图,所述作业区域子图包括障碍物区域;
识别所述作业区域子图的第一主方向;
根据所述第一主方向和所述作业区域子图内的所述障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区;
根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向;
根据所述每个待作业分区的第二主方向确定相应待作业分区的至少两条平行线段;所述每个待作业分区的至少两条平行线段与相应待作业分区的第二主方向平行;
确定所述多个待作业分区中每个待作业分区的几何中心;
根据所述每个待作业分区的至少两条平行线段、所述几何中心以及当前作业位置,得到所述作业区域子图的全局路径。
2.根据权利要求1所述的方法,其特征在于,所述从所述slam地图中确定作业区域子图,包括:
对所述slam地图进行预处理,得到待操作的二值化地图;
根据所述障碍物区域,将所述待操作的二值化地图进行调整,得到目标二值化地图,并对所述目标二值化地图进行腐蚀操作处理,得到处理后的所述目标二值化地图;
根据所述待清洁区域从处理后的所述目标二值化地图中提取作业区域子图;
和/或所述识别所述作业区域子图的第一主方向,包括:
提取所述作业区域子图的作业区域边缘,得到的多个第一待处理点;
根据所述多个第一待处理点对所述作业区域边缘进行多边形逼近处理,得到所述作业区域边缘对应的多边形;
将所述多边形中的最长边确定为所述作业区域子图的第一主方向。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一主方向和所述作业子图内的障碍物区域,对所述作业区域子图进行分区处理,得到多个待作业分区,包括:
通过仿射变换旋转所述作业区域子图,得到旋转地图;
根据所述旋转地图被所述障碍物的分割情况和所述第一主方向,对所述旋转地图进行分区处理,得到多个待作业分区。
4.根据权利要求3所述的方法,其特征在于,所述根据所述旋转地图被所述障碍物的分割情况和所述第一主方向对所述旋转地图进行分区处理,得到多个待作业分区,包括:
在所述第一主方向上,在所述旋转地图上按照第一阈值,规划分若干条平行列,得到所述旋转地图的列集;
遍历所述列集中的各列,确定各列被所述旋转地图中障碍物分割的分割次数;
根据所述旋转地图中当前列被所述障碍物的分割次数和上一列被所述障碍物的分割次数之间的大小,对所述旋转地图进行分区处理,得到多个待作业分区。
5.根据权利要求4所述的方法,其特征在于,所述根据所述旋转地图中当前列被所述障碍物的分割次数和上一列被所述障碍物的分割次数之间的大小,对所述旋转地图进行分区处理,得到多个待作业分区,包括以下任意一种:
在当前列被所述障碍物的分割次数大于上一列被所述障碍物的分割次数时,根据所述当前列和所述上一列之间的像素点在所述旋转地图上确定一个待作业分区,并增加两个待确认分区;
在当前列的分割次数小于上一列的分割次数时,根据所述当前列和所述上一列之间的像素点在所述旋转地图确定两个待作业分区,并增加一个待确认分区。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一主方向,确定所述多个待作业分区中每个待作业分区的第二主方向,包括:
确定所述多个待作业分区中每个待作业分区的外接方形;所述多个待作业分区中每个待作业分区的外接方形的一边长与所述第一主方向平行;
在所述多个待作业分区中相应待作业分区的外接方形的最长边长与所述第一主方向平行时,将所述第一主方向作为相应待作业分区的第二主方向;或
在所述多个待作业分区中相应待作业分区的外接方形的最长边长与所述第一主方向垂直时,将所述第一主方向的垂直方向作为相应待作业分区的第二主方向;
和/或所述根据所述每个待作业分区的至少两条平行线段、所述几何中心,以及当前作业位置,得到所述作业区域子图的全局路径,包括:
分别获取所述每个待作业分区的至少两条平行线段中的第一平行线的两个端点的位置坐标和最后一条平行线的两个端点的位置坐标,得到所述每个待作业分区的角点坐标;
根据所述每个待作业分区的所述角点坐标、所述几何中心、所述至少两条平行线段和当前作业位置,确定所述每个待作业分区的作业顺序和所述每个待作业分区的弓形线;
根据所述作业顺序、所述每个待作业分区的弓形线,得到所述作业区域子图的全局路径。
7.根据权利要求6所述的方法,其特征在于,根据所述每个待作业分区的所述角点坐标、所述几何中心、所述至少两条平行线段和当前作业位置,确定所述每个待作业分区的作业顺序和所述每个待作业分区的弓形线,包括:
根据所述每个待作业分区的所述几何中心和所述角点坐标,以及当前作业位置,确定所述每个待作业分区与所述当前位置的距离代价值;
确定所述多个待作业分区中数值最小的距离代价值对应的待作业分区为第一作业区域,并从所述第一作业区域的角点坐标中确定所述第一作业区域的作业起点;
根据所述第一作业区域的作业起点,对所述第一作业区域的至少两条平行线段进行首尾连接,得到所述第一作业区域的弓形线;
将所述第一作业区域的弓形线中距离所述作业起点最远的点确定为所述第一作业区域的作业终点;
将所述第一作业区域的作业终点作为新的当前作业位置,根据所述多个待作业分区中除所述第一作业区域作为剩余待作业分区,根据所述剩余待作业分区中每个待作业分区的所述几何中心和所述角点坐标,以及新的当前作业位置,得到所述剩余待作业分区中每个待作业分区的弓形线。
8.根据权利要求7所述的方法,其特征在于,并从所述第一作业区域的角点坐标中确定所述第一作业区域的作业起点,包括:
计算所述第一作业区域中各角点坐标与所述当前作业位置的距离;
将所述第一作业区域中角点坐标中距离所述当前作业位置的最小的角点确定为作业起点。
9.一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210461807.XA CN117008586A (zh) | 2022-04-28 | 2022-04-28 | 全局路径生成方法、装置、机器人和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210461807.XA CN117008586A (zh) | 2022-04-28 | 2022-04-28 | 全局路径生成方法、装置、机器人和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117008586A true CN117008586A (zh) | 2023-11-07 |
Family
ID=88574966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210461807.XA Pending CN117008586A (zh) | 2022-04-28 | 2022-04-28 | 全局路径生成方法、装置、机器人和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117008586A (zh) |
-
2022
- 2022-04-28 CN CN202210461807.XA patent/CN117008586A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020134082A1 (zh) | 一种路径规划方法、装置和移动设备 | |
CN110307838B (zh) | 机器人重定位方法、装置、计算机可读存储介质及机器人 | |
Bosché | Plane-based registration of construction laser scans with 3D/4D building models | |
US9189862B2 (en) | Outline approximation for point cloud of building | |
CN103703490B (zh) | 用于产生三维特征数据的设备以及用于产生三维特征数据的方法 | |
CN102542035B (zh) | 基于扫描线法的多边形栅格化并行转换方法 | |
CN108645411B (zh) | 基于粒子群算法的机器人路径规划方法、装置及终端设备 | |
JP2018514031A (ja) | DeepStereo:実世界の画像から新たなビューを予測するための学習 | |
CN110221600B (zh) | 路径规划方法、装置、计算机设备和存储介质 | |
CN113065594B (zh) | 一种基于北斗数据与遥感影像融合的路网提取方法及装置 | |
CN109974699B (zh) | 一种机器人及其地图自主探索方法和装置 | |
AU2023201623A1 (en) | Device and method for improving route planning computing devices | |
Satari et al. | A multi‐resolution hybrid approach for building model reconstruction from lidar data | |
CN111433780A (zh) | 车道线检测方法、设备、计算机可读存储介质 | |
CN111897364B (zh) | 一种无人机区域轨迹规划方法、装置及可读存储介质 | |
CN110427506A (zh) | 空间数据边界处理方法、装置、计算机设备及存储介质 | |
CN117008586A (zh) | 全局路径生成方法、装置、机器人和计算机存储介质 | |
Barath et al. | Space-partitioning RANSAC | |
Janus et al. | MKScal-system for land consolidation project based on CAD platform | |
CN113867371B (zh) | 路径规划方法和电子设备 | |
CN117193278A (zh) | 动态沿边路径生成的方法、装置、计算机设备和存储介质 | |
CN114022518A (zh) | 图像的光流信息获取方法、装置、设备和介质 | |
Qin et al. | Dynamic detection of topological information from grid-based generalized Voronoi diagrams | |
EP3828789A1 (en) | Method and apparatus for planning path of unmanned device | |
CN110009559B (zh) | 图像处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |