CN114397889A - 基于单元分解的全覆盖路径规划方法及相关设备 - Google Patents
基于单元分解的全覆盖路径规划方法及相关设备 Download PDFInfo
- Publication number
- CN114397889A CN114397889A CN202111579455.XA CN202111579455A CN114397889A CN 114397889 A CN114397889 A CN 114397889A CN 202111579455 A CN202111579455 A CN 202111579455A CN 114397889 A CN114397889 A CN 114397889A
- Authority
- CN
- China
- Prior art keywords
- target
- unit
- row
- obstacle
- current
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 64
- 238000004140 cleaning Methods 0.000 claims abstract description 33
- 238000010408 sweeping Methods 0.000 claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims description 58
- 239000011159 matrix material Substances 0.000 claims description 51
- 230000004888 barrier function Effects 0.000 claims description 24
- 238000005260 corrosion Methods 0.000 claims description 10
- 230000007797 corrosion Effects 0.000 claims description 10
- 230000002441 reversible effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003306 harvesting Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000013507 mapping Methods 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
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明涉及机器人技术领域,提供一种基于单元分解的全覆盖路径规划方法及相关设备,用于解决扫地机器人在具有障碍物的清扫区域中,无法高效地覆盖可清扫区域的问题。基于单元分解的全覆盖路径规划方法包括:获取二值图像,根据所述二值图像确定至少一个目标可清扫区域;对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元;获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种基于单元分解的全覆盖路径规划方法及相关设备。
背景技术
随着智能化技术的发展以及应人类家务劳动自动化的需求,移动机器人正在成为智能家居产品的标配,增长迅猛。移动机器人在打扫中,常会遇到障碍物,对于存在障碍物的清扫区域处理是移动机器人智能化技术领域中所需解决的问题之一,目前,一般都是采用基于栅格的全覆盖处理方式来解决障碍物的清扫区域问题。
但是,上述基于栅格的全覆盖处理方式在路径规划时需要根据当前点实时搜索四个方向是否可以行走,且需要定义四个方向的优先级,当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯,因此,导致了移动机器人在具有障碍物的清扫区域中,无法高效地覆盖可清扫区域。
发明内容
本发明提供一种基于单元分解的全覆盖路径规划方法及相关设备,用于解决扫地机器人在具有障碍物的清扫区域中,无法高效地覆盖可清扫区域的问题。
本发明第一方面提供了一种基于单元分解的全覆盖路径规划方法,所述基于单元分解的全覆盖路径规划方法包括:
获取二值图像,根据所述二值图像确定至少一个目标可清扫区域;
对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元;
获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
在一种可行的实施方式中,所述对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元,包括:
遍历所述至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数;
基于每行的连接段数,将所述至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元。
在一种可行的实施方式中,所述基于每行的连接段数,将所述至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元包括:
在所述至少一个目标可清扫区域中,生成与每行的连接段数对应的不存在障碍物的可清扫单元格,得到每行的单元格;
将前后两行的连接段进行连续性分析,得到分析结果;
通过所述分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
在一种可行的实施方式中,所述通过所述分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元包括:
若所述分析结果指示当前行的目标连接段与上一行的目标连接段连续,则按照上一行的目标连接段对应的单元格的编号,将当前行的目标连接段对应的单元格进行标记;
若所述分析结果指示当前行的目标连接段与上一行的目标连接段不连续,则按照与上一行的目标连接段对应的单元格不相同的编号,将当前行的目标连接段对应的单元格进行标记;
将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
在一种可行的实施方式中,所述将前后两行的连接段进行连续性分析,得到分析结果包括:
对当前行的连接段和上一行的连接段进行邻接性计算,得到邻接矩阵;
计算所述邻接矩阵中各矩阵行的和值,并判断目标矩阵行的和值是否等于1;
若目标矩阵行的和值等于1,则判定目标矩阵行对应的目标连续段连续,得到分析结果;
若目标矩阵行的和值不等于1,则判定目标矩阵行对应的目标连续段不连续,得到分析结果。
在一种可行的实施方式中,所述获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径包括:
对所述至少一个目标非障碍物单元进行遍历标记,并判断遍历标记后的目标非障碍物单元是否全部完成遍历;
若遍历标记后的目标非障碍物单元未全部完成遍历,则获取未遍历的目标非障碍物单元和机器人当前位置;
通过所述机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元;
对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
在一种可行的实施方式中,所述对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径包括:
判断所述机器人当前位置是否为所述当前需覆盖单元中的首行;
若所述机器人当前位置为所述当前需覆盖单元中的首行,则按照预设的目标形状,对所述当前需覆盖单元进行正向遍历,得到目标形状全覆盖路径,所述正向遍历的运动方向为从首行往尾行;
若所述机器人当前位置为所述当前需覆盖单元中的尾行,则按照预设的目标形状,对所述当前需覆盖单元进行逆向遍历,得到目标形状全覆盖路径,所述逆向遍历的运动方向为从尾行往首行。
在一种可行的实施方式中,所述对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径之后,还包括:
判断所述当前需覆盖单元内是否存在动态障碍物,得到判断结果;
若所述判断结果指示所述当前需覆盖单元内存在动态障碍物,则更新二值图像和机器人当前位置;
若所述判断结果指示所述当前需覆盖单元内未存在动态障碍物,则继续遍历分析,直至所有未遍历的目标非障碍物单元全部完成遍历。
在一种可行的实施方式中,所述通过所述机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元包括:
计算所述机器人当前位置与各未遍历的目标非障碍物单元的四个顶点距离,所述四个顶点距离为各未遍历的目标非障碍物单元的首行的两个端点距离和尾行的两个端点距离;
通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元。
在一种可行的实施方式中,所述获取二值图像,根据所述二值图像确定至少一个目标可清扫区域,包括:
获取全局清扫时扫描的二值图像,对所述二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,通过各初始可清扫区域的面积,对所述至少一个封闭的初始可清扫区域进行连通域筛选,得到至少一个目标可清扫区域。
在一种可行的实施方式中,当所述至少一个目标可清扫区域的数量为一个时,所述获取二值图像,根据所述二值图像确定至少一个目标可清扫区域,包括:
获取全局清扫时扫描的二值图像,对所述二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,将面积最大的初始可清扫区域确定为目标可清扫区域。
本发明的第二方面提供了一种基于单元分解的全覆盖路径规划装置,包括:
清扫区域划分模块,用于获取二值图像,根据所述二值图像确定至少一个目标可清扫区域;
单元分解模块,用于对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元;
规划模块,用于获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
本发明实施例的第三方面提供了一种基于单元分解的智能设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于单元分解的智能设备执行上述的基于单元分解的全覆盖路径规划方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的基于单元分解的全覆盖路径规划方法。
本发明提供的技术方案中,通过将目标可清扫区域分解成一个或多个不包含障碍物的小单元,使得在进行全覆盖路径规划时不需要考虑障碍物的位置,规划路径更为简便,解决了现有的全覆盖路径规划方法中当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯的问题,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
附图说明
图1为本发明实施例中基于单元分解的全覆盖路径规划方法的一个实施例示意图;
图2为本发明实施例中基于单元分解的全覆盖路径规划方法的另一个实施例示意图;
图3为本发明实施例中二值图像的一个实施例示意图;
图4为本发明实施例中初始可清扫区域的一个实施例示意图;
图5为本发明实施例中目标可清扫区域的一个实施例示意图;
图6为本发明实施例中连续段的一个实施例示意图;
图7为本发明实施例中将前后两行的连接段进行连续性分析的一个实施例示意图;
图8为本发明实施例中将前后两行的连接段进行连续性分析的另一个实施例示意图;
图9为本发明实施例中目标非障碍物单元的一个实施例示意图;
图10为本发明实施例中正向遍历的一个实施例示意图;
图11为本发明实施例中逆向遍历的一个实施例示意图;
图12-图14为本发明实施例中目标形状全覆盖路径的一个实施例示意图;
图15为本发明实施例中基于单元分解的全覆盖路径规划装置的一个结构示意图;
图16为本发明实施例中基于单元分解的全覆盖路径规划装置的另一个结构示意图;
图17为本发明实施例中智能设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于单元分解的全覆盖路径规划方法及相关设备,使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,本发明可以应用在智能设备上,作为示例而非限定的是,智能设备可为移动机器人,本申请以移动机器人为例进行说明。其中,该移动机器人可以是扫地机器人、扫拖一体式机器人、擦地机器人或洗地机器人等的任意一种。本发明应用的扫地机器人的导航类型不限制,可以是激光导航扫地机、陀螺仪导航扫地机或其他采用导航设备的扫地机。任何需要通过地图进行路径规划的方法、设备均可应用本发明,例如,移动机器人的清扫路径规划,自动化农业机器作业中的自动化收割机器的收割路径规划。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,图1是本发明实施例提供的一种本发明实施例中基于单元分解的全覆盖路径规划方法的示意图,本发明实施例中基于单元分解的全覆盖路径规划方法的一个实施例包括:
S101、获取二值图像,根据二值图像确定至少一个目标可清扫区域。
移动机器人获取待清扫区域的环境地图,环境地图可为二维地图也可为三维地图,例如,拓扑地图、几何地图、尺度地图、语义地图,环境地图可为彩色地图,环境地图也可为黑白地图;若环境地图为彩色地图且为三维地图,则将环境地图进行二维转换后的图像二值化处理,从而得到二值图像,若环境地图为黑白地图且为三维地图,则将环境地图进行二维转换,得到二值图像。其中,移动机器人可通过摄像头、扫描仪(如:激光扫描仪、照相式扫描仪)、传感器(如:雷达成像类型的传感器-激光雷达、摄影类型的传感器)等采集图像的设备等(在此不做限定)中的至少一种,来获取待清扫区域的环境地图。二值图像可为预先编辑或采集的图像,也可为实时更新变化的二值图像。
其中,作为示例而非限定的是,目标可清扫区域可为移动机器人可以到达的、具有一定清扫通畅性的、不存在障碍物的、封闭的连通域。移动机器人可根据移动机器人的半径对二值图像进行连通域处理,以剔除移动机器人不可达到的区域,并将面积符合预设条件的连通域保留,面积不符合预设条件的连通域剔除,从而得到目标可清扫区域;或者,移动机器人可通过预置的目标检测算法,对连通域处理后的二值图像进行符合预设面积要求的目标区域检测和目标区域提取,从而得到至少一个目标可清扫区域。
S102、对至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,目标非障碍物单元用于指示不存在障碍物的可清扫单元。
作为示例而非限定的是,移动机器人可通过预置的单元分解算法,将至少一个目标可清扫区域分解成一个或多个不包含障碍物的小单元,即至少一个目标非障碍物单元,目标非障碍物单元用于指示不存在障碍物的可清扫单元,其中,单元分解算法可为精确单元分解算法或近似单元分解算法或(Boustrophedon Cellular Decomposition,BCD)单元分解算法。
作为示例而非限定的是,移动机器人可通过根据移动机器人的便捷性、单元形状、单元面积等的需求,对至少一个目标可清扫区域进行分析和区域分割,从而得到至少一个目标非障碍物单元。
S103、获取机器人当前位置,基于机器人当前位置对至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
其中,获取机器人当前位置的实现方式有多种,例如,轨迹推算、惯性导航、卫星导航定位、路标定位、地图匹配定位以及视觉定位。
作为示例而非限定的是,移动机器人通过定位单元和定位系统采集移动机器人当前所处的对应可清扫区域的位置,即机器人当前位置,其中,定位单元用于采集定位信号,定位系统用于根据采集的定位信号进行信号处理、二值图像的位置映射等,定位单元可为激光导航仪、陀螺仪导航仪等,在此不做限定。
通过根据机器人当前位置确定至少一个目标非障碍物单元中全覆盖路径规划的起始单元以及遍历起点,根据设定的目标形状对各目标非障碍物单元进行遍历,从而得到目标形状全覆盖路径。其中,目标形状可为便于移动的、路径全覆盖的形状,例如,字形-弓字形、回字形。
本发明实施例中,通过将目标可清扫区域分解成一个或多个不包含障碍物的小单元,使得在进行全覆盖路径规划时不需要考虑障碍物的位置,规划路径更为简便,解决了现有的全覆盖路径规划方法中当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯的问题,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
请参阅图2,本发明实施例中基于单元分解的全覆盖路径规划方法的另一个实施例包括:
S201、获取二值图像,根据二值图像确定至少一个目标可清扫区域。
具体的,移动机器人获取全局清扫时扫描的二值图像,对二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;计算各初始可清扫区域的面积,通过各初始可清扫区域的面积,对至少一个封闭的初始可清扫区域进行连通域筛选,得到至少一个目标可清扫区域。
作为示例而非限定的是,当移动机器人进入全局清扫时,会先沿边清扫并对清扫区域以及清扫区域的周边环境进行激光扫描,得到二值图像,二值图像如图3所示,图3中的黑色部分表示障碍物,白色部分表示清扫区域。移动机器人根据移动机器人的半径大小和预置的腐蚀算法,对二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域,初始可清扫区域是连通域,即将图3中的黑色部分变大,如图4所示,图4中包括多个封闭的初始可清扫区域,即编号为1-12的白色部分,通过根据移动机器人的半径大小对二值图像进行腐蚀,使得得到的至少一个封闭的初始可清扫区域是移动机器人可到达的区域;通过根据移动机器人的半径大小对原始地图(即二值图像)腐蚀,即将可清扫区域进行缩减细化,使得到移动机器人在可清扫区域中的任意位置都可以到达且不会碰撞障碍物。
由于腐蚀之后的地图(即腐蚀后的二值图像)包括至少一个移动机器人无法到达的清扫区域,因而需要将这些移动机器人无法到达的清扫区域进行移除,其实现方式可为:计算各初始可清扫区域的面积,判断各初始可清扫区域的面积是否大于预设阈值(或是否符合预设面积条件,该预设面积条件可为是否在预设的面积范围区间内),若是,则保留对应的初始可清扫区域,若否,则移除对应的初始可清扫区域,从而得到至少一个目标可清扫区域,目标可清扫区域是连通域,其中,移除对应的初始可清扫区域即将对应的初始可清扫区域设置为障碍物,可通过对其进行腐蚀来实现,即将对应的初始可清扫区域对应的黑色区域变大。
具体的,当至少一个目标可清扫区域的数量为一个时,移动机器人获取全局清扫时扫描的二值图像,对二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;计算各初始可清扫区域的面积,将面积最大的初始可清扫区域确定为目标可清扫区域。
优选的,保留并将至少一个初始可清扫区域中最大面积的初始可清扫区域作为目标可清扫区域,移除其他初始可清扫区域,即计算各初始可清扫区域的面积,按照从大到小的顺序对各初始可清扫区域的面积进行排序,将排序第一的面积(即最大面积)对应初始可清扫区域作为目标可清扫区域,并将目标可清扫区域之外的初始可清扫区域进行移除(可通过膨胀处理实现),如图5所示,图5中的白色区域为目标可清扫区域,即图4中编号12对应的白色区域,其中,实际(真实)的地图中编号12对应的白色区域是连通的区域,经过对地图进行数据预处理(膨胀处理)后会出现一些出入,即图5中编号12对应的白色区域会出现不连通的地方。
S202、遍历至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数。
通过预置的BCD单元分解算法将包含障碍物的可清扫区域进行单元分解,得到至少一个不包含障碍物的小单元,即至少一个目标非障碍物单元。具体的实现方式:遍历至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数,基于每行的连接段数,将至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元。
其中,遍历至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数的执行过程如下:按照预设遍历顺序对目标可清扫区域对应的栅格地图进行遍历,例如,按照从上到下、从左到右的预设遍历顺序依次遍历栅格地图,在遍历的同时,逐行计算每一行被障碍物分割的连接段的数量,并记录每个一个连接段的起点和终点(如:将第一行的某一段连接段记录为(az,bz)),得到每行的连接段以及每行的连接段数,如图6所示,图6中的黑色部分表示障碍物,白色部分表示连接段,障碍物将该行分成了两段,即两个连续段,该行的连接段数为2,分别为连接段①和连接段②。
S203、基于每行的连接段数,将至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元。
具体的,移动机器人在至少一个目标可清扫区域中,生成与每行的连接段数对应的不存在障碍物的可清扫单元格,得到每行的单元格;将前后两行的连接段进行连续性分析,得到分析结果;通过分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
根据每行的连接段数生成每行对应的单元格,即每行的单元格与每行的连接段数相同,如图6所示,该行的连接段数为2,则该行的单元格的数量为2,为连接段①和连接段②分别对应的单元格。将当前行的连接段与上一行的连接段进行连续性比较,从而得到分析结果,分析结果指示当前行的目标连接段与上一行的目标连接段连续,或当前行的目标连接段与上一行的目标连接段不连续。根据分析结果的指示内容,将每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,从而得到至少一个目标非障碍物单元。通过预置的BCD单元分解算法基于每行的连接段数,将至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,能够将移动机器人可行走区域和障碍物分离出来,在后续规划全覆盖路径时不需要考虑障碍物,规划路径更为简便,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
具体的,将前后两行的连接段进行连续性分析,得到分析结果的执行过程可包括:对当前行的连接段和上一行的连接段进行邻接性计算,得到邻接矩阵;计算邻接矩阵中各矩阵行的和值,并判断目标矩阵行的和值是否等于1;若目标矩阵行的和值等于1,则判定目标矩阵行对应的目标连续段连续,得到分析结果;若目标矩阵行的和值不等于1,则判定目标矩阵行对应的目标连续段不连续,得到分析结果。
其中,目标矩阵行指示所有矩阵行中的每一个矩阵行,也可指示所有矩阵行中指定的一个矩阵行。将当前行的连接段分别与上一行的连接段进行邻接性计算,得到邻接矩阵,具体的执行过程为:获取当前行的连接段的数组和上一行的连接段的数组,并通过数组获取当前行的目标连接段与上一行的目标连接段两个连接段中起点的最大值和终点的最小值,计算终点的最小值和起点的最大值之间的差值,根据差值的大小进行目标值的设置,从而得到邻接矩阵;根据目标矩阵行的和值是否等于1的判断,可得到对应的分析结果。
例如,以第一行的连接段和第二行的连接段为例说明,如图7所示,第一行的连接段为连接段①和连接段②,第二行的连接段为连接段③、连接段④和连接段②,第一行的连接段的数组为{(a1,b1),(a2,b2)},(a1,b1)对应连接段①,(a2,b2)对应连接段②,第二行的连接段的数组为{(x1,y1),(x2,y2),(x3,y3)},(x1,y1)对应连接段③,(x2,y2)对应连接段④,(x3,y3)对应连接段②,取(a1,b1)和(x1,y1)中起点的最大值a1x1和终点的最小值b1y1,计算终点的最小值b1y1减去起点的最大值a1x1,得到差值c11,同理可得(a1,b1)和(x2,y2)的差值c12、(a1,b1)和(x3,y3)的差值c13、(a2,b2)和(x1,y1)的差值c21、(a2,b2)和(x2,y2)的差值c22以及(a2,b2)和(x3,y3)的差值c23,从而得到2*3的邻接矩阵其中,若差值大于0,则将邻接矩阵中对应的位置的值设置为1,表示两个连接段邻接(邻接不一定连续),即连接段③与连接段①邻接,连接段④与连接段①邻接,第一行的连接段②与第二行的连接段②邻接,若差值大于0,则将邻接矩阵中对应的位置的值设置0,表示两个连接段不邻接,即连接段③与连接段②不邻接,连接段④与连接段②不邻接;计算邻接矩阵中每一行的和值,得到各矩阵行的和值,若和值大于1,则表示对应的两个连接段(即目标连接段)不连续,则相对第一行构成的单元格则可生成新的单元格(即表示单元格不连续,后续进行不同的编号标记),即图7中第二行的连接段③与第一行的连接段①不连续、第二行的连接段④与第一行的连接段①不连续,第二行的连接段②与第一行的连接段②连续,第二行的连接段③对应的单元格③和连接段④对应的单元格④相对于第一行的连接段①对应的单元格①,生成了新的单元格③或新的单元格④;其中,通过计算各矩阵行的和值来得到分析结果外,也可以通过计算各矩阵列的和值来得到分析结果,该分析结果指示当前行相对上一行是否生成新的单元格,其具体的执行过程为:计算邻接矩阵中各矩阵列的和值,判断目标矩阵列的和值是否大于1或者为0,若大于1或者为0,则判定当前行相对上一行生成新的单元格,若小于或等于1,则判定当前行相对上一行不生成新的单元格,从而得到分析结果。
为了进一步说明生成新的单元格(即表示单元格不连续,后续进行不同的编号标记),如8所示,第三行的连接段数比第二行的连接段数少,只有第三行的连续段③和第二段的连接段③连续,因而第三行的连接段⑤对应的单元格⑤相对于第二行的连接段④对应的单元格④和连接段②对应的单元格②来说,是将单元格④和单元格②合并而生成新的单元格;第四行的连接段数比第三行的连接段数一样,第四行的连接段与第三行的连接段均不连续,因而第四行的连接段⑥对应的单元格⑥和连接段⑦对应的单元格⑦,相对第三行的连接段③对应的单元格③和连接段⑤对应的单元格⑤来说,是新的单元格。
通过邻接矩阵来进行连续性分析,提高了连续性分析的便捷性和分析结果的分析准确性。
具体的,移动机器人通过分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元包括:若分析结果指示当前行的目标连接段与上一行的目标连接段连续,则按照上一行的目标连接段对应的单元格的编号,将当前行的目标连接段对应的单元格进行标记;若分析结果指示当前行的目标连接段与上一行的目标连接段不连续,则按照与上一行的目标连接段对应的单元格不相同的编号,将当前行的目标连接段对应的单元格进行标记;将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
如8所示,第一行的目标连接段①与第二行的目标连续段③、目标连续段④均不连续,则按照与第一行的目标连接段①对应的单元格①以及目标连接段②对应的单元格②均不相同的编号(③和④),分别对第一行的目标连续段③对应的单元格、目标连续段④对应的单元格进行标号,得到单元格③和单元格④,第一行的目标连接段②与第二行的目标连续段②连续,则按照第一行的目标连接段②对应的单元格②的编号(②),对第二行的目标连接段②对应的单元格进行标号,得到单元格②,同理可得到第三行的单元格③和单元格⑤、第四行的单元格⑥和单元格⑦,将编号相同的单元格确定为同一个单元,得到目标非障碍物单元1、目标非障碍物单元2、目标非障碍物单元3、目标非障碍物单元4、目标非障碍物单元5、目标非障碍物单元6和目标非障碍物单元7。
对应图5的目标可清扫区域单元分解后,最终得到至少一个目标非障碍物单元如图9所示,图9中为14个目标非障碍物单元,每个编号对应的白色区域为一个目标非障碍物单元。
通过编号划分目标非障碍物单元,提高处理的便捷性和效率,进而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
S204、对至少一个目标非障碍物单元进行遍历标记,并判断遍历标记后的目标非障碍物单元是否全部完成遍历。
作为示例而非限定的是,对目标非障碍物单元进行遍历标记,若已完成遍历,则标记1,若未完成遍历,则标记0,得到遍历标记后的目标非障碍物单元,通过遍历标记的信息来判断是否完成遍历。若遍历标记后的目标非障碍物单元全部完成遍历,则结束执行。
S205、若遍历标记后的目标非障碍物单元未全部完成遍历,则获取未遍历的目标非障碍物单元和机器人当前位置。
若遍历标记后的目标非障碍物单元未全部完成遍历,则从所有的目标非障碍物单元中提取出标记为0的目标非障碍物单元,从而得到未遍历的目标非障碍物单元。移动机器人通过定位的方法、模块、设备,对移动机器人当前所在的位置进行定位,得到机器人当前位置,机器人当前位置为机器人(移动机器人)当前所处在二值图像的位置。
S206、通过机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元。
具体的,移动机器人计算机器人当前位置与各未遍历的目标非障碍物单元的四个顶点距离,四个顶点距离为各未遍历的目标非障碍物单元的首行的两个端点距离和尾行的两个端点距离;通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元。
其中,四个顶点距离对应的四个顶点为各未遍历的目标非障碍物单元的首行的第一个点、首行的最后一个点、尾行的第一个点和尾行的最后一个点,即首行的两个端点和尾行的两个端点。识别各未遍历的目标非障碍物单元的四个顶点(首行的两个端点和尾行的两个端点)时,会对四个顶点(首行的两个端点和尾行的两个端点)进行标记,例如,该顶点是哪个未遍历的目标非障碍物单元的哪个位置的端点。通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元的具体实现方式可为:获取所有未遍历的目标非障碍物单元的所有顶点距离中最小的顶点距离,例如,未遍历的目标非障碍物单元有两个,对应的所有顶点距离有8个,从8个顶点距离中获取最小的顶点距离,作为示例而非限定的是,获取最小的顶点距离的实现方式可为按照值的大小对所有顶点距离进行升序排序,排序第一的顶点距离即为最小的顶点距离;根据最小的顶点距离的顶点所标记的信息识别出对应的未遍历的目标非障碍物单元,并将对应的未遍历的目标非障碍物单元确定为距离最近的目标非障碍物单元,即当前需覆盖单元。
通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元,确保了移动机器人能够沿边移动、清扫,而非从地图的中间或其他位置开始移动、清扫,解决了现有的全覆盖路径规划方法中以当前点实时搜索四个方向是否可以行走,且需要定义四个方向的优先级的问题,并便于后续进行目标形状的全覆盖路径规划的单元确定,提高了规划效率。
S207、对当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
具体的,移动机器人判断机器人当前位置是否为当前需覆盖单元中的首行;若机器人当前位置为当前需覆盖单元中的首行,则按照预设的目标形状,对当前需覆盖单元进行正向遍历,得到目标形状全覆盖路径,正向遍历的运动方向为从首行往尾行;若机器人当前位置为当前需覆盖单元中的尾行,则按照预设的目标形状,对当前需覆盖单元进行逆向遍历,得到目标形状全覆盖路径,逆向遍历的运动方向为从尾行往首行。
移动机器人通过判断机器人当前位置是否为当前需覆盖单元中的首行,来确定遍历的方向和规划的路径。若机器人当前位置为当前需覆盖单元中的首行,则按照预设的目标形状,对当前需覆盖单元进行正向遍历,得到目标形状全覆盖路径,正向遍历的运动方向为从首行往尾行,即正向遍历用于指示从首行往尾行遍历,作为示例而非限定的是,如图10中的(1)所示,图中五角星表示移动机器人所处的位置,即机器人当前位置,预设的目标形状为弓字形,图中显示的为弓字形的一部分,当机器人当前位置为当前需覆盖单元中的首行的第一个点,即移动机器人当前处于当前需覆盖单元中的首行的第一个点时,正向遍历地图,遍历方法为:从左往右遍历,转弯,下一行从右往左遍历,转弯,从左往右遍历,以此循环至当前需覆盖单元的尾行;如图10中的(2)所示,图中五角星表示移动机器人所处的位置,即机器人当前位置,预设的目标形状为弓字形,图中显示的为弓字形的一部分,当机器人当前位置为当前需覆盖单元中的首行的最后一个点,即移动机器人当前处于当前需覆盖单元中的首行最后一个点时,正向遍历地图,遍历方法为:从右往左遍历,转弯,下一行从左往右遍历,转弯,从右往左遍历,以此循环至当前需覆盖单元的尾行。
若机器人当前位置为当前需覆盖单元中的尾行,则按照预设的目标形状,对当前需覆盖单元进行逆向遍历,得到目标形状全覆盖路径,正向遍历的运动方向为从尾行往首行,即逆向遍历用于指示从尾行往首行遍历,作为示例而非限定的是,如图11中的(1)所示,图中五角星表示移动机器人所处的位置,即机器人当前位置,预设的目标形状为弓字形,图中显示的为弓字形的一部分,当机器人当前位置为当前需覆盖单元中的尾行的第一个点,即移动机器人当前处于当前需覆盖单元中的尾行的第一个点时,逆向遍历地图,遍历方法为:从左往右遍历,转弯,上一行从右往左遍历,转弯,从左往右遍历,以此循环至当前需覆盖单元的首行;如图11中的(2)所示,图中五角星表示移动机器人所处的位置,即机器人当前位置,预设的目标形状为弓字形,图中显示的为弓字形的一部分,当机器人当前位置为当前需覆盖单元中的尾行的最后一个点,即移动机器人当前处于当前需覆盖单元中的尾行最后一个点时,逆向遍历地图,遍历方法为:从右往左遍历,转弯,上一行从左往右遍历,转弯,从右往左遍历,以此循环至当前需覆盖单元的首行。
图10和图11对应的是某个单元内的部分路径的正向遍历和逆向遍历的具体说明,作为示例而非限定的是,对于各目标非障碍物单元内的路径规划,以及对于所有目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径如图12-14所示,为了图12-14的路径清晰显示,图12-14对应的目标非障碍物单元不进行相应的编号,目标非障碍物单元对应的具体的编号可参见图9,具体的如图12中的(1)所示,图12中的(1)中黑色实心圆点为移动机器人位于当前需覆盖单元②的遍历起点(机器人当前位置),移动机器人位于当前需覆盖单元②的尾行的最后一个点,向上进行逆向遍历至首行后回到黑色实心点位置处,转弯,移动机器人此时处于首行的最后一个点,向下进行正向遍历至当前需覆盖单元②的尾行的第一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元④,如图12中的(2)所示,移动机器人从前需覆盖单元②的尾行的第一个点移动至当前需覆盖单元④的首行的第一个点,即机器人当前位置为当前需覆盖单元④的首行的第一个点,正向遍历至当前需覆盖单元④的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑥,如图12中的(3)所示,移动机器人从前需覆盖单元④的尾行的最后一个点移动至当前需覆盖单元⑥的首行的最后一个点,即机器人当前位置为当前需覆盖单元⑥的首行的最后一个点,正向遍历至当前需覆盖单元⑥的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑦,如图12中的(4)所示,移动机器人从前需覆盖单元⑥的尾行的最后一个点移动至当前需覆盖单元⑦的首行的最后一个点,即机器人当前位置为当前需覆盖单元⑦的首行的最后一个点,正向遍历至当前需覆盖单元⑦的尾行的第一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑨,如图12中的(5)所示,移动机器人从前需覆盖单元⑦的首行的第一个点移动至当前需覆盖单元⑨的首行的第一个点,即机器人当前位置为当前需覆盖单元⑨的首行的第一个点,正向遍历至当前需覆盖单元⑨的尾行的最后一个点(即图中的黑色空心圆点)。
根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元,如图13中的(1)所示,移动机器人从前需覆盖单元⑨的尾行的最后一个点移动至当前需覆盖单元的首行的最后一个点,即机器人当前位置为当前需覆盖单元的首行的最后一个点,正向遍历至当前需覆盖单元的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元,如图13中的(2)所示,移动机器人从前需覆盖单元的尾行的最后一个点移动至当前需覆盖单元的首行的第一个点,即机器人当前位置为当前需覆盖单元的首行的第一个点,正向遍历至当前需覆盖单元的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元,如图13中的(3)所示,移动机器人从前需覆盖单元的尾行的最后一个点移动至当前需覆盖单元的尾行的第一个点,即机器人当前位置为当前需覆盖单元的首行的最后一个点,正向遍历至当前需覆盖单元的尾行的第一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑩,如图13中的(4)所示,移动机器人从前需覆盖单元的尾行的第一个点移动至当前需覆盖单元⑩的尾行的第一个点,即机器人当前位置为当前需覆盖单元⑩的尾行的第一个点,逆向遍历至当前需覆盖单元⑩的首行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑧,如图13中的(5)所示,移动机器人从当前需覆盖单元⑩的首行的最后一个点转弯至当前需覆盖单元⑧的尾行的最后一个点,即机器人当前位置为当前需覆盖单元⑧的尾行的最后一个点,逆向遍历至当前需覆盖单元⑧的首行的最后一个点(即图中的黑色空心圆点)。
根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元,如图14中的(1)所示,移动机器人从当前需覆盖单元⑧的尾行的最后一个点移动至当前需覆盖单元的首行的第一个点,即机器人当前位置为当前需覆盖单元的首行的第一个点,正向遍历至当前需覆盖单元的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元①,如图14中的(2)所示,移动机器人从当前需覆盖单元的尾行的最后一个点移动至当前需覆盖单元①的首行的第一个点,即机器人当前位置为当前需覆盖单元①的首行的第一个点,正向遍历至当前需覆盖单元①的尾行的最后一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元⑤,如图14中的(3)所示,移动机器人从当前需覆盖单元①的尾行的最后一个点移动至当前需覆盖单元⑤的尾行的第一个点,即机器人当前位置为当前需覆盖单元⑤的尾行的第一个点,逆向遍历至当前需覆盖单元⑤的首行的第一个点(即图中的黑色空心圆点);根据步骤S206的执行过程计算得到下一个遍历的单元,即当前需覆盖单元③,如图14中的(4)所示,移动机器人从当前需覆盖单元⑤的首行的第一个点移动至当前需覆盖单元③的尾行的第一个点,即机器人当前位置为当前需覆盖单元③的尾行的第一个点,逆向遍历至当前需覆盖单元③的首行的最后一个点(即图中的黑色空心圆点)。
具体的,移动机器人对当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径之后,还包括:判断当前需覆盖单元内是否存在动态障碍物,得到判断结果;若判断结果指示当前需覆盖单元内存在动态障碍物,则更新二值图像和机器人当前位置;若判断结果指示当前需覆盖单元内未存在动态障碍物,则继续遍历分析,直至所有未遍历的目标非障碍物单元全部完成遍历。
移动机器人判断当前需覆盖单元内是否存在动态障碍物,得到判断结果,其中,动态障碍物可为呈动态变化的障碍物,也可为随时间变化而出现的障碍物;若判断结果指示当前需覆盖单元内存在动态障碍物,则更新二值图像和机器人当前位置,根据更新后的二值图像和机器人当前位置执行与上述步骤S101-S103和步骤S201-S207类似的执行过程;若判断结果指示当前需覆盖单元内未存在动态障碍物,则继续遍历分析,即执行与上述步骤S204-S207类似的执行过程,直至所有未遍历的目标非障碍物单元全部完成遍历。
本发明实施例中,通过根据移动机器人的半径大小对原始地图(即二值图像)腐蚀,即将可清扫区域进行缩减细化,使得到移动机器人在可清扫区域中的任意位置都可以到达且不会碰撞障碍物,通过将目标可清扫区域分解成一个或多个不包含障碍物的小单元,使得在进行全覆盖路径规划时不需要考虑障碍物的位置,规划路径更为简便,解决了现有的全覆盖路径规划方法中以当前点实时搜索四个方向是否可以行走,且需要定义四个方向的优先级,当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯的问题,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
上面对本发明实施例中基于单元分解的全覆盖路径规划方法进行了描述,下面对本发明实施例中基于单元分解的全覆盖路径规划装置进行描述,请参阅图15,本发明实施例中基于单元分解的全覆盖路径规划装置一个实施例包括:
清扫区域划分模块1510,用于获取二值图像,根据二值图像确定至少一个目标可清扫区域;
单元分解模块1520,用于对至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,目标非障碍物单元用于指示不存在障碍物的可清扫单元;
规划模块1530,用于获取机器人当前位置,基于机器人当前位置对至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
上述基于单元分解的全覆盖路径规划装置中各个模块的功能实现与上述基于单元分解的全覆盖路径规划方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明实施例中,通过将目标可清扫区域分解成一个或多个不包含障碍物的小单元,使得在进行全覆盖路径规划时不需要考虑障碍物的位置,规划路径更为简便,解决了现有的全覆盖路径规划方法中当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯的问题,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
请参阅图16,本发明实施例中基于单元分解的全覆盖路径规划装置的另一个实施例包括:
清扫区域划分模块1510,用于获取二值图像,根据二值图像确定至少一个目标可清扫区域;
单元分解模块1520,用于对至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,目标非障碍物单元用于指示不存在障碍物的可清扫单元;
其中,单元分解模块1520具体包括:
遍历计算单元1521,用于遍历至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数;
划分单元1522,用于基于每行的连接段数,将至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元;
规划模块1530,用于获取机器人当前位置,基于机器人当前位置对至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径;
其中,规划模块1530具体包括:
遍历标记单元1531,用于对至少一个目标非障碍物单元进行遍历标记,并判断遍历标记后的目标非障碍物单元是否全部完成遍历;
获取单元1532,用于若遍历标记后的目标非障碍物单元未全部完成遍历,则获取未遍历的目标非障碍物单元和机器人当前位置;
确定单元1533,用于通过机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元;
规划单元1534,用于对当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
可选的,划分单元1522包括:
生成子单元15221,用于在至少一个目标可清扫区域中,生成与每行的连接段数对应的不存在障碍物的可清扫单元格,得到每行的单元格;
分析子单元15222,用于将前后两行的连接段进行连续性分析,得到分析结果;
标记子单元15223,用于通过分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
可选的,标记子单元15223还可以具体用于:
若分析结果指示当前行的目标连接段与上一行的目标连接段连续,则按照上一行的目标连接段对应的单元格的编号,将当前行的目标连接段对应的单元格进行标记;
若分析结果指示当前行的目标连接段与上一行的目标连接段不连续,则按照与上一行的目标连接段对应的单元格不相同的编号,将当前行的目标连接段对应的单元格进行标记;
将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
可选的,分析子单元15222还可以具体用于:
对当前行的连接段和上一行的连接段进行邻接性计算,得到邻接矩阵;
计算邻接矩阵中各矩阵行的和值,并判断目标矩阵行的和值是否等于1;
若目标矩阵行的和值等于1,则判定目标矩阵行对应的目标连续段连续,得到分析结果;
若目标矩阵行的和值不等于1,则判定目标矩阵行对应的目标连续段不连续,得到分析结果。
可选的,规划单元1534还可以具体用于:
判断机器人当前位置是否为当前需覆盖单元中的首行;
若机器人当前位置为当前需覆盖单元中的首行,则按照预设的目标形状,对当前需覆盖单元进行正向遍历,得到目标形状全覆盖路径,正向遍历的运动方向为从首行往尾行;
若机器人当前位置为当前需覆盖单元中的尾行,则按照预设的目标形状,对当前需覆盖单元进行逆向遍历,得到目标形状全覆盖路径,逆向遍历的运动方向为从尾行往首行。
可选的,规划模块1530还包括:
判断单元1535,用于判断当前需覆盖单元内是否存在动态障碍物,得到判断结果;
更新分析单元1536,用于若判断结果指示当前需覆盖单元内存在动态障碍物,则更新二值图像和机器人当前位置;
遍历分析单元1537,用于若判断结果指示当前需覆盖单元内未存在动态障碍物,则继续遍历分析,直至所有未遍历的目标非障碍物单元全部完成遍历。
可选的,确定单元1533还可以具体用于:
计算机器人当前位置与各未遍历的目标非障碍物单元的四个顶点距离,四个顶点距离为各未遍历的目标非障碍物单元的首行的两个端点距离和尾行的两个端点距离;
通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元。
可选的,清扫区域划分模块1510还可以具体用于:
获取全局清扫时扫描的二值图像,对二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,通过各初始可清扫区域的面积,对至少一个封闭的初始可清扫区域进行连通域筛选,得到至少一个目标可清扫区域。
可选的,当至少一个目标可清扫区域的数量为一个时,清扫区域划分模块1510还可以具体用于:
获取全局清扫时扫描的二值图像,对二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,将面积最大的初始可清扫区域确定为目标可清扫区域。
本发明实施例中,通过根据移动机器人的半径大小对原始地图(即二值图像)腐蚀,即将可清扫区域进行缩减细化,使得到移动机器人在可清扫区域中的任意位置都可以到达且不会碰撞障碍物,通过将目标可清扫区域分解成一个或多个不包含障碍物的小单元,使得在进行全覆盖路径规划时不需要考虑障碍物的位置,规划路径更为简便,解决了现有的全覆盖路径规划方法中以当前点实时搜索四个方向是否可以行走,且需要定义四个方向的优先级,当遇到障碍物时不会自动回避,而是需要通过碰撞障碍物之后回退转弯的问题,从而使得移动机器人在具有障碍物的清扫区域中,能够高效地覆盖可清扫区域。
上面图15和图16从模块化功能实体的角度对本发明实施例中的基于单元分解的全覆盖路径规划装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于单元分解的智能设备进行详细描述。
图17是本发明实施例提供的一种智能设备的结构示意图,该智能设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1710(例如,一个或一个以上处理器)和存储器1720,一个或一个以上存储应用程序1733或数据1732的存储介质1730(例如一个或一个以上海量存储设备)。其中,存储器1720和存储介质1730可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对智能设备1700中的一系列指令操作。更进一步地,处理器1710可以设置为与存储介质1730通信,在智能设备1700上执行存储介质1730中的一系列指令操作。
基于智能设备1700还可以包括一个或一个以上电源1740,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1760,和/或,一个或一个以上操作系统1731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图17示出的智能设备结构并不构成对智能设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行基于单元分解的全覆盖路径规划方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种基于单元分解的全覆盖路径规划方法,其特征在于,所述基于单元分解的全覆盖路径规划方法包括:
获取二值图像,根据所述二值图像确定至少一个目标可清扫区域;
对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元;
获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
2.根据权利要求1所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元,包括:
遍历所述至少一个目标可清扫区域对应的栅格地图,逐行计算被障碍物分割的连接段的数量,得到每行的连接段数;
基于每行的连接段数,将所述至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元。
3.根据权利要求2所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述基于每行的连接段数,将所述至少一个目标可清扫区域划分为不存在障碍物的可清扫单元,得到至少一个目标非障碍物单元包括:
在所述至少一个目标可清扫区域中,生成与每行的连接段数对应的不存在障碍物的可清扫单元格,得到每行的单元格;
将前后两行的连接段进行连续性分析,得到分析结果;
通过所述分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
4.根据权利要求3所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述通过所述分析结果对每行的单元格进行编号标记,并将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元包括:
若所述分析结果指示当前行的目标连接段与上一行的目标连接段连续,则按照上一行的目标连接段对应的单元格的编号,将当前行的目标连接段对应的单元格进行标记;
若所述分析结果指示当前行的目标连接段与上一行的目标连接段不连续,则按照与上一行的目标连接段对应的单元格不相同的编号,将当前行的目标连接段对应的单元格进行标记;
将编号相同的单元格确定为同一个单元,得到至少一个目标非障碍物单元。
5.根据权利要求3所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述将前后两行的连接段进行连续性分析,得到分析结果包括:
对当前行的连接段和上一行的连接段进行邻接性计算,得到邻接矩阵;
计算所述邻接矩阵中各矩阵行的和值,并判断目标矩阵行的和值是否等于1;
若目标矩阵行的和值等于1,则判定目标矩阵行对应的目标连续段连续,得到分析结果;
若目标矩阵行的和值不等于1,则判定目标矩阵行对应的目标连续段不连续,得到分析结果。
6.根据权利要求1所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径包括:
对所述至少一个目标非障碍物单元进行遍历标记,并判断遍历标记后的目标非障碍物单元是否全部完成遍历;
若遍历标记后的目标非障碍物单元未全部完成遍历,则获取未遍历的目标非障碍物单元和机器人当前位置;
通过所述机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元;
对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
7.根据权利要求6所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径包括:
判断所述机器人当前位置是否为所述当前需覆盖单元中的首行;
若所述机器人当前位置为所述当前需覆盖单元中的首行,则按照预设的目标形状,对所述当前需覆盖单元进行正向遍历,得到目标形状全覆盖路径,所述正向遍历的运动方向为从首行往尾行;
若所述机器人当前位置为所述当前需覆盖单元中的尾行,则按照预设的目标形状,对所述当前需覆盖单元进行逆向遍历,得到目标形状全覆盖路径,所述逆向遍历的运动方向为从尾行往首行。
8.根据权利要求6所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述对所述当前需覆盖单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径之后,还包括:
判断所述当前需覆盖单元内是否存在动态障碍物,得到判断结果;
若所述判断结果指示所述当前需覆盖单元内存在动态障碍物,则更新二值图像和机器人当前位置;
若所述判断结果指示所述当前需覆盖单元内未存在动态障碍物,则继续遍历分析,直至所有未遍历的目标非障碍物单元全部完成遍历。
9.根据权利要求6所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述通过所述机器人当前位置,从未遍历的目标非障碍物单元中确定当前需覆盖单元包括:
计算所述机器人当前位置与各未遍历的目标非障碍物单元的四个顶点距离,所述四个顶点距离为各未遍历的目标非障碍物单元的首行的两个端点距离和尾行的两个端点距离;
通过各未遍历的目标非障碍物单元的四个顶点距离获取距离最近的目标非障碍物单元,得到当前需覆盖单元。
10.根据权利要求1-9中任一项所述的基于单元分解的全覆盖路径规划方法,其特征在于,所述获取二值图像,根据所述二值图像确定至少一个目标可清扫区域,包括:
获取全局清扫时扫描的二值图像,对所述二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,通过各初始可清扫区域的面积,对所述至少一个封闭的初始可清扫区域进行连通域筛选,得到至少一个目标可清扫区域。
11.根据权利要求1-9中任一项所述的基于单元分解的全覆盖路径规划方法,其特征在于,当所述至少一个目标可清扫区域的数量为一个时,所述获取二值图像,根据所述二值图像确定至少一个目标可清扫区域,包括:
获取全局清扫时扫描的二值图像,对所述二值图像进行腐蚀处理,得到至少一个封闭的初始可清扫区域;
计算各初始可清扫区域的面积,将面积最大的初始可清扫区域确定为目标可清扫区域。
12.一种基于单元分解的全覆盖路径规划装置,其特征在于,所述基于单元分解的全覆盖路径规划装置包括:
清扫区域划分模块,用于获取二值图像,根据所述二值图像确定至少一个目标可清扫区域;
单元分解模块,用于对所述至少一个目标可清扫区域进行单元分解,得到至少一个目标非障碍物单元,所述目标非障碍物单元用于指示不存在障碍物的可清扫单元;
规划模块,用于获取机器人当前位置,基于所述机器人当前位置对所述至少一个目标非障碍物单元进行目标形状的全覆盖路径规划,得到目标形状全覆盖路径。
13.一种智能设备,其特征在于,所述智能设备包括:存储器和至少一个处理器,所述存储器中存储有计算机程序;
所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述智能设备执行如权利要求1-11中任意一项所述的基于单元分解的全覆盖路径规划方法。
14.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-11中任一项所述基于单元分解的全覆盖路径规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111579455.XA CN114397889B (zh) | 2021-12-22 | 2021-12-22 | 基于单元分解的全覆盖路径规划方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111579455.XA CN114397889B (zh) | 2021-12-22 | 2021-12-22 | 基于单元分解的全覆盖路径规划方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114397889A true CN114397889A (zh) | 2022-04-26 |
CN114397889B CN114397889B (zh) | 2024-03-26 |
Family
ID=81227716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111579455.XA Active CN114397889B (zh) | 2021-12-22 | 2021-12-22 | 基于单元分解的全覆盖路径规划方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114397889B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115014362A (zh) * | 2022-08-09 | 2022-09-06 | 之江实验室 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120158235A1 (en) * | 2010-12-20 | 2012-06-21 | Mckesson Automation, Inc. | Methods, apparatuses and computer program products for utilizing near field communication to guide robots |
CN103439972A (zh) * | 2013-08-06 | 2013-12-11 | 重庆邮电大学 | 一种动态复杂环境下的移动机器人路径规划方法 |
CN107065881A (zh) * | 2017-05-17 | 2017-08-18 | 清华大学 | 一种基于深度强化学习的机器人全局路径规划方法 |
CN107357293A (zh) * | 2017-07-31 | 2017-11-17 | 上海应用技术大学 | 移动机器人路径规划方法和系统 |
CN107505939A (zh) * | 2017-05-13 | 2017-12-22 | 大连理工大学 | 一种移动机器人的全覆盖路径规划方法 |
CN109947114A (zh) * | 2019-04-12 | 2019-06-28 | 南京华捷艾米软件科技有限公司 | 基于栅格地图的机器人全覆盖路径规划方法、装置及设备 |
CN110361017A (zh) * | 2019-07-19 | 2019-10-22 | 西南科技大学 | 一种基于栅格法的扫地机器人全遍历路径规划方法 |
CN110362079A (zh) * | 2019-07-11 | 2019-10-22 | 珠海市一微半导体有限公司 | 机器人的遍历控制方法和芯片以及清洁机器人 |
CN112068557A (zh) * | 2020-08-27 | 2020-12-11 | 珠海市一微半导体有限公司 | 移动机器人全覆盖路径规划方法、芯片和机器人 |
-
2021
- 2021-12-22 CN CN202111579455.XA patent/CN114397889B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120158235A1 (en) * | 2010-12-20 | 2012-06-21 | Mckesson Automation, Inc. | Methods, apparatuses and computer program products for utilizing near field communication to guide robots |
CN103439972A (zh) * | 2013-08-06 | 2013-12-11 | 重庆邮电大学 | 一种动态复杂环境下的移动机器人路径规划方法 |
CN107505939A (zh) * | 2017-05-13 | 2017-12-22 | 大连理工大学 | 一种移动机器人的全覆盖路径规划方法 |
CN107065881A (zh) * | 2017-05-17 | 2017-08-18 | 清华大学 | 一种基于深度强化学习的机器人全局路径规划方法 |
CN107357293A (zh) * | 2017-07-31 | 2017-11-17 | 上海应用技术大学 | 移动机器人路径规划方法和系统 |
CN109947114A (zh) * | 2019-04-12 | 2019-06-28 | 南京华捷艾米软件科技有限公司 | 基于栅格地图的机器人全覆盖路径规划方法、装置及设备 |
CN110362079A (zh) * | 2019-07-11 | 2019-10-22 | 珠海市一微半导体有限公司 | 机器人的遍历控制方法和芯片以及清洁机器人 |
CN110361017A (zh) * | 2019-07-19 | 2019-10-22 | 西南科技大学 | 一种基于栅格法的扫地机器人全遍历路径规划方法 |
CN112068557A (zh) * | 2020-08-27 | 2020-12-11 | 珠海市一微半导体有限公司 | 移动机器人全覆盖路径规划方法、芯片和机器人 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115014362A (zh) * | 2022-08-09 | 2022-09-06 | 之江实验室 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
CN115014362B (zh) * | 2022-08-09 | 2022-11-15 | 之江实验室 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114397889B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030804B2 (en) | System and method of virtual plant field modelling | |
WO2020134082A1 (zh) | 一种路径规划方法、装置和移动设备 | |
Oßwald et al. | From 3D point clouds to climbing stairs: A comparison of plane segmentation approaches for humanoids | |
Ao et al. | Automatic segmentation of stem and leaf components and individual maize plants in field terrestrial LiDAR data using convolutional neural networks | |
Emmi et al. | A hybrid representation of the environment to improve autonomous navigation of mobile robots in agriculture | |
CN109163722B (zh) | 一种仿人机器人路径规划方法及装置 | |
CN112683275A (zh) | 一种栅格地图的路径规划方法 | |
CN110705385B (zh) | 一种障碍物角度的检测方法、装置、设备及介质 | |
Büchner et al. | Learning and aggregating lane graphs for urban automated driving | |
CN114397889B (zh) | 基于单元分解的全覆盖路径规划方法及相关设备 | |
CN114343490B (zh) | 机器人清扫方法、机器人及存储介质 | |
WO2019137912A1 (en) | Computer vision pre-fusion and spatio-temporal tracking | |
CN115308770A (zh) | 一种基于拟合图形的动态障碍物检测方法 | |
CN112526989B (zh) | 一种农业无人车导航方法、装置、农业无人车及存储介质 | |
CN113158779B (zh) | 一种行走方法、装置和计算机存储介质 | |
CN117635719A (zh) | 基于多传感器融合的除草机器人定位方法、系统及装置 | |
EP3098682B1 (en) | Moving object controller, program, and integrated circuit | |
Spampinato et al. | Deep learning localization with 2D range scanner | |
Moore et al. | Ura*: Uncertainty-aware path planning using image-based aerial-to-ground traversability estimation for off-road environments | |
Duberg et al. | DUFOMap: Efficient dynamic awareness mapping | |
Brahmanage et al. | Building 2D Maps with Integrated 3D and Visual Information using Kinect Sensor | |
CN115326058B (zh) | 机器人地图的生成方法、设备、存储介质和移动机器人 | |
Liang et al. | HO3-SLAM: Human-Object Occlusion Ordering as Add-on for Enhancing Traversability Prediction in Dynamic SLAM | |
CN118550280A (zh) | 一种移动机器人自主探索全覆盖路径规划方法及系统 | |
CN114872029B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518110 1701, building 2, Yinxing Zhijie, No. 1301-72, sightseeing Road, Xinlan community, Guanlan street, Longhua District, Shenzhen, Guangdong Province Applicant after: Shenzhen Yinxing Intelligent Group Co.,Ltd. Address before: 518110 Building A1, Yinxing Hi-tech Industrial Park, Guanlan Street Sightseeing Road, Longhua District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Silver Star Intelligent Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |