清洁机器人及其控制方法技术领域
本公开涉及自动化控制领域,特别涉及一种清洁机器人及其控制方法。
背景技术
清洁机器人是在无使用者操作的情况下,在某一待清洁区域自动行进的同
时,进行清洁操作的机器人。
在申请号为201010202812.6的中国发明专利《机器人清洁器及其控制方法》
中,提供了一种控制机器人行进的方法,该方法提供了一种之字形行进方法,
清洁机器人在之字形行进中碰到障碍物,会跟随该障碍物行进,如果在跟随障
碍物过程中与原行进路线之间的横向间隔达到了指定间隔,则进入邻行清洁;
如果在跟随障碍物过程中重新走到了原行进路线,则继续在原行进路线清洁。
但是,该方法在一些场景中会导致清洁机器人在绕障碍物的过程中走较长的重
复路线,影响清洁机器人的清洁效率。比如,该发明专利的附图11中,清洁机
器人会在3’路线上重复行走。普通家居环境中通常有较多的障碍物,重复绕障
碍物使得清洁覆盖效率大大降低。且从附图11中机器人的清洁路径也可以看出,
机器人有时左侧边沿障碍物行进,有时右侧边沿障碍物行进,这就要求机器双
侧都支持沿边清洁,沿边清洁要求配备边刷,沿边检测组件(例如红外模组),
以及相应的控制电路等,成本较高。
发明内容
为了解决相关技术在一些场景中会导致清洁机器人走较长的重复路线,影
响清洁机器人的清洁效率的问题,本公开提供一种清洁机器人控制方法及清洁
机器人。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种清洁机器人,该清洁机器人包
括:
控制单元;
与控制单元电性相连的障碍物感应单元和行进驱动单元;
控制单元被配置为:
控制行进驱动单元进行之字形行进,之字形行进包括第一行进和第二行进,
第一行进使清洁机器人沿区块中的第一方向前进,第二行进使清洁机器人沿区
块中的第二方向前进,第一方向和第二方向平行且相反;
在障碍物感应单元在之字形行进过程中感应到障碍物时,控制行进驱动单
元绕障碍物的周边行进一周;
在绕障碍物的周边一周后,确定目标未清洁行;
控制行进驱动单元在目标未清洁行上继续进行之字形行进,若清洁机器人
的所在位置不对应目标未清洁行的端点,则识别在目标未清洁行上离所在位置
最近的端点,控制行进驱动单元向最近的端点行进,并从最近的端点返回清洁
目标未清洁行,并继续进行之字形行进。
在一个可能的实施例中,控制单元,还被配置为:
控制行进驱动单元进行沿边清洁,沿区块的周边和障碍物的周边所组成的
组合周边行进一周。
在一个可能的实施例中,控制单元,还被配置为:
在沿边过程中再次到达已清洁点,再次到达已清洁点的行进方向和已清洁
点的首次清洁行进方向小于一定角度,和/或,从开始沿边清洁到再次到达已清
洁点的过程中清洁机器人的行进方向经历过所有象限,则确定已经绕组合周边
行进一周。
在一个可能的实施例中,控制单元,还被配置为:
在绕障碍物的周边行进的过程中,若首次感应到区块的周边,则控制行进
驱动单元进行沿边清洁。
在一个可能的实施例中,控制单元识别在目标未清洁行上离所在位置最近
的端点,控制行进驱动单元向最近的端点行进,并从最近的端点返回清洁目标
未清洁行的过程中,还被配置为:
若清洁机器人的所在位置不对应目标未清洁行的端点,则识别在目标未清
洁行上由所在位置出发的短边路径和长边路径,控制行进驱动单元向短边路径
行进;
在短边路径行进完毕后,控制行进驱动单元从短边路径返回至长边路径进
行之字形行进。
在一个可能的实施例中,控制单元在绕障碍物的周边一周后,确定目标未
清洁行的过程中,还被配置为:
寻找最近一个未清洁行,将最近一个未清洁行确定为目标未清洁行。
在一个可能的实施例中,控制单元寻找最近一个未清洁行之前,还被配置
为:
在绕障碍物的周边行进一周后,寻找附近未清洁角落所在行;
若存在附近未清洁角落所在行,则控制行进驱动单元行进至附近未清洁角
落所在行,并将附近未清洁角落所在行确定为目标未清洁行;
若不存在附近未清洁角落所在行,则执行寻找最近一个未清洁行的步骤。
在一个可能的实施例中,控制单元控制行进驱动单元进行之字形行进之前,
还被配置为:
从启动位置寻找最近一个障碍物;
控制行进驱动单元向最近一个障碍物行进;
在感应到最近一个障碍物时,控制行进驱动单元绕最近一个障碍物的周边
行进一周。
在一个可能的实施例中,控制单元,还被配置为:
在绕最近一个障碍物的周边行进一周后,寻找附近未清洁角落所在行;
控制行进驱动单元行进至附近未清洁角落所在行后,执行控制行进驱动单
元进行之字形行进的步骤。
在一个可能的实施例中,控制单元,还被配置为:
以自身所在位置为依据构建区块;
或,
以一定范围内的墙体为边界构建区块;
或,
参考已有区块的边界构建已有区块的相邻区块。
在一个可能的实施例中,控制单元,还被配置为:
以机体的边刷一侧为内侧绕障碍物的周边行进一周。
在一个可能的实施例中,第一行进与第二行进之间的间距小于或等于清洁
机器人的机身半径。
在一个可能的实施例中,第一方向和第二方向均与区块的长边平行。
根据本公开的第二方面,提供了一种清洁机器人控制方法,方法包括:
进行之字形行进,之字形行进包括第一行进和第二行进,第一行进使清洁
机器人沿区块中的第一方向前进,第二行进使清洁机器人沿区块中的第二方向
前进,第一方向和第二方向平行且相反;
在之字形行进过程中感应到障碍物时,绕障碍物的周边行进一周;
在绕障碍物的周边行进一周后,寻找目标未清洁行;
在目标未清洁行上继续进行之字形行进,若清洁机器人的所在位置不对应
目标未清洁行的端点,则识别在目标未清洁行上离所在位置最近的端点,向最
近的端点行进,并从最近的端点返回清洁目标未清洁行,并继续进行之字形行
进。
在一个可能的实施例中,绕障碍物的周边行进一周,包括:
控制行进驱动单元进行沿边清洁,沿区块的周边和障碍物的周边所组成的
组合周边行进一周。
在一个可能的实施例中,该方法还包括:
若在沿边过程中再次到达已清洁点,再次到达已清洁点的行进方向和已清
洁点的首次清洁行进方向小于一定角度,和/或,从开始沿边清洁到再次到达已
清洁点的过程中清洁机器人的行进方向经历过所有象限,则确定已经绕组合周
边行进一周。
在一个可能的实施例中,控制行进驱动单元进行沿边清洁,包括:
在绕障碍物的周边行进的过程中,若首次感应到区块的周边,则控制行进
驱动单元进行沿边清洁。
在一个可能的实施例中,识别在目标未清洁行上离所在位置最近的端点,
向最近的端点行进,并从最近的端点返回清洁目标未清洁行,包括:
若清洁机器人的所在位置不对应目标未清洁行的端点,则识别在目标未清
洁行上由所在位置出发的短边路径和长边路径,控制行进驱动单元向短边路径
行进;
在短边路径行进完毕后,从短边路径返回至长边路径进行之字形行进。
在一个可能的实施例中,在绕障碍物的周边一周后,确定目标未清洁行,
包括:
寻找最近一个未清洁行,将最近一个未清洁行确定为目标未清洁行。
在一个可能的实施例中,寻找最近一个未清洁行之前,还包括:
在绕障碍物的周边行进一周后,寻找附近未清洁角落所在行;
若存在附近未清洁角落所在行,则控制行进驱动单元行进至附近未清洁角
落所在行,并将附近未清洁角落所在行确定为目标未清洁行;
若不存在附近未清洁角落所在行,则执行寻找最近一个未清洁行的步骤。
在一个可能的实施例中,进行之字形行进之前,还包括:
从启动位置寻找最近一个障碍物;
控制行进驱动单元向最近一个障碍物行进;
在感应到最近一个障碍物时,控制行进驱动单元绕最近一个障碍物的周边
行进一周。
在一个可能的实施例中,该方法还包括:
在绕最近一个障碍物的周边行进一周后,寻找附近未清洁角落所在行;
控制行进驱动单元行进至附近未清洁角落所在行后,执行控制行进驱动单
元进行之字形行进的步骤。
在一个可能的实施例中,该方法,还包括:
以自身所在位置为依据构建区块;
或,
以一定范围内的墙体为边界构建区块;
或,
参考已有区块的边界构建已有区块的相邻区块。
在一个可能的实施例中,该方法还包括:
以机体的边刷一侧为内侧绕障碍物的周边行进一周。
在一个可能的实施例中,第一行进与第二行进之间的间距小于或等于清洁
机器人的机身半径。
在一个可能的实施例中,第一方向和第二方向均与区块的长边平行。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过让清洁机器人在感应到障碍物时,绕障碍物的周边行进一周,然后再
寻找目标未清洁行进行清洁,并在清洁机器人的所在位置不对应目标未清洁行
的端点时,则识别在目标未清洁行上离所在位置最近的端点,向最近的端点行
进,并从最近的端点返回清洁目标未清洁行;解决了相关技术在一些场景中会
导致清洁机器人绕障碍物走较长的重复路线,影响清洁机器人的清洁效率的问
题,达到了清洁机器人基本不用绕障碍物走重复路线,提高清洁机器人的清洁
效率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能
限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开
的实施例,并于说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的清洁机器人的俯视示意图;
图2是根据一示例性实施例示出的清洁机器人的仰视示意图;
图3是根据另一示例性实施例示出的清洁机器人的结构方框图;
图4是根据一示例性实施例示出的清洁机器人控制方法的方法流程图;
图5是图4所示实施例示出的清洁机器人控制方法的实施示意图;
图6是根据另一示例性实施例示出的清洁机器人控制方法的方法流程图;
图7A至图7E是图5所示清洁机器人控制方法的实施示意图;
图8A是根据一示例性实施例示出的清洁机器人控制方法的子步骤流程图;
图8B和图8C是根据图8A所示实施例示出的清洁机器人控制方法的子步
骤实施示意图;
图9是根据一示例性实施示出的清洁机器人的实施示意图;
图10A和图10B是根据另一示例性实施示出的清洁机器人的实施示意图;
图11A至图11D是根据另一示例性实施示出的清洁机器人的实施示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描
述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。
以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方
式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一
致的装置和方法的例子。
图1和图2分别是根据一示例性实施例示出的清洁机器人的俯视示意图和
仰视示意图。如图1和图2所示,清洁机器人包括:机体10、测距模块20、驱
动模块30、沿边模块40和主刷50。
机体10形成清洁机器人的外壳,并且容纳其它部件。
测距模块20用于感测清洁机器人的周侧环境。可选地,测距模块20为红
外测距传感器、超声波测距传感器、LDS(Laser Distance Sensor,激光测距传感
器)、摄像头、接触传感器、霍尔传感器等。测距模块20用于对清洁机器人的
环境进行测量,从而发现障碍物、墙面、台阶等环境物体。
驱动模块30用于驱动清洁机器人的前进,可选地,驱动模块30包括一对
安装在机体10底部的中间两侧的驱动轮31和32,驱动轮31和32用于驱动清
洁机器人前进或后退。驱动模块30还包括设置在机体10前部的导向轮33,导
向轮33用于改变清洁机器人在行进过程中的行驶方向。
沿边模块40安装在机体10底部的前方两侧或者前方一侧,由于本公开实
施例提供的清洁机器人行进方法的特性,沿边模块40可以仅有一个,安装在机
体10底部的前方右侧,或者,安装在机体10底部的前方左侧。沿边模块40包
括边刷和沿边感测组件。沿边感测组件可以为红外模组,或者超声传感器。
主刷50安装在机体10底部。可选地,主刷50是以滚轮型相对于地面转动
的鼓形转刷。
图3是根据一示例性实施例提供的清洁机器人的结构方框图。清洁机器人
包括:控制单元310、存储单元320、输入单元330、障碍物感应单元340、行
进距离检测单元350、行进方向检测单元360、行进驱动单元370和刷驱动单元
380。
控制单元310用于控制清洁机器人的总体操作。在接收到清洁命令时,控
制单元310能够控制清洁机器人按照预设逻辑向前行进并且在行进过程中进行
清洁。在接收到行进命令时,控制单元310控制清洁机器人以预定的行进模式
在行进路径行进。
存储单元320用于存储至少一个指令,这些指令包括用于执行预定的行进
模式和行进路径的指令、用于进行清洁的指令、用于根据障碍物感应单元340
感应到的障碍物数据绘制清洁地图的指令、用于在清洁地图上规划之字形行进
的清洁行的指令、用于寻找最近一个未清洁行的指令等等。存储单元320还可
以用于存储清洁机器人在行进过程中障碍物感应单元感应到的自身位置数据、
障碍物数据以及墙体数据。
输入单元330包括至少一个设置在机体10上部或遥控器(图中未示出)上
或终端应用(例如app)上的按钮,以接收使用者输入的行进命令或清洁命令。
障碍物感应单元340用于感应位于清洁机器人行进区域中的障碍物,比如
家具、家电、办公设备、砖墙墙体、木板墙体等。障碍物感应单元340包括上
述的测距装置20。本公开实施例对障碍物感应单元340的实现形式不做限定。
行进距离检测单元350用于检测清洁机器人的行进距离。比如,行进距离
检测单元350通过编码器测量驱动轮31和32的转动圈数,进而检测清洁机器
人的行进距离。也可以通过加速度计来检测清洁机器人的行进距离。
行进方向检测单元360用于检测清洁机器人的转动角度。比如,行进方向
检测单元350通过陀螺仪传感器来检测清洁机器人的转动角度。
行进驱动单元370用于根据控制单元310的第一控制信号,驱动安装在清
洁机器人的机体10底部的驱动轮31和32前进,行进驱动单元370可以是马达。
刷驱动单元380用于根据控制单元310的第二控制信号,驱动边刷40和主
刷50在待清洁区块的地面上进行清洁。
在示例性实施例中,控制单元310可以被一个或多个应用专用集成电路
(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑
器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其
他电子元件实现,用于执行本公开实施例中的清洁机器人控制方法。
上述控制单元310被配置为:
控制行进驱动单元370进行之字形行进,之字形行进包括第一行进和第二
行进,第一行进使清洁机器人沿区块中的第一方向前进,第二行进使清洁机器
人沿区块中的第二方向前进,第一方向和第二方向平行且相反;
在障碍物感应单元340在之字形行进过程中感应到障碍物时,控制行进驱
动单元绕障碍物的周边行进一周;
在绕障碍物的周边行进一周后,寻找目标未清洁行;
控制行进驱动单元370在目标未清洁行上继续进行之字形行进,若清洁机
器人的所在位置不对应目标未清洁行的端点,则识别在目标未清洁行上离所在
位置最近的端点,控制行进驱动单元370向最近的端点行进,并从最近的端点
返回清洁目标未清洁行,并继续进行之字形行进。
可选地,控制单元310,还被配置为:
控制行进驱动单元进行沿边清洁,沿区块的周边和障碍物的周边所组成的
组合周边行进一周。
可选地,控制单元310,还被配置为:
在沿边过程中再次到达已清洁点,再次到达已清洁点的行进方向和已清洁
点的首次清洁行进方向小于一定角度,和/或,从开始沿边清洁到再次到达已清
洁点的过程中机器人的行进方向经历过所有象限,则确定已经完成绕墙体的周
边或组合周边行进一周。
可选地,控制单元310,还被配置为:
在绕障碍物的周边行进的过程中,若首次感应到区块的周边,则控制行进
驱动单元370进行沿边清洁。
可选地,控制单元310识别在目标未清洁行上离所在位置最近的端点,控
制行进驱动单元向最近的端点行进,并从最近的端点返回清洁目标未清洁行的
过程中,还被配置为:
若清洁机器人的所在位置不对应目标未清洁行的端点,则识别在目标未清
洁行上由所在位置出发的短边路径和长边路径,控制行进驱动单元370向短边
路径行进;
在短边路径行进完毕后,控制行进驱动单元370从短边路径返回至长边路
径进行之字形行进。
可选地,控制单元310在绕障碍物的周边一周后,确定目标未清洁行的过
程中,还被配置为:
寻找最近一个未清洁行,将最近一个未清洁行确定为目标未清洁行。
可选地,控制单元310寻找最近一个未清洁行之前,还被配置为:
在绕障碍物的周边行进一周后,寻找附近未清洁角落所在行;
若存在附近未清洁角落所在行,则控制行进驱动单元370行进至附近未清
洁角落所在行,并将附近未清洁角落所在行确定为目标未清洁行;
若不存在附近未清洁角落所在行,则执行寻找最近一个未清洁行的步骤。
可选地,控制单元310控制行进驱动单元370进行之字形行进之前,还被
配置为:
从启动位置寻找最近一个障碍物;
控制行进驱动单元370向最近一个障碍物行进;
在感应到最近一个障碍物时,控制行进驱动单元370绕最近一个障碍物的
周边行进一周;
在绕最近一个障碍物的周边行进一周后,执行控制行进驱动单元370进行
之字形行进的步骤。
可选地,控制单元310,还被配置为:
在绕最近一个障碍物的周边行进一周后,寻找附近未清洁角落所在行;
控制行进驱动单元370行进至附近未清洁角落所在行后,执行控制行进驱
动单元进行之字形行进的步骤。
可选地,控制单元310,还被配置为:
以自身所在位置为依据构建区块;或,以一定范围内的墙体为边界构建区
块;或,参考已有区块的边界构建已有区块的相邻区块。
可选地,控制单元310,还被配置为:
以机体的边刷40一侧为内侧绕障碍物的周边行进一周。
可选地,第一行进与第二行进之间的间距小于或等于清洁机器人的机身半
径。
可选地,第一方向和第二方向均与区块的长边平行。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介
质,例如包括指令的存储单元320,上述指令可由控制单元310执行以完成上述
本公开实施例中的清洁机器人控制方法。例如,非临时性计算机可读存储介质
可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储
设备等。
以下实施例将基于上述清洁机器人来阐述控制其行进的方法,但本公开实
施例不限定清洁机器人的类型。
图4是根据一示例性实施例示出的清洁机器人控制方法的流程图。该清洁
机器人控制方法包括如下步骤。
在步骤401中,进行之字形行进,之字形行进包括第一行进和第二行进,
第一行进使清洁机器人沿区块中的第一方向前进,第二行进使清洁机器人沿区
块中的第二方向前进,第一方向和第二方向平行且相反;
之字形行进又称蛇形行进,是周期性进行第一行进和第二行进的一种行进
方式。
通常,清洁机器人在区块中进行之字形行进。区块是清洁机器人打扫时的
单位区域。
可选地,若区块为矩形区块,则第一方向和第二方向均与区块的长边平行。
如此,可以大幅度减少清洁机器人在之字形行进中需要调头的次数。
在步骤402中,若在之字形行进过程中感应到障碍物,则绕障碍物的周边
行进一周;
在步骤403中,在绕障碍物的周边行进一周后,寻找目标未清洁行;
在一般策略中,目标未清洁行即为离清洁机器人当前所在位置的最近一个
未清洁行。
在步骤404中,在目标未清洁行上继续进行之字形行进,若清洁机器人的
所在位置不对应目标未清洁行的端点,则识别在目标未清洁行上离所在位置最
近的端点,向最近的端点行进,并从最近的端点返回清洁目标未清洁行,再继
续进行之字形行进。
综上所述,本实施例提供的清洁机器人控制方法,通过让清洁机器人在感
应到障碍物时,绕障碍物的周边行进一周,然后再寻找目标未清洁行进行清洁,
并在清洁机器人的所在位置不对应目标未清洁行的端点时,则识别在目标未清
洁行上离所在位置最近的端点,向最近的端点行进,并从最近的端点返回清洁
最近一个未清洁行;解决了相关技术在一些场景中会导致清洁机器人走较长的
重复路线,影响清洁机器人的清洁效率的问题;达到了清洁机器人基本不用走
重复路线,提高清洁机器人的清洁效率的效果。
由于清洁机器人绕障碍物的周边总选择有沿边模块(比如边刷)的一侧沿
边行进,即可覆盖所有的障碍物,也即解决了所有的贴边问题;又不需要在清
洁机器人的两侧都设置沿边模块,从而达到了降低成本的效果。
下面结合一个实际的场景示意图。对上述图4所示出的清洁机器人控制方
法进行示例性说明。为了简化描述,下述实施例的清洁机器人均以右侧为边刷
一侧来举例说明。也即,清洁机器人的右侧设置有边刷,左侧没有设置边刷。
图5是根据一示例性实施例示出的一种清洁机器人控制方法的实施示意图。
图5示出了一个区块50,该区块50的四条边为虚拟边,区块50中有一个不规
则的障碍物51且该区块50中不再包含其它障碍物。若清洁机器人在该区块50
的中心位置开始进行之字形行进后,清洁机器人会在前方遇到障碍物51,然后
清洁机器人沿障碍物51的外周边绕行一周。在绕行一周后,清洁机器人将障碍
物51所在的区域标记为已清洁区域。
清洁机器人从绕行前的原始位置查找最近一个未清洁行52,开始继续进行
之字形行进。清洁机器人沿该最近一个未清洁行52开始之字形行进,在该最近
一个未清洁行52的末端,清洁机器人前方为区块的边缘,左右两侧均为未清洁
行,此时清洁机器人随机向左切换或向右切换,或者,清洁机器人按照预定的
向左切换,或者,清洁机器人按照预定的向右切换继续之字形行进。图中所示
为随机向左转举例说明,进入未清洁行53。
当然,由于清洁机器人并不总是能保证不偏离当前清洁行,若在查找最近
一个未清洁行时左右两侧均为未清洁行,而清洁机器人的行驶轨迹是偏左的,
则确定左侧的未清洁行是最近一个未清洁行;若行驶轨迹是偏右的,则确定右
侧的未清洁行是最近一个未清洁行。
在行进至未清洁行53的中部时,由于前方是清洁机器人已经清洁过的区域,
则寻找到最近一个未清洁行54,清洁机器人行进至最近一个未清洁行54,由于
此时清洁机器人的所在位置不对应最近一个未清洁行54的端点时,则清洁机器
人识别在最近一个未清洁行54上离所在位置最近的端点,向最近的端点行进,
并从最近的端点返回清洁最近一个未清洁行54;之后,按照正常的之字形行进
将整个区块打扫完毕。
图6是根据另一示例性实施例示出的清洁机器人控制方法的流程图。该清
洁机器人控制方法包括如下步骤。
在步骤601中,构建区块。
由于待清洁区域可能非常大,清洁机器人可以以区块为单位来进行清洁。
可选地,每个区块是矩形或正方形,比如4m*4m的正方形。
在构建区块时,一种可能的实现方式是:清洁机器人以自身所在位置为依
据构建区块,优选以自身所在位置为中心构建区块,可选地,以自身所在位置
作为区块的一个角来构建区块。另一种可能的实现方式是:清洁机器人以一定
范围内的墙为边界构建区块,比如:以一面墙作为区块的一个边构建区块;以
互相垂直的两面墙作为区块的两个相邻边构建区块等等。再一种可能的实现方
式是:参考已有区块的边界构建已有区块的相邻区块。比如:已经构建有区块1
时,根据区块1的边界并列构建相邻区块2。
在单次清洁过程中,清洁机器人仅在该区块内进行清洁。完成一个区块的
清洁之后,进入其它区块进行清洁。该区块的四周可以包括墙体,也可以不包
括墙体。可选地,清洁机器人也可以从初始位置出发,在一定范围内熟悉环境
后,按照一定的策略来选择合适的区块划分方法,例如:划分尽量少的区块数
量来覆盖一定范围;又例如:划分尽量少的不规则区块。
清洁机器人还可以在区块中划分出多条并列的清洁行,并在初始阶段将全
部清洁行都标记为未清洁行。所有清洁行与区块的某一个边平行,优选长边,
从而减少清洁机器人调头的次数。
通常,两两清洁行之间还间隔固定间距,该固定间距小于或等于清洁机器
人的机身半径。比如,清洁机器人的机身半径是15厘米,则第一行进和第二行
进之间的间距小于或等于15厘米。当然,两两清洁行之间的间距也可以不是固
定间距,只需要小于或等于清洁机器人的机身半径即可。
通常,之字形行走时的第一方向和第二方向与区块的长边是平行的。
在步骤602中,从启动位置寻找最近一个障碍物。
清洁机器人在启动进入清洁模式后,通过障碍物感应单元寻找区块中的最
近一个障碍物。
在步骤603中,向最近一个障碍物行进。
清洁机器人可以沿最短路径向最近一个障碍物行进。
在步骤604中,在感应到最近一个障碍物时,绕最近一个障碍物的周边行
进一周。
在感应到最近一个障碍物时,清洁机器人进行沿边清洁,也即控制机体的
边刷一侧绕最近一个障碍物的周边行进一周。也即,若边刷位于机体的左侧,
则清洁机器人控制机体的左侧绕最近一个障碍物的周边行进一周;若边刷位于
机体的右侧,则清洁机器人控制机体的右侧绕最近一个障碍物的周边行进一周。
比如,障碍物是地板上的一个水桶70,则绕该水桶70的外周边行进一周,
比如图7A所示。
需要说明的是,若清洁机器人绕行障碍物一周,则清洁机器人将该障碍物所
在的区域标记为障碍物区域,将已经绕行一周的环边区域标记为已清洁区域。
正常情况下,清洁机器人在下次感应到该已清洁区域时会进行避让,以免重复
清洁。
在步骤605中,在绕最近一个障碍物的周边行进一周后,寻找附近未清洁
角落所在行;
在步骤606中,行进至附近未清洁角落所在行,进行之字形行进;
在绕最近的一个障碍物的周边行进一周后,清洁机器人寻找附近未清洁角
落所在行。行进至附近未清洁角落所在行后再开始之字形行进可以避免之字形
行进结束后再进行角落处的补扫,可以提高清洁覆盖效率。
之字形行进包括周期性进行的第一行进和第二行进,第一行进使清洁机器
人沿区块中的第一方向前进,第二行进使清洁机器人沿区块中的第二方向前进,
第一方向和第二方向平行且相反。通常,第一行进和第二行进之间的间距为固
定间距,但也可以不是固定间距。
第一行进切换至第二行进的切换条件包括:在当前行的障碍物的相同一侧
感应不到未清洁区域(也即该障碍物的周边为已清洁区域),或,在当前行上感
应到区块的周边。
类似地,第二行进切换至第一行进的切换条件包括:在当前行的障碍物的
相同一侧感应不到未清洁区域(也即该障碍物的周边为已清洁区域),或,在当
前行上感应到区块的周边。
在之字形行进中,第一行进切换至第二行进,或者,第二行进切换至第一
行进,通常是向最近一个未清洁行切换。
需要说明的是,步骤602至步骤606是可选步骤,清洁机器人也可以直接
在区块中开始之字形行进。或者,清洁机器人在寻找不到最近一个障碍物时,
直接在区块中开始之字形行进。或者,清洁机器人在绕最近一个障碍物后,直
接从所在位置寻找最近一个未清洁行开始之字形行进。
在步骤607中,若在之字形行进过程中感应到障碍物,则绕障碍物的周边
行进一周。
由于待清洁区域中可能存在多个障碍物,在之字形行进过程中,清洁机器
人会感应到障碍物。
在感应到障碍物时,清洁机器人控制机体的边刷一侧绕障碍物的周边行进
一周。也即,若边刷位于机体的左侧,则清洁机器人控制机体的左侧绕障碍物
的周边行进一周;若边刷位于机体的右侧,则清洁机器人控制机体的右侧绕障
碍物的周边行进一周。
需要说明的是,对于已经绕行一周的障碍物,因为该障碍物所在的区域被
标记为障碍物区域,将已经绕行一周的环边区域标记为已清洁区域。清洁机器
人再次靠近该障碍物时,认为前方是已清洁区域,进行避让后继续进行之字形
行进。
还需要说明的是,清洁机器人判断是否绕障碍物行进一周的方式包括:在沿
边过程中再次到达已清洁点,再次到达已清洁点的行进方向和已清洁点的首次
清洁行进方向小于一定角度,和/或,从开始沿边清洁到再次到达已清洁点的过
程中机器人的行进方向经历过所有象限,则确定已经完成绕障碍物的周边行进
一周。
在步骤608中,在绕障碍物的周边行进一周后,寻找附近未清洁角落所在
行;
附近未清洁角落是以附近未清洁区域所形成的图案中的角落。附近未清洁
区域并不包括已清洁区域,附近未清洁区域有可能是不规则的区域。
通常,清洁机器人在绕障碍物一周后,自身所处的位置即为未清洁角落。
但是由于惯性等原因,清洁机器人的停留位置很有可能并不是开始绕行时的原
始位置。所以,在绕障碍物的周边行进一周后,清洁机器人寻找附近未清洁角
落所在行。
需要说明的是,本领域技术人员可以对附近未清洁角落做不同定义,也可
以对附近未清洁角落所在行的寻找方式做不同的实现方式,本公开实施例不限
定附近未清洁角落所在行的寻找方式。
若存在附近未清洁角落所在行,则进入步骤609。
若不存在附近未清洁角落所在行,则进入步骤610。
在步骤609中,若存在附近未清洁角落所在行,则行进至附近未清洁角落
所在行,并将附近未清洁角落所在行确定为目标未清洁行;
在步骤610中,若不存在附近未清洁角落所在行,则寻找最近一个未清洁
行,将最近一个未清洁行确定为目标未清洁行;
若不存在附近未清洁角落所在行,清洁机器人根据当前所在位置,寻找最
近一个未清洁行。
可选地,清洁机器人可以以当前所在位置为起始位置,计算出最近一个未
清洁行。若同时有两个距离相等的最近的未清洁行,可以优先选择靠近前进方
向上的最近一个未清洁行。
需要说明的是,步骤608和609是可选步骤,在绕行障碍物一周后,清洁
机器人可以略过步骤608和步骤609,直接执行步骤610。也即,清洁机器人在
绕行障碍物一周后,在当前所在位置直接寻找最近一个未清洁行作为目标未清
洁行。
在步骤611中,在目标未清洁行上继续进行之字形行进。
目标未清洁行也可以理解为“下一未清洁行”。
在正常的之字形行进中,若当前行是已清洁行,则目标未清洁行是最近一
条未清洁行。
若存在较多障碍物,则重复上述步骤607至步骤611即可完成该区块的清
洁。
当然,由于区块中还存在一些障碍物与区块的边界相交,比如墙体、或者
被区块的周边所切割的家具腿,所以步骤607,还可能包括如下两个子步骤:
第一子步骤,在绕障碍物的周边行进的过程中,若感应到区块的周边,则
进行沿边清洁,沿区块的周边和障碍物的周边所组成的组合周边行进一周。
在绕障碍物的周边行进的过程中,可能会存在尚未绕行完毕,就遇到区块
的周边的情况,若首次在绕行过程中感应到区块的周边,则清洁机器人进行沿
边清洁,沿区块的周边和障碍物的周边所组成的组合周边行进一周。
比如,区块72的四周均为障碍物74,则清洁机器人绕四个障碍物74的周
边行进一周,比如图7B所示。
又比如,区块72的上边和右边为障碍物75,则清洁机器人在绕该障碍物
75的周边进行绕行,在绕行障碍物75的过程中碰到区块72的周边,则清洁机
器人绕区块72的周边(左虚拟边和下虚拟边)和障碍物75的周边所围合形成
的组合周边行进一周,如图7C所示。
再比如,区块72的一边设置有圆形的障碍物76,该障碍物76被区块72的
周边所切割,则清洁机器人绕障碍物76位于区块72中的周边,以及区块72的
周边所围合形成的组合周边行进一周,如图7D所示。
又比如,区块72的一边设置有圆形的障碍物77,另一边设置有不规则的障
碍物78,该障碍物77和障碍物78被区块72的周边所切割,则清洁机器人绕障
碍物77位于区块72中的周边,障碍物78位于区块72中的周边、以及区块72
的周边所围合形成的组合周边行进一周,如图7E所示。
需要说明的是,在一个区块中,绕组合周边行进一周的绕行过程通常只执
行一次,也即,清洁机器人在绕行障碍物过程中首次碰到区块72的周边时执行
一次。
需要说明的是,清洁机器人判断是否绕组合周边行进一周的方式包括:在
沿边过程中再次到达已清洁点,再次到达已清洁点的行进方向和已清洁点的首
次清洁行进方向小于一定角度,和/或,从开始沿边清洁到再次到达已清洁点的
过程中机器人的行进方向经历过所有象限,则确定已经完成绕组合周边行进一
周。
第二子步骤,在绕组合周边行进一周后,寻找目标未清洁行。
在找到目标未清洁行后,再次进入步骤611。
需要补充说明的一点是,步骤604可以采用类似于第一子步骤和第二子步
骤的策略。
另外需要补充说明的一点是,由于清洁机器人从已清洁行行进至目标未清
洁行后继续进行之字形行进时,当前所在位置很可能不是目标未清洁行的端点,
而是位于目标未清洁行的中间位置。此时,清洁机器人识别在目标未清洁行上
离所在位置最近的端点,控制行进驱动单元向最近的端点行进,并从最近的端
点返回清洁目标未清洁行。
也即,步骤611可选包括如下步骤,如图8A所示。优选地:
611a,清洁机器人在进入目标未清洁行开始清洁时,检测所在位置是否为目
标未清洁行的端点;
611b,若所在位置对应目标未清洁行的端点,则清洁机器人从该端点开始
沿目标未清洁行行进。
比如,在正常的之字形行进中,清洁机器人在打扫完一个清洁行后,会沿
区块的周边行进至目标未清洁行的端点,继续进行之字形行进。
611c,若所在位置不对应目标未清洁行的端点,则识别在目标未清洁行上由
所在位置出发的短边路径和长边路径,向短边路径行进。
也即,当清洁机器人沿已清洁区域(比如障碍物)的周边行进至该目标未
清洁行时,有可能位于目标未清洁行的中间位置,或者,位于目标未清洁行的
外侧附近位置。
611d,在短边路径行进完毕后,从短边路径返回至长边路径进行之字形行
进。
比如,如图8B所示,清洁机器人在障碍物80一侧进行之字形行走,在越
过障碍物后,查找出目标未清洁行82,并识别出目标未清洁行82的短边路径a
和长边路径b。然后清洁机器人先从当前所在位置沿最短路径行进至目标未清洁
行82,沿在目标未清洁行82中的短边路径a行进。在短边路径a行进完毕后,
从短边路径a返回至长边路径b进行之字形清洁。
又比如,出于缩短行走路径的考虑,做出如图8C所示的变形,清洁机器人
在障碍物80一侧进行之字形行走,在越过障碍物后,查找出目标未清洁行82,
并识别出目标未清洁行82的最近的端点A和较远的端点B。然后清洁机器人沿
最短路径或者较短路径从当前所在位置直接向最近的端点A行进(并未严格之
字形行进),在抵达最近的端点A后,从最近的端点A开始清洁目标未清洁行
82,并在后续进行之字形清洁。
也即,清洁机器人向目标未清洁行82的最近的端点A行进时,可以按照严
格的之字形行进,沿目标未清洁行82上的短边路径a行进;也可以按照最短路
径或较短路径直接向最近的端点A行进,本实施例对此不加以限定。
综上所述,本实施例提供的清洁机器人控制方法,通过让清洁机器人在感
应到障碍物时,绕障碍物的周边行进一周,然后再寻找目标未清洁行进行清洁,
并在清洁机器人的所在位置不对应目标未清洁行的端点时,则识别在目标未清
洁行上离所在位置最近的端点,向最近的端点行进,并从最近的端点返回清洁
目标未清洁行;解决了相关技术在一些场景中会导致清洁机器人走较长的重复
路线,影响清洁机器人的清洁效率的问题;达到了清洁机器人基本不用走重复
路线,提高清洁机器人的清洁效率的效果。
本实施例提供的清洁机器人控制方法,通过绕障碍物的周边行进一周,既
能够将障碍物周围清洁干净,又能够将障碍物区域在清洁地图上进行标记,从
而简化清洁机器人的行进路线。
本实施例提供的清洁机器人控制方法,还通过在进行之字形行进之前,先
寻找最近一个障碍物绕行一周,能够在大部分情况下,使清洁机器人行进至区
块的一个边或区块中远离中心的位置开始进行之字形行进,从而使得清洁机器
人的之字形行进从区块的一侧开始进行,而避免从区块的中心开始进行之字形
行进,减少需要补扫的区域的形成。
本实施例提供的清洁机器人控制方法,还通过在进行之字形行进之前,先
寻找障碍物绕行一周后,寻找附近未清洁角落所在行,能够在大部分情况下,
使清洁机器人行进至附近未清洁角落所在行开始进行之字形行进,从而减少需
要补扫的区域的形成。
本实施例提供的清洁机器人控制方法,还通过在所在位置不是目标未清洁
行的端点时,优先向最近的端点行进,能够尽可能减少清洁机器人所行走的重
复路径。
本实施例提供的清洁机器人控制方法,还通过使得第一方向和第二方向与
区块的长边平行,较少了清洁机器人需要调头的次数。
下面结合几个实际的场景示意图。对上述图5所示出的清洁机器人控制方
法进行示例性说明。为了简化描述,下述实施例的清洁机器人均以右侧为边刷
一侧来举例说明。也即,清洁机器人的右侧设置有边刷,左侧没有设置边刷。
图9是根据一示例性实施例示出的一种清洁机器人控制方法的实施示意图。
作为一个特殊的例子,图9示出了一个区块90,该区块90的一个边包括障碍物
91,其它三条边为虚拟边,且该区块90中不再包含其它障碍物。若清洁机器人
在该区块90的中心位置开始清洁后,清洁机器人首先找到最近一个障碍物91,
则清洁机器人沿障碍物91绕行一周,在绕行障碍物91的途中,会遇到区块90
的周边,从而清洁机器人进行沿边清洁,沿障碍物91和区块90的另外三条周
边所组成的组合周边绕行一周。在绕行一周后,清洁机器人将区块90的四周标
记为已清洁区域。
在绕行一周后,清洁机器人从绕行前的原始位置92查找附近未清洁角落所
在行,也即左下角落所在的最下面一个未清洁行,然后行进至左下角落所在的
最下面一个未清洁行,并开始之字形行进直至将整个区块打扫完毕。
图10A和图10B是根据另一示例性实施例示出的一种清洁机器人控制方法
的实施示意图。图10A和图10B示出了一个区块100,该区块100的四条边为
虚拟边,区块100中有一个不规则的障碍物101且该区块100中不再包含其它
障碍物。若清洁机器人在该区块100的中心位置开始清洁后,清洁机器人首先
寻找到最近一个障碍物,也即障碍物101,则清洁机器人以最短路径向障碍物
101行进,然后清洁机器人沿障碍物101的外周边绕行一周。在绕行一周后,清
洁机器人将障碍物101所在的区域标记为已清洁区域。
清洁机器人从绕行前的原始位置102查找附近未清洁角落所在行,也即右
上角落所在的最上面一个未清洁行。然后,清洁机器人行进至右上角落所在的
最上面一个未清洁行后,开始进行之字形行进。
按照正常的之字形行进至左下角落后,如图10B的中间一副状态图所示,
清洁机器人会寻找到最近一个未清洁行位于左中区域,然后从下往上直接行驶
至左中区域,继续进行之字形行进,从而将整个区块100清洁完毕。
图11A至图11D是根据另一示例性实施例示出的一种清洁机器人控制方法
的实施示意图。请结合参考图11A至图11D,图11A至图11D示出了一个区块
110,该区块110的两条边包括障碍物111。该区块110中还存在障碍物112、114、
116、117和118。其中,障碍物112和114是紧靠障碍物111的障碍物。障碍物
116、117和118是分散存在于区块110中的三个呈三角形的障碍物。
如图11A所示,在开启清洁模式后,清洁机器人从区块110的中央位置,
先寻找最近一个障碍物,假设最近一个障碍物是障碍物117,清洁机器人以最短
路径行进至障碍物117,然后将机体右侧沿障碍物117的外周边绕行一周。在沿
障碍物117的外周边绕行一周后,清洁机器人查找附近未清洁角落所在行,由
于附近未清洁角落是右下角落,则清洁机器人行进至最下面一条未清洁行开始
按照之字形行进方式向右清洁。然后向右之字形行进过程中,清洁机器人感应
到障碍物111,此时,清洁机器人绕障碍物111进行绕行,在绕行到左上角落时,
清洁机器人感应到区块110的周边,所以清洁机器人将机体右侧绕障碍物111
的内周边和区块110的下虚拟边和右虚拟边组成组合周边绕行一周后,回到绕
行前的原始位置,也即右下角落的位置。
需要注意的是,在绕行组合周边时,清洁机器人会感应到障碍物112和障
碍物114,清洁机器人将障碍物112和障碍物114视为是组合周边的一部分进行
绕行。
如图11B所示,在绕行障碍物111结束后,清洁机器人查找附近未清洁角
落所在行,也即从下往上数的第二行,清洁机器人将该第二行作为目标未清洁
行继续进行之字形行进,在行进至障碍物118时,清洁机器人绕障碍物118绕
行一周。也即,清洁机器人将机体右侧紧贴障碍物118进行绕行,在绕行障碍
物118一圈以后,清洁机器人查找附近未清洁角落所在行,也即障碍物118和
障碍物117之间的一个行,则清洁机器人行进至该行,继续进行之字形行进。
在行进至障碍物116时,清洁机器人绕障碍物116绕行一周。也即,清洁
机器人将机体右侧紧贴障碍物116进行绕行。
如图11C所示,在绕行障碍物116一圈以后,清洁机器人查找附近未清洁
角落所在行,也即障碍物116左侧的一个行,则清洁机器人行进至该行,继续
进行之字形行进。
清洁机器人在之字形行进过程中,会行进至目标未清洁行119,由于清洁机
器人的所在位置不对应目标未清洁行119的端点,则清洁机器人先行进至目标
未清洁行119的短边路径,然后返回清洁长边路径继续清洁目标未清洁行119.
然后,在正常的之字形行进至左上角落后,清洁机器人查找最近一个未清
洁行作为目标未清洁行,此时最近一个未清洁行是位于障碍物118左侧区域的
一个行,则清洁机器人从上往下行驶至该行,继续之字形行进将该障碍物118
左侧区域打扫干净。
如图11D所示,清洁机器人在障碍物118左侧区域清洁完毕后,查找最近
一个未清洁行作为目标未清洁行,此时最近一个未清洁行是位于障碍物117右
侧的一个行,然后清洁机器人绕过障碍物118以最短路径行进至该行,继续之
字形行进将该障碍物117右侧区域打扫干净。
清洁机器人在障碍物117右侧区域清洁完毕后,查找最近一个未清洁行作
为目标未清洁行,此时最近一个未清洁行是位于障碍物116右侧的一个行,然
后清洁机器人以最短路径行进至该行,继续之字形行进将该障碍物116右侧区
域打扫干净,从而将整个区块打扫完毕。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公
开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,
这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开
的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性
的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结
构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的
权利要求来限制。