清洁控制方法、装置、清洁机器人和存储介质
技术领域
本申请涉及智能设备技术领域。特别涉及一种清洁控制方法、装置、清洁机器人和存储介质。
背景技术
随着智能设备技术的快速发展,具有自动清洁功能的清洁机器人越来越普及;并且随着人们生活节奏的加快,清洁机器人在家庭生活中扮演的角色越来越重要。清洁机器人可以自动在家庭空间或者大型场所等待清洁空间中执行清洁操作,以对待清洁空间进行清洁,从而为用户节省大量清洁时间。
以待清洁空间为家庭空间为例进行说明,现有的清洁机器人在对家庭空间进行清洁时,清洁机器人从当前所在位置开始清洁,清洁机器人具体清洁方式为:清洁机器人以一固定大小区域为单位搜索周边未清洁区域中的第一清洁区域,参见图1,该第一清洁区域的大小为5m×5m,然后对该第一清洁区域按照弓形轨迹进行清洁,清洁完该第一清洁区域后,继续按照5m×5m的区域大小搜索距离最近的未清洁区域中的第二清洁区域,然后继续清洁该第二清洁区域,以此类推,清洁机器人将家庭空间划分为大小相同的多个清洁区域,以清洁区域为单位依次对多个清洁区域执行清洁操作。当清洁机器人的电量不足或需要清洗清洁机器人包括的清洁件时,清洁机器人会通过出入口移动到清洁机器人的基站所在区域进行充电或者清洗,然后返回正在清洁的清洁区域继续执行清洁操作。
当清洁机器人已清洁包括出入口的清洁区域时,在重复通过出入口移动到基站所在区域进行充电或者清洗时,容易污染已清洁的包括出入口的清洁区域,导致清洁效果差,清洁效率低。
发明内容
本申请实施例提供了一种清洁控制方法、装置、清洁机器人和存储介质,能够解决清洁机器人在执行清洁操作过程中,经过已清洁的包括出入口的清洁区域,污染已清洁的包括出入口的清洁区域的问题。所述技术方案如下:
一方面,提供了一种清洁控制方法,应用于清洁机器人对一未知的待清洁空间清洁时执行,清洁机器人配合一基站使用,所述基站为所述清洁机器人使用的清洁设备,所述待清洁空间设有一出入口,所述清洁控制方法包括:
步骤S1:获取待清洁空间的地图作为第一空间地图,所述第一空间地图用于表示所述待清洁空间或所述待清洁空间内的待清洁子空间,所述待清洁子空间为所述待清洁空间内的未清洁区域;
步骤S2:基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域,相邻且连通的两清洁区域之间设有一出入口;
步骤S3:对所述清洁区域设定清洁次序,所述清洁次序满足在所述清洁次序中任一个清洁区域的出入口到达所述参考物的路径中不允许经过其它已经清洁过的清洁区域;
步骤S4:以所述清洁区域为单位按照所述清洁次序依次对所述待清洁空间的清洁区域执行清洁操作。
在一种可能的实现方式中,在所述步骤S2之前,所述方法还包括:
步骤S5:对所述第一空间地图进行判断,当所述第一空间地图规则时,则将所述待清洁空间或所述待清洁子空间作为清洁区域,执行步骤S6:对所述清洁区域设定清洁方向和清洁起点,对所述待清洁空间的清洁区域执行清洁操作,否则执行步骤S2,所述第一空间地图规则的定义为:所述第一空间地图中任意一点到参考物存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,所述参考物为所述基站或所述出入口,所述基准方向为所述待清洁空间或所述待清洁子空间内任意一点指向所述参考物的方向,且所述点至所述参考物之间的连线区域不经过障碍物。
在另一种可能的实现方式中,所述步骤S4:以所述清洁区域为单位按照所述清洁次序依次对所述待清洁空间的清洁区域执行清洁操作的方法,包括:
步骤S41:对所述清洁区域设定一清洁方向,所述清洁方向为所述基准方向;
步骤S42:基于所述清洁方向,对所述清洁区域设定一清洁起点,所述清洁起点为所述清洁区域的边缘中与所述清洁方向相背的边缘上的点;
步骤S43:以所述清洁区域为单位从所述清洁起点开始,按照所述清洁方向及所述清洁次序对所述待清洁空间的清洁区域执行清洁操作。
在另一种可能的实现方式中,在所述步骤S41之前,所述方法还包括:
步骤S7:按所述清洁次序选择清洁区域,对所述清洁区域的区域地图进行判断,当所述区域地图规则时,执行步骤S41进行清洁,否则,将所述区域地图作为所述第一空间地图,将所述清洁区域作为所述待清洁空间,执行步骤S2,所述区域地图规则的定义为:所述区域地图中任意一点到所述出入口存在至少一条路径且满足路径中没有趋向于所述出入口方向的反方向的移动路径。
在另一种可能的实现方式中,所述方法还包括:
当对一清洁区域执行完清洁操作后,基于从所述清洁区域移动到下一清洁区域的导航路径,从所述清洁区域移动到所述下一清洁区域。
在另一种可能的实现方式中,所述步骤S2:将所述待清洁空间划分为至少一清洁区域的方法,包括:
将所述待清洁空间,按照所述第一空间地图中的房间信息划分,得到所述至少一清洁区域。
在另一种可能的实现方式中,在所述步骤S2之前,所述方法还包括:
以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述步骤S2:基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域的方法,包括:
步骤S21:在所述参考物的位置处,通过横向扫描线扫描所述第一空间地图,所述横向扫描线和所述基准方向垂直;
若所述第一空间地图中已经扫描的区域在所述Y轴正方向上有相邻且未扫描的区域,则沿所述Y轴正方向推进所述横向扫描线扫描相邻且未扫描的区域;
若所述第一空间地图中已经扫描的区域在所述Y轴负方向上有相邻且未扫描的区域,则沿所述Y轴负方向推进所述横向扫描线扫描相邻且未扫描的区域;
步骤S22:以所述横向扫描线被所述第一空间地图所截的长度出现分段的位置和所述第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,在所述步骤S2之前,所述方法还包括:
以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述步骤S2:基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域的方法,包括:
步骤S201:在所述参考物的位置处,通过纵向扫描线扫描所述第一空间地图,所述纵向扫描线和所述基准方向平行;
若所述第一空间地图中已经扫描的区域在所述X轴正方向上有相邻且未扫描的区域,则沿所述X轴正方向推进所述纵向扫描线扫描相邻且未扫描的区域;
若所述第一空间地图中已经扫描的区域在所述X轴负方向上有相邻且未扫描的区域,则沿所述X轴负方向推进所述纵向扫描线扫描相邻且未扫描的区域;
步骤S202:以所述纵向扫描线被所述第一空间地图所截的长度出现分段的位置和所述第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,在所述步骤S2之前,所述方法还包括:
以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述步骤S2:基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域,包括:
步骤S211:在所述参考物的位置处,通过横向扫描线及纵向扫描线扫描所述第一空间地图,所述横向扫描线和所述基准方向垂直,所述纵向扫描线和所述基准方向平行;
若所述第一空间地图中已经扫描的区域在所述Y轴正方向上有相邻且未扫描的区域,则沿所述Y轴正方向推进所述横向扫描线扫描相邻且未扫描的区域;
若所述第一空间地图中已经扫描的区域在所述Y轴负方向上有相邻且未扫描的区域,则沿所述Y轴负方向推进所述横向扫描线扫描相邻且未扫描的区域;
若所述第一空间地图中已经扫描的区域在所述X轴正方向上有相邻且未扫描的区域,则沿所述X轴正方向推进所述纵向扫描线扫描相邻且未扫描的区域;
若所述第一空间地图中已经扫描的区域在所述X轴负方向上有相邻且未扫描的区域,则沿所述X轴负方向推进所述纵向扫描线扫描相邻且未扫描的区域;
步骤S212:以所述横向扫描线及所述纵向扫描线被所述第一空间地图所截的长度出现分段的位置及所述第一空间地图的边缘作为分界线,将沿相同方向扫描的区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,在所述步骤S3之前,所述方法还包括:
当所述清洁区域的面积小于预设数值时,将所述清洁区域和其它面积大于所述预设数值的相邻的清洁区域合并。
在另一种可能的实现方式中,所述将所述清洁区域和其它面积大于所述预设数值的相邻的清洁区域合并的方法,包括:
将所述清洁区域合并到被相同方向推进的扫描线扫描的清洁区域。
在另一种可能的实现方式中,所述步骤S3:对所述清洁区域设定清洁次序的方法,包括:
步骤S301:基于所述清洁区域,建立区域顺序树,所述区域顺序树中包括至少一个节点,每个节点表示所述待清洁空间中的一个清洁区域,一节点与至少一节点连接,所述节点包括顶部节点,父节点及子节点,两相连的节点,靠近所述顶部节点的节点为父节点,远离所述顶部节点的节点为子节点,父节点表示的清洁区域和子节点表示的清洁区域相邻,或者,父节点和子节点中的一节点表示孤立的清洁区域,另一节点表示与所述孤立的清洁区域距离最近的清洁区域,所述顶部节点表示的清洁区域为所述参考物所在清洁区域,在所述区域顺序树中任一非顶部节点的节点到所述顶部节点只有一条路径;
步骤S302:基于所述区域顺序树,设定多个清洁区域的清洁次序。
在另一种可能的实现方式中,所述步骤S301:基于所述清洁区域,建立区域顺序树的方法,包括:
步骤S3011:设定表示每个所述清洁区域的节点;
步骤S3012:根据清洁区域之间的连通关系,当任意两节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与所述孤立的清洁区域距离最近的清洁区域,连接所述两节点,构建所述清洁区域的连通图;
步骤S3013:根据所述连通图,建立所述区域顺序树。
在另一种可能的实现方式中,所述步骤S3013:根据所述连通图,建立所述区域顺序树的方法,包括:
当所述连通图中任一非顶部节点的节点到所述顶部节点只有一条路径时,将所述连通图作为所述区域顺序树;
当所述连通图中有非顶部节点的节点到所述顶部节点有多条路径时,对所述连通图进行去环处理,得到所述区域顺序树,所述环为至少三个节点依次连接形成的环形路径,所述环使得所述连通图中有非顶部节点的节点到所述顶部节点有多条路径。
在另一种可能的实现方式中,所述步骤S302:基于所述区域顺序树,设定所述多个清洁区域的清洁次序的方法,包括:
步骤S3021:基于所述区域顺序树,确定第一目标清洁区域;
步骤S3022:基于所述区域顺序树,查询表示所述第一目标清洁区域的第一目标节点的父节点,查询所述第一目标节点的父节点是否有表示非第一目标清洁区域的子节点,若无,则将所述第一目标节点的父节点表示的清洁区域作为第二目标清洁区域;若有,则将所述子节点中的最底层节点表示的清洁区域作为第二目标清洁区域;
步骤S3023:基于所述区域顺序树,查询表示所述第二目标清洁区域的第二目标节点的父节点,查询所述第二目标节点的父节点是否有表示所述非第一目标清洁区域和非第二目标清洁区域的子节点,若无,则将所述第二目标节点的父节点表示的清洁区域作为第三目标清洁区域,若有,则将所述子节点中的最底层节点表示的清洁区域作为所述第三目标清洁区域;
步骤S3024:查询所述区域顺序树中的所述第三目标清洁区域,直至将所述顶部节点表示的清洁区域设为最后目标清洁区域为止。
在另一种可能的实现方式中,所述步骤S3021:基于所述区域顺序树,确定第一目标清洁区域的方法,包括:
在所述第一空间地图中,确定距离所述清洁机器人当前的第一位置最近的第一清洁区域;
基于所述区域顺序树,以所述第一清洁区域为起始节点,确定目标子树中是否存在叶子节点,所述目标子树为所述区域顺序树中以所述起始节点为顶部节点的局部区域顺序树,所述叶子节点为所述区域顺序树中有父节点无子节点的节点;
当所述目标子树中存在叶子节点时,从所述目标子树的叶子节点中选择一叶子节点,将选择的叶子节点表示的清洁区域作为所述第一目标清洁区域;
当所述目标子树中不存在叶子节点时,将所述起始节点表示的清洁区域作为所述第一目标清洁区域。
在另一种可能的实现方式中,所述顶部节点表示的清洁区域的清洁方向与所述基准方向相同,对于所述区域顺序树中的任一非顶部节点的子节点,所述子节点表示的清洁区域的清洁方向指向所述子节点的父节点表示的清洁区域,且所述子节点表示的清洁区域的清洁方向平行或垂直于所述基准方向。
在另一种可能的实现方式中,所述步骤S42:对所述清洁区域设定一清洁起点的方法,包括:
基于所述区域地图,在所述清洁区域内,搜索出距离所述清洁机器人当前的第一位置最近的第一未清洁点;在所述清洁区域内,在垂直于所述清洁方向上的预设长度范围内,沿所述清洁方向的反方向搜索所述清洁区域的第二未清洁点,所述第二未清洁点为在所述清洁方向上距离所述第一未清洁点最远的未清洁点;基于所述第二未清洁点,确定所述清洁区域的清洁起点;或者,
基于所述区域地图,在所述清洁区域内,从所述清洁机器人当前的第一位置开始,通过扫描线的形式,沿所述清洁方向的反方向扫描搜索所述清洁区域内的第一未清洁点,所述扫描线垂直于所述清洁方向,所述第一未清洁点为在所述清洁方向上距离所述第一位置最远的未清洁点;基于所述第一未清洁点,确定所述清洁区域的清洁起点;或者,
基于所述区域地图,在所述清洁区域内,以所述清洁区域的入口边作为所述清洁机器人的起始位置,沿所述清洁方向的反方向搜索所述清洁区域的第一未清洁点,所述第一未清洁点为在所述清洁方向上距离所述清洁区域的起始位置最远的未清洁点;基于所述第一未清洁点,确定所述清洁区域的清洁起点;或者,
基于所述区域地图,在所述清洁区域内,搜索出距离所述清洁机器人当前的第一位置最近的第一未清洁点;基于所述第一未清洁点,确定所述清洁区域的清洁起点。
在另一种可能的实现方式中,所述基于所述第一未清洁点,确定所述清洁区域的清洁起点的方法,包括:
将所述第一未清洁点作为所述清洁区域的清洁起点;或者,
当所述第一未清洁点所在的边缘上有未清洁点,则移动到所述边缘的端点,将所述边缘的端点作为所述清洁区域的清洁起点。
在另一种可能的实现方式中,所述方法还包括:
步骤S8:在执行清洁操作过程中遇到障碍物时,当所述障碍物跨越至少两个清洁区域,且所述障碍物的跨越距离大于第一阈值时,获取所述待清洁空间中未清洁区域的第二空间地图,将所述第二空间地图作为所述第一空间地图,执行所述骤S2:基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域的步骤。
在另一种可能的实现方式中,所述清洁机器人设置有清洁件,所述清洁件用于供所述清洁机器人对地面执行清洁操作;
所述清洁件为拖地模块,所述拖地模块用于对地面进行拖地清洁;
所述待清洁空间为房间单元。
另一方面,提供了一种清洁控制装置,应用于对一未知的待清洁空间清洁时执行,配合一基站使用,所述基站为所述清洁机器人使用的清洁设备,所述待清洁空间设有一出入口,其特征在于,
所述装置包括:
第一获取模块,用于获取待清洁空间的地图作为第一空间地图,所述第一空间地图用于表示所述待清洁空间或待清洁空间内的待清洁子空间,所述待清洁子空间为所述待清洁空间内的未清洁区域;
划分模块,用于基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域,相邻且连通的两清洁区域之间设有一出入口;
第一设定模块,用于对所述清洁区域设定清洁次序,所述清洁次序满足在所述清洁次序中任一个清洁区域的出入口到达所述参考物的路径中不允许经过其它已经清洁过的清洁区域;
执行模块,用于以所述清洁区域为单位按照所述清洁次序依次对所述待清洁空间的清洁区域执行清洁操作。
在一种可能的实现方式中,所述装置还包括:
判断模块,用于对所述第一空间地图进行判断,当所述第一空间地图规则时,则将所述待清洁空间或所述待清洁子空间作为清洁区域,对所述清洁区域设定清洁方向和清洁起点,对所述待清洁空间的清洁区域执行清洁操作,否则基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域,所述第一空间地图规则的定义为:所述第一空间地图中任意一点到参考物存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,所述参考物为所述基站或所述出入口,所述基准方向为所述待清洁空间或所述待清洁子空间内任意一点指向所述参考物的方向,且所述点至所述参考物之间的连线区域不经过障碍物。
在另一种可能的实现方式中,所述执行模块,还用于对所述清洁区域设定一清洁方向,所述清洁方向为所述基准方向;基于所述清洁方向,对所述清洁区域设定一清洁起点,所述清洁起点为所述清洁区域的边缘中与所述清洁方向相背的边缘上的点;以所述清洁区域为单位从所述清洁起点开始,按照所述清洁方向及所述清洁次序对所述待清洁空间的清洁区域执行清洁操作。
在另一种可能的实现方式中,所述装置还包括:
选择模块,用于按所述清洁次序选择清洁区域,对所述清洁区域的区域地图进行判断,当所述区域地图规则时,对所述清洁区域设定一清洁方向,否则,将所述区域地图作为所述第一空间地图,将所述清洁区域作为所述待清洁空间,基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域,所述区域地图规则的定义为:所述区域地图中任意一点到所述出入口存在至少一条路径且满足路径中没有趋向于所述出入口方向的反方向的移动路径。
在另一种可能的实现方式中,所述装置还包括:
移动模块,用于当对一清洁区域执行完清洁操作后,基于从所述清洁区域移动到下一清洁区域的导航路径,从所述清洁区域移动到所述下一清洁区域。
在另一种可能的实现方式中,所述划分模块,还用于将所述待清洁空间,按照所述第一空间地图中的房间信息划分,得到所述至少一清洁区域。
在另一种可能的实现方式中,所述装置还包括:
第二设定模块,用于以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述划分模块,还用于在所述参考物的位置处,通过横向扫描线扫描所述第一空间地图,所述横向扫描线和所述基准方向垂直;若所述第一空间地图中已经扫描的区域在所述Y轴正方向上有相邻且未扫描的区域,则沿所述Y轴正方向推进所述横向扫描线扫描相邻且未扫描的区域;若所述第一空间地图中已经扫描的区域在所述Y轴负方向上有相邻且未扫描的区域,则沿所述Y轴负方向推进所述横向扫描线扫描相邻且未扫描的区域;以所述横向扫描线被所述第一空间地图所截的长度出现分段的位置和所述第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,所述装置还包括:
第三设定模块,用于以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述划分模块,还用于在所述参考物的位置处,通过纵向扫描线扫描所述第一空间地图,所述纵向扫描线和所述基准方向平行;若所述第一空间地图中已经扫描的区域在所述X轴正方向上有相邻且未扫描的区域,则沿所述X轴正方向推进所述纵向扫描线扫描相邻且未扫描的区域;若所述第一空间地图中已经扫描的区域在所述X轴负方向上有相邻且未扫描的区域,则沿所述X轴负方向推进所述纵向扫描线扫描相邻且未扫描的区域;以所述纵向扫描线被所述第一空间地图所截的长度出现分段的位置和所述第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,所述装置还包括:
第四设定模块,用于以所述参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,所述基准方向垂直于X轴,所述基准方向为Y轴正方向;
所述划分模块,还用于在所述参考物的位置处,通过横向扫描线及纵向扫描线扫描所述第一空间地图,所述横向扫描线和所述基准方向垂直,所述纵向扫描线和所述基准方向平行;若所述第一空间地图中已经扫描的区域在所述Y轴正方向上有相邻且未扫描的区域,则沿所述Y轴正方向推进所述横向扫描线扫描相邻且未扫描的区域;若所述第一空间地图中已经扫描的区域在所述Y轴负方向上有相邻且未扫描的区域,则沿所述Y轴负方向推进所述横向扫描线扫描相邻且未扫描的区域;若所述第一空间地图中已经扫描的区域在所述X轴正方向上有相邻且未扫描的区域,则沿所述X轴正方向推进所述纵向扫描线扫描相邻且未扫描的区域;若所述第一空间地图中已经扫描的区域在所述X轴负方向上有相邻且未扫描的区域,则沿所述X轴负方向推进所述纵向扫描线扫描相邻且未扫描的区域;以所述横向扫描线及所述纵向扫描线被所述第一空间地图所截的长度出现分段的位置及所述第一空间地图的边缘作为分界线,将沿相同方向扫描的区域进行合并,从而将所述待清洁空间划分为所述至少一清洁区域。
在另一种可能的实现方式中,所述装置还包括:
合并模块,用于当所述清洁区域的面积小于预设数值时,将所述清洁区域和其它面积大于所述预设数值的相邻的清洁区域合并。
在另一种可能的实现方式中,所述合并模块,还用于将所述清洁区域合并到被相同方向推进的扫描线扫描的清洁区域。
在另一种可能的实现方式中,所述第一设定模块,还用于基于所述清洁区域,建立区域顺序树,所述区域顺序树中包括至少一个节点,每个节点表示所述待清洁空间中的一个清洁区域,一节点与至少一节点连接,所述节点包括顶部节点,父节点及子节点,两相连的节点,靠近所述顶部节点的节点为父节点,远离所述顶部节点的节点为子节点,父节点表示的清洁区域和子节点表示的清洁区域相邻,或者,父节点和子节点中的一节点表示孤立的清洁区域,另一节点表示与所述孤立的清洁区域距离最近的清洁区域,所述顶部节点表示的清洁区域为所述参考物所在清洁区域,在所述区域顺序树中任一非顶部节点的节点到所述顶部节点只有一条路径;基于所述区域顺序树,设定多个清洁区域的清洁次序。
在另一种可能的实现方式中,所述第一设定模块,还用于设定表示每个所述清洁区域的节点;根据清洁区域之间的连通关系,当任意两节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与所述孤立的清洁区域距离最近的清洁区域,连接所述两节点,构建所述清洁区域的连通图;根据所述连通图,建立所述区域顺序树。
在另一种可能的实现方式中,所述第一设定模块,还用于当所述连通图中任一非顶部节点的节点到所述顶部节点只有一条路径时,将所述连通图作为所述区域顺序树;当所述连通图中有非顶部节点的节点到所述顶部节点有多条路径时,对所述连通图进行去环处理,得到所述区域顺序树,所述环为至少三个节点依次连接形成的环形路径,所述环使得所述连通图中有非顶部节点的节点到所述顶部节点有多条路径。
在另一种可能的实现方式中,所述第一设定模块,还用于基于所述区域顺序树,确定第一目标清洁区域;基于所述区域顺序树,查询表示所述第一目标清洁区域的第一目标节点的父节点,查询所述第一目标节点的父节点是否有表示非第一目标清洁区域的子节点,若无,则将所述第一目标节点的父节点表示的清洁区域作为第二目标清洁区域,若有,则将所述子节点中的最底层节点表示的清洁区域作为第二目标清洁区域;基于所述区域顺序树,查询表示所述第二目标清洁区域的第二目标节点的父节点,查询所述第二目标节点的父节点是否有表示所述非第一目标清洁区域和非第二目标清洁区域的子节点,若无,则将所述第二目标节点的父节点表示的清洁区域作为第三目标清洁区域,若有,则将所述子节点中的最底层节点表示的清洁区域作为所述第三目标清洁区域;查询所述区域顺序树中的所述第三目标清洁区域,直至将所述顶部节点表示的清洁区域设为最后目标清洁区域为止。
在另一种可能的实现方式中,所述第一设定模块,还用于在所述第一空间地图中,确定距离所述清洁机器人当前的第一位置最近的第一清洁区域;基于所述区域顺序树,以所述第一清洁区域为起始节点,确定目标子树中是否存在叶子节点,所述目标子树为所述区域顺序树中以所述起始节点为顶部节点的局部区域顺序树,所述叶子节点为所述区域顺序树中有父节点无子节点的节点;当所述目标子树中存在叶子节点时,从所述目标子树的叶子节点中选择一叶子节点,将选择的叶子节点表示的清洁区域作为所述第一目标清洁区域;
当所述目标子树中不存在叶子节点时,将所述起始节点表示的清洁区域作为所述第一目标清洁区域。
在另一种可能的实现方式中,所述顶部节点表示的清洁区域的清洁方向与所述基准方向相同,对于所述区域顺序树中的任一非顶部节点的子节点,所述子节点表示的清洁区域的清洁方向指向所述子节点的父节点表示的清洁区域,且所述子节点表示的清洁区域的清洁方向平行或垂直于所述基准方向。
在另一种可能的实现方式中,所述执行模块,还用于基于所述区域地图,在所述清洁区域内,搜索出距离所述清洁机器人当前的第一位置最近的第一未清洁点,在所述清洁区域内,在垂直于所述清洁方向上的预设长度范围内,沿所述清洁方向的反方向搜索所述清洁区域的第二未清洁点,所述第二未清洁点为在所述清洁方向上距离所述第一未清洁点最远的未清洁点,基于所述第二未清洁点,确定所述清洁区域的清洁起点;或者,基于所述区域地图,在所述清洁区域内,从所述清洁机器人当前的第一位置开始,通过扫描线的形式,沿所述清洁方向的反方向扫描搜索所述清洁区域内的第一未清洁点,所述扫描线垂直于所述清洁方向,所述第一未清洁点为在所述清洁方向上距离所述第一位置最远的未清洁点,基于所述第一未清洁点,确定所述清洁区域的清洁起点;或者,基于所述区域地图,在所述清洁区域内,以所述清洁区域的入口边作为所述清洁机器人的起始位置,沿所述清洁方向的反方向搜索所述清洁区域的第一未清洁点,所述第一未清洁点为在所述清洁方向上距离所述清洁区域的起始位置最远的未清洁点,基于所述第一未清洁点,确定所述清洁区域的清洁起点;或者,基于所述区域地图,在所述清洁区域内,搜索出距离所述清洁机器人当前的第一位置最近的第一未清洁点,基于所述第一未清洁点,确定所述清洁区域的清洁起点。
在另一种可能的实现方式中,所述执行模块,还用于将所述第一未清洁点作为所述清洁区域的清洁起点;或者,当所述第一未清洁点所在的边缘上有未清洁点,则移动到所述边缘的端点,将所述边缘的端点作为所述清洁区域的清洁起点。
在另一种可能的实现方式中,所述装置还包括:
第二获取模块,用于在执行清洁操作过程中遇到障碍物时,当所述障碍物跨越至少两个清洁区域,且所述障碍物的跨越距离大于第一阈值时,获取所述待清洁空间中未清洁区域的第二空间地图,将所述第二空间地图作为所述第一空间地图,基于所述第一空间地图,将所述待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,所述清洁机器人设置有清洁件,所述清洁件用于供所述对地面执行清洁操作;
所述清洁件为拖地模块,所述拖地模块用于对地面进行拖地清洁;
所述待清洁空间为房间单元。
另一方面,提供了一种清洁机器人,所述清洁机器人包括:
一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述一个或多个处理器加载并执行以实现上述清洁控制方法中任一项所执行的操作。
另一方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现上述清洁控制方法中任一项所执行的操作。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的清洁控制方法,清洁机器人获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
附图说明
图1是背景技术提供的一种划分清洁区域的示意图;
图2是本申请实施例提供的一种清洁控制方法的应用场景的示意图;
图3是本申请实施例提供的一种清洁机器人的立体示意图;
图4是本申请实施例提供的一种清洁机器人拆除部分壳体后的结构示意图;
图5是本申请实施例提供的一种拖地机器人仰视结构示意图;
图6是本申请实施例提供的另一种扫地机器人仰视结构示意图;
图7是本申请实施例提供的一种清洁机器人的结构框图;
图8是本申请实施例提供的一种基站的正视图;
图9是本申请实施例提供的一种基站打开顶盖后的立体示意图;
图10是本申请实施例提供的一种基站的结构框图;
图11是本申请实施例提供的一种清洁机器人驶向基站的示意图;
图12是本申请实施例提供的一种清洁机器人停靠在基站上的状态的示意图;
图13是本申请实施例提供的一种清洁控制方法的流程图;
图14是本申请实施例提供的另一种清洁控制方法的流程图;
图15是本申请实施例提供的一种第一空间地图的示意图;
图16是本申请实施例提供的另一种第一空间地图的示意图;
图17是本申请实施例提供的一种基准方向的示意图;
图18是本申请实施例提供的另一种基准方向的示意图;
图19是本申请实施例提供的一种确定第一未清洁点的示意图;
图20是本申请实施例提供的另一种确定第一未清洁点的示意图;
图21是本申请实施例提供的一种沿弓字型轨迹移动的示意图;
图22是本申请实施例提供的另一种沿弓字型轨迹移动的示意图;
图23是本申请实施例提供的另一种清洁控制方法的流程图;
图24是本申请实施例提供的另一种第一空间地图的示意图;
图25是本申请实施例提供的一种通过横向扫描线扫描第一空间地图的示意图;
图26是本申请实施例提供的一种通过倾斜45°的扫描线扫描第一空间地图的示意图;
图27是本申请实施例提供的一种通过横向扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图28是本申请实施例提供的一种通过倾斜45°的扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图29是本申请实施例提供的一种连通图的示意图;
图30是本申请实施例提供的一种对清洁区域配置清洁方向的示意图;
图31是本申请实施例提供的另一种对清洁区域配置清洁方向的示意图;
图32是本申请实施例提供的一种确定确定第一未清洁点的示意图;
图33是本申请实施例提供的另一种沿弓字型轨迹移动的示意图;
图34是本申请实施例提供的另一种清洁控制方法的流程图;
图35是本申请实施例提供的一种配置节点间权重的示意图;
图36是本申请实施例提供的一种区域顺序树的示意图;
图37是本申请实施例提供的另一种连通图的示意图;
图38是本申请实施例提供的另一种区域顺序树的示意图;
图39是本申请实施例提供的另一种区域顺序树的示意图;
图40是本申请实施例提供的另一种清洁控制方法的流程图;
图41是本申请实施例提供的另一种第一空间地图的示意图;
图42是本申请实施例提供的一种通过纵向扫描线扫描第一空间地图的示意图;
图43是本申请实施例提供的一种通过纵向扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图44是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图45是本申请实施例提供的另一种连通图的示意图;
图46是本申请实施例提供的另一种清洁控制方法的流程图;
图47是本申请实施例提供的另一种清洁控制方法的流程图;
图48是本申请实施例提供的另一种第一空间地图的示意图;
图49是本申请实施例提供的另一种通过横向扫描线扫描第一空间地图的示意图;
图50是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图的示意图;
图51是本申请实施例提供的另一种清洁控制方法的流程图;
图52是本申请实施例提供的另一种清洁控制方法的流程图;
图53是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图的示意图;
图54是本申请实施例提供的另一种通过横向扫描线扫描第一空间地图的示意图;
图55是本申请实施例提供的另一种清洁控制方法的流程图;
图56是本申请实施例提供的另一种清洁控制方法的流程图;
图57是本申请实施例提供的一种在清洁机器人在执行清洁操作过程中遇到障碍物的示意图;
图58是本申请实施例提供的另一种第一空间地图的示意图;
图59是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图的示意图;
图60是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图61是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图后,合并得到多个清洁区域的示意图;
图62是本申请实施例提供的另一种对清洁区域配置清洁方向的示意图;
图63是本申请实施例提供的另一种第一空间地图的示意图;
图64是本申请实施例提供的另一种清洁控制方法的流程图;
图65是本申请实施例提供的一种清洁控制装置的流程图;
图66是本申请实施例提供的另一种第一空间地图的示意图;
图67是本申请实施例提供的另一种通过纵向扫描线扫描第一空间地图的示意图;
图68是本申请实施例提供的另一种连通图的示意图;
图69是本申请实施例提供的另一种在清洁机器人在执行清洁操作过程中遇到障碍物的示意图;
图70是本申请实施例提供的另一种第一空间地图的示意图;
图71是本申请实施例提供的另一种通过横向扫描线扫描第一空间地图后,得到多个清洁区域的示意图;
图72是本申请实施例提供的另一种清洁控制方法的流程图;
图73是本申请实施例提供的另一种清洁控制方法的流程图;
图74是本申请实施例提供的另一种第一空间地图的示意图;
图75是本申请实施例提供的另一种连通图的示意图;
图76是本申请实施例提供的另一种对清洁区域配置清洁方向的示意图;
图77是本申请实施例提供的另一种清洁控制方法的流程图;
图78是本申请实施例提供的另一种第一空间地图的示意图;
图79是本申请实施例提供的另一种连通图的示意图;
图80是本申请实施例提供的另一种清洁控制方法的流程图;
图81是本申请实施例提供的另一种清洁控制方法的流程图;
图82是本申请实施例提供的另一种清洁控制方法的流程图;
图83是本申请实施例提供的另一种第一空间地图的示意图;
图84是本申请实施例提供的一种房间区域的示意图;
图85是本申请实施例提供的另一种通过横向扫描线扫描第一空间地图后,得到多个清洁区域的示意图;
图86是本申请实施例提供的另一种对清洁区域配置清洁方向的示意图;
图87是本申请实施例提供的一种清洁控制装置的的结构示意图。
具体实施方式
为使本申请的技术方案和优点更加清楚,下面对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种清洁控制方法的应用场景,参见图2,该应用场景包括清洁机器人100和基站200。该清洁机器人100用于对待清洁空间的地面进行自动清洁,基站200为配合清洁机器人100使用的清洁设备,用于对清洁机器人100进行充电或者对清洁机器人100的清洁件进行清洗。该清洁机器人100上设有清洁件和驱动装置,驱动装置用于驱动清洁机器人100,清洁件用于对待清洁空间的地面进行自动清洁。清洁件可以为拖地模块或者扫地模块,该拖地模块用于对地面进行拖地清洁,拖地模块可以为拖擦件,拖擦件可以为抹布。该扫地模块用于对地面进行扫地清洁,且该扫地模块可以为边刷。
待清洁空间设有一出入口,该出入口用于清洁机器人100通过该出入口进出待清洁空间。其中,当清洁机器人100需要去基站200所在区域进行充电或者清洗清洁件时,可以通过该出入口进出待清洁空间。该待清洁空间可以为家庭空间中的一个单独的房间单元,待清洁空间为一个房间单元中的部分区域,或者待清洁空间为多个房间单元组成的房间区域,或者待清洁空间为家庭空间。待清洁空间还可以为写字楼中的办公室,大型商场或者机场等公共场所。在本申请实施例中,对待清洁空间不作具体限定。当待清洁空间为一个单独的房间单元时,该出入口可以为该房间单元的房门;当待清洁空间为一个房间单元中的部分区域时,该出入口可以为清洁机器人100进出该部分区域的位置;当待清洁空间为家庭空间时,该出入口可以为该家庭空间的房门。
在本申请实施例中,清洁机器人100在清洁待清洁空间时,获取待清洁空间的地图作为第一空间地图,基于该第一空间地图,将待清洁空间划分为至少一清洁区域,对划分的清洁区域设定清洁次序,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。该方法避免了清洁机器人100移动至基站200所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
本申请实施例提供了一种清洁机器人,该清洁机器人100可用于对地面进行自动清洁。
图3为本申请实施例提供的清洁机器人100的立体示意图,图4为图3所示清洁机器人100拆除部分壳体后的结构示意图。其中,清洁机器人100的类型包括扫地机器人1001和拖地机器人1002等。图5为本申请实施例提供的拖地机器人1002仰视结构示意图,图6为本申请实施例提供的扫地机器人1001仰视结构示意图,图7为本申请实施例提供的清洁机器人100的另一结构示意图。
如图3至图7所示,清洁机器人100包括机器人主体101、驱动电机102、传感器单元103、控制器104、电池105、行走单元106、存储器107、通信单元108、机器人交互单元109、清洁件、和充电部件111等。
机器人主体101可以为圆形结构、方形结构等。在本申请实施例中,以机器人主体101为D字形结构为例进行说明。如图3所示,机器人主体101前部为倒圆角的矩形结构,后部为半圆形结构。在本申请实施例中,机器人主体101为左右对称结构。
清洁件用于对地面进行清洁,清洁件的数量可以为一个或多个。清洁件设置在机器人主体101的底部,具体为机器人主体101的底部靠前的位置。在机器人主体101内部设有驱动电机102,在机器人主体101的底部伸出两个转轴,清洁件套接在转轴上。驱动电机102可带动转轴旋转,从而转轴带动清洁件旋转。
如图5所示,对于拖地机器人1002来说,清洁件具体为拖擦件1101,拖擦件1101例如为拖布。拖擦件1101用于对地面进行拖地清洁。
如图6所示,对于扫地机器人1001来说,清洁件具体为边刷1102,边刷1102用于对地面进行扫地清洁。扫地机器人1001还设有吸尘装置,吸尘装置包括设置在机器人主体101的底部的吸尘口1121和设置在机器人主体101内部的尘盒1122和风机1123。边刷1102设置在扫地机器人1001底部的转轴上,转轴带动边刷1102后,转动的边刷1102将灰尘等垃圾扫到扫地机器人1001底部的吸尘口1121附近,因风机1123的抽吸作用,这些垃圾被吸入吸尘口1121,通过吸尘口1121进入尘盒1122中进行暂存。
在本申请实施例中,清洁机器人100的清洁件可以设置为可拆卸的连接方式,在需要进行拖地清洁时,将拖擦件1101安装到机器人主体101的底部;在需要进行扫地清洁时,使用边刷1102替换拖擦件1101,将边刷1102安装到机器人主体101的底部。
行走单元106为与清洁机器人100的移动相关的部件,行走单元106包括驱动轮1061和万向轮1062。万向轮1062和驱动轮1061配合实现清洁机器人100的转向和移动。在机器人主体101的底面靠后部的位置,左右两边各设置一个驱动轮1061。万向轮1062设置在机器人主体101的底面的中心线上,且位于两个清洁件之间。
其中,每一驱动轮1061上设有驱动轮电机,在驱动轮电机的带动下,驱动轮1061转动。驱动轮1061转动后,带动清洁机器人100移动。通过控制左右驱动轮1061的转速差,可控制清洁机器人100的转向角度。
图7是图3所示清洁机器人100的另一结构示意图。
控制器104设置在机器人主体101内部,控制器104用于控制清洁机器人100执行具体的操作。该控制器104例如可以为中央处理器(Central Processing Unit,CPU)、或微处理器(Microprocessor)等。如图7所示,控制器104与电池105、存储器107、驱动电机102、行走单元106、传感器单元103、以及机器人交互单元109等部件电连接,以对这些部件进行控制。
电池105设置在机器人主体101内部,电池105用于为清洁机器人100提供电力。
机器人主体101上还设有充电部件111,该充电部件111用于从外部设备获取电力,从而向清洁机器人100的电池105进行充电。
存储器107设置在机器人主体101上,存储器107上存储有程序,该程序被控制器104执行时实现相应的操作。存储器107还用于存储供清洁机器人100使用的参数。其中,存储器107包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等。
通信单元108设置在机器人主体101上,通信单元108用于让清洁机器人100和外部设备进行通信,通信单元108包括但不限于无线保真(WIreless-Fidelity,WI-FI)通信模块1081和短距离通信模块1082等。清洁机器人100可以通过WI-FI通信模块1081连接WI-FI路由器,从而与终端进行通信。清洁机器人100通过短距离通信模块1082与基站进行通信。其中,基站为配合清洁机器人100使用的清洁设备。
在机器人主体101上设置的传感器单元103包括各种类型的传感器,例如激光雷达1031、碰撞传感器1032、距离传感器1033、跌落传感器1034、计数器1035、和陀螺仪1036等。
激光雷达1031设置在机器人主体101的顶部,在工作时,激光雷达1031旋转,并通过激光雷达1031上的发射器发射激光信号,激光信号被障碍物反射,从而激光雷达1031的接收器接收障碍物反射回的激光信号。激光雷达1031的电路单元通过对接收的激光信号进行分析,可得到周围的环境信息,例如障碍物相对激光雷达1031的距离和角度等。此外,也可用摄像头替代激光雷达,通过对摄像头拍摄的图像中的障碍物进行分析,也可得到障碍物相对摄像头的距离、角度等。
碰撞传感器1032包括碰撞壳体10321和触发传感器10322。碰撞壳体10321包绕机器人主体101的头部,具体来说,碰撞壳体10321设置在机器人主体101的头部和机器人主体101的左右两侧的靠前位置。触发传感器10322设置在机器人主体101内部且位于碰撞壳体10321之后。在碰撞壳体10321和机器人主体101之间设有弹性缓冲件。当清洁机器人100通过碰撞壳体10321与障碍物碰撞时,碰撞壳体10321向清洁机器人100内部移动,且压缩弹性缓冲件。在碰撞壳体10321向清洁机器人100内部移动一定距离后,碰撞壳体10321与触发传感器10322接触,触发传感器10322被触发产生信号,该信号可发送到机器人主体101内的控制器104,以进行处理。在碰完障碍物后,清洁机器人100远离障碍物,在弹性缓冲件的作用下,碰撞壳体10321移回原位。可见,碰撞传感器1032可对障碍物进行检测,以及当碰撞到障碍物后,起到缓冲作用。
距离传感器1033具体可以为红外探测传感器,可用于探测障碍物至距离传感器1033的距离。距离传感器1033设置在机器人主体101的侧面,从而通过距离传感器1033可测出位于清洁机器人100侧面附近的障碍物至距离传感器1033的距离值。距离传感器1033也可以是超声波测距传感器、激光测距传感器或者深度传感器等。
跌落传感器1034设置在机器人主体101的底部边缘,数量可以为一个或多个。当清洁机器人100移动到地面的边缘位置时,通过跌落传感器1034可探测出清洁机器人100有从高处跌落的风险,从而执行相应的防跌落反应,例如清洁机器人100停止移动、或往远离跌落位置的方向移动等。
在机器人主体101的内部还设有计数器1035和陀螺仪1036。计数器1035用于对驱动轮1061的转动角度总数进行累计,以计算出驱动轮1061驱动清洁机器人100移动的距离长度。陀螺仪1036用于检测清洁机器人100转动的角度,从而可确定出清洁机器人100的朝向。
机器人交互单元109设置在机器人主体101上,用户可通过机器人交互单元109和清洁机器人100进行交互。机器人交互单元109例如包括开关按钮1091、和扬声器1092等部件。用户可通过按压开关按钮1091,控制清洁机器人100启动工作或停止工作。清洁机器人100可通过扬声器1092向用户播放提示音。
应该理解,本申请实施例描述的清洁机器人100只是一个具体示例,并不对本申请实施例的清洁机器人100构成具体限定,本申请实施例的清洁机器人100还可以为其它的具体实现方式。例如,在其它的实现方式中,清洁机器人100可以比图3所示的清洁机器人100有更多或更少的部件。再如清洁机器人100可以为扫拖一体机器人,即该清洁机器人100的底部设有拖擦件、边刷、和吸风口,从而该清洁机器人100可以对地面同时进行拖地和扫地。
本申请实施例还提供了一种基站200,基站200用于和清洁机器人100配合使用,例如,基站200可以向清洁机器人100进行充电、基站200可以向清洁机器人100提供停靠位置等。在清洁机器人100为拖地机器人1002时,基站200还可以清洗拖地机器人1002的拖擦件1101。其中,拖擦件1101用于对地面进行拖地清洁。
图8为本申请实施例提供的一种基站200的正视图。图9为图8所示的基站200打开顶盖201后的立体示意图。
如图8和图9所示,本申请实施例的基站200包括基站主体202、清洗槽203和水箱204。
清洗槽203设置在基站主体202上,清洗槽203用于清洗拖地机器人1002的拖擦件1101。设置在清洗槽203上的清洗肋2031可对拖擦件1101进行刮擦清洁。
在基站主体202上设有入槽口205,入槽口205通向清洗槽203。清洁机器人100可通过入槽口205驶入基站200,以使得清洁机器人100停靠在基站200上的预设停靠位置。
水箱204设置在基站主体202内,水箱204具体包括清水箱和污水箱。清水箱用于存储清洁用水。在清洁机器人100为拖地机器人1002,拖地机器人1002底部设有拖擦件1101时,清洁机器人100停靠在基站200上,清洁机器人100的拖擦件1101容置于清洗槽203上。清水箱向清洗槽203提供清洁用水,清洁用水用于清洗拖擦件1101。然后,清洗拖擦件1101后的脏污水被收集到污水箱中。在基站主体202上设有顶盖201,用户通过打开顶盖201,可从基站主体202中取出水箱204。
图10为图8所示基站200的另一结构示意图。
参阅图10,本申请实施例的基站200还包括控制器206、通信单元207、存储器208、水泵209和基站交互单元210等。
控制器206设置在基站主体202内部,控制器206用于控制基站200执行具体的操作。控制器206例如可以为中央处理器(Central Processing Unit,CPU)、或微处理器(Microprocessor)等。其中,控制器206与通信单元207、存储器208、水泵209和基站交互单元210电连接。
存储器208设置在基站主体202上,存储器208上存储有程序,该程序被控制器206执行时实现相应的操作。存储器208还用于存储供基站200使用的参数。其中,存储器208包括但不限于磁盘存储器、CD-ROM、光学存储器等。
水泵209设置在基站主体202内部,具体来说,水泵209有两个,一个水泵209用于控制清水箱向清洗槽203提供清洁用水,另一个水泵209用于将清洗拖擦件1101后的脏污水收集到污水箱中。
通信单元207设置在基站主体202上,通信单元207用于和外部设备进行通信,通信单元207包括但不限于无线保真(WIreless-Fidelity,WI-FI)通信模块2071和短距离通信模块2072等。基站200可以通过WI-FI通信模块2071连接WI-FI路由器,从而与终端进行通信。基站200可通过短距离通信模块2072与清洁机器人100进行通信。
基站交互单元210用于和用户进行交互。基站交互单元210例如包括显示屏2101和控制按钮2102,显示屏2101和控制按钮2102设置在基站主体202上,显示屏2101用于向用户展示信息,控制按钮2102用于供用户进行按压操作,以控制基站200的开机或停机等。
基站主体202上还设有供电部件,而清洁机器人100上设有充电部件111,当清洁机器人100停靠在基站200上的预设停靠位置后,清洁机器人100的充电部件111和基站200的供电部件接触,从而基站200向清洁机器人100进行充电。其中,基站200的电能可来源于市电。
以下对清洁机器人100和基站200配合工作的过程进行示例性说明:
清洁机器人100对房间的地面进行清洁,当清洁机器人100上的电池105的电量少于预设电量阈值时,如图11所示,清洁机器人100自动驶向基站200。清洁机器人100通过基站200上的入槽口205进入基站200,并停靠在基站200上的预设停靠位置。清洁机器人100停靠在基站200上的状态可参阅图12。
此时,清洁机器人100上的充电部件111和基站200上的供电部件接触,基站200从市电获取电力,并通过供电部件和充电部件111向清洁机器人100的电池105进行充电。清洁机器人100充满电后,驶离基站200,继续对房间地面进行清洁。
当清洁机器人100是拖地机器人1002,且该拖地机器人1002的底部设有拖擦件1101时,清洁机器人100用于对地面进行拖地清洁。清洁机器人100对房间地面拖地一段时间,拖擦件1101变脏污后,清洁机器人100驶向基站200。清洁机器人100通过基站200上的入槽口205进入基站200,并停靠在基站200上的预设停靠位置。清洁机器人100停靠在基站200上的状态可参阅图12。此时,清洁机器人100的拖擦件1101容置在清洗槽203上,在水泵209的作用下,基站200内的清水箱的清洁用水流向清洗槽203,通过清洗槽203上的进液结构喷向拖擦件1101上,同时拖擦件1101与清洁槽内的凸起的清洗肋2031刮擦,从而实现对拖擦件1101的清洁。清洗拖擦件1101后的脏污水从清洁槽上的排液结构流出清洗槽203,在水泵209的作用下,脏污水收集到污水箱。
应该理解,本申请实施例描述的基站200只是一个具体示例,并不对本申请实施例的基站200构成具体限定,本申请实施例的基站200还可以为其它的具体实现方式,例如,本申请实施例的基站200可以不包括水箱204,基站主体202可以连接自来水管和排水管,从而使用自来水管的自来水清洗清洁机器人100的拖擦件1101,清洗拖擦件1101后的脏污水由清洗槽203通过排水管流出基站200。或者,在其它的实现方式中,基站200可以比图8所示的基站200有更多或更少的部件。
本申请实施例提供了一种清洁控制方法,参见图13,应用于清洁机器人100对一未知的待清洁空间清洁时执行,清洁机器人100配合一基站200使用,基站200为清洁机器人100使用的清洁设备,待清洁空间设有一出入口,该清洁控制方法包括:
步骤S1:获取待清洁空间的地图作为第一空间地图,第一空间地图用于表示待清洁空间或待清洁空间内的待清洁子空间,待清洁子空间为待清洁空间内的未清洁区域;
步骤S2:基于第一空间地图,将待清洁空间划分为至少一清洁区域,相邻且连通的两清洁区域之间设有一出入口;
步骤S3:对清洁区域设定清洁次序,清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域;
步骤S4:以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。
在一种可能的实现方式中,在步骤S2之前,方法还包括:
步骤S5:对第一空间地图进行判断,当第一空间地图规则时,则将待清洁空间或待清洁子空间作为清洁区域,执行步骤S6:对清洁区域设定清洁方向和清洁起点,对待清洁空间的清洁区域执行清洁操作,否则执行步骤S2,第一空间地图规则的定义为:第一空间地图中任意一点到参考物存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,参考物为基站或出入口,基准方向为待清洁空间或待清洁子空间内任意一点指向参考物的方向,且点至参考物之间的连线区域不经过障碍物。
在另一种可能的实现方式中,步骤S4:以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作的方法,包括:
步骤S41:对清洁区域设定一清洁方向,清洁方向为基准方向;
步骤S42:基于清洁方向,对清洁区域设定一清洁起点,清洁起点为清洁区域的边缘中与清洁方向相背的边缘上的点;
步骤S43:以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
在另一种可能的实现方式中,在步骤S41之前,方法还包括:
步骤S7:按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当区域地图规则时,执行步骤S41进行清洁,否则,将区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S2,区域地图规则的定义为:区域地图中任意一点到出入口存在至少一条路径且满足路径中没有趋向于出入口方向的反方向的移动路径。
在另一种可能的实现方式中,方法还包括:
当对一清洁区域执行完清洁操作后,基于从清洁区域移动到下一清洁区域的导航路径,从清洁区域移动到下一清洁区域。
在另一种可能的实现方式中,步骤S2:将待清洁空间划分为至少一清洁区域的方法,包括:
将待清洁空间,按照第一空间地图中的房间信息划分,得到至少一清洁区域。
在另一种可能的实现方式中,在步骤S2之前,方法还包括:
以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
步骤S2:基于第一空间地图,将待清洁空间划分为至少一清洁区域的方法,包括:
步骤S21:在参考物的位置处,通过横向扫描线扫描第一空间地图,横向扫描线和基准方向垂直;
若第一空间地图中已经扫描的区域在Y轴正方向上有相邻且未扫描的区域,则沿Y轴正方向推进横向扫描线扫描相邻且未扫描的区域;
若第一空间地图中已经扫描的区域在Y轴负方向上有相邻且未扫描的区域,则沿Y轴负方向推进横向扫描线扫描相邻且未扫描的区域;
步骤S22:以横向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,在步骤S2之前,方法还包括:
以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
步骤S2:基于第一空间地图,将待清洁空间划分为至少一清洁区域的方法,包括:
步骤S201:在参考物的位置处,通过纵向扫描线扫描第一空间地图,纵向扫描线和基准方向平行;
若第一空间地图中已经扫描的区域在X轴正方向上有相邻且未扫描的区域,则沿X轴正方向推进纵向扫描线扫描相邻且未扫描的区域;
若第一空间地图中已经扫描的区域在X轴负方向上有相邻且未扫描的区域,则沿X轴负方向推进纵向扫描线扫描相邻且未扫描的区域;
步骤S202:以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,在步骤S2之前,方法还包括:
以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
步骤S2:基于第一空间地图,将待清洁空间划分为至少一清洁区域,包括:
步骤S211:在参考物的位置处,通过横向扫描线及纵向扫描线扫描第一空间地图,横向扫描线和基准方向垂直,纵向扫描线和基准方向平行;
若第一空间地图中已经扫描的区域在Y轴正方向上有相邻且未扫描的区域,则沿Y轴正方向推进横向扫描线扫描相邻且未扫描的区域;
若第一空间地图中已经扫描的区域在Y轴负方向上有相邻且未扫描的区域,则沿Y轴负方向推进横向扫描线扫描相邻且未扫描的区域;
若第一空间地图中已经扫描的区域在X轴正方向上有相邻且未扫描的区域,则沿X轴正方向推进纵向扫描线扫描相邻且未扫描的区域;
若第一空间地图中已经扫描的区域在X轴负方向上有相邻且未扫描的区域,则沿X轴负方向推进纵向扫描线扫描相邻且未扫描的区域;
步骤S212:以横向扫描线及纵向扫描线被第一空间地图所截的长度出现分段的位置及第一空间地图的边缘作为分界线,将沿相同方向扫描的区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,在步骤S3之前,方法还包括:
当清洁区域的面积小于预设数值时,将清洁区域和其它面积大于预设数值的相邻的清洁区域合并。
在另一种可能的实现方式中,将清洁区域和其它面积大于预设数值的相邻的清洁区域合并的方法,包括:
将清洁区域合并到被相同方向推进的扫描线扫描的清洁区域。
在另一种可能的实现方式中,步骤S3:对清洁区域设定清洁次序的方法,包括:
步骤S301:基于清洁区域,建立区域顺序树,区域顺序树中包括至少一个节点,每个节点表示待清洁空间中的一个清洁区域,一节点与至少一节点连接,节点包括顶部节点,父节点及子节点,两相连的节点,靠近顶部节点的节点为父节点,远离顶部节点的节点为子节点,父节点表示的清洁区域和子节点表示的清洁区域相邻,或者,父节点和子节点中的一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域,顶部节点表示的清洁区域为参考物所在清洁区域,在区域顺序树中任一非顶部节点的节点到顶部节点只有一条路径;
步骤S302:基于区域顺序树,设定多个清洁区域的清洁次序。
在另一种可能的实现方式中,步骤S301:基于清洁区域,建立区域顺序树的方法,包括:
步骤S3011:设定表示每个清洁区域的节点;
步骤S3012:根据清洁区域之间的连通关系,当任意两节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域,连接两节点,构建清洁区域的连通图;
步骤S3013:根据连通图,建立区域顺序树。
在另一种可能的实现方式中,步骤S3013:根据连通图,建立区域顺序树的方法,包括:
当连通图中任一非顶部节点的节点到顶部节点只有一条路径时,将连通图作为区域顺序树;
当连通图中有非顶部节点的节点到顶部节点有多条路径时,对连通图进行去环处理,得到区域顺序树,环为至少三个节点依次连接形成的环形路径,环使得连通图中有非顶部节点的节点到顶部节点有多条路径。
在另一种可能的实现方式中,步骤S302:基于区域顺序树,设定多个清洁区域的清洁次序的方法,包括:
步骤S3021:基于区域顺序树,确定第一目标清洁区域;
步骤S3022:基于区域顺序树,查询表示第一目标清洁区域的第一目标节点的父节点,查询第一目标节点的父节点是否有表示非第一目标清洁区域的子节点,若无,则将第一目标节点的父节点表示的清洁区域作为第二目标清洁区域;若有,则将子节点中的最底层节点表示的清洁区域作为第二目标清洁区域;
步骤S3023:基于区域顺序树,查询表示第二目标清洁区域的第二目标节点的父节点,查询第二目标节点的父节点是否有表示非第一目标清洁区域和非第二目标清洁区域的子节点,若无,则将第二目标节点的父节点表示的清洁区域作为第三目标清洁区域,若有,则将子节点中的最底层节点表示的清洁区域作为第三目标清洁区域;
步骤S3024:查询区域顺序树中的第三目标清洁区域,直至将顶部节点表示的清洁区域设为最后目标清洁区域为止。
在另一种可能的实现方式中,步骤S3021:基于区域顺序树,确定第一目标清洁区域的方法,包括:
在第一空间地图中,确定距离清洁机器人当前的第一位置最近的第一清洁区域;
基于区域顺序树,以第一清洁区域为起始节点,确定目标子树中是否存在叶子节点,目标子树为区域顺序树中以起始节点为顶部节点的局部区域顺序树,叶子节点为区域顺序树中有父节点无子节点的节点;
当目标子树中存在叶子节点时,从目标子树的叶子节点中选择一叶子节点,将选择的叶子节点表示的清洁区域作为第一目标清洁区域;
当目标子树中不存在叶子节点时,将起始节点表示的清洁区域作为第一目标清洁区域。
在另一种可能的实现方式中,顶部节点表示的清洁区域的清洁方向与基准方向相同,对于区域顺序树中的任一非顶部节点的子节点,子节点表示的清洁区域的清洁方向指向子节点的父节点表示的清洁区域,且子节点表示的清洁区域的清洁方向平行或垂直于基准方向。
在另一种可能的实现方式中,步骤S42:对清洁区域设定一清洁起点的方法,包括:
基于区域地图,在清洁区域内,搜索出距离清洁机器人当前的第一位置最近的第一未清洁点;在清洁区域内,在垂直于清洁方向上的预设长度范围内,沿清洁方向的反方向搜索清洁区域的第二未清洁点,第二未清洁点为在清洁方向上距离第一未清洁点最远的未清洁点;基于第二未清洁点,确定清洁区域的清洁起点;或者,
基于区域地图,在清洁区域内,从清洁机器人当前的第一位置开始,通过扫描线的形式,沿清洁方向的反方向扫描搜索清洁区域内的第一未清洁点,扫描线垂直于清洁方向,第一未清洁点为在清洁方向上距离第一位置最远的未清洁点;基于第一未清洁点,确定清洁区域的清洁起点;或者,
基于区域地图,在清洁区域内,以清洁区域的入口边作为清洁机器人的起始位置,沿清洁方向的反方向搜索清洁区域的第一未清洁点,第一未清洁点为在清洁方向上距离清洁区域的起始位置最远的未清洁点;基于第一未清洁点,确定清洁区域的清洁起点;或者,
基于区域地图,在清洁区域内,搜索出距离清洁机器人当前的第一位置最近的第一未清洁点;基于第一未清洁点,确定清洁区域的清洁起点。
在另一种可能的实现方式中,基于第一未清洁点,确定清洁区域的清洁起点的方法,包括:
将第一未清洁点作为清洁区域的清洁起点;或者,
当第一未清洁点所在的边缘上有未清洁点,则移动到边缘的端点,将边缘的端点作为清洁区域的清洁起点。
在另一种可能的实现方式中,方法还包括:
步骤S8:在执行清洁操作过程中遇到障碍物时,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图,执行骤S2:基于第一空间地图,将待清洁空间划分为至少一清洁区域的步骤。
在另一种可能的实现方式中,清洁机器人设置有清洁件,清洁件用于供清洁机器人对地面执行清洁操作;
清洁件为拖地模块,拖地模块用于对地面进行拖地清洁;
待清洁空间为房间单元。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例1
本申请实施例提供了一种清洁控制方法,参见图14,本申请实施例以待清洁空间为一个房间单元,且该房间单元为规则的房间单元,清洁机器人100直接将该房间单元作为清洁区域,对该房间单元执行清洁操作为例进行说明,该方法包括:
步骤S1401:清洁机器人100获取待清洁空间的地图作为第一空间地图。
本申请中所有实施例的清洁控制方法的执行时机可以为:无沿边清洁,或者已经清洁过一部分区域,或者沿边清洁结束,开始弓字型清洁之前。其中,沿边清洁为清洁机器人100对墙边沿地面进行清洁,沿边清洁结束可以为清洁机器人100对待清洁空间沿墙面边缘执行清洁完成,其中,清洁机器人100通过沿边清洁可以获取待清洁空间的边缘信息。弓字型清洁为清洁机器人100沿清洁方向逐渐推进,在垂直于清洁方向的方向上来回折返。另外,第一空间地图用于表示待清洁空间或待清洁空间内的待清洁子空间,其中,待清洁子空间为待清洁空间内的未清洁区域。
在一种可能的实现方式中,在本步骤之前,清洁机器人100获取该待清洁空间的第一空间地图,并存储该第一空间地图;在本步骤中,清洁机器人100在执行清洁控制方法时,直接获取已存储的该第一空间地图。其中,清洁机器人100可以将该第一空间地图存储到存储器上,相应的,清洁机器人100可以从该存储器上读取该第一空间地图。在另一种可能的实现方式中,清洁机器人100可以在本步骤获取待清洁空间的第一空间地图。
其中,清洁机器人100获取该待清洁空间的第一空间地图的方式有以下六种实现方式。对于第一种实现方式,清洁机器人100上安装激光雷达,相应的,清洁机器人100获取该待清洁空间的第一空间地图的步骤可以为:清洁机器人100可以通过清洁机器人100上安装的激光雷达对待清洁空间进行探测,得到该待清洁空间的第一空间地图。
对于第二种实现方式,清洁机器人100可以通过沿边清洁从而获取该待清洁空间的第一空间地图;相应的,清洁机器人100获取该待清洁空间的第一空间地图的步骤可以为:清洁机器人100对该待清洁空间的边缘进行清洁,根据边缘部分的清洁轨迹,得到第一空间地图。其中,当该待清洁空间为家庭空间,且该家庭空间包括多个房间单元时,清洁机器人100对该待清洁空间的边缘进行清洁的步骤可以为:清洁机器人100对该待清洁空间中的每个房间单元的边缘进行清洁。
对于第三种实现方式,清洁机器人100上安装惯性测量单元和碰撞传感器,相应的,清洁机器人100获取该待清洁空间的第一空间地图的步骤可以为:清洁机器人100使用惯性测量单元和碰撞传感器对待清洁空间进行探测,得到该待清洁空间的第一空间地图。
对于第四种实现方式,清洁机器人100上安装视觉传感器,相应的,清洁机器人100获取该待清洁空间的第一空间地图的步骤可以为:清洁机器人100通过视觉传感器对待清洁空间进行探测,得到该待清洁空间的第一空间地图。
对于第五种实现方式,服务器中存储待清洁空间的第一空间地图,清洁机器人100从服务器中获取该待清洁空间的第一空间地图;相应的,清洁机器人100获取该待清洁空间的第一空间地图的步骤可以为:清洁机器人100向服务器发送获取请求,该获取请求携带该待清洁空间的区域标识;服务器接收该获取请求,根据该区域标识,获取该待清洁空间的第一空间地图,向清洁机器人100发送待清洁空间的第一空间地图;清洁机器人100接收待清洁空间的第一空间地图。
对于第六种实现方式,用户通过终端直接将待清洁空间的第一空间地图输入给清洁机器人100。相应的,清洁机器人100获取该第一空间地图的步骤可以为:清洁机器人100接收终端输入的待清洁空间的第一空间地图。
在本申请实施例中,对清洁机器人100获取第一空间地图的方式不作具体限定。另外,清洁机器人100获取的第一空间地图中可以包括待清洁空间的区域大小,出入口所在位置,基站所在位置或者房门所在位置等。当待清洁空间中包括多个房间单元时,第一空间地图中还可以包括每个房间单元的区域大小、相邻的两个房间单元之间的房门的位置。在本申请实施例中,待清洁空间为一个房间单元,清洁机器人100获得的第一空间地图可以为图15所示的第一空间地图,该第一空间地图中只有一个房间单元。清洁机器人100获得的第一空间地图还可以为图16所示的第一空间地图,该地图中只有一个房间单元,且该房间单元中有基站。
步骤S1402:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间或待清洁子空间作为清洁区域,执行步骤S1403进行清洁。
其中,第一空间地图规则的定义为:第一空间地图中任意一点到参考物存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径。该参考物为基站或出入口,基准方向为待清洁空间或待清洁子空间内任意一点指向参考物的方向,且该点至参考物之间的连线区域不经过障碍物。清洁机器人100确定第一空间地图是否规则的步骤可以为:对于第一空间地图中的任意一点,清洁机器人100确定该点到参考物的至少一条路径;对于该至少一条路径中的每条路径,清洁机器人100确定该路径中是否存在与基准方向相反方向的移动路径;当不存在与基准方向相反方向的移动路径时,清洁机器人100确定第一空间地图规则;当存在与基准方向相反方向的移动路径时,清洁机器人100确定第一空间地图不规则。当第一空间地图规则时,清洁机器人100执行步骤S1403。
例如,当第一空间地图为图15所示的地图时,该地图中没有基站,因此可以将房门作为该待清洁空间的参考物,该地图中任意一点到房门存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,基准方向为该地图中任意一点指向房门的方向,且该点至房门之间的连线区域不经过障碍物。因此,清洁机器人100确定该地图规则。当第一空间地图为图16所示的地图时,该地图中存在基站和房门,例如,将基站作为参考物,该地图中任意一点到房门存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,基准方向为该地图中任意一点指向基站的方向,且该点至基站之间的连线区域不经过障碍物。因此,清洁机器人100确定该地图规则。
步骤S1403:清洁机器人100对清洁区域设定一清洁方向。
当第一空间地图规则时,清洁机器人100将待清洁空间或待清洁子空间直接作为清洁区域。该第一空间地图中只有一个清洁区域,该一个清洁区域的清洁方向为基准方向。其中,基准方向为待清洁空间或待清洁子空间任意一点指向参考物的方向,且该点至参考物之间的连线区域不经过障碍物。
例如,当第一空间地图为图15或图16所示的第一空间地图时,图15和图16所示的地图均为规则地图,因此,清洁机器人100直接将该地图对应的待清洁空间或待清洁子空间作为清洁区域,为该清洁区域设定清洁方向,该清洁方向为基准方向。其中,对于图15所示的地图,该地图中的房门为参考物,该基准方向可以为水平指向房门的方向,也即清洁方向,参见图17。对于图16所示的地图,当该地图中的基站为参考物时,基准方向可以为垂直指向基站的方向,也即清洁方向,参见图18。
步骤S1404:清洁机器人100基于该清洁方向,对清洁区域设定一清洁起点。
本步骤可以通过以下任一种实现方式实现。
第一种实现方式,清洁机器人100可以通过以下步骤(A1)至(A2),实现,包括:
(A1)清洁机器人100基于该区域地图,在该清洁区域内,搜索出距离清洁机器人100当前的第一位置最近的第一未清洁点。
清洁机器人100在区域地图中确定清洁机器人100当前的第一位置,根据第一位置,在区域地图中搜索距离清洁机器人100当前的第一位置最近的点,将区域地图中距离清洁机器人100当前的第一位置最近的点在清洁区域中表示的位置作为第一未清洁点。
清洁机器人100进行搜索时,清洁机器人100可以从清洁机器人100当前的第一位置开始进行搜索,从而可以尽快搜索到距离该清洁机器人100当前所在位置最近的第一未清洁点,从而提高搜索效率。并且,当清洁机器人100搜索到距离该清洁机器人100当前的第一位置最近的多个未清洁点时,清洁机器人100可以从多个未清洁点中选择第一未清洁点。其中,清洁机器人100可以从多个未清洁点中随机选择一个未清洁点,将选择的未清洁点作为第一未清洁点。清洁机器人100还可以基于该清洁方向,从多个未清洁点中,选择在该清洁方向相背的方向上的未清洁点,将选择的未清洁点作为第一未清洁点。
需要说明的一点是,清洁机器人100从多个未清洁点中选择在该清洁方向相背的方向上的未清洁点作为第一清洁点,从而确保选择的未清洁点为远离入口边的点,进一步提高了后续的清洁效率。
(A2)清洁机器人100在该清洁区域内,在垂直于清洁方向上的预设长度范围内,沿清洁方向的反方向搜索清洁区域的第二未清洁点,该第二未清洁点为在清洁方向上距离第一未清洁点最远的未清洁点。
预设长度可小于清洁区域的边缘的长度,从而减小搜索第二未清洁点的范围,以减小搜索时间。预设长度可以根据需要进行设置并更改,在本申请实施例中,对预设长度不作具体限定;例如,预设长度可以为清洁机器人100的1个机身宽度、2个机身宽度或者3个机身宽度等。
在本步骤中,清洁机器人100也可以直接在该清洁区域内,沿清洁方向的反方向搜索待清洁空间的第二未清洁点,从而确保搜索到的第二未清洁点是清洁区域中距离第一未清洁点最远的未清洁点,进一步提高后续清洁效率。
(A3)清洁机器人100基于该第二未清洁点,确定该清洁区域的清洁起点。
在一种可能的实现方式中,清洁机器人100直接将第二未清洁点作为该清洁区域的清洁起点。在另一种可能的实现方式中,清洁机器人100确定第二未清洁点所在的边缘上是否有未清洁点,当该第二未清洁点所在的边缘上有未清洁点,则清洁机器人100移动到该边缘的端点,将该边缘的端点作为该清洁区域的清洁起点。
第二种实现方式,清洁机器人100可以通过以下步骤(B1)至(B2),实现,包括:
(B1)清洁机器人100基于区域地图,在清洁区域内,从清洁机器人100当前的第一位置开始,通过扫描线的形式,沿清洁方向的反方向扫描搜索清洁区域内的第一未清洁点,第一未清洁点为在该清洁方向上距离第一位置最远的未清洁点。
清洁机器人100从清洁机器人100当前的第一位置开始,在该区域地图中通过横向扫描线的形式,沿清洁方向的反方向进行扫描,当扫描到第三未清洁点时,记录第三未清洁点的位置,然后继续进行扫描,当扫描到第四未清洁点时,且第三未清洁点与该清洁机器人100当前的第一位置之间的第一距离小于第四未清洁点与该清洁机器人100当前的第一位置之间的第二距离时,删除第三未清洁点的位置,记录第四为清洁点的位置,当第一距离大于第二距离时,丢弃第四未清洁点的位置,然后继续进行扫描,直到扫描完区域地图为止。清洁机器人100将最终记录的位置映射到清洁区域中,得到第一未清洁点。
例如,当第一空间地图为图15所示的地图,清洁方向为图17所示的清洁方向时,清洁机器人100最终确定的第一未清洁点为P,参见图19;再如,当第一空间地图为图16所示的地图,清洁方向为图18所示的清洁方向时,清洁机器人100最终确定的第一未清洁点为Q,参见图20。
(B2)清洁机器人100基于该第一未清洁点,确定清洁区域的清洁起点。
在一种可能的实现方式中,清洁机器人100直接将第一未清洁点作为清洁区域的清洁起点。在另一种可能的实现方式中,清洁机器人100确定第一未清洁点所在的边缘上是否有未清洁点,当该第一未清洁点所在的边缘上有未清洁点,移动到该边缘的端点,将该边缘的端点作为该清洁区域的清洁起点;当该第一未清洁点所在的边缘上没有未清洁点时,直接将第一未清洁点作为清洁区域的清洁起点。
需要说明的一点是,第一未清洁点所在的边缘上可能存在多个端点;例如存在两个端点,分别为左端点和右端点。清洁机器人100可以移动到该边缘的任一端点,例如,移动到该边缘的左端点或者移动到该边缘的右端点。
第三种实现方式,清洁机器人100可以通过以下步骤(C1)至(C2),实现,包括:
(C1)清洁机器人100基于该区域地图,在该清洁区域内,以该清洁区域的入口边作为清洁机器人100的起始位置,沿该清洁方向的反方向搜索该清洁区域的第一未清洁点,第一未清洁点为在该清洁方向上距离该清洁区域的起始位置最远的未清洁点。
其中,清洁机器人100可以将该清洁区域的入口边上的任一点作为清洁机器人100的起始位置。其中,将清洁区域的入口边上的中心点作为清洁机器人100的起始位置,或者,将清洁区域的入口边的端点作为清洁机器人100的起始位置。例如,将清洁区域的入口边的左端点作为清洁机器人100的起始位置,或者将清洁区域的入口边的右端点作为清洁机器人100的起始位置。
(C2)清洁机器人100基于该第一未清洁点,确定清洁区域的清洁起点。
本步骤S与步骤(B2)相同,在此不再赘述。
第四种实现方式,清洁机器人100可以通过以下步骤(D1)至(D2),实现,包括:
(D1)清洁机器人100基于该区域地图,在该清洁区域内,搜索出距离清洁机器人100当前的第一位置最近的第一未清洁点。
本步骤与步骤(A1)相同,在此不再赘述。
(D2)清洁机器人100基于该第一未清洁点,确定清洁区域的清洁起点。
本步骤与步骤(B2)相同,在此不再赘述。
需要说明的一点是,清洁机器人100可以通过以上四种实现方式中的任一实现方式确定该清洁区域的清洁起点。清洁机器人100还可以根据清洁机器人100当前的第一位置,从上述四种实现方式中选择任一实现方式确定该清洁区域的清洁起点。例如,当清洁机器人100当前的第一位置在清洁区域内时,清洁机器人100可以通过以上第一种实现方式、第二种实现方式和第四种实现方式确定该清洁区域的清洁起点。当清洁机器人100当前的第一位置不在清洁区域内时,清洁机器人100可以通过以上第三种实现方式确定该清洁区域的清洁起点。
步骤S1405:清洁机器人100从清洁起点开始,按照清洁方向对待清洁空间的清洁区域执行清洁操作。
本步骤中,清洁机器人100以清洁区域为单位,从清洁起点开始沿弓字型轨迹移动,该弓字型轨迹沿清洁方向逐渐推进,在垂直于清洁方向的方向上来回折返。例如,当清洁机器人100以清洁区域为单位,确定的清洁起点为图19中所示时,清洁机器人100从P点开始,以弓字型轨迹沿水平方向逐渐推进,参见图21。当清洁机器人100以清洁区域为单位,确定的清洁起点为图20中所示时,清洁机器人100从Q点开始,以弓字型轨迹沿垂直方向逐渐推进,参见图22。
需要说明的一点是,当清洁机器人100在执行清洁操作过程中遇到障碍物时,清洁机器人100先环绕障碍物移动,同时清洁件清洁地面,实现绕障碍物的沿边对地面清洁。由于清洁机器人100在步骤S1401中获取的第一空间地图中往往不包括障碍物的信息,因此清洁机器人100在清洁过程中,可以通过清洁机器人100上设置的传感器检测障碍物,尤其在对障碍物进行环绕后,才能全面探测出障碍物的信息。其中,障碍物的信息主要包括障碍物的跨越距离、覆盖区域等。由于本申请实施例中只有一个清洁区域,因此,清洁机器人100在遇到障碍物后,仍按原来的清洁方向执行清洁操作即可。
在本申请中的所有实施例中,当清洁机器人100内的电池电量不足,达到电量阈值时,清洁机器人100记录当前的清洁位置,移动至基站进行充电操作,充电完成后回到该清洁位置,继续执行清洁操作。当清洁机器人100的清洁件的脏污程度达到脏污阈值时,或者清洁件的清洁时间达到时间阈值时,清洁机器人100记录当前的清洁位置,清洁机器人100移动至基站进行清洁件的清洗操作,清洗操作完成后,清洁机器人100回到清洁位置,继续执行清洁操作。另外,清洁机器人100可以在基站同时进行充电操作和清洗操作。
需要说明的另一点是,清洁机器人100上设置有清洁件,该清洁件用于供清洁机器人100对地面执行清洁操作。该清洁件为拖地模块或者扫地模块,当该清洁件为拖地模块时,该拖地模块用于对地面进行拖地清洁,该拖地模块可以为拖布。当该清洁件为扫地模块时,该扫地模块用于对地面进行扫地清洁,该扫地模块可以为扫地刷。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例2
本申请实施例提供了一种清洁控制方法,参见图23,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S2301:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S2301和步骤S1401相同,在此不再赘述。例如,清洁机器人100获取的第一空间地图为图24所示的地图。
步骤S2302:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S2303。
本步骤中,清洁机器人100对第一空间地图进行判断的过程和步骤S1402相同,在此不再赘述。其中,当第一空间地图不规则时,清洁机器人100执行步骤S2303。
例如,当清洁机器人100获取的第一空间地图为图24所示的第一空间地图时,该地图中只有房门,清洁机器人100将该房门作为参考物,该地图中有的点到房门存在至少一条路径但路径中存在趋向于基准方向的反方向的移动路径,基准方向为该地图中任意一点指向房门的方向,且该点至房门之间的连线区域不经过障碍物,因此,该地图不规则。则清洁机器人100执行步骤S2303。
步骤S2303:清洁机器人100基于第一空间地图,通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
在本步骤之前,清洁机器人100以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴。其中,基准方向可以垂直于X轴,基准方向为Y轴正方向;或者基准方向可以垂直于Y轴,基准方向为X轴正方向。在本申请实施例中,对此不作具体限定。例如,清洁机器人100将基准方向设为Y轴正方向。
本步骤可以通过以下步骤(1)至(4)实现,包括:
(1)在参考物的位置处,清洁机器人100通过横向扫描线扫描第一空间地图。
其中,横向扫描线和基准方向垂直,基准方向为Y轴正方向。清洁机器人100在通过横向扫描线扫描第一空间地图时,以参考物的位置为起点,沿Y轴正方向或Y轴负方向扫描第一空间地图。清洁机器人100在通过横向扫描线扫描第一空间地图时,可以每通过横向扫描线扫描一次第一空间地图,确定第一空间地图中沿Y轴正方向或Y轴负方向上是否存在未扫描的区域。当清洁机器人100确定第一空间地图中沿Y轴正方向上存在未扫描的区域时,清洁机器人100执行步骤(2);当清洁机器人100确定第一空间地图中沿Y轴负方向上存在未扫描的区域时,清洁清洁机器人100执行步骤(3)。其中,清洁机器人100在通过横向扫描线扫描第一空间地图时,可以先沿Y轴正方向扫描第一空间地图,或者先沿Y轴负方向扫描第一空间地图,或者同时沿Y轴正方向和Y轴负方向扫描第一空间地图,在本申请实施例中,对此不作具体限定。
横向扫描线为水平方向的扫描线,该横向扫描线可以从第一空间地图的一侧边缘开始,到达另一侧边缘停止。例如,横向扫描线从第一空间地图的左侧边缘开始,到达右侧边缘停止;或者从第一空间地图的右侧边缘开始,到达左侧边缘停止。在本申请实施例中,对此不作具体限定。横向扫描线的粗细可以根据需要进行设置并更改,在本申请实施例中,对此也不作具体限定。另外,清洁机器人100通过横向扫描线扫描第一空间地图时,清洁机器人100无需移动,清洁机器人100可以通过清洁机器人100内部的扫描仪扫描第一空间地图。
例如,对于图24所示的第一空间地图,清洁机器人100可以将该地图中任意一点指向房门的方向作为基准方向,例如,垂直于房门的方向或者与垂直于房门方向成45°角的方向作为基准方向,在本申请实施例中,对此不作具体限定。
(2)若第一空间地图中已经扫描的区域在Y轴正方向上有相邻且未扫描的区域,则清洁机器人100沿Y轴正方向推进横向扫描线扫描相邻且未扫描的区域。
在一种可能的实现方式中,清洁机器人100每通过横向扫描线沿Y轴正方向扫描一次第一空间地图时,清洁机器人100确定沿Y轴正方向上是否存在未扫描的区域。当存在未扫描的区域时,清洁机器人100沿Y轴正方向推进第一间隔,在距离上次横向扫描线的第一间隔处,扫描第一空间地图,清洁机器人100确定沿Y轴正方向上是否还存在未扫描的区域。当还存在未扫描的区域时,清洁机器人100沿Y轴正方向继续推进第一间隔,直至沿Y轴正方向上不存在未扫描的区域,清洁机器人100执行步骤(4)。
(3)若第一空间地图中已经扫描的区域在Y轴负方向上有相邻且未扫描的区域,则清洁机器人100沿Y轴负方向推进横向扫描线扫描相邻且未扫描的区域。
本步骤和步骤(2)相似,清洁机器人100每通过横向扫描线沿Y轴负方向扫描一次第一空间地图时,清洁机器人100确定沿Y轴负方向上是否存在未扫描的区域。当存在未扫描的区域时,清洁机器人100沿Y轴负方向推进第一间隔,在距离上次横向扫描线扫描的第一间隔处,扫描第一空间地图,清洁机器人100确定沿Y轴负方向上是否还存在未扫描的区域。当还存在未扫描的区域时,清洁机器人100沿Y轴负方向继续推进第一间隔,直至沿Y轴负方向上不存在未扫描的区域,清洁机器人100执行步骤(4)。
例如,参见图25和图26,图25为将图24所示的第一空间地图按照垂直于房门方向作为基准方向通过横向扫描线扫描的示意图;图26为将图24所示的第一空间地图按照与垂直于房门方向成45°角的方向作为基准方向通过扫描线扫描的示意图。
(4)清洁机器人100以横向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将待清洁空间划分为至少一清洁区域。
本步骤中,清洁机器人100以横向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿Y轴正方向扫描的区域合并为一个清洁区域,以及将沿Y轴负方向扫描的区域合并为一个清洁区域。并且,当横向扫描线出现分段时,清洁机器人100从分段后的扫描线开始,将沿相同方向扫描的区域合并为一个清洁区域,直至横向扫描线再次出现分段或者到达第一空间地图的边缘。清洁机器人100重复执行上述过程,直至遍历完待清洁空间中的所有房间单元。参见图27,图27为根据上述步骤将图25所示的沿相同方向扫描的区域合并后得到的多个清洁区域。参见图28,图28为将图26所示的沿相同方向扫描的区域合并后得到的多个清洁区域。
在一种可能的实现方式中,清洁机器人100通过上述步骤,将待清洁空间划分为至少一清洁区域后,可以直接执行步骤S1404。
在另一种可能的实现方式中,清洁机器人100执行完步骤S1403后,可以确认划分出的每个清洁区域的面积,对于每个清洁区域,当该清洁区域的面积小于预设数值时,清洁机器人100将该清洁区域和其它面积大于预设数值的相邻的清洁区域合并后,执行步骤S2304。相应的,清洁机器人100将该清洁区域与其它面积大于预设数值的相邻的清洁区域合并的步骤可以为:清洁机器人100将该清洁区域合并到被相同方向推进的扫描线扫描的清洁区域。在另一种可能的实现方式中,清洁机器人100执行完步骤S2303后,可以确定每个清洁区域的长和宽的比值,对于每个清洁区域,当该清洁区域的长和宽的比值大于预设比值时,清洁机器人100将该清洁区域和其它比值小于预设比值的相邻的清洁区域合并后,执行步骤S2304。其中,该清洁区域的长为与基准方向平行的边的长度,该清洁区域的宽为与基准方向垂直的边的长度。
预设数值和预设比值均可以根据需要进行设置并更改,在本申请实施例中,对此不作具体限定。
步骤S2304:清洁机器人100设定表示每个清洁区域的节点。
清洁机器人100将多个清洁区域中的每个清洁区域均用节点表示,一个节点表示一个清洁区域,一节点与至少一节点连接。节点包括顶部节点,父节点及子节点,两相连的节点,靠近顶部节点的节点为父节点,远离顶部节点的节点为子节点,父节点表示的清洁区域和子节点表示的清洁区域相邻,或者父节点和子节点中的一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域。顶部节点表示的清洁区域为与参考物所在清洁区域。
步骤S2305:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
清洁机器人100根据清洁区域之间的连通关系,当任意两节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与所述孤立的清洁区域距离最近的清洁区域,连接两节点,构建清洁区域的连通图。
孤立的清洁区域表示与其它清洁区域都不相邻的清洁区域。该连通图中连接的两个节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域。相应的,本步骤可以为:清洁机器人100从多个节点中选择多组节点,每组节点包括第一节点和第二节点,第一节点表示的清洁区域和第二节点表示的清洁区域相邻,或者第一节点表示的清洁区域为孤立的清洁区域,第二节点表示的清洁区域与该孤立的清洁区域距离最近。对于每组节点,清洁机器人100连接第一节点和第二节点,得到该组节点的连接关系,根据每组节点的连接关系,生成连通图。
其中,清洁机器人100连接第一节点和第二节点的步骤可以为:当第一节点和第二节点中有表示参考物所在清洁区域的节点时,清洁机器人100将表示参考物所在清洁区域的节点作为顶部节点,将另一节点作为顶部节点的子节点。例如,第一节点为表示参考物所在清洁区域的节点时,则清洁机器人100将第一节点作为顶部节点,将第二节点作为第一节点的子节点。
当第一节点和第二节点中没有表示参考物所在清洁区域的节点,但有表示的清洁区域与参考物所在清洁区域连接的节点时,清洁机器人100将表示清洁区域与该参考物所在清洁区域相邻的节点作为顶部节点的子节点,将表示的清洁区域不与该参考物所在清洁区域相邻的节点作为该节点的子节点。例如,第一节点表示的清洁区域与参考物所在清洁区域相邻,则清洁机器人100将第一节点作为顶部节点的子节点,将第二节点作为第一节点的子节点。
当第一节点和第二节点中没有表示参考物所在清洁区域的节点,且没有表示清洁区域与参考物所在清洁区域相邻的节点时,清洁机器人100确定第一节点表示的清洁区域与参考物所在清洁区域之间的第一距离,以及确定第二节点表示的清洁区域与参考物所在清洁区域之间的第二距离;当第一距离大于第二距离时,将第一节点作为第二节点的子节点;当第一距离小于第二距离时,将第一节点作为第二节点的父节点。
步骤S2306:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
当连通图中任一非顶部节点的节点到顶部节点只有一条路径时,该连通图为无环的连通图,清洁机器人100直接将该无环的连通图作为区域顺序树。
例如,对于图27所示的清洁区域1和2,清洁机器人100得到的连通图如图29所示,该图中表示清洁区域1的节点为顶部节点,表示清洁区域2的节点为顶部节点的子节点。图29中该子节点到顶部节点只有一条路径,因此,清洁机器人100直接将该连通图作为区域顺序树。
需要说明的一点是,清洁机器人100可以以清洁区域的标号作为节点的标号。例如,节点1表示清洁区域1,节点2表示清洁区域2。在本申请实施例中,对此不作具体限定。
步骤S2307:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
本步骤可以通过以下步骤(1)至(4)实现,包括:
(1)清洁机器人100基于区域顺序树,确定第一目标清洁区域。
第一目标清洁区域为待清洁空间中首先被清洁的清洁区域。
当清洁机器人100当前的第一位置在待清洁空间内时,本步骤可以通过以下步骤(1-1)至(1-4)实现,包括:
(1-1)清洁机器人100在第一空间地图中,确定距离清洁机器人100当前的第一位置最近的第一清洁区域。
本步骤中清洁机器人100首先确定清洁机器人100当前的第一位置。其中,清洁机器人100可以周期性对自身进行定位,从而获取清洁机器人100当前的第一位置。该第一位置可能在待清洁空间内,也可能在待清洁空间外。
清洁机器人100在第一空间地图中,基于该第一位置,确定距离该第一位置最近的第一清洁区域。相应的,该步骤可以为:清洁机器人100通过第一位置到每个清洁区域之间的距离,确定第一清洁区域。其中,清洁机器人100当前的第一位置到每个清洁区域之间的距离可以为第一位置到每个清洁区域的几何中心之间的距离。清洁机器人100确定第一位置到每个清洁区域的几何中心之间的距离,并从多个距离中选择距离第一位置最近的清洁区域,将该清洁区域作为第一清洁区域。
(1-2)清洁机器人100基于区域顺序树,以第一清洁区域为起始节点,确定目标子树中是否存在叶子节点。
该目标子树为区域顺序树中以起始节点为顶部节点的局部区域顺序树。叶子节点为区域顺序树中有父节点无子节点的节点。清洁机器人100确定目标子树中是否存在叶子节点,当存在叶子节点时,清洁机器人100执行步骤(1-3);当不存在叶子节点时,清洁机器人100执行步骤(1-4)。
(1-3)当目标子树中存在叶子节点时,清洁机器人100从目标子树的叶子节点中选择一叶子节点,将选择的叶子节点表示的清洁区域作为第一目标清洁区域。
清洁机器人100从目标子树中选择一叶子节点的步骤可以为:当目标子树中包括多个叶子节点时,清洁机器人100从多个叶子节点中选择表示的清洁区域距离第一位置最近的叶子节点。清洁机器人100通过该方法选择的叶子节点可以使清洁机器人100的移动距离最小,提高了清洁效率。其中,清洁机器人100从多个叶子节点中选择表示的清洁区域距离第一位置最近的叶子节点的步骤可以为:清洁机器人100确定每个叶子节点表示的清洁区域的几何中心距离第一位置的距离,从多个距离中选择距离最小的清洁区域对应的叶子节点。
(1-4)当目标子树中不存在叶子节点时,清洁机器人100将起始节点表示的清洁区域作为第一目标清洁区域。
当目标子树中不存在叶子节点时,清洁机器人100直接将该起始节点表示的第一清洁区域作为第一目标清洁区域。
当清洁机器人100当前的第一位置不在待清洁空间中时,清洁机器人100直接基于区域顺序树,从区域顺序树的叶子节点中任意选择一叶子节点,将该叶子节点表示的清洁区域作为第一目标清洁区域;清洁机器人100也可以从叶子节点中选择表示的清洁区域与参考物所在清洁区域之间距离最远的叶子节点,将该叶子节点表示的清洁区域作为第一目标清洁区域,后续使清洁机器人100逐渐由远至近执行清洁操作,避免经过已清洁的清洁区域,污染已清洁的清洁区域,从而提高了清洁效率。
(2)清洁机器人100基于区域顺序树,查询表示第一目标清洁区域的第一目标节点的父节点,查询该第一目标节点的父节点是否有表示非第一目标清洁区域的子节点,若无,则将该第一目标节点的父节点表示的清洁区域作为第二目标清洁区域,若有,则将该子节点中的最底层节点表示的清洁区域作为第二目标清洁区域。
第二目标清洁区域为第一目标清洁区域之后被清洁的下一个清洁区域。
清洁机器人100基于区域顺序树,从区域顺序树中查询表示第一目标清洁区域的第一目标节点的父节点。当该第一目标节点的父节点还存在除该第一目标节点以外的子节点时,则将该子节点作为父节点,确定该子节点是否存在子节点,重复操作,直至确定该子节点的最底层节点,将该最底层节点表示的清洁区域作为第二目标清洁区域。当该第一目标节点的父节点不存在除该第一目标节点以外的子节点时,清洁机器人100则将该父节点表示的清洁区域作为第二目标清洁区域。
(3)清洁机器人100基于区域顺序树,查询表示第二目标清洁区域的第二目标节点的父节点,查询该第二目标节点的父节点是否有表示非第一目标清洁区域和非第二目标清洁区域的子节点,若无,则将第二目标节点的父节点表示的清洁区域作为第三目标清洁区域,若有,则将子节点中的最底层节点表示的清洁区域作为第三目标清洁区域。
第三目标清洁区域为第二目标清洁区域之后被清洁的下一个清洁区域。本步骤中清洁机器人100确定第三目标清洁区域的步骤和上述步骤(2)相似,在此不再赘述。
(4)清洁机器人100查询区域顺序树中的第三目标清洁区域,直至将顶部节点表示的清洁区域设为最后目标清洁区域为止。
清洁机器人100根据上述方法确定第三目标清洁区域,第四目标清洁区域,直至将顶部节点表示的清洁区域设为最后目标清洁区域为止。其中,顶部节点表示的清洁区域为清洁次序中最后被清洁的清洁区域。
例如,对于图29得到的区域顺序树,清洁机器人100确定表示清洁区域1的节点为顶部节点,表示清洁区域2的节点为该顶部节点的子节点,因此,清洁机器人100确定第一目标清洁区域为清洁区域2,清洁区域1为在清洁区域2之后被清洁的清洁区域。
步骤S2308:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S2309进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间或待清洁子空间,执行步骤S2303。
区域地图规则的定义为:区域地图中任意一点到出入口存在至少一条路径且满足路径中没有趋向于出入口方向的反方向的移动路径。两清洁区域之间设有一出入口,对于其中任一清洁区域,当该清洁区域内任意一点到出入口之间的连线区域不经过障碍物时,定义该点指向出入口的方向为该清洁区域的出入口方向,两相邻的清洁区域的出入口方向相反。其中,清洁机器人100确定区域地图是否规则的步骤与步骤S1402中清洁机器人100确定第一空间地图规则的步骤相似,在此不再赘述。
本步骤中当区域地图不规则时,清洁机器人100将该区域地图作为第一空间地图,将清洁区域作为待清洁空间或待清洁子空间,执行步骤S2303;当区域地图规则时,清洁机器人100执行步骤S2309。
例如,当清洁机器人100划分得到的清洁区域为图27中所示的清洁区域1和清洁区域2时,清洁区域1和清洁区域2之间设有一出入口,对于清洁区域1,该清洁区域内任意一点到该出入口存在至少一条路径且满足路径中没有趋向于该清洁区域的出入口方向的反方向的移动路径,因此,清洁区域1规则;对于清洁区域2,该清洁区域内任意一点到该出入口存在一条路径且满足路径中没有趋向于该清洁区域的出入口方向的反方向的移动路径,因此,清洁区域2规则。清洁机器人100执行步骤S2309。
步骤S2309:清洁机器人100对清洁区域设定一清洁方向。
对于区域顺序树中的顶部节点,清洁机器人100配置该顶部节点表示的清洁区域的清洁方向和基准方向相同,该基准方向为指向参考物的方向。
对于区域顺序树中的任一非顶部节点的子节点,清洁机器人100配置该子节点表示的清洁区域的清洁方向指向该子节点的父节点表示的清洁区域,且该子节点表示的清洁区域的清洁方向平行或垂直于该基准方向。
需要说明的一点是,当该清洁区域为步骤S2303中清洁机器人100合并得到的清洁区域时,清洁机器人100对合并后的清洁区域设定清洁方向的步骤,可以通过以下任一种方式实现。
第一种实现方式,清洁机器人100将面积小于预设数值的清洁区域和其它面积大于预设数值的相邻的清洁区域合并。对于合并后的清洁区域,该合并后的清洁区域的清洁方向为与该面积小于预设数值的清洁区域相邻的且面积大于预设数值的清洁区域的清洁方向。
第二种实现方式,清洁机器人100将长和宽的比值大于预设比值的清洁区域和其它比值大于预设比值的相邻的清洁区域合并。对于合并后的清洁区域,该合并后的清洁区域的清洁方向为与该比值大于预设比值的清洁区域相邻的且比值小于预设比值的清洁区域的清洁方向。
参见图30,图30为对图27得到的清洁区域配置的清洁方向的示意图。参见图31,图31为对图28得到的清洁区域配置的清洁方向的示意图。
步骤S2310:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
例如,对于图30所示的清洁区域和清洁方向,清洁机器人100最终确定的第一未清洁点为R,参见图32。
本步骤和步骤S1404相同,在此不再赘述。
步骤S2311:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
本步骤中,清洁机器人100以清洁区域为单位,从第一目标清洁区域的清洁起点开始,按照第一目标清洁区域的清洁方向,沿弓字型轨迹移动,对第一目标清洁区域执行清洁操作;当对第一目标清洁区域执行完清洁操作后,清洁机器人100从第二目标清洁区域的第二清洁起点开始,按照第二目标清洁区域的清洁方向,沿弓字型轨迹移动,对第二目标清洁区域执行清洁操作;当对第二目标清洁区域执行完清洁操作后,清洁机器人100从第三目标清洁区域的第三清洁起点开始,按照第三目标清洁区域的清洁方向,沿弓字型轨迹移动,对第三目标清洁区域执行清洁操作,直至对参考物所在清洁区域执行完清洁操作为止。
需要说明的一点是,当清洁机器人100对一清洁区域执行完清洁操作后,可以基于预先设置的从该清洁区域移动到下一清洁区域的导航路径,从该清洁区域移动到下一清洁区域,对该下一清洁区域执行清洁操作。
清洁机器人100执行清洁操作时,沿弓字型轨迹移动,该弓字型轨迹沿清洁方向逐渐推进,在垂直于清洁方向的方向上来回折返。参见图33,图33为对图32中的清洁区域沿弓字型轨迹移动的示意图。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例3
本申请实施例提供了一种清洁控制方法,参见图34,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S3401:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S3402:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S3403。
步骤S3403:清洁机器人100基于第一空间地图,通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S3404:清洁机器人100设定表示每个清洁区域的节点。
步骤S3405:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S3401-S3405分别和步骤S2301-S2305相同,在此不再赘述。
步骤S3406:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
上述中的环为至少三个节点依次连接形成的环形路径,该环使得连通图中有非顶部节点的节点到顶部节点有多条路径。在本步骤中,清洁机器人100对该环形路径进行去环处理后,得到的区域顺序树中任一非顶部节点的节点到顶部节点只有一条路径。清洁机器人100可以通过任一算法对该环形路径进行去环处理。例如,清洁机器人100可以使用最小生成树算法、最大流最小割算法或者Tarjan算法。在本申请实施例中,对该算法不作具体限定。
在一种可能的实现方式中,清洁机器人100可以通过最小生成树算法进行去环处理,得到区域顺序树。相应的,该步骤可以为:清洁机器人100配置连接的两个节点之间的权重,根据连接的两个节点之间的权重,确定环形路径中的每个节点到顶部节点的路径权重,根据每个节点到顶部节点的路径权重,选择最小路径权重的路径,将该环形路径中未被选择的路径对应的两个节点之间的连线删除,得到区域顺序树。
其中,对于环形路径中的每个节点,清洁机器人100根据连接的两个节点之间的权重,确定该节点到顶部节点的路径权重的步骤可以为:清洁机器人100将该节点到顶部节点之间的路径中节点之间的权重之和确定为该节点到顶部节点的路径权重。清洁机器人100可以用两个节点间连线的数值表示权重,也可以用相邻两个清洁区域的质心间的距离表示权重,在本申请实施例中,对此不作具体限定。
参见图35,清洁机器人100用两个节点间连线的数值表示权重,图中节点5表示顶部节点,对图35所示的连通图通过最小生成树算法处理后,得到图36所示的区域顺序树。
在另一种可能的实现方式中,当该连通图中非顶部节点的节点到顶部节点有多条路径时,连通图中的环构成强连通分量。清洁机器人100可以通过Tarjan算法对该连通图进行去环处理,得到区域顺序树。相应的,该步骤可以为:清洁机器人100通过Tarjan算法对该环进行环内去边,将强连通分量变成非边连通分量,得到区域顺序树。
参见图37,图中节点1、2、3和4构成强连通分量,清洁机器人100以节点3为初始节点,节点2为终止节点,使用Tarjan算法进行环内去边,得到图38或图39所示的区域顺序树。
步骤S3407:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
例如,对于图38所示的区域顺序树,清洁机器人100先清洁节点6表示的清洁区域,再依次清洁节点3表示的清洁区域、节点1表示的清洁区域、节点4表示的清洁区域、节点2表示的清洁区域,最后清洁节点5表示的清洁区域,也即清洁次序为节点6、节点3、节点1、节点4、节点2、节点5。
对于图39所示的区域顺序树,清洁机器人100先清洁节点6表示的清洁区域,再依次清洁节点3表示的清洁区域、节点4表示的清洁区域、节点1表示的清洁区域、节点2表示的清洁区域,最后清洁节点5表示的清洁区域,也即清洁次序为节点6、节点3、节点4、节点1、节点2、节点5。
其余步骤和步骤S2307相同,在此不再赘述。
步骤S3408:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S3409进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S3403。
步骤S3409:清洁机器人100对清洁区域设定一清洁方向。
步骤S3410:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S3411:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S3408-S3411分别和步骤S2308-S2311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例4
本申请实施例提供了一种清洁控制方法,参见图40,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S4001:清洁机器人100获取待清洁空间的地图作为第一空间地图。
本步骤和步骤S2301相同,在此不再赘述。
例如,清洁机器人100获取的第一空间地图为图41所示的空间地图。
步骤S4002:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S4003。
本步骤和步骤S2302相同,在此不再赘述。
步骤S4003:清洁机器人100基于第一空间地图,通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
在本步骤之前,清洁机器人100以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴。其中,基准方向可以垂直于X轴,基准方向为Y轴正方向;或者基准方向可以垂直于Y轴,基准方向为X轴正方向。在本申请实施例中,对此不作具体限定。例如,清洁机器人100将基准方向设为Y轴正方向。
本步骤可以通过以下步骤(1)至(4)实现,包括:
(1)在参考物的位置处,清洁机器人100通过纵向扫描线扫描第一空间地图。
其中,纵向扫描线和基准方向平行,基准方向为Y轴正方向。清洁机器人100在通过纵向扫描线扫描第一空间地图时,以参考物的位置为起点,沿X轴正方向或X轴负方向扫描第一空间地图。清洁机器人100在通过纵向扫描线扫描第一空间地图时,可以每通过纵向扫描线扫描一次第一空间地图,确定第一空间地图中沿X轴正方向或X轴负方向上是否存在未扫描的区域。当清洁机器人100确定第一空间地图中沿X轴正方向上存在未扫描的区域时,清洁机器人100执行步骤(2);当清洁机器人100确定第一空间地图中沿X轴负方向上存在未扫描的区域时,清洁清洁机器人100执行步骤(3)。其中,清洁机器人100在通过纵向扫描线扫描第一空间地图时,可以先沿X轴正方向扫描第一空间地图,或者先沿X轴负方向扫描第一空间地图,在本申请实施例中,对此不作具体限定。
纵向扫描线为竖直方向的扫描线,该纵向扫描线可以从第一空间地图的一侧边缘开始,到达另一侧边缘停止。例如,纵向扫描线从第一空间地图的顶部边缘开始,到达底部边缘停止;或者从第一空间地图的底部边缘开始,到达顶部边缘停止。在本申请实施例中,对此不作具体限定。纵向扫描线的粗细可以根据需要进行设置并更改,在本申请实施例中,对此也不作具体限定。
(2)若第一空间地图中已经扫描的区域在X轴正方向上有相邻且未扫描的区域,则清洁机器人100沿X轴正方向推进纵向扫描线扫描相邻且未扫描的区域。
在一种可能的实现方式中,清洁机器人100每通过纵向扫描线沿X轴正方向扫描一次第一空间地图时,清洁机器人100确定沿X轴正方向上是否存在未扫描的区域。当存在未扫描的区域时,清洁机器人100沿X轴正方向推进第二间隔,在距离上次纵向扫描线的第二间隔处,扫描第一空间地图,清洁机器人100确定沿X轴正方向上是否还存在未扫描的区域。当还存在未扫描的区域时,清洁机器人100沿X轴正方向继续推进第二间隔,直至沿X轴正方向上不存在未扫描的区域,清洁机器人100执行步骤(4)。
(3)若第一空间地图中已经扫描的区域在X轴负方向上有相邻且未扫描的区域,则清洁机器人100沿X轴负方向推进纵向扫描线扫描相邻且未扫描的区域。
本步骤和步骤(2)相似,清洁机器人100每通过纵向扫描线沿X轴负方向扫描一次第一空间地图时,清洁机器人100确定沿X轴负方向上是否存在未扫描的区域。当存在未扫描的区域时,清洁机器人100沿X轴负方向推进第二间隔,在距离上次纵向扫描线扫描的第二间隔处,扫描第一空间地图,清洁机器人100确定沿X轴负方向上是否还存在未扫描的区域。当还存在未扫描的区域时,清洁机器人100沿X轴负方向继续推进第二间隔,直至沿X轴负方向上不存在未扫描的区域,清洁机器人100执行步骤(4)。参见图42,图42为根据上述步骤将图41所示的第一空间地图通过纵向扫描线扫描的示意图。
(4)以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,清洁机器人100将沿相同方向扫描的区域进行合并,从而将待清洁空间划分为至少一清洁区域。
本步骤中,清洁机器人100以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿X轴正方向扫描的区域合并为一个清洁区域,以及将沿X轴负方向扫描的区域合并为一个清洁区域。或者,清洁机器人100在将沿相同方向扫描的区域进行合并前,在与参考物相邻的范围设定一区域,作为一清洁区域。在本申请实施例中,对该与参考物相邻的清洁区域的面积大小不作具体限定。
清洁机器人100将沿X轴正方向扫描的区域合并为一个清洁区域,直至纵向扫描线出现分段或者到达第一空间地图的边缘;清洁机器人100将沿X轴负方向扫描的区域合并为一个清洁区域,直至纵向扫描线出现分段或者到达第一空间地图的边缘。当纵向扫描线出现分段时,从分段后的扫描线开始,将沿相同方向扫描的区域合并为一个清洁区域,直至纵向扫描线再次出现分段和到达第一区域地图的边缘。图43为清洁机器人100直接将图42所示的沿相同方向扫描的清洁区域合并得到多个清洁区域的示意图。图44为清洁机器人100先在参考物相邻的范围设定一清洁区域,然后根据上述步骤将图42所示的沿相同方向扫描的区域合并后得到的多个清洁区域的示意图。
步骤S4004:清洁机器人100设定表示每个清洁区域的节点。
本步骤和步骤S2304相同,在此不再赘述。
步骤S4005:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
本步骤和步骤S2305相同,在此不再赘述。
例如,对于图44所示的多个清洁区域,清洁机器人100根据清洁区域之间的连通关系,构建得到的连通图可以参见图45。
步骤S4006:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
本步骤和步骤S2306相同,在此不再赘述。
步骤S4007:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
例如,对于图45所示的连通图,清洁机器人100确定表示清洁区域3的节点为顶部节点,表示清洁区域1和清洁区域2的节点均为该顶部节点的子节点,因此,清洁机器人100确定的清洁次序为清洁区域1、清洁区域2、清洁区域3,或清洁区域2、清洁区域1、清洁区域3。
其余步骤和步骤S2307相同,在此不再赘述。
步骤S4008:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S4009进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤4003。
步骤S4009:清洁机器人100对清洁区域设定一清洁方向。
步骤S4010:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S4011:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S4008-S4011分别和步骤S2308-S2311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例5
本申请实施例提供了一种清洁控制方法,参见图46,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S4601:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S4602:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S4603。
步骤S4603:清洁机器人100基于第一空间地图,通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S4604:清洁机器人100设定表示每个清洁区域的节点。
步骤S4605:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S4601-S4605分别与步骤S4001-S4005相同,在此不再赘述。
步骤S4606:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S4606与步骤S3406相同,在此不再赘述。
步骤S4607:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S4608:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S4609进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S4603。
步骤S4609:清洁机器人100对清洁区域设定一清洁方向。
步骤S4610:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S4611:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S4607-S4611分别和步骤S4007-S4011相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例6
本申请实施例提供了一种清洁控制方法,参见图47,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S4701:清洁机器人100获取待清洁空间的地图作为第一空间地图。
本步骤和步骤S2301相同,在此不再赘述。
例如,清洁机器人100获取的第一空间地图为图48所示的第一空间地图。
步骤S4702:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S4703。
本步骤和步骤S2302相同,在此不再赘述。
步骤S4703:清洁机器人100基于第一空间地图,先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
本步骤中清洁机器人100先通过横向扫描线扫描第一空间地图。其中,清洁机器人100通过横向扫描线扫描第一空间地图的步骤和步骤S2303中清洁机器人100通过横向扫描线扫描第一空间地图的步骤相同,在此不再赘述。
清洁机器人100通过横线扫描线扫描第一空间地图后,可以通过纵向扫描线扫描第一空间地图。其中,清洁机器人100通过纵向扫描线扫描第一空间地图的步骤和步骤S4003中清洁机器人100通过纵向扫描线扫描第一空间地图的步骤相同,在此不再赘述。
清洁机器人100通过横向扫描线扫描第一空间地图后,以横向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,得到至少一清洁区域。清洁机器人100通过纵向扫描线扫描第一空间地图后,以纵向扫描线被第一空间地图所截的长度出现分段的位置、第一空间地图的边缘和与横向扫描线扫描得到的两个清洁区域的交点作为分界线,将沿相同方向扫描的连续区域进行合并,得到至少一清洁区域。
清洁机器人100先通过横向扫描线扫描,再通过纵向扫描线扫描。当第一空间地图为图48所示的空间地图时,清洁机器人100先通过横向扫描线扫描该第一空间地图,划分得到的多个清洁区域参见图49,图49中的清洁区域分别为清洁区域1、清洁区域2和清洁区域3;清洁机器人100再通过纵向扫描线扫描图49所示的第一空间地图时,最终划分得到的多个清洁区域参见图50,图50中的清洁区域分别为清洁区域1、清洁区域2、清洁区域3、清洁区域4和清洁区域5。
步骤S4704:清洁机器人100设定表示每个清洁区域的节点。
步骤S4705:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S4706:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
步骤S4707:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S4708:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S4709进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S4703。
步骤S4709:清洁机器人100对清洁区域设定一清洁方向。
步骤S4710:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S4711:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S4704-S4711分别和步骤S2304-S2311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例7
本申请实施例提供了一种清洁控制方法,参见图51,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S5101:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S5102:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S5103。
步骤S5103:清洁机器人100基于第一空间地图,先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S5104:清洁机器人100设定表示每个清洁区域的节点。
步骤S5105:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S5101-S5105分别和步骤S4701-S4705相同,在此不再赘述。
步骤S5106:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S5107:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S5108:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S5109进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S5103。
步骤S5109:清洁机器人100对清洁区域设定一清洁方向。
步骤S5110:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S5111:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S5106-S5111分别和步骤S3406-S3411相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例8
本申请实施例提供了一种清洁控制方法,参见图52,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S5201:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S5202:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S5203。
步骤S5203:清洁机器人100基于第一空间地图,先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
本步骤中清洁机器人100通过纵向扫描线扫描第一空间地图的步骤和步骤S4003中清洁机器人100通过纵向扫描线扫描第一空间地图的步骤相同,在此不再赘述。
本步骤中清洁机器人100通过横向扫描线第一空间地图的步骤和步骤S2303中清洁机器人100通过横向扫描线扫描第一空间地图的步骤相同,在此不再赘述。
清洁机器人100通过纵向扫描线扫描第一空间地图后,
将沿相同方向扫描的连续区域进行合并,直至纵向扫描线出现分段或者到达房间边缘,得到至少一清洁区域。清洁机器人100以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,得到至少一清洁区域。
清洁机器人100先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描。当第一空间地图为图48所示的空间地图时,清洁机器人100先通过纵向扫描线扫描第一空间地图,划分得到的多个清洁区域参见图53。图53中的清洁区域分别为清洁区域1、清洁区域2、清洁区域3、清洁区域4和清洁区域5;清洁机器人100再通过横向扫描线扫描图53所示的第一空间地图时,最终划分得到的多个清洁区域参见图54,图54中清洁区域分别为清洁区域1、清洁区域2、清洁区域3清洁区域4、清洁区域5、清洁区域6和清洁区域7。
步骤S5204:清洁机器人100设定表示每个清洁区域的节点。
步骤S5205:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S5206:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
步骤S5207:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S5208:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S5209进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S5203。
步骤S5209:清洁机器人100对清洁区域设定一清洁方向。
步骤S5210:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S5211:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S5204-S5211分别和步骤S1404-S1411相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例9
本申请实施例提供了一种清洁控制方法,参见图55,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序,并且在对该房间单元执行清洁操作过程中没有遇到障碍物为例进行说明,该方法包括:
步骤S5501:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S5502:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S5503。
步骤S5503:清洁机器人100基于第一空间地图,先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S5504:清洁机器人100设定表示每个清洁区域的节点。
步骤S5505:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S5501-S5505分别和步骤S5201-S5205相同,在此不再赘述。
步骤S5506:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S5507:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S5508:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S5509进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S5503。
步骤S5509:清洁机器人100对清洁区域设定一清洁方向。
步骤S5510:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S5511:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S5506-S5511分别和步骤S3406-S3411相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例10
本申请实施例提供了一种清洁控制方法,参见图56,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域;在对待清洁空间的清洁区域执行清洁操作过程中遇到障碍物后,通过纵向扫描线扫描重新确定的第一空间地图,将该待清洁空间重新划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S5601:清洁机器人100获取待清洁空间的地图作为第一空间地图。
例如,清洁机器人100获取的第一空间地图为图24所示的空间地图。
步骤S5602:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S5603。
步骤S5603:清洁机器人100基于第一空间地图,通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S5604:清洁机器人100设定表示每个清洁区域的节点。
步骤S5605:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S5606:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
步骤S5607:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S5608:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S5609进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S5603。
步骤S5609:清洁机器人100对清洁区域设定一清洁方向。
清洁机器人100在遇到障碍物之前,顶部节点表示的清洁区域的清洁方向和基准方向相同,其中,该基准方向为指向参考物的方向。对于任一非顶部节点的子节点,清洁机器人100配置该子节点表示的清洁区域的清洁方向指向该子节点的父节点表示的清洁区域,且该子节点表示的清洁区域的清洁方向平行于该基准方向。
当清洁机器人100遇到障碍物后,清洁机器人100需要重新划分清洁区域,顶部节点表示的清洁区域的清洁方向不变,仍和基准方向相同。而对于任一非顶部节点的子节点,该子节点表示的清洁区域的清洁方向仍指向该子节点的父节点表示的清洁区域,但该子节点表示的清洁区域的清洁方向垂直于该基准方向。
需要说明的一点是,清洁机器人100每重新划分一次清洁区域,清洁方向都根据上述方法重新设定一次。
步骤S5610:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S5611:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S5601-S5611分别与步骤S2301-S2311相同,在此不再赘述。
步骤S5612:当清洁机器人100在执行清洁操作过程中遇到障碍物,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,清洁机器人100获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图。
清洁机器人100在执行清洁操作过程中遇到障碍物时,先环绕障碍物移动,同时清洁件清洁地面,实现绕障碍物的沿边对地面清洁。由于清洁机器人100在步骤S5601中获取的第一空间地图中往往不包括障碍物的信息,因此清洁机器人100在清洁过程中,可以通过清洁机器人100上设置的传感器检测障碍物,尤其在对障碍物进行环绕后,才能全面探测出障碍物的信息。其中,障碍物的信息主要包括障碍物的跨越距离、覆盖区域等。
当清洁机器人100遇到的障碍物跨越至少两个清洁区域,且该障碍物的跨越距离大于第一阈值时,清洁机器人100基于第一空间地图、障碍物的覆盖区域和已清洁的清洁区域,确定第二空间地图,将该第二空间地图作为第一空间地图,其中,第二空间地图为待清洁空间中去除障碍物的覆盖区域和已清洁的清洁区域之后的未清洁区域对应的空间地图,清洁机器人100将第二空间地图作为第一空间地图。
步骤S5613:清洁机器人100基于该第一空间地图,通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域。
本步骤中,清洁机器人100基于该第一空间地图,重新划分清洁区域。清洁机器人100重新划分清洁区域时,横向扫描线和纵向扫描线交替使用。步骤S5613中清洁机器人100使用的扫描线和步骤S5603中清洁机器人100使用的扫描线不同。本申请实施例中,步骤S5603中清洁机器人100通过横向扫描线扫描第一空间地图,则在步骤S5612中清洁机器人100遇到障碍物,重新划分清洁区域时,清洁机器人100通过纵向扫描线扫描第一空间地图。当清洁机器人100在执行清洁操作的过程中,再次遇到障碍物时,清洁机器人100则通过横向扫描线扫描重新确定的第一空间地图。因此,清洁机器人100在对待清洁空间进行清洁时,可能进行一次或者多次清洁区域的划分。
当第一空间地图为图24所示的空间地图时,清洁机器人100通过横向扫描线扫描该第一空间地图后,得到如图27所示的清洁区域后,清洁机器人100对图27所示的清洁区域执行清洁操作。当清洁机器人100在对清洁区域2执行清洁操作过程中,遇到障碍物时,清洁机器人100确定待清洁空间中未清洁区域的第二空间地图,参见图57,清洁机器人100将该第二空间地图作为第一空间地图,参见图58,图58中所示的第一空间地图为清洁机器人100根据图57所示的空间地图确定的。清洁机器人100通过纵向扫描线扫描图58所示的第一空间地图,参见图59。
清洁机器人100通过纵向扫描线扫描该第一空间地图后,可以直接将沿相同方向扫描的区域进行合并,得到多个清洁区域;或者清洁机器人100在参考物前设置一清洁区域,该清洁区域一端与参考物连接,另一端到达第一空间地图边缘,然后清洁机器人100以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的区域进行合并,得到多个清洁区域。参见图60,图60为清洁机器人100直接将图59所示的纵向扫描线扫描第一空间地图,沿相同方向合并得到的多个清洁区域的示意图。参见图61,图61为清洁机器人100先在房门前设置一清洁区域,然后将沿相同方向扫描的区域合并得到多个清洁区域的示意图。
清洁机器人100重新划分清洁区域后,对重新划分得到的清洁区域重新设定清洁方向,对于顶部节点表示的清洁区域,其清洁方向和基准方向相同,对于任一非顶部节点的子节点,该子节点表示的清洁区域的清洁方向指向该子节点的父节点表示的清洁区域,且该子节点表示的清洁区域的清洁方向垂直于基准方向。
例如,对于图61中所示的多个清洁区域,清洁区域3为顶部节点表示的清洁区域,该清洁区域的清洁方向为竖直向下;而清洁区域1和清洁区域2为顶部节点的子节点表示的清洁区域,这两个清洁区域的清洁方向均指向清洁区域3,参见图62。
在本申请实施例中,如果清洁机器人100不重新划分清洁区域,由于清洁机器人100在环绕障碍物对地面进行清洁后,障碍物跨越的清洁区域的布局很可能产生变化,导致产生清洁振荡,清洁机器人100来回折返进行清洁,污染已清洁的清洁区域,导致清洁效率低,因此清洁机器人100在每遇到障碍物后都需要重新划分清洁区域。
为了便于理解清洁机器人100在遇到障碍物,且障碍物的跨越距离大于第一阈值,清洁机器人100重新划分清洁区域的必要性,本申请实施例还对清洁机器人100在遇到障碍物时,不重新划分清洁区域的情况进行了说明。
参见图63,图63为图57中所示的去除障碍物的覆盖区域和已清洁的清洁区域之后的未清洁区域对应的空间地图,该空间地图中包括清洁区域1和清洁区域2,清洁区域2被障碍物划分为两个部分:部分M1和部分M2,清洁区域1中产生部分N。部分M1、部分M2和部分N的产生,可能导致发生清洁振荡,污染已清洁的清洁区域。
如果清洁机器人100不重新划分清洁区域,例如,清洁机器人100在对清洁区域2中的部分M2执行清洁操作过程中,清洁机器人100需要回基站进行充电或者清洗清洁件时,清洁机器人100从基站处回来后,因原本的设定规则为:对一清洁区域,清洁机器人100沿弓字型轨迹移动,在垂直于清洁方向上由深至浅进行清洁。其中,清洁区域2的清洁方向为指向清洁区域1,且与基准方向平行。清洁机器人100对清洁区域2执行清洁操作时,沿弓字型轨迹移动,该弓字型轨迹沿清洁方向由深至浅逐渐推进,在垂直于清洁方向的方向上来回折返。在清洁机器人100移向基站前,因清洁机器人100已经对部分M2进行了部分面积的清洁,从而清洁机器人100从基站处回来后,清洁区域2沿弓字型轨迹移动,在垂直于清洁方向的最深处在部分M1处,从而清洁机器人100会重新选择清洁起点,先去清洁区域2的部分M1,沿弓字型轨迹,垂直于清洁方向进行清洁,如此,清洁机器人100有可能在部分M1和部分M2之间交替清洁,产生清洁振荡,清洁效率低。或者清洁机器人100先对部分M2进行清洁,然后移动到部分M1进行清洁,然后清洁机器人100移动到部分N进行清洁,清洁机器人100来回折返,也会导致产生清洁振荡,清洁效率低。
另外,对于清洁区域1,清洁机器人100在部分N和清洁区域1中除部分N以外的其它清洁区域之间也可能会产生清洁振荡。清洁机器人100在清洁完成部分N时,清洁机器人100需要往回移动,以避开障碍物或者墙壁,进而对清洁区域1中除部分N以外的其它清洁区域进行清洁,此时可能经过已清洁的清洁区域,导致脏污的清洁件污染已清洁的清洁区域。
因此,在本申请实施例中,只要清洁机器人100遇到的障碍物跨越至少两个清洁区域,且跨越距离大于第一阈值时,清洁机器人100都重新划分一次清洁区域。其中,横向扫描线和纵向扫描线交替使用,清洁方向因扫描线方向的变化可能会发生变化。因此,清洁机器人100在对待清洁空间进行清洁时,可能进行一次或者多次清洁区域的划分。
综上所述,当清洁机器人100在执行清洁操作过程中,遇到障碍物,但障碍物的跨越距离不大于第一阈值时,清洁机器人100继续按清洁方向和清洁次序执行清洁操作;当清洁机器人100遇到障碍物,且障碍物的跨越距离大于第一阈值时,清洁机器人100则需要重新划分清洁区域,基于重新划分的清洁区域,重新设定清洁次序、清洁方向和清洁起点,以重新划分的清洁区域为单位,从重新划分的清洁起点开始,按照重新划分的清洁方向及重新划分的清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S5614:清洁机器人100基于该至少一清洁区域,执行步骤S5604。
本步骤中清洁机器人100基于重新划分的至少一清洁区域,执行步骤S5604即重新设定表示每个清洁区域的节点,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例11
本申请实施例提供了一种清洁控制方法,参见图64,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域;在对待清洁空间的清洁区域执行清洁操作过程中遇到障碍物后,通过纵向扫描线扫描重新确定的第一空间地图,将待清洁空间重新划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S6401:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S6402:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S6403。
步骤S6403:清洁机器人100基于第一空间地图,通过横向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S6404:清洁机器人100设定表示每个清洁区域的节点。
步骤S6405:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S6406:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S6407:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S6408:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S6409进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S6403。
步骤S6409:清洁机器人100对清洁区域设定一清洁方向。
步骤S6410:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S6411:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S6401-S6411分别和步骤S3401-S3411相同,在此不再赘述。
步骤S6412:当清洁机器人100在执行清洁操作过程中遇到障碍物,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,清洁机器人100获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图。
步骤S6413:清洁机器人100基于该第一空间地图,通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S6414:清洁机器人100基于该至少一清洁区域,执行步骤S6404。
步骤S6412-S6414分别和步骤S5612-S5614相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例12
本申请实施例提供了一种清洁控制方法,参见图65,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过纵向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域;在对待清洁空间的清洁区域执行清洁操作过程中遇到障碍物后,通过横向扫描线扫描重新确定的第一空间地图,将待清洁空间重新划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S6501:清洁机器人100获取待清洁空间的地图作为第一空间地图。
例如,清洁机器人100获取的第一空间地图为图66所示的空间地图。
本步骤和步骤S2301相同,在此不再赘述。
步骤S6502:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S6503。
本步骤和步骤S4002相同,在此不再赘述。
步骤S6503:清洁机器人100基于第一空间地图,通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
例如,当清洁机器人100获取的第一空间地图为图66所示的空间地图时,清洁机器人100通过纵向扫描线扫描该第一空间地图后,将待清洁空间划分的至少一清洁区域可以参见图67。
其余步骤和步骤S4003相同,在此不再赘述。
步骤S6504:清洁机器人100设定表示每个清洁区域的节点。
本步骤和步骤S4004相同,在此不再赘述。
步骤S6505:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
例如,对于图67中所示的清洁区域,清洁机器人100根据清洁区域之间的连通关系,得到的连通图可以参见图68。
其余步骤和步骤S4005相同,在此不再赘述。
步骤S6506:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
本步骤和步骤S4006相同,在此不再赘述。
步骤S6507:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
例如,当清洁机器人100获得的连通图为图68所示的连通图时,清洁机器人100确定表示清洁区域3的节点为顶部节点,表示清洁区域2的节点和表示清洁区域4的节点均为该顶部节点的子节点,其中,表示清洁区域1的节点为表示清洁区域2的节点的子节点,表示清洁区域5的节点为表示清洁区域4的节点的子节点。因此,清洁机器人100确定的清洁次序为清洁区域5、清洁区域4、清洁区域1、清洁区域2、清洁区域3;或者清洁区域1、清洁区域2、清洁区域5、清洁区域4、清洁区域3。
其余步骤和步骤S4007相同,在此不再赘述。
步骤S6508:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S6509进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S6503。
步骤S6509:清洁机器人100对清洁区域设定一清洁方向。
步骤S6510:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S6511:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S6508-S6511分别和步骤S4008-S4011相同,在此不再赘述。
步骤S6512:当清洁机器人100在执行清洁操作过程中遇到障碍物,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,清洁机器人100获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图。
例如,清洁机器人100对图67所示的多个清洁区域在执行清洁操作过程中,遇到障碍物,当障碍物跨越清洁区域4和清洁区域5,且障碍物的跨越距离大于第一阈值时,参见图69,清洁机器人100获取未清洁区域的第二空间地图,将第二空间地图作为第一空间地图,参见图70。
步骤S6512和步骤S5612相同,在此不再赘述。
步骤S6513:清洁机器人100基于该第一空间地图,通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域。
例如,对于图70所示的空间地图,清洁机器人100通过横向扫描线扫描,得到的多个清洁区域可以参见图71。
其余步骤和步骤S2303中清洁机器人100通过横向扫描线扫描第一空间地图的步骤相同,在此不再赘述。
步骤S6514:清洁机器人100基于该至少一清洁区域,执行步骤S6504。
步骤S6514和步骤S5614相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例13
本申请实施例提供了一种清洁控制方法,参见图72,本申请实施例以待清洁空间为一个房间单元,该房间单元为不规则的房间单元,清洁机器人100先通过纵向扫描线扫描第一空间地图,将该待清洁空间重新划分为至少一清洁区域;在对待清洁空间的清洁区域执行清洁操作过程中遇到障碍物后,通过横向扫描线扫描重新确定的第一空间地图,将待清洁空间重新划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S7201:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S7202:清洁机器人100对第一空间地图进行判断,当第一空间地图不规则时,执行步骤S7203。
步骤S7203:清洁机器人100基于第一空间地图,通过纵向扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S7204:清洁机器人100设定表示每个清洁区域的节点。
步骤S7205:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S7206:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S7207:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S7208:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S7209进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S7203。
步骤S7209:清洁机器人100对清洁区域设定一清洁方向。
步骤S7210:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S7211:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S7201-S7211分别和步骤S4601-S4611相同,在此不再赘述。
步骤S7212:当清洁机器人100在执行清洁操作过程中遇到障碍物,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,清洁机器人100获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图。
步骤S7213:清洁机器人100基于该第一空间地图,通过横向扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域。
步骤S7214:清洁机器人100基于该至少一清洁区域,执行步骤S7204。
步骤S7212-S7214分别和步骤S6512-S6514相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例14
本申请实施例提供了一种清洁控制方法,参见图73,本申请实施例以待清洁空间为多个房间单元,该多个房间单元中每个房间单元均为规则的房间单元,清洁机器人100按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据该区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S7301:清洁机器人100获取待清洁空间的地图作为第一空间地图。
例如,清洁机器人100获取的第一空间地图为图74所示的空间地图,该空间地图中有多个房间单元,分别为房间单元1-房间单元8,每两个房间单元之间通过房门连通。
本步骤和步骤S2301相同,在此不再赘述。
步骤S7302:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间或待清洁子空间作为清洁区域,执行步骤S7309进行清洁,否则执行步骤S7303。
步骤S7302和步骤S2302相同,在此不再赘述。
步骤S7303:清洁机器人100基于第一空间地图,按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域。
该房间信息包括房间单元的数量、房间单元的区域大小,每个房间单元的房门位置,每个房间单元的边缘,以及房间单元之间的连通关系等信息。清洁机器人100可以通过房间单元的房门进出该房间单元,也可以通过房间单元的房门进入其他房间单元。
本步骤中,待清洁空间中包括多个房间单元。清洁机器人100按照第一空间地图中的房间单元的数量,将待清洁空间划分为至少一清洁区域,一个房间单元为一个清洁区域。例如,清洁机器人100获取的第一空间地图为图74所示的地图,该第一空间地图中包括8个房间单元,其中,基站所在房间单元为房间单元1。清洁机器人100按照第一空间地图中的该8个房间单元的房间信息,将待清洁空间划分为8个清洁区域,一个房间单元为一个清洁区域。
步骤S7304:清洁机器人100设定表示每个清洁区域的节点。
本步骤和步骤2304相同,在此不再赘述。
步骤S7305:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
例如,对于图74所示的多个房间单元,清洁机器人100根据清洁区域之间的连通关系,构建的清洁区域的连通图可以参见图75。
其余步骤和步骤S2305相同,在此不再赘述。
步骤S7306:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
本步骤和步骤S2306相同,在此不再赘述。
步骤S7307:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
例如,当区域顺序树为图75所示的连通图时,清洁机器人100得到该多个清洁区域的清洁次序为:房间单元5、房间单元6、房间单元4、房间单元3、房间单元7、房间单元8、房间单元2,最后清洁基站所在的房间单元1。
其余步骤和步骤S2307相同,在此不再赘述。
步骤S7308:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S7309进行清洁。
例如,当清洁机器人100划分得到的多个清洁区域为图74中所示的清洁区域时,清洁机器人100可以将两个相邻的清洁区域之间连通的房门作为参考物,对每个清洁区域的区域地图进行判断,确定图74中所示的每个清洁区域对应的区域地图规则,执行步骤S7309进行清洁。
其余步骤和步骤S1408相同,在此不再赘述。
步骤S7309,清洁机器人100对清洁区域设定一清洁方向。
例如,清洁机器人100基于图75中所示的连通图,对图74中所示的各个房间单元,设定清洁方向。参见图76,由于表示房间单元5的节点是表示房间单元6的节点的子节点,因此,房间单元5的清洁方向指向房间单元6;表示房间单元6的节点、表示房间单元4的节点、表示房间单元3的节点和表示房间单元7的节点均是表示房间单元8的节点的子节点,因此,房间单元6的清洁方向、房间单元4的清洁方向、房间单元3的清洁方向和房间单元7的清洁方向均指向房间单元8;表示房间单元8的节点和表示房间单元2的节点是表示房间单元1的节点的子节点,因此,房间单元8的清洁方向和房间单元2的清洁方向均指向房间单元1;房间单元1内有基站,可以将基站作为参考物,将垂直指向基站的方向作为基准方向,而表示房间单元1的节点为顶部节点,该顶部节点的清洁方向和基准方向相同,因此,房间单元1的清洁方向为垂直指向基站的方向。
步骤S7310,清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
本步骤和步骤S2310相同,在此不再赘述。
步骤S7311,清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
本步骤和步骤S2311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例15
本申请实施例提供了一种清洁控制方法,参见图77,本申请实施例以待清洁空间为多个房间单元,该多个房间单元中每个房间单元均为规则的房间单元,清洁机器人100按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据该区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S7701:清洁机器人100获取待清洁空间的地图作为第一空间地图。
例如,清洁机器人100获取的第一空间地图为图78所示的空间地图,该空间地图和图74所示的空间地图相似,也有8个房间单元,只不过房间单元3和房间单元4之间多了一个连通的房门,其余房间单元相同。
其余步骤和步骤S2301相同,在此不再赘述。
步骤S7702:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间作为清洁区域,执行步骤S7709进行清洁,否则执行步骤S7703。
步骤S7703:清洁机器人100基于第一空间地图,按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域。
步骤S7704:清洁机器人100设定表示每个清洁区域的节点。
步骤S7702-S7704分别和步骤S7302-S7304相同,在此不再赘述。
步骤S7705:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
例如,对于图78所示的多个房间单元,也即多个清洁区域,清洁机器人100构建得到的连通图可以参见图79。
其余步骤和步骤S7305相同,在此不再赘述。
步骤S7706:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
例如,当清洁机器人100得到的连通图为图79所示的连通图时,清洁机器人100对该连通图进行去环处理,得到无环的连通图,将无环的连通图作为区域顺序树。清洁机器人100将图79所示的有环连通图进行去环处理后,得到的无环连通图和图75相同。
其余步骤和步骤S3406相同,在此不再赘述。
步骤S7707:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S7708:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S7709进行清洁。
步骤S7709,清洁机器人100对清洁区域设定一清洁方向。
步骤S7710,清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S7711,清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S7707-S7711分别和步骤S7307-S7311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例16
本申请实施例提供了一种清洁控制方法,参见图80,本申请实施例以待清洁空间为多个房间单元,该多个房间单元中有不规则的房间单元,清洁机器人100按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域,当划分得到的清洁区域中存在一个或多个清洁区域对应的区域地图不规则时,清洁机器人100将该清洁区域作为待清洁空间,将该区域地图作为第一空间地图,通过扫描线扫描该第一空间地图,将该待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S8001:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S8002:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间或待清洁子空间作为清洁区域,执行步骤S8009进行清洁,否则执行步骤S8003。
步骤S8003:清洁机器人100基于第一空间地图,按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域。
步骤S8004:清洁机器人100设定表示每个清洁区域的节点。
步骤S8005:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S8006:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
步骤S8007:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S8001-S8007分别和步骤S7301-S7307相同,在此不再赘述。
步骤S8008:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S8009进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,通过扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域,执行步骤S8004。
本步骤中,对于任一清洁区域,当该清洁区域对应的区域地图规则时,直接执行步骤S8009进行清洁;当该清洁区域对应的区域地图不规则时,清洁机器人100将该区域地图作为第一空间地图,将清洁区域作为待清洁空间。清洁机器人100可以通过横向扫描线扫描该第一空间地图,或者纵向扫描线扫描该第一空间地图,或者先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图,或者先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图。在本申请实施例中,对此不作具体限定。
其中,清洁机器人100通过横向扫描线扫描第一空间地图的步骤和步骤S2303相同,在此不再赘述。清洁机器人100通过纵向扫描线扫描第一空间地图的步骤和步骤S4003,在此不再赘述。清洁机器人100先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图的步骤和步骤S4703相同,在此不再赘述。清洁机器人100先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图的步骤和步骤S5203相同,在此不再赘述。
步骤S8009:清洁机器人100对清洁区域设定一清洁方向。
步骤S8010:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S8011:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S7309-S7311分别和步骤S2309-S2311相同,在此不再赘述。
在本申请实施例中,当清洁机器人100在执行清洁操作过程中,遇到障碍物,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,清洁机器人100获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图。清洁机器人100基于该第一空间地图,通过扫描线扫描第一空间地图,将待清洁空间划分为至少一清洁区域。清洁机器人100基于该至少一清洁区域,执行步骤S8004。
其中,清洁机器人100在遇到障碍物后,使用的扫描线和步骤S8008中使用的扫描线不同。例如,步骤S8008中,当区域地图不规则时,清洁机器人100将该区域地图作为第一空间地图,通过横向扫描线扫描第一空间地图时,则清洁机器人100在遇到障碍物后,可以通过纵向扫描线扫描第一空间地图。当步骤S8008中清洁机器人100通过纵向扫描线扫描第一空间地图时,则清洁机器人100在遇到障碍物后,可以通过横向扫描线扫描第一空间地图。在本申请实施例中,对此不作具体限定。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例17
本申请实施例提供了一种清洁控制方法,参见图81,本申请实施例以以待清洁空间为多个房间单元,该多个房间单元中有不规则的房间单元,清洁机器人100按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域,当划分得到的清洁区域中存在一个或多个清洁区域对应的区域地图不规则时,清洁机器人100将该清洁区域作为待清洁空间,将该区域地图作为第一空间地图,通过扫描线扫描该第一空间地图,将该待清洁空间划分为至少一清洁区域,且将有环的连通图进行去环处理后得到区域顺序树,根据区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S8101:清洁机器人100获取待清洁空间的地图作为第一空间地图。
步骤S8102:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间或待清洁子空间作为清洁区域,执行步骤S8109进行清洁,否则执行步骤S8103。
步骤S8103:清洁机器人100基于第一空间地图,按照第一空间地图中的房间信息,将待清洁空间划分为至少一清洁区域。
步骤S8104:清洁机器人100设定表示每个清洁区域的节点。
步骤S8105:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S8101-S8105分别和步骤S8001-S8005相同,在此不再赘述。
步骤S8106:当连通图中有非顶部节点的节点到顶部节点有多条路径时,清洁机器人100对连通图进行去环处理,得到区域顺序树。
步骤S8107:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S8106-S8107分别和步骤S3406-S3407相同,在此不再赘述。
步骤S8108:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S8109进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,通过扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域,执行步骤S8104。
步骤S8109:清洁机器人100对清洁区域设定一清洁方向。
步骤S8110:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S8111:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S8108-S8111分别和步骤S8008-S8011相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
实施例18
本申请实施例提供了一种清洁控制方法,参见图82,本申请实施例以待清洁空间为多个房间单元组成的房间区域,清洁机器人100通过扫描线扫描第一空间地图,将该待清洁空间划分为至少一清洁区域,且直接将无环的连通图作为区域顺序树,根据区域顺序树,设定清洁次序为例进行说明,该方法包括:
步骤S8201:清洁机器人100获取待清洁空间的地图作为第一空间地图。
例如,清洁机器人100获取的第一空间地图为图83所示的地图,该地图为图84所示的地图中以房间单元1和房间单元2组成的房间区域。
其余步骤和步骤2301相同,在此不再赘述。
步骤S8202:清洁机器人100对第一空间地图进行判断,当第一空间地图规则时,将待清洁空间或待清洁子空间作为清洁区域,执行步骤S8209进行清洁,否则执行步骤S8203。
本步骤和步骤2302相同,在此不再赘述。
步骤S8203:清洁机器人100基于第一空间地图,通过扫描线扫描该第一空间地图,将待清洁空间划分为至少一清洁区域。
本步骤中,清洁机器人100可以通过横向扫描线扫描该第一空间地图,或者纵向扫描线扫描该第一空间地图,或者先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图,或者先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图。在本申请实施例中,对此不作具体限定。
其中,清洁机器人100通过横向扫描线扫描第一空间地图的步骤和步骤S2303相同,在此不再赘述。清洁机器人100通过纵向扫描线扫描第一空间地图的步骤和步骤S4003,在此不再赘述。清洁机器人100先通过横向扫描线扫描第一空间地图,再通过纵向扫描线扫描第一空间地图的步骤和步骤S4703相同,在此不再赘述。清洁机器人100先通过纵向扫描线扫描第一空间地图,再通过横向扫描线扫描第一空间地图的步骤和步骤S5203相同,在此不再赘述。
当清洁机器人100获取的第一空间地图为图83所示的地图时,清洁机器人通过横向扫描线扫描该第一空间地图后,得到的多个清洁区域可以参见图85。
步骤S8204:清洁机器人100设定表示每个清洁区域的节点。
步骤S8205:清洁机器人100根据清洁区域之间的连通关系,构建清洁区域的连通图。
步骤S8206:当该连通图中任一非顶部节点的节点到顶部节点只有一条路径时,清洁机器人100将该连通图作为区域顺序树。
步骤S8207:清洁机器人100基于区域顺序树,设定多个清洁区域的清洁次序。
步骤S8208:清洁机器人100按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当该区域地图规则时,执行步骤S8209进行清洁,否则,将该区域地图作为第一空间地图,将清洁区域作为待清洁空间,执行步骤S8203。
步骤S8204-S8208分别和步骤S2304-S2308相同,在此不再赘述。
步骤S8209:清洁机器人100对清洁区域设定一清洁方向。
例如,清洁机器人100对图85所示的清洁区域设定的清洁方向可以参见图86。
其余步骤和步骤S2309相同,在此不再赘述。
步骤S8210:清洁机器人100基于清洁方向,对清洁区域设定一清洁起点。
步骤S8211:清洁机器人100以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
步骤S8210-S8211分别和步骤S2310-S2311相同,在此不再赘述。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
本申请实施例提供了一种清洁控制装置,参见图87,该装置应用于清洁机器人100对一未知的待清洁空间清洁时执行,配合一基站使用,基站为清洁机器人100使用的清洁设备,待清洁空间设有一出入口,该装置包括:
第一获取模块8701,用于获取待清洁空间的地图作为第一空间地图,第一空间地图用于表示待清洁空间或待清洁空间内的待清洁子空间,待清洁子空间为待清洁空间内的未清洁区域;
划分模块8702,用于基于第一空间地图,将待清洁空间划分为至少一清洁区域,相邻且连通的两清洁区域之间设有一出入口;
第一设定模块8703,用于对清洁区域设定清洁次序,清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域;
执行模块8704,用于以所述清洁区域为单位按照所述清洁次序依次对所述待清洁空间的清洁区域执行清洁操作。
在一种可能的实现方式中,装置还包括:
判断模块,用于对第一空间地图进行判断,当第一空间地图规则时,则将待清洁空间或待清洁子空间作为清洁区域,对清洁区域设定清洁方向和清洁起点,对待清洁空间的清洁区域执行清洁操作,否则基于第一空间地图,将待清洁空间划分为至少一清洁区域,第一空间地图规则的定义为:第一空间地图中任意一点到参考物存在至少一条路径且满足路径中没有趋向于基准方向的反方向的移动路径,参考物为基站或出入口,基准方向为待清洁空间或待清洁子空间内任意一点指向参考物的方向,且点至参考物之间的连线区域不经过障碍物。
在另一种可能的实现方式中,执行模块8704,用于对清洁区域设定一清洁方向,清洁方向为基准方向;基于清洁方向,对清洁区域设定一清洁起点,清洁起点为清洁区域的边缘中与清洁方向相背的边缘上的点;以清洁区域为单位从清洁起点开始,按照清洁方向及清洁次序对待清洁空间的清洁区域执行清洁操作。
在另一种可能的实现方式中,装置还包括:
选择模块,用于按清洁次序选择清洁区域,对清洁区域的区域地图进行判断,当区域地图规则时,对清洁区域设定一清洁方向,否则,将区域地图作为第一空间地图,将清洁区域作为待清洁空间,基于第一空间地图,将待清洁空间划分为至少一清洁区域,区域地图规则的定义为:区域地图中任意一点到出入口存在至少一条路径且满足路径中没有趋向于出入口方向的反方向的移动路径。
在另一种可能的实现方式中,装置还包括:
移动模块,用于当对一清洁区域执行完清洁操作后,基于从清洁区域移动到下一清洁区域的导航路径,从清洁区域移动到下一清洁区域。
在另一种可能的实现方式中,划分模块8702,还用于将待清洁空间,按照第一空间地图中的房间信息划分,得到至少一清洁区域。
在另一种可能的实现方式中,装置还包括:
第二设定模块,用于以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
划分模块8702,还用于在参考物的位置处,通过横向扫描线扫描第一空间地图,横向扫描线和基准方向垂直;若第一空间地图中已经扫描的区域在Y轴正方向上有相邻且未扫描的区域,则沿Y轴正方向推进横向扫描线扫描相邻且未扫描的区域;若第一空间地图中已经扫描的区域在Y轴负方向上有相邻且未扫描的区域,则沿Y轴负方向推进横向扫描线扫描相邻且未扫描的区域;以横向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,装置还包括:
第三设定模块,还用于以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
划分模块8702,还用于在参考物的位置处,通过纵向扫描线扫描第一空间地图,纵向扫描线和基准方向平行;若第一空间地图中已经扫描的区域在X轴正方向上有相邻且未扫描的区域,则沿X轴正方向推进纵向扫描线扫描相邻且未扫描的区域;若第一空间地图中已经扫描的区域在X轴负方向上有相邻且未扫描的区域,则沿X轴负方向推进纵向扫描线扫描相邻且未扫描的区域;以纵向扫描线被第一空间地图所截的长度出现分段的位置和第一空间地图的边缘作为分界线,将沿相同方向扫描的连续区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,装置还包括:
第四设定模块,用于以参考物为原点,设定一直角参考坐标系,包括X轴及Y轴,基准方向垂直于X轴,基准方向为Y轴正方向;
划分模块8702,还用于在参考物的位置处,通过横向扫描线及纵向扫描线扫描第一空间地图,横向扫描线和基准方向垂直,纵向扫描线和基准方向平行;若第一空间地图中已经扫描的区域在Y轴正方向上有相邻且未扫描的区域,则沿Y轴正方向推进横向扫描线扫描相邻且未扫描的区域;若第一空间地图中已经扫描的区域在Y轴负方向上有相邻且未扫描的区域,则沿Y轴负方向推进横向扫描线扫描相邻且未扫描的区域;若第一空间地图中已经扫描的区域在X轴正方向上有相邻且未扫描的区域,则沿X轴正方向推进纵向扫描线扫描相邻且未扫描的区域;若第一空间地图中已经扫描的区域在X轴负方向上有相邻且未扫描的区域,则沿X轴负方向推进纵向扫描线扫描相邻且未扫描的区域;以横向扫描线及纵向扫描线被第一空间地图所截的长度出现分段的位置及第一空间地图的边缘作为分界线,将沿相同方向扫描的区域进行合并,从而将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,装置还包括:
合并模块,用于当清洁区域的面积小于预设数值时,将清洁区域和其它面积大于预设数值的相邻的清洁区域合并。
在另一种可能的实现方式中,合并模块,还用于将清洁区域合并到被相同方向推进的扫描线扫描的清洁区域。
在另一种可能的实现方式中,第一设定模块8703,还用于基于清洁区域,建立区域顺序树,区域顺序树中包括至少一个节点,每个节点表示待清洁空间中的一个清洁区域,一节点与至少一节点连接,节点包括顶部节点,父节点及子节点,两相连的节点,靠近顶部节点的节点为父节点,远离顶部节点的节点为子节点,父节点表示的清洁区域和子节点表示的清洁区域相邻,或者,父节点和子节点中的一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域,顶部节点表示的清洁区域为参考物所在清洁区域,在区域顺序树中任一非顶部节点的节点到顶部节点只有一条路径;基于区域顺序树,设定多个清洁区域的清洁次序。
在另一种可能的实现方式中,第一设定模块8703,还用于设定表示每个清洁区域的节点;根据清洁区域之间的连通关系,当任意两节点表示的清洁区域相邻,或者其中一节点表示孤立的清洁区域,另一节点表示与孤立的清洁区域距离最近的清洁区域,连接两节点,构建清洁区域的连通图;根据连通图,建立区域顺序树。
在另一种可能的实现方式中,第一设定模块8703,还用于当连通图中任一非顶部节点的节点到顶部节点只有一条路径时,将连通图作为区域顺序树;当连通图中有非顶部节点的节点到顶部节点有多条路径时,对连通图进行去环处理,得到区域顺序树,环为至少三个节点依次连接形成的环形路径,环使得连通图中有非顶部节点的节点到顶部节点有多条路径。
在另一种可能的实现方式中,第一设定模块8703,还用于基于区域顺序树,确定第一目标清洁区域;基于区域顺序树,查询表示第一目标清洁区域的第一目标节点的父节点,查询第一目标节点的父节点是否有表示非第一目标清洁区域的子节点,若无,则将第一目标节点的父节点表示的清洁区域作为第二目标清洁区域,若有,则将子节点中的最底层节点表示的清洁区域作为第二目标清洁区域;基于区域顺序树,查询表示第二目标清洁区域的第二目标节点的父节点,查询第二目标节点的父节点是否有表示非第一目标清洁区域和非第二目标清洁区域的子节点,若无,则将第二目标节点的父节点表示的清洁区域作为第三目标清洁区域,若有,则将子节点中的最底层节点表示的清洁区域作为第三目标清洁区域;查询区域顺序树中的第三目标清洁区域,直至将顶部节点表示的清洁区域设为最后目标清洁区域为止。
在另一种可能的实现方式中,第一设定模块8703,还用于在第一空间地图中,确定距离清洁机器人100当前的第一位置最近的第一清洁区域;基于区域顺序树,以第一清洁区域为起始节点,确定目标子树中是否存在叶子节点,目标子树为区域顺序树中以起始节点为顶部节点的局部区域顺序树,叶子节点为区域顺序树中有父节点无子节点的节点;当目标子树中存在叶子节点时,从目标子树的叶子节点中选择一叶子节点,将选择的叶子节点表示的清洁区域作为第一目标清洁区域;
当目标子树中不存在叶子节点时,将起始节点表示的清洁区域作为第一目标清洁区域。
在另一种可能的实现方式中,顶部节点表示的清洁区域的清洁方向与基准方向相同,对于区域顺序树中的任一非顶部节点的子节点,子节点表示的清洁区域的清洁方向指向子节点的父节点表示的清洁区域,且子节点表示的清洁区域的清洁方向平行或垂直于基准方向。
在另一种可能的实现方式中,执行模块8704,还用于基于区域地图,在清洁区域内,搜索出距离清洁机器人100当前的第一位置最近的第一未清洁点,在清洁区域内,在垂直于清洁方向上的预设长度范围内,沿清洁方向的反方向搜索清洁区域的第二未清洁点,第二未清洁点为在清洁方向上距离第一未清洁点最远的未清洁点,基于第二未清洁点,确定清洁区域的清洁起点;或者,基于区域地图,在清洁区域内,从清洁机器人100当前的第一位置开始,通过扫描线的形式,沿清洁方向的反方向扫描搜索清洁区域内的第一未清洁点,扫描线垂直于清洁方向,第一未清洁点为在清洁方向上距离第一位置最远的未清洁点,基于第一未清洁点,确定清洁区域的清洁起点;或者,基于区域地图,在清洁区域内,以清洁区域的入口边作为清洁机器人100的起始位置,沿清洁方向的反方向搜索清洁区域的第一未清洁点,第一未清洁点为在清洁方向上距离清洁区域的起始位置最远的未清洁点,基于第一未清洁点,确定清洁区域的清洁起点;或者,基于区域地图,在清洁区域内,搜索出距离清洁机器人100当前的第一位置最近的第一未清洁点,基于第一未清洁点,确定清洁区域的清洁起点。
在另一种可能的实现方式中,执行模块8704,还用于将第一未清洁点作为清洁区域的清洁起点;或者,当第一未清洁点所在的边缘上有未清洁点,则移动到边缘的端点,将边缘的端点作为清洁区域的清洁起点。
在另一种可能的实现方式中,装置还包括:
第二获取模块,用于在执行清洁操作过程中遇到障碍物时,当障碍物跨越至少两个清洁区域,且障碍物的跨越距离大于第一阈值时,获取待清洁空间中未清洁区域的第二空间地图,将第二空间地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域。
在另一种可能的实现方式中,清洁机器人100设置有清洁件,清洁件用于供对地面执行清洁操作;
清洁件为拖地模块,拖地模块用于对地面进行拖地清洁;
待清洁空间为房间单元。
本申请实施例提供的清洁控制方法,清洁机器人100获取待清洁空间的地图作为第一空间地图,基于第一空间地图,将待清洁空间划分为至少一清洁区域,对清洁区域设定清洁次序,该清洁次序满足在清洁次序中任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,以清洁区域为单位按照清洁次序依次对待清洁空间的清洁区域执行清洁操作。清洁机器人100在执行清洁操作时,按照清洁次序对待清洁空间的清洁区域执行清洁操作,由于设定的清洁次序满足任一个清洁区域的出入口到达参考物的路径中不允许经过其它已经清洁过的清洁区域,因此,该方法可以避免清洁机器人100移动至基站所在区域进行充电或者清洗清洁件时,污染已经清洁过的清洁区域,增强了清洁效果,提高了清洁效率。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于清洁机器人100,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的清洁控制方法中清洁机器人100所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是为了便于本领域的技术人员理解本申请的技术方案,并不用以控制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。