CN115268471B - 扫地机器人的路径生成方法及装置、存储介质 - Google Patents
扫地机器人的路径生成方法及装置、存储介质 Download PDFInfo
- Publication number
- CN115268471B CN115268471B CN202211180035.9A CN202211180035A CN115268471B CN 115268471 B CN115268471 B CN 115268471B CN 202211180035 A CN202211180035 A CN 202211180035A CN 115268471 B CN115268471 B CN 115268471B
- Authority
- CN
- China
- Prior art keywords
- point
- polygon
- path
- convex
- polygons
- 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.)
- Active
Links
- 238000010408 sweeping Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000005304 joining Methods 0.000 claims abstract description 9
- 238000004140 cleaning Methods 0.000 claims description 52
- 238000009877 rendering Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 6
- 230000033001 locomotion Effects 0.000 claims description 4
- 230000008602 contraction Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique 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/0259—Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
-
- 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/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- 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/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/028—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
-
- 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/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0285—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
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)
- Electromagnetism (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种扫地机器人的路径生成方法及装置、存储介质,其中,该方法包括:确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;确定所述多个凸多边形的衔接顺序;分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。通过本发明,解决了相关技术在复杂的凹多边形环境遇到密集零散的障碍区域时路规划凌乱,路径重复率偏高和覆盖率偏低的技术问题,提高了扫地机器人在不同场景下运行的稳定性和鲁棒性。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种扫地机器人的路径生成方法及装置、存储介质。
背景技术
相关技术中,全自动的移动机器人为了实现自主作业,需要提前或者实时进行路径规划,生成移动路径,路径规划根据其目的的不同可以分为两种,一种是传统的点到点的路径规划,另一种就是全覆盖路径规划。
点到点的路径规划是一种从起始点到终点的运动策略,它要求寻找一条从始点到终点的最优(如代价最小、路径最短、时间最短等)并且合理的路径,使移动机器人能够在工作空间顺利地通行而不碰到任何障碍物。全覆盖路径规划是一种在二维工作空间中特殊的路径规划,指在满足某种性能指标最优或准优的前提下,寻找一条在设定区域内从始点到终点且经过所有可达到点的连续路径。
对于扫地机器人来说,其作业任务是清扫房间,它的路径规划属于全覆盖路径规划,要求机器人合理而高效地覆盖除障碍物以外的所有工作区域。需满足两个指标:遍历性和不重复性。所谓遍历性是指扫地机器人运动轨迹需要最大程度的遍布所有可达空间,它反映的是机器人的工作质量问题。所谓不重复性是指扫地机器人的行走路线应尽量避免重复,反映的是机器人的工作效率问题。
相关技术中,扫地机器人常规全覆盖路径规划对复杂的凹多边形环境分解过于细碎,规划的路径短边多,转弯多,调头多。普遍存在重复率偏高和覆盖率偏低问题,并且在遇到密集零散的障碍区域时,会产生线路规划凌乱甚至不能覆盖的问题。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种扫地机器人的路径生成方法及装置、存储介质。
根据本申请实施例的一个方面,提供了一种扫地机器人的路径生成方法,包括:确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;确定所述多个凸多边形的衔接顺序;分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
进一步,在基于碰撞检测连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径之后,所述方法还包括:获取区域地图,其中,所述区域地图包括所述目标覆盖区域和不可通行区域;采用所述区域地图创建像素全为第一像素值的单通道地图;在所述单通道地图上创建坐标系,并将所述多个凸多边形渲染至所述单通道地图,其中,所述凸多边形在所述单通道地图上的像素值为第二像素值;将所述不可通行区域渲染至所述单通道地图,其中,所述不可通行区域在所述单通道地图上的像素值为所述第一像素值;
通过插值将所述移动路径渲染至所述单通道地图,并以所述扫地机器人的清扫宽度为直径沿所述移动路径绘制像素为第一像素值的圆,以模拟所述扫地机器人按所述移动路径的移动范围;将所述单通道地图中剩余的第二像素值的区域进行轮廓提取和多边形拟合,得到漏扫区域。
进一步,将所述目标覆盖区域分割为多个凸多边形包括:对所述目标覆盖区域对应的第一多边形和不可通行区域的第二多边形求差集,得到有孔多边形;确定所述有孔多边形的顶点类型,基于所述顶点类型对所述有孔多边形进行单调划分,得到多个单调多边形;对每个所述单调多边形进行凸分割,生成多个凸多边形。
进一步,对每个所述单调多边形进行凸分割,生成多个凸多边形,包括:针对每个单调多边形,确定单调多边形的起始点和终止点;沿所述起始点分别顺时针和逆时针遍历到所述终止点,分别生成第一单调链表和第二单调链表;同时沿所述第一单调链表和所述第二单调链表从上至下遍历,在每一个遍历周期执行如下步骤,直到单调多边形分割完:若检测到其中一条单调链的第一关键点,从所述第一关键点向另一条单调链的第二关键点引对角线,将分割后的最大凸多边形从所述单调多边形中分割出去,其中,所述第一关键点为凹点,所述第二关键点为凹点或其他类型的顶点。
进一步,确定所述多个凸多边形的衔接顺序包括:确定每个凸多边形的质心点;基于质心点计算两个相邻凸多边形之间的质心距离;采用所有相邻凸多边形之间的质心距离构建邻接矩阵,基于所述邻接矩阵计算经过所有质心点的最短路径,将所述最短路径经过的质心顺序确定为所述多个凸多边形的衔接顺序,其中,所述邻接矩阵的每个元素对应一组相邻凸多边形之间的质心距离。
进一步,分别对每个所述凸多边形生成螺旋式路径包括:确定扫地机器人的清扫宽度,并以所述清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于所述清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;针对每个凸多边形,在收缩完成之后,在所述若干个收缩多边形中选择最里侧的内侧多边形,并确定所述扫地机器人的位置点;以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;从所述容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在所述容器中删除该点,若夹角与180度的差值大于预设阈值,在所述容器中保留该点;将所述容器中剩余的点确定为所述凸多边形的螺旋式路径的路径点。
进一步,以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,包括:按照顺时针将所述内侧多边形的所有顶点加入容器中;通过所述内侧多边形倒数第二个顶点与最后一个顶点连成射线,计算所述射线与由内到外的顺序的下一收缩多边形的交点;对所述下一收缩多边形以该交点为初始点顺时针将对应的顶点加入到所述容器,重复上述操作,直到最后一个收缩多边形的顶点加入到所述容器。
进一步,按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径,包括:按照所述衔接顺序连接当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点,得到连接线段;对所述连接线段进行碰撞检测,并确定当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点之间是否存在碰撞点;如果不存在碰撞点,将所述连接线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;如果存在碰撞点,搜索连接所述当前凸多边形的路径终点与相邻的下一个凸多边形的无碰撞路径,将所述路径起点加入目标栈,从所述目标栈中选取最后一个点作为当前点,从所述无碰撞路径中从后往前排序并选取第一个点作为目初始标点,将当前点与初始目标点连成一条目标线段,若所述目标线段有碰撞,则将所述无碰撞路径的下一个点作为目标点,并重复上述步骤,若所述目标线段无碰撞,将当前的目标点加入所述目标栈中,并在所述目标栈中重新选择选取最后一个点作为当前点,重新从所述无碰撞路径中从后往前排序并选取第一个点作为初始目标点,重复上述操作,直到当前点与初始目标点连成的线段无碰撞,循环结束,将当前的初始目标点加入目标栈中;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;按照所述衔接顺序连接所有的连接路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
根据本申请实施例的另一个方面,还提供了一种扫地机器人的路径生成装置,包括:分割模块,用于确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;确定模块,用于确定所述多个凸多边形的衔接顺序;生成模块,用于分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;连接模块,用于按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
进一步,所述装置还包括:获取模块,用于在所述连接模块基于碰撞检测连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径之后,获取区域地图,其中,所述区域地图包括所述目标覆盖区域和不可通行区域;创建模块,用于采用所述区域地图创建像素全为第一像素值的单通道地图;第一渲染模块,用于在所述单通道地图上创建坐标系,并将所述多个凸多边形渲染至所述单通道地图,其中,所述凸多边形在所述单通道地图上的像素值为第二像素值;第二渲染模块,用于将所述不可通行区域渲染至所述单通道地图,其中,所述不可通行区域在所述单通道地图上的像素值为所述第一像素值;绘制模块,用于通过插值将所述移动路径渲染至所述单通道地图,并以所述扫地机器人的清扫宽度为直径沿所述移动路径绘制像素为第一像素值的圆,以模拟所述扫地机器人按所述移动路径的移动范围;处理模块,用于将所述单通道地图中剩余的第二像素值的区域进行轮廓提取和多边形拟合,得到漏扫区域。
进一步,所述分割模块包括:计算单元,用于对所述目标覆盖区域对应的第一多边形和不可通行区域的第二多边形求差集,得到有孔多边形;划分单元,用于确定所述有孔多边形的顶点类型,基于所述顶点类型对所述有孔多边形进行单调划分,得到多个单调多边形;分割单元,用于对每个所述单调多边形进行凸分割,生成多个凸多边形。
进一步,所述分割单元包括:确定子单元,用于针对每个单调多边形,确定单调多边形的起始点和终止点;生成子单元,用于沿所述起始点分别顺时针和逆时针遍历到所述终止点,分别生成第一单调链表和第二单调链表;遍历子单元,用于同时沿所述第一单调链表和所述第二单调链表从上至下遍历,在每一个遍历周期执行如下步骤,直到单调多边形分割完:若检测到其中一条单调链的第一关键点,从所述第一关键点向另一条单调链的第二关键点引对角线,将分割后的最大凸多边形从所述单调多边形中分割出去,其中,所述第一关键点为凹点,所述第二关键点为凹点或其他类型的顶点。
进一步,所述确定模块包括:确定单元,用于确定每个凸多边形的质心点;计算单元,用于基于质心点计算两个相邻凸多边形之间的质心距离;处理单元,用于采用所有相邻凸多边形之间的质心距离构建邻接矩阵,基于所述邻接矩阵计算经过所有质心点的最短路径,将所述最短路径经过的质心顺序确定为所述多个凸多边形的衔接顺序,其中,所述邻接矩阵的每个元素对应一组相邻凸多边形之间的质心距离。
进一步,所述生成模块包括:收缩单元,用于确定扫地机器人的清扫宽度,并以所述清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于所述清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;选择单元,用于针对每个凸多边形,在收缩完成之后,在所述若干个收缩多边形中选择最里侧的内侧多边形,并确定所述扫地机器人的位置点;添加单元,用于以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;遍历单元,用于从所述容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在所述容器中删除该点,若夹角与180度的差值大于预设阈值,在所述容器中保留该点;确定单元,用于将所述容器中剩余的点确定为所述凸多边形的螺旋式路径的路径点。
进一步,所述添加单元包括:第一添加子单元,用于按照顺时针将所述内侧多边形的所有顶点加入容器中;计算子单元,用于通过所述内侧多边形倒数第二个顶点与最后一个顶点连成射线,计算所述射线与由内到外的顺序的下一收缩多边形的交点;第二添加子单元,用于对所述下一收缩多边形以该交点为初始点顺时针将对应的顶点加入到所述容器,重复上述操作,直到最后一个收缩多边形的顶点加入到所述容器。
进一步,所述连接模块包括:第一连接单元,用于按照所述衔接顺序连接当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点,得到连接线段;确定单元,用于对所述连接线段进行碰撞检测,并确定当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点之间是否存在碰撞点;处理单元,用于如果不存在碰撞点,将所述连接线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;如果存在碰撞点,搜索连接所述当前凸多边形的路径终点与相邻的下一个凸多边形的无碰撞路径,将所述路径起点加入目标栈,从所述目标栈中选取最后一个点作为当前点,从所述无碰撞路径中从后往前排序并选取第一个点作为目初始标点,将当前点与初始目标点连成一条目标线段,若所述目标线段有碰撞,则将所述无碰撞路径的下一个点作为目标点,并重复上述步骤,若所述目标线段无碰撞,将当前的目标点加入所述目标栈中,并在所述目标栈中重新选择选取最后一个点作为当前点,重新从所述无碰撞路径中从后往前排序并选取第一个点作为初始目标点,重复上述操作,直到当前点与初始目标点连成的线段无碰撞,循环结束,将当前的初始目标点加入目标栈中;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;第二连接单元,用于按照所述衔接顺序连接所有的连接路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
通过本发明,确定扫地机器人待清扫的目标覆盖区域,将目标覆盖区域分割为多个凸多边形,确定多个凸多边形的衔接顺序,分别对每个凸多边形生成螺旋式路径,其中,螺旋式路径包括多个呈螺旋式布局的路径点,路径点为凸多边形的顶点,按照衔接顺序无碰撞连接多个螺旋式路径,得到扫地机器人在目标覆盖区域的移动路径,通过分割凸多边形且生成每个凸多边形的螺旋式路径,再按序连接对应每个凸多边形的螺旋式路径,解决了相关技术在复杂的凹多边形环境遇到密集零散的障碍区域时路规划凌乱,路径重复率偏高和覆盖率偏低的技术问题,提高了扫地机器人在不同场景下运行的稳定性和鲁棒性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种计算机的硬件结构框图;
图2是根据本发明实施例的一种扫地机器人的路径生成方法的流程图;
图3是本发明实施例中对有孔多边形进行单调分割的示意图;
图4是本发明实施例中凸分割的示意图;
图5是本发明实施例收缩凸多边形的示意图;
图6是本发明实施例对凸多边形进行收缩后的示意图;
图7是本发明实施例中螺旋式路径的示意图;
图8是本发明实施例全覆盖路径规划流程图;
图9是根据本发明实施例的一种扫地机器人的路径生成装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在服务器、计算机、冲压机床或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种计算机的硬件结构框图。如图1所示,计算机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种扫地机器人的路径生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种扫地机器人的路径生成方法,图2是根据本发明实施例的一种扫地机器人的路径生成方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定扫地机器人待清扫的目标覆盖区域,将目标覆盖区域分割为多个凸多边形;
本实施例的目标覆盖区域是扫地机器人在房间内可以通行的区域,不包括不可通行的如墙体,柜子等占用的区域。
步骤S204,确定多个凸多边形的衔接顺序;
由于目标覆盖区域被分割呈多个子区域(凸多边形),扫地机器人只有按照一定的衔接顺序走完所有的凸多边形,才能完成整个目标覆盖区域的。
步骤S206,分别对每个凸多边形生成螺旋式路径,其中,螺旋式路径包括多个呈螺旋式布局的路径点,路径点为凸多边形的顶点;
可选的,路径点为收缩后的凸多边形的顶点。
步骤S208,按照衔接顺序无碰撞连接多个螺旋式路径,得到扫地机器人在目标覆盖区域的移动路径。
本实施例的移动路径是扫地机器人在作业时的清扫路径。
通过上述步骤,确定扫地机器人待清扫的目标覆盖区域,将目标覆盖区域分割为多个凸多边形,确定多个凸多边形的衔接顺序,分别对每个凸多边形生成螺旋式路径,其中,螺旋式路径包括多个呈螺旋式布局的路径点,路径点为凸多边形的顶点,按照衔接顺序无碰撞连接多个螺旋式路径,得到扫地机器人在目标覆盖区域的移动路径,通过分割凸多边形且生成每个凸多边形的螺旋式路径,再按序连接对应每个凸多边形的螺旋式路径,解决了相关技术在复杂的凹多边形环境遇到密集零散的障碍区域时路规划凌乱,路径重复率偏高和覆盖率偏低的技术问题,提高了扫地机器人在不同场景下运行的稳定性和鲁棒性。
在本实施例的一个实施方式中,将目标覆盖区域分割为多个凸多边形包括:
S11,对目标覆盖区域对应的第一多边形和不可通行区域的第二多边形求差集,得到有孔多边形;
S12,确定有孔多边形的顶点类型,基于顶点类型对有孔多边形进行单调划分,得到多个单调多边形;
可选的,顶点类型包括起始顶点,分裂顶点,终止顶点,汇合顶点。例如,若有孔多边形同时不包含分裂顶点和汇合顶点,采用y坐标降序进行单调划分。
首先对输入的覆盖区域多边形和多个不可通行区域多边形求差集,得到一个有孔多边形。然后确定有孔多边形顶点的类型,并按照Y坐标降序排列,若顶点Y坐标相等,则以X坐标小(左边)的点优先获得一个链表。然后依次遍历该链表,针对不同的顶点类型采取不同的操作策略,完成多边形的单调划分操作。图3是本发明实施例中对有孔多边形进行单调分割的示意图,黑色区域为孔,对应不可通行区域。
S13,对每个单调多边形进行凸分割,生成多个凸多边形。
在本实施例的一些示例中,对每个单调多边形进行凸分割,生成多个凸多边形,包括:针对每个单调多边形,确定单调多边形的起始点和终止点;沿起始点分别顺时针和逆时针遍历到终止点,分别生成第一单调链表和第二单调链表;同时沿第一单调链表和第二单调链表从上至下遍历,在每一个遍历周期执行如下步骤,直到单调多边形分割完:若检测到其中一条单调链的第一关键点,从第一关键点向另一条单调链的第二关键点引对角线,将分割后的最大凸多边形从单调多边形中分割出去,其中,第一关键点为凹点,第二关键点为凹点或其他类型的顶点。
在该示例中,首先确定凸多边形起始点和终止点,起始点和终止点的定义如下:起始顶点:Y坐标比相邻两顶点都大,且为凸顶点(内角小于180°);终止顶点:Y坐标比相邻两顶点都小,且为凸顶点(内角小于180°),沿起始点分别顺时针和逆时针遍历到终止点,生成两条单调链表,分别是M1、M2。其次沿两条单调链M1、M2 从上至下,碰到一条单调链的凹点即从它向另一条单调链的凹点或其它顶点引对角线,产生尽可能大的凸多边形从单调多边形中分割出去,对余下的单调多边形做同样处理直到全部分割完。图4是本发明实施例中凸分割的示意图,对角线 ec 分割出一个凸多边形 adecb。
在本实施例中,确定多个凸多边形的衔接顺序包括:确定每个凸多边形的质心点;基于质心点计算两个相邻凸多边形之间的质心距离;采用所有相邻凸多边形之间的质心距离构建邻接矩阵,基于邻接矩阵计算经过所有质心点的最短路径,将最短路径经过的质心顺序确定为多个凸多边形的衔接顺序,其中,邻接矩阵的每个元素对应一组相邻凸多边形之间的质心距离。
在一个示例中,扫地机器人需要依次遍历每个子多边形(凸多边形),采用动态规划的方法对子多边形进行排序,使得扫地机器人遍历每个多边形走过的路径最短。
设每个多边形的质心点为:
ci=(xi,yi)i=1,2,3…n,i为多边形的编号;
两个多边形的距离用对应多边形的质心距离表示如下:
构造所有多边形的邻接矩阵,然后用动态规划的方法求解经过所有质心点的最短路径。路径依次经过的质心点就是多边形的顺序。
在本实施例的一个实施方式中,分别对每个凸多边形生成螺旋式路径包括:
S21,确定扫地机器人的清扫宽度,并以清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;
在本实施例中,对每个分割后的子多边形,按扫地机器人清扫宽度进行等比例收缩,清扫宽度与扫地机器人的滚刷宽度或机壳宽度相同。图5是本发明实施例收缩凸多边形的示意图,L为清扫宽度,P为收缩前的顶点坐标,Q为收缩后的顶点坐标,图5中向量PP1是(x1-x,y1-y),用(v1x,v1y)表示,向量PP2是(x2-x,y2-y),用(v2x,v2y)表示。设n1=norm(v1x,v2y),则向量PP1长度归一化后的向量v1为(v1x/n1,v1y/n1)。向量PP2长度归一化后的向量v2同理。那么向量PQ就是v1+v2,即(v1x/n1+v2x/n2,v1y/n1+v2y/n2),设其为(vx,vy)。然后对PQ进行长度归一化,设n=norm(vx,vy),向量PQ为(vx/n,vy/n)。使用余弦公式求v1、v2的夹角θ,cosθ=(v1x*v2x+v1y*v2y)/(n1*n2)。|PQ|=L/sin(θ/2),L为扫地机器人的清扫宽度。上式进行化简。|PQ|=L/sqrt(1-(v1x*v2x+v1y*v2y)/2),最后就能确定Q的坐标。
所有分割出来的凸多边形按上述操作进行收缩,直到多边形无法收缩,如果最里面的多边形宽度小于扫地机器人清扫宽度,则在多边形中间取一条平行线替代该多边形,避免重复清扫,规划结果如图6所示,图6是本发明实施例对凸多边形进行收缩后的示意图,黑色区域为不可通行区域。
S22,针对每个凸多边形,在收缩完成之后,在若干个收缩多边形中选择最里侧的内侧多边形,并确定扫地机器人的位置点;
S23,以位置点为起始点,按照由内到外的顺序依次将若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;
可选的,以位置点为起始点,按照由内到外的顺序依次将若干个收缩多边形的顶点添加至容器,包括:按照顺时针将内侧多边形的所有顶点加入容器中;通过内侧多边形倒数第二个顶点与最后一个顶点连成射线,计算射线与由内到外的顺序的下一收缩多边形的交点;对下一收缩多边形以该交点为初始点顺时针将对应的顶点加入到容器,重复上述操作,直到最后一个收缩多边形的顶点加入到容器。
在该示例中,遍历最里面多边形的顶点,选取距离机器人上一个点位置最近的点作为初始点。然后顺时针一次将最里面多边形的所有顶点加入容器中。通过该多边形倒数第二个顶点与最后一个顶点连成一条射线,计算该射线与下一个多边形的交点,再对下一个多边形以该交点为初始点顺时针排序并加入到容器,重复上述操作,直到最后一个多边形加入到容器,容器内的所有点呈螺旋式排列,图7是本发明实施例中螺旋式路径的示意图。
S24,从容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在容器中删除该点,若夹角与180度的差值大于预设阈值,在容器中保留该点;
从容器中第二个点遍历到倒数第二个点,计算当前点与上一个点组成的向量、当前点与下一个点组成的向量的夹角,如果夹角在180度附近,则去掉该点,直到遍历结束。最后容器中剩下的点即为全覆盖路径点。
S25,将容器中剩余的点确定为凸多边形的螺旋式路径的路径点。
在本实施例的一个实施方式中,按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径,包括:按照所述衔接顺序连接当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点,得到连接线段;对所述连接线段进行碰撞检测,并确定当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点之间是否存在碰撞点;如果不存在碰撞点,将所述连接线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;如果存在碰撞点,搜索连接所述当前凸多边形的路径终点与相邻的下一个凸多边形的无碰撞路径,将所述路径起点加入目标栈,从所述目标栈中选取最后一个点作为当前点,从所述无碰撞路径中从后往前排序并选取第一个点作为目初始标点,将当前点与初始目标点连成一条目标线段,若所述目标线段有碰撞,则将所述无碰撞路径的下一个点作为目标点,并重复上述步骤,若所述目标线段无碰撞,将当前的目标点加入所述目标栈中,并在所述目标栈中重新选择选取最后一个点作为当前点,重新从所述无碰撞路径中从后往前排序并选取第一个点作为初始目标点,重复上述操作,直到当前点与初始目标点连成的线段无碰撞,循环结束,将当前的初始目标点加入目标栈中;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;按照所述衔接顺序连接所有的连接路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
在本实施方式中,首先对当前多边形终点到下一个多边形起点直接连接的线段作碰撞检测,如果无碰撞,则该线段直接作为两个多边形的连接路径。
如果有碰撞,则在图片坐标系中用Astar等寻路算法搜索一条连接当前多边形终点和下一个多边形起点的无碰撞路径,由于寻路算法搜索出来的路径点过于密集,因此需要对该路径进行简化,仅保留搜索路径的拐点,使用拐点作为中间点折线连接当前多边形终点和下一个多边形起点。确定拐点的步骤包括:先将起点加入新路径点集合(即目标栈,最新进来的点为最后一个点)中,从该集合中选取最后一个点作为当前点(起始只有一个点,即起点),然后从终点开始从后往前遍历搜索路径的每个点,对于当前点与起点连成一条线段,如果该线段有碰撞,则进行下一个点,否则将该点加入新路径点集合中,然后重复上述过程,直到起点与当前点连成的线段无碰撞,将两点加入集合中并终止循环。集合中的路径点即为简化后的无碰撞路径。
在本实施例的一个实施方式中,在基于碰撞检测连接多个螺旋式路径,得到扫地机器人在目标覆盖区域的移动路径之后,还包括:获取区域地图,其中,区域地图包括目标覆盖区域和不可通行区域;采用区域地图创建像素全为第一像素值的单通道地图;在单通道地图上创建坐标系,并将多个凸多边形渲染至单通道地图,其中,凸多边形在单通道地图上的像素值为第二像素值;将不可通行区域渲染至单通道地图,其中,不可通行区域在单通道地图上的像素值为第一像素值;通过插值将移动路径渲染至单通道地图,并以扫地机器人的清扫宽度为直径沿移动路径绘制像素为第一像素值的圆,以模拟扫地机器人按移动路径的移动范围;将单通道地图中剩余的第二像素值的区域进行轮廓提取和多边形拟合,得到漏扫区域。
在一个示例中,坐标系为opencv坐标系,在将凸多边形和不可通行区域分别渲染至opencv坐标系时,一方面,先将多边形在世界坐标系下的坐标转到opencv图片坐标系中,再投影到单通道地图上,另一方面,先将不可通行区域在世界坐标系下的坐标转到opencv图片坐标系中,再投影到单通道地图上。
在一个示例中,第一像素值为0,第二像素值为255。根据扫地机器人传入的地图信息,新建一张像素值全为0的单通道地图,将覆盖区域多边形转换到地图坐标系下并画到地图上,区域内的像素值为255。再将多个不可通行区域多边形换到地图坐标系下并画到地图上,区域内的像素值为0。
在图片坐标系中,对上述步骤生成的全覆盖路径(即上述移动路径)进行插值,然后对插值后所有点转换到地图坐标系下,并以扫地机器人的清扫宽度为直径沿全覆盖路径画像素值为0的圆,来模拟扫地机器人按此路径清扫的范围。再对地图进行轮廓提取和多边形拟合,得到漏扫区域的多边形,对漏扫的多边形重复进行螺旋式路径的操作,得到漏扫区域的覆盖路径,并将该路径整合添加到已经生成的移动路径中。也可以计算漏扫区域的面积,判断面积是否大于阈值,若大于阈值,则添加,否则删除该漏扫区域。通过以上步骤即可得到一条规划整洁,重复率偏低和覆盖率高的全覆盖路径。
图8是本发明实施例全覆盖路径规划流程图,通过对输入的待覆盖区域多边形和不可通行的区域多边形进行布尔运算,得到一个待规划的有孔多边形,然后将有孔多边形分割成一组凸多边形并确定子多边形的衔接顺序,分别对每个子多边形生成由内向外螺旋式路径,再通过搜索一条无碰撞路径连接每个多边形,最后进行漏扫检测,将漏扫区域生成相应的路径组合到对应的子多边形中,得到一条扫地机器人可通行且能够完整覆盖清扫区域的路径,可用于扫地机器人在各种复杂清扫区域中实现全覆盖清扫。
采用本实施例的扫地机器人全覆盖路径规划的方法,通过对输入的待覆盖区域多边形和不可通行的虚拟墙多边形进行分割、排序、规划和检测等步骤,得到一条扫地机器人可通行且能够完整覆盖清扫区域的路径,可用于扫地机器人在各种复杂清扫区域中实现全覆盖清扫。
采用本实施例的方案,实现了一种全覆盖路径规划的方法,能够在复杂的覆盖区域中得到一条规划整洁,重复率偏低和覆盖率高的全覆盖路径。采用本实施例的方案,实现了一种多边形螺旋覆盖路径的生成方法。通过多边形缩放,内外相邻多边形合并以及路径点过滤等步骤,生成一条整洁转弯较少的多边形覆盖路径。采用本实施例的方案,实现了一种覆盖路径漏扫检测的方法。能够理论上实现覆盖区域的全覆盖清扫。
由于相关技术中的全覆盖路径规划对复杂的凹多边形环境分解过于细碎,规划的路径短边多,转弯多,调头多。普遍存在重复率偏高和覆盖率偏低问题,并且在遇到密集零散的障碍区域时,会产生线路规划凌乱甚至不能覆盖的问题。本实施例针对以上问题在区域分解和子区域生成覆盖路径两个步骤进行改进,并增加漏扫检测流程,可应对以上方法的缺点,在不同场景下具有很好的稳定性和鲁棒性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种扫地机器人的路径生成装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9是根据本发明实施例的一种扫地机器人的路径生成装置的结构框图,如图9所示,该装置包括:分割模块90,确定模块92,生成模块94,连接模块96,其中,
分割模块90,用于确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;
确定模块92,用于确定所述多个凸多边形的衔接顺序;
生成模块94,用于分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;
连接模块96,用于按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
可选的,所述装置还包括:获取模块,用于在所述连接模块基于碰撞检测连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径之后,获取区域地图,其中,所述区域地图包括所述目标覆盖区域和不可通行区域;创建模块,用于采用所述区域地图创建像素全为第一像素值的单通道地图;第一渲染模块,用于在所述单通道地图上创建坐标系,并将所述多个凸多边形渲染至所述单通道地图,其中,所述凸多边形在所述单通道地图上的像素值为第二像素值;第二渲染模块,用于将所述不可通行区域渲染至所述单通道地图,其中,所述不可通行区域在所述单通道地图上的像素值为所述第一像素值;绘制模块,用于通过插值将所述移动路径渲染至所述单通道地图,并以所述扫地机器人的清扫宽度为直径沿所述移动路径绘制像素为第一像素值的圆,以模拟所述扫地机器人按所述移动路径的移动范围;处理模块,用于将所述单通道地图中剩余的第二像素值的区域进行轮廓提取和多边形拟合,得到漏扫区域。
可选的,所述分割模块包括:计算单元,用于对所述目标覆盖区域对应的第一多边形和不可通行区域的第二多边形求差集,得到有孔多边形;划分单元,用于确定所述有孔多边形的顶点类型,基于所述顶点类型对所述有孔多边形进行单调划分,得到多个单调多边形;分割单元,用于对每个所述单调多边形进行凸分割,生成多个凸多边形。
可选的,所述分割单元包括:确定子单元,用于针对每个单调多边形,确定单调多边形的起始点和终止点;生成子单元,用于沿所述起始点分别顺时针和逆时针遍历到所述终止点,分别生成第一单调链表和第二单调链表;遍历子单元,用于同时沿所述第一单调链表和所述第二单调链表从上至下遍历,在每一个遍历周期执行如下步骤,直到单调多边形分割完:若检测到其中一条单调链的第一关键点,从所述第一关键点向另一条单调链的第二关键点引对角线,将分割后的最大凸多边形从所述单调多边形中分割出去,其中,所述第一关键点为凹点,所述第二关键点为凹点或其他类型的顶点。
可选的,所述确定模块包括:确定单元,用于确定每个凸多边形的质心点;计算单元,用于基于质心点计算两个相邻凸多边形之间的质心距离;处理单元,用于采用所有相邻凸多边形之间的质心距离构建邻接矩阵,基于所述邻接矩阵计算经过所有质心点的最短路径,将所述最短路径经过的质心顺序确定为所述多个凸多边形的衔接顺序,其中,所述邻接矩阵的每个元素对应一组相邻凸多边形之间的质心距离。
可选的,所述生成模块包括:收缩单元,用于确定扫地机器人的清扫宽度,并以所述清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于所述清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;选择单元,用于针对每个凸多边形,在收缩完成之后,在所述若干个收缩多边形中选择最里侧的内侧多边形,并确定所述扫地机器人的位置点;添加单元,用于以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;遍历单元,用于从所述容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在所述容器中删除该点,若夹角与180度的差值大于预设阈值,在所述容器中保留该点;确定单元,用于将所述容器中剩余的点确定为所述凸多边形的螺旋式路径的路径点。
可选的,所述添加单元包括:第一添加子单元,用于按照顺时针将所述内侧多边形的所有顶点加入容器中;计算子单元,用于通过所述内侧多边形倒数第二个顶点与最后一个顶点连成射线,计算所述射线与由内到外的顺序的下一收缩多边形的交点;第二添加子单元,用于对所述下一收缩多边形以该交点为初始点顺时针将对应的顶点加入到所述容器,重复上述操作,直到最后一个收缩多边形的顶点加入到所述容器。
可选的,所述连接模块包括:第一连接单元,用于按照所述衔接顺序连接当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点,得到连接线段;确定单元,用于对所述连接线段进行碰撞检测,并确定当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点之间是否存在碰撞点;处理单元,用于如果不存在碰撞点,将所述连接线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;如果存在碰撞点,搜索连接所述当前凸多边形的路径终点与相邻的下一个凸多边形的无碰撞路径,将所述路径起点加入目标栈,从所述目标栈中选取最后一个点作为当前点,从所述无碰撞路径中从后往前排序并选取第一个点作为目初始标点,将当前点与初始目标点连成一条目标线段,若所述目标线段有碰撞,则将所述无碰撞路径的下一个点作为目标点,并重复上述步骤,若所述目标线段无碰撞,将当前的目标点加入所述目标栈中,并在所述目标栈中重新选择选取最后一个点作为当前点,重新从所述无碰撞路径中从后往前排序并选取第一个点作为初始目标点,重复上述操作,直到当前点与初始目标点连成的线段无碰撞,循环结束,将当前的初始目标点加入目标栈中;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;第二连接单元,用于按照所述衔接顺序连接所有的连接路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;
S2,确定所述多个凸多边形的衔接顺序;
S3,分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;
S4,按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;
S2,确定所述多个凸多边形的衔接顺序;
S3,分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;
S4,按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种扫地机器人的路径生成方法,其特征在于,包括:
确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;
确定所述多个凸多边形的衔接顺序;
分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;
按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径;
其中,分别对每个所述凸多边形生成螺旋式路径包括:确定扫地机器人的清扫宽度,并以所述清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于所述清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;针对每个凸多边形,在收缩完成之后,在若干个收缩多边形中选择最里侧的内侧多边形,并确定所述扫地机器人的位置点;以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;从所述容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在所述容器中删除该点,若夹角与180度的差值大于预设阈值,在所述容器中保留该点;将所述容器中剩余的点确定为所述凸多边形的螺旋式路径的路径点。
2.根据权利要求1所述的方法,其特征在于,在基于碰撞检测连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径之后,所述方法还包括:
获取区域地图,其中,所述区域地图包括所述目标覆盖区域和不可通行区域;
采用所述区域地图创建像素全为第一像素值的单通道地图;
在所述单通道地图上创建坐标系,并将所述多个凸多边形渲染至所述单通道地图,其中,所述凸多边形在所述单通道地图上的像素值为第二像素值;
将所述不可通行区域渲染至所述单通道地图,其中,所述不可通行区域在所述单通道地图上的像素值为所述第一像素值;
通过插值将所述移动路径渲染至所述单通道地图,并以所述扫地机器人的清扫宽度为直径沿所述移动路径绘制像素为第一像素值的圆,以模拟所述扫地机器人按所述移动路径的移动范围;
将所述单通道地图中剩余的第二像素值的区域进行轮廓提取和多边形拟合,得到漏扫区域。
3.根据权利要求1所述的方法,其特征在于,将所述目标覆盖区域分割为多个凸多边形包括:
对所述目标覆盖区域对应的第一多边形和不可通行区域的第二多边形求差集,得到有孔多边形;
确定所述有孔多边形的顶点类型,基于所述顶点类型对所述有孔多边形进行单调划分,得到多个单调多边形;
对每个所述单调多边形进行凸分割,生成多个凸多边形。
4.根据权利要求3所述的方法,其特征在于,对每个所述单调多边形进行凸分割,生成多个凸多边形,包括:
针对每个单调多边形,确定单调多边形的起始点和终止点;
沿所述起始点分别顺时针和逆时针遍历到所述终止点,分别生成第一单调链表和第二单调链表;
同时沿所述第一单调链表和所述第二单调链表从上至下遍历,在每一个遍历周期执行如下步骤,直到单调多边形分割完:若检测到其中一条单调链的第一关键点,从所述第一关键点向另一条单调链的第二关键点引对角线,将分割后的最大凸多边形从所述单调多边形中分割出去,其中,所述第一关键点为凹点,所述第二关键点为凹点或其他类型的顶点。
5.根据权利要求1所述的方法,其特征在于,确定所述多个凸多边形的衔接顺序包括:
确定每个凸多边形的质心点;
基于质心点计算两个相邻凸多边形之间的质心距离;
采用所有相邻凸多边形之间的质心距离构建邻接矩阵,基于所述邻接矩阵计算经过所有质心点的最短路径,将所述最短路径经过的质心顺序确定为所述多个凸多边形的衔接顺序,其中,所述邻接矩阵的每个元素对应一组相邻凸多边形之间的质心距离。
6.根据权利要求1所述的方法,其特征在于,以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,包括:
按照顺时针将所述内侧多边形的所有顶点加入容器中;
通过所述内侧多边形倒数第二个顶点与最后一个顶点连成射线,计算所述射线与由内到外的顺序的下一收缩多边形的交点;
对所述下一收缩多边形以该交点为初始点顺时针将对应的顶点加入到所述容器,重复上述操作,直到最后一个收缩多边形的顶点加入到所述容器。
7.根据权利要求1所述的方法,其特征在于,按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径,包括:
按照所述衔接顺序连接当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点,得到连接线段;
对所述连接线段进行碰撞检测,并确定当前凸多边形的路径终点到相邻的下一个凸多边形的路径起点之间是否存在碰撞点;
如果不存在碰撞点,将所述连接线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;如果存在碰撞点,搜索连接所述当前凸多边形的路径终点与相邻的下一个凸多边形的无碰撞路径,将所述路径起点加入目标栈,从所述目标栈中选取最后一个点作为当前点,从所述无碰撞路径中从后往前排序并选取第一个点作为目初始标点,将当前点与初始目标点连成一条目标线段,若所述目标线段有碰撞,则将所述无碰撞路径的下一个点作为目标点,并重复上述步骤,若所述目标线段无碰撞,将当前的目标点加入所述目标栈中,并在所述目标栈中重新选择选取最后一个点作为当前点,重新从所述无碰撞路径中从后往前排序并选取第一个点作为初始目标点,重复上述操作,直到当前点与初始目标点连成的线段无碰撞,循环结束,将当前的初始目标点加入目标栈中;将所述目标栈中的路径点连成的折线段确定为所述当前凸多边形与所述下一个凸多边形的连接路径;
按照所述衔接顺序连接所有的连接路径,得到所述扫地机器人在所述目标覆盖区域的移动路径。
8.一种扫地机器人的路径生成装置,其特征在于,包括:
分割模块,用于确定扫地机器人待清扫的目标覆盖区域,将所述目标覆盖区域分割为多个凸多边形;
确定模块,用于确定所述多个凸多边形的衔接顺序;
生成模块,用于分别对每个所述凸多边形生成螺旋式路径,其中,所述螺旋式路径包括多个呈螺旋式布局的路径点,所述路径点为凸多边形的顶点;
连接模块,用于按照所述衔接顺序无碰撞连接多个所述螺旋式路径,得到所述扫地机器人在所述目标覆盖区域的移动路径;
其中,所述生成模块包括:收缩单元,用于确定扫地机器人的清扫宽度,并以所述清扫宽度为收缩步长对每个凸多边形进行等比例收缩,直到凸多边形的宽度小于或等于所述清扫宽度,得到若干个呈螺旋式嵌套的收缩多边形,其中,每个收缩多边形对应一个收缩宽度;选择单元,用于针对每个凸多边形,在收缩完成之后,在所述若干个收缩多边形中选择最里侧的内侧多边形,并确定所述扫地机器人的位置点;添加单元,用于以所述位置点为起始点,按照由内到外的顺序依次将所述若干个收缩多边形的顶点添加至容器,直到最后一个收缩多边形;遍历单元,用于从所述容器中的第二个点遍历至倒数第二个点,在每一个遍历周期执行如下步骤,直到遍历结束:计算当前点与上一个点组成的向量,与当前点与下一个点组成的向量之间的夹角,若夹角与180度的差值小于或等于预设阈值,在所述容器中删除该点,若夹角与180度的差值大于预设阈值,在所述容器中保留该点;确定单元,用于将所述容器中剩余的点确定为所述凸多边形的螺旋式路径的路径点。
9.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,所述计算机程序运行时执行上述权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180035.9A CN115268471B (zh) | 2022-09-27 | 2022-09-27 | 扫地机器人的路径生成方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180035.9A CN115268471B (zh) | 2022-09-27 | 2022-09-27 | 扫地机器人的路径生成方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115268471A CN115268471A (zh) | 2022-11-01 |
CN115268471B true CN115268471B (zh) | 2023-01-03 |
Family
ID=83757496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211180035.9A Active CN115268471B (zh) | 2022-09-27 | 2022-09-27 | 扫地机器人的路径生成方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115268471B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115903814B (zh) * | 2022-11-22 | 2023-08-18 | 哈尔滨工业大学(深圳) | 基于凸多边形树的多机器人最优编队路径规划方法 |
CN116048069B (zh) * | 2022-12-19 | 2023-12-26 | 香港中文大学(深圳) | 一种基于gps定位的室外全覆盖路径规划方法及机器人 |
CN116188480B (zh) * | 2023-04-23 | 2023-07-18 | 安徽同湃特机器人科技有限公司 | 喷涂机器人天花板作业时agv行进路径点的计算方法 |
CN118466521B (zh) * | 2024-07-11 | 2024-09-10 | 杭州涂鸦信息技术有限公司 | 机器人行走方法、装置、电子设备及存储介质 |
CN118464021B (zh) * | 2024-07-11 | 2024-09-13 | 杭州涂鸦信息技术有限公司 | 分割机器人的清扫区域的方法和装置、电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134735A (ja) * | 1993-09-14 | 1995-05-23 | Fujitsu Ltd | 最接近点探索方法及びその前処理方法 |
CN104376329A (zh) * | 2014-11-17 | 2015-02-25 | 上海交通大学 | 基于空间自相关性和分水岭算法的聚类评估方法 |
CN106863305A (zh) * | 2017-03-29 | 2017-06-20 | 赵博皓 | 一种扫地机器人房间地图创建方法及装置 |
CN110097525A (zh) * | 2019-04-23 | 2019-08-06 | 厦门美图之家科技有限公司 | 一种图像渲染方法、装置和计算设备 |
CN112147998A (zh) * | 2020-08-24 | 2020-12-29 | 同济大学 | 一种基于区域生长法的移动机器人路径规划方法 |
CN113253729A (zh) * | 2021-05-18 | 2021-08-13 | 中国工商银行股份有限公司 | 跨区巡检机器人的路径规划方法、装置和存储介质 |
CN114510053A (zh) * | 2022-02-17 | 2022-05-17 | 北京京东乾石科技有限公司 | 机器人规划路径校验方法、装置、存储介质及电子设备 |
CN114531567A (zh) * | 2020-11-06 | 2022-05-24 | 科沃斯机器人股份有限公司 | 信息传输方法、设备及存储介质 |
EP4002049A1 (en) * | 2020-11-20 | 2022-05-25 | Rapyuta Robotics Co., Ltd. | Systems and methods for optimizing route plans in an operating environment |
WO2022134483A1 (zh) * | 2020-12-25 | 2022-06-30 | 珠海一微半导体股份有限公司 | 基于寻径代价的清洁路径规划方法、芯片及清洁机器人 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606269B2 (en) * | 2017-12-19 | 2020-03-31 | X Development Llc | Semantic obstacle recognition for path planning |
US12025987B2 (en) * | 2018-09-14 | 2024-07-02 | Irobot Corporation | Turn-minimizing or turn-reducing robot coverage |
US11520347B2 (en) * | 2019-01-23 | 2022-12-06 | Baidu Usa Llc | Comprehensive and efficient method to incorporate map features for object detection with LiDAR |
CN113671973A (zh) * | 2021-07-09 | 2021-11-19 | 东北大学 | 目标区域的搜索方法及装置、电子设备、存储介质 |
CN114779779A (zh) * | 2022-04-26 | 2022-07-22 | 深圳市普渡科技有限公司 | 路径规划方法、装置、计算机设备和存储介质 |
-
2022
- 2022-09-27 CN CN202211180035.9A patent/CN115268471B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134735A (ja) * | 1993-09-14 | 1995-05-23 | Fujitsu Ltd | 最接近点探索方法及びその前処理方法 |
CN104376329A (zh) * | 2014-11-17 | 2015-02-25 | 上海交通大学 | 基于空间自相关性和分水岭算法的聚类评估方法 |
CN106863305A (zh) * | 2017-03-29 | 2017-06-20 | 赵博皓 | 一种扫地机器人房间地图创建方法及装置 |
CN110097525A (zh) * | 2019-04-23 | 2019-08-06 | 厦门美图之家科技有限公司 | 一种图像渲染方法、装置和计算设备 |
CN112147998A (zh) * | 2020-08-24 | 2020-12-29 | 同济大学 | 一种基于区域生长法的移动机器人路径规划方法 |
CN114531567A (zh) * | 2020-11-06 | 2022-05-24 | 科沃斯机器人股份有限公司 | 信息传输方法、设备及存储介质 |
EP4002049A1 (en) * | 2020-11-20 | 2022-05-25 | Rapyuta Robotics Co., Ltd. | Systems and methods for optimizing route plans in an operating environment |
WO2022134483A1 (zh) * | 2020-12-25 | 2022-06-30 | 珠海一微半导体股份有限公司 | 基于寻径代价的清洁路径规划方法、芯片及清洁机器人 |
CN113253729A (zh) * | 2021-05-18 | 2021-08-13 | 中国工商银行股份有限公司 | 跨区巡检机器人的路径规划方法、装置和存储介质 |
CN114510053A (zh) * | 2022-02-17 | 2022-05-17 | 北京京东乾石科技有限公司 | 机器人规划路径校验方法、装置、存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
Non holonomic shortest robot path planning in a dynamic environment using polygonal obstacles;Abhilash Srivastava,等;《IEEE》;20101231;第553-558页 * |
一种室内扫地机器人全遍历路径规划方法研究;简毅,等;《传感器与微系统》;20181231;第32-34页 * |
面向智能查违的北斗无人机低空感知与服务系统;王诚龙,等;《地理信息世界》;20171231;第102-106页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115268471A (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115268471B (zh) | 扫地机器人的路径生成方法及装置、存储介质 | |
CN107913039B (zh) | 用于清洁机器人的区块选择方法、装置及机器人 | |
CN111152266B (zh) | 一种清洁机器人的控制方法及系统 | |
CN113219992B (zh) | 一种路径规划方法及清洁机器人 | |
CN109540155A (zh) | 一种扫地机器人的路径规划与导航方法、计算机装置以及计算机可读存储介质 | |
CN113219993B (zh) | 一种路径规划方法及清洁机器人 | |
CN114895691B (zh) | 泳池清洁机器人的路径规划方法和装置 | |
CN111578943B (zh) | 清扫路径生成方法及装置、计算机装置及存储装置 | |
CN111248819A (zh) | 一种清洁路径执行方法及清洁机器人 | |
CN113219995A (zh) | 一种路径规划方法及清洁机器人 | |
CN112882459A (zh) | 一种清扫路径规划方法、清扫路径规划装置和清扫机器人 | |
CN116700235A (zh) | 动态全覆盖路径规划方法及装置、清洁设备、存储介质 | |
CN108803586A (zh) | 一种扫地机器人的工作方法 | |
CN108903816A (zh) | 一种清扫方法、控制器及智能清扫设备 | |
CN114779779A (zh) | 路径规划方法、装置、计算机设备和存储介质 | |
CN115205470B (zh) | 续扫重定位方法、装置、设备、存储介质及三维续扫方法 | |
CN113985866A (zh) | 扫地机器人路径规划方法、装置、电子设备、存储介质 | |
CN114690753A (zh) | 基于混合策略的路径规划方法、自主行进设备及机器人 | |
WO2024159865A1 (zh) | 移动路径的确定方法和装置、介质、设备和程序产品 | |
Li et al. | Improving autonomous exploration using reduced approximated generalized voronoi graphs | |
CN115779424B (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
CN116687275A (zh) | 清洁路径规划方法、清洁机器人及存储介质 | |
CN114442642B (zh) | 路径规划方法、装置、计算机设备和存储介质 | |
CN112515554B (zh) | 一种机器人行走路径搜索方法及电子设备 | |
CN115444311A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |