掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及智能机器人技术领域,涉及一种清洁机器人划区清扫的控制方法、芯片及机器人。

背景技术

在现有扫地机器人产品中,常规划区清扫是通过导航到目标区域内任意一个点后,启动沿边程序,得到一个方框内非障碍物且可到达的一个子框,然后对子框进行清扫,从而完成清扫工作的。采用这种简单的处理逻辑时,当区域被障碍物或虚拟墙完全分割时,部分区域会被遗漏而不进行清扫,或者因为就近导航原则,在清扫框选取导航点时,一直从已清扫区域中进行选取,无法选中未清扫区域,导致机器人无法对未清扫区域进行清扫。

发明内容

为了解决上述技术缺陷,本发明技术方案公开一种清洁机器人划区清扫的控制方法、芯片及机器人,本申请通过把机器人清扫过的轨迹,膨胀后,标记成障碍物,就算清扫框被障碍物或虚拟墙完全隔开,只要是机器人能抵达的区域,机器也会全部清扫完,从而实现无漏扫。具体的技术方案如下:

一种清洁机器人划区清扫的控制方法,该方法包括以下步骤:S1:清洁机器人移动到清扫框的未清扫区域中,对清扫框进行设定方式清扫,并记录清洁机器人的清扫轨迹,然后进入步骤S2;S2:清洁机器人对清扫轨迹进行处理,然后判断当前清扫框中是否有未清扫区域,若没有,则对所述清扫框的清扫已完成,若有,则判断未清扫区域是否可以通行,若不可以通行,则对所述清扫框的清扫已完成,若可以通行,则进入步骤S1。

进一步地,清洁机器人执行步骤S1前,还包括:接收划区清扫命令,并获取划区清扫命令中的清扫框信息,然后基于清扫框信息来选取清扫框进行划区清扫;随机选取一个未清扫的清扫框,并根据清扫框信息得到选取的清扫框在清扫地图上的位置,然后移动到清扫框中。

进一步地,获取划区清扫命令中的清扫框信息,包括以下步骤:清洁机器人从向量容器中获取转换为向量格式的清扫框信息;其中,所述清扫框信息至少包括清扫框在清扫地图上的像素坐标、像素宽度和像素长度。

进一步地,若清洁机器人对所述清扫框的清扫已完成,则将该清扫框的清扫框信息从向量容器中去除,并根据划区清扫命令中的清扫框信息,再次随机选取一个未清扫的清扫框进行清扫,直至将清扫地图上的清扫框全部清扫完成。

进一步地,步骤S1中,机器人进行设定方式清扫,包括以下步骤:

清洁机器人先在清扫框中进行沿边清扫,然后对沿边清扫包裹的区域采用弓字型清扫。

进一步地,步骤S2中,对清扫轨迹进行处理,包括以下步骤:将清扫轨迹进行设定宽度的膨胀;将膨胀后的清扫轨迹标注为障碍物;其中,清扫轨迹的像素值与清扫框的未清扫区域的像素值不同。

进一步地,步骤S2中,清洁机器人判断当前清扫框中是否有未清扫区域,包括以下步骤:清洁机器人遍历当前清扫框的像素点,若当前清扫框中的像素点的值都相同,则当前清扫框中没有未清扫区域,若当前清扫框中的像素点的值不相同,则当前清扫框中有未清扫区域。

进一步地,步骤S2中,判断未清扫区域是否可以通行,包括以下步骤:通过floodfill算法选取未清扫区域中的一个像素点作为选择对象,并将与该选择对象相邻的值相同的像素点也作为选择对象,然后判断选择对象是否可以触及机器人当前的位置,如果可以,则未清扫区域可以通行。

一种芯片,该芯片用于存储程序,该程序被配置为执行上述的一种清洁机器人划区清扫的控制方法。

一种机器人,装配有主控芯片,所述主控芯片为上述的芯片。

与现有的技术相比,本申请的技术方案通过制定严谨的处理逻辑,使机器人对清扫轨迹进行处理,机器人在定位时,不再选择具有清扫轨迹的已清扫区域,保证清洁机器人能顺利把下一个路径点规划到清扫框内仍未清扫的区域,就算清扫框被障碍物或虚拟墙完全隔开,只要是机器人能抵达的区域,机器人也会全部清扫完成,从而实现无漏扫,提高机器人的清扫质量;机器人导航时,只考虑避开障碍物,通过将清扫轨迹膨胀后标记成障碍物的方法来使机器人忽略或避开清扫轨迹,实现难度小,不改变机器人导航代码,减少机器人出错的几率。

附图说明

图1是本发明一种实施例的一种清洁机器人划区清扫的控制方法的流程图;

图2是本发明一种实施例的清洁机器人清扫示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

如图1所示,一种清洁机器人划区清扫的控制方法,现有的机器人在对划区清扫划出来的清扫框进行清洁时,通常是通过导航到目标区域内任意一个点后,启动沿边程序,得到一个方框内非障碍物且可到达的一个子框,然后对子框进行清扫,从而完成清扫工作的,清扫框为用户从清扫地图上划分出需要清洁机器人进行清扫的特定区域,清洁机器人在清扫框进行清扫时,一般不会出到清扫框之外清扫。如果出现清扫框被障碍物或虚拟墙完全分割时,会因为已经对清扫框进行过清扫,而忽略未清扫区域;或者因为就近导航原则,在清扫框选取导航点时,一直从已清扫区域中进行选取,无法选中未清扫区域,导致机器人无法对未清扫区域进行清扫。而本申请的方法主要是通过制定严谨的处理逻辑,使机器人将清扫轨迹进行膨胀后标记成障碍物,保证清洁机器人能顺利把下一个路径点规划到清扫框内仍未清扫的区域,就算清扫框被障碍物或虚拟墙完全隔开,只要是机器人能抵达的区域,机器人也会全部清扫完成,从而实现无漏扫,提高机器人的清扫质量。该方法包括以下步骤:

清洁机器人开始工作时,清洁机器人可以按照设定的计划进行清扫,也可以处于待机状态,等待接收清扫命令。当清洁机器人接收到划区清扫命令时,会立即执行划区清扫命令,从向量容器中获取转换为向量格式的清扫框信息。划区清扫命令为用户通过智能终端在清扫地图上划分出清扫框,然后发送给清洁机器人,使清洁机器人对清扫地图中划分出来的清扫框进行清洁。其中,用户划分或指定清扫框时,清扫框会以向量(vector)的形式存起来,清扫框一次可以指定多个,数量不进行限制,而用户划分或指定清扫框在清洁机器人领域为常规技术,此处不再赘述。清扫框信息由xywh组成,xy分别是清扫框左上角点在清扫地图上的像素坐标,wh分别是清扫框的像素宽度width和像素长度height。向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

步骤S1:清洁机器人在根据划区清扫命令进行清扫时,会随机选取一个未清扫的清扫框,并根据清扫框信息得到选取的清扫框在清扫地图上的位置,然后先根据清扫地图上的障碍物信息和清扫框信息判断清洁机器人是否可以移动到该清扫框中,若可以,则清洁机器人移动到该清扫框中进行清扫,即清洁机器人移动到清扫框的未清扫区域中,对清扫框进行设定方式清扫,并记录清洁机器人的清扫轨迹。若不可以,则清洁机器人将该清扫框进行标注,并不对该清扫框进行清扫,等待清扫完成后,将标注信息发送到智能终端,使用户可以了解清扫情况或者将该清扫框作为已清扫的清扫框。进行设定方式清扫,包括以下步骤:清洁机器人先在清扫框中进行沿边清扫,沿边清扫,保证机器人出超出清扫框,就可以知道当前要清扫的清扫框的大小和需要进行后续清扫的区域,然后对沿边清扫包裹的区域采用弓字型清扫。

步骤S2:清洁机器人在进行沿边和弓字型清扫后,清洁机器人会对清扫轨迹进行处理,然后判断当前清扫框中是否有未清扫区域,若没有,则对所述清扫框的清扫已完成,若有,则判断未清扫区域是否可以通行,若不可以通行,则对所述清扫框的清扫已完成,若可以通行,则采用上述方法移动到未清扫区域中,对未清扫区域进行沿边和弓字型清扫,并记录清扫轨迹,然后再判断当前清扫框中是否有未清扫区域,重复上述步骤,直至清洁机器人判断对当前的清扫框的清扫已完成。这时,若清洁机器人对所述清扫框的清扫已完成,则将该清扫框的清扫框信息从向量容器中去除,并根据划区清扫命令中的清扫框信息,再次随机选取一个未清扫的清扫框采用上述方法对清扫框进行清扫,重复这些步骤,直至将清扫地图上的清扫框全部清扫完成。

作为其中一种实施例,步骤S2中,对清扫轨迹进行处理,包括以下步骤:将清扫轨迹进行设定宽度的膨胀;将膨胀后的清扫轨迹标注为障碍物;其中,清扫轨迹的像素值与清扫框的未清扫区域的像素值不同。机器人导航时,只考虑避开障碍物,为保持逻辑不变需要把清扫轨迹改为障碍物,而为了不影响机器人进行行走,可以使机器人移动到清扫框之外后,再对清扫轨迹进行膨胀和标注;或者将清扫轨迹进行膨胀后,标注为清扫时的障碍物,不影响机器人的移动。所述设定宽度为机器人的半径。机器人导航相关的代码避障只考虑障碍物,为保证清洁机器人能顺利把下一个路径点规划到清扫框内仍未清扫的区域,从而实现无漏扫,需要将清扫轨迹标志为障碍物,防止清洁机器人因就近导航,在对清扫框进行定位时,将位置再次定到已清扫区域中。因实际清洁机器人位置点取的是清洁机器人中心的像素点,清扫轨迹为清洁机器人中心的像素点的移动轨迹,而机器人有半径,当机器人沿障碍物进行清扫时,机器人总是与障碍物有一个半径的距离,且靠障碍物一侧,也就是清扫轨迹与障碍物之间有清洁机器人半径长度的距离,障碍物与清洁机器人的清扫轨迹之间的像素点,不会存在清洁机器人的清扫轨迹上,但其实这些区域的像素点是要被视为已清扫的,故每次清扫完一个区域,会将清扫轨迹进行机器人半径像素的膨胀,防止清洁机器人定位时,定到清扫轨迹与障碍物之间的区域或清扫轨迹与清扫轨迹之间的区域。

作为其中一种实施例,步骤S2中,清洁机器人判断当前清扫框中是否有未清扫区域,包括以下步骤:清洁机器人遍历当前清扫框的像素点,若当前清扫框中的像素点的值都相同,则当前清扫框中没有未清扫区域,若当前清扫框中的像素点的值不相同,则当前清扫框中有未清扫区域。清洁机器人在对清扫地图进行清扫时,得到的是线型清扫轨迹,同时会改变清扫轨迹上的像素点的灰度值,然后对清扫轨迹进行膨胀处理,使清扫轨迹覆盖全部已清扫区域,已清扫区域的像素值的灰度值也变为清扫轨迹上的像素点的灰度值,使清洁机器人或用户可以从像素点的灰度值轻易分辨出哪些区域是已清扫的,哪些区域是未清扫的。所以清洁机器人在遍历当前的清扫框时,如果清扫框中的像素点的存在两种灰度值时,则可以判断当前的清扫框具有未清扫区域。当然清扫地图的障碍物和需要清扫的区域的像素点具有不同灰度值的,所以上述说法是针对当前清扫框中需要清扫的区域的像素点具有已清扫区域的像素点的灰度值和未清扫区域的像素点的灰度值。

作为其中一种实施例,步骤S2中,判断未清扫区域是否可以通行,包括以下步骤:通过floodfill算法选取未清扫区域中的一个像素点作为选择对象,并将与该选择对象相邻的值相同的像素点也作为选择对象,然后判断选择对象是否可以触及清洁机器人当前的位置,如果可以,则未清扫区域可以通行。清洁机器人将未清扫区域中的一个像素点作为选择对象的同时,也作为判断中心,判断与该像素点相邻的像素点的灰度值是否相同,若相同,则将与该像素点相邻的像素点作为作为选择对象的同时,也作为判断中心,再次进行判断,直至没有找到与选择对象相邻且灰度值相同的像素点或者选择对象触及清洁机器人当前的位置。也就是与扫雷游戏相似,一点就会触发一大片。

如图2所示,清洁机器人在得到划区清扫的命令后,通过清扫框的信息,得到清扫框在清扫地图上的位置,当清扫框被分割1和2两个子框时,清洁机器人随机移动到子框1或子框2中。当清洁机器人移动到子框1中后,在子框1中进行沿边清扫,得到一个由清扫轨迹包围的区域,然后清洁机器人在该区域中进行弓字型清扫,清洁机器人在清扫过程中会记录清扫轨迹。在弓字型清扫后,清洁机器人对子框1的清扫完成。然后机器人在子框1中或者子框1的外面,将清扫轨迹线进行膨胀,在膨胀完成后可以先判断清扫框是否有未清扫区域,也可以先将膨胀后的轨迹线标注为障碍物。在发现子框2这个未清扫区域后,就会判断清洁机器人是否可以通行,若可以通行,则清洁机器人移动到子框2中重复在子框1中的清扫步骤。

与现有的技术相比,本申请的技术方案通过制定严谨的处理逻辑,使机器人对清扫轨迹进行处理,机器人在定位时,不再选择具有清扫轨迹的已清扫区域,保证清洁机器人能顺利把下一个路径点规划到清扫框内仍未清扫的区域,就算清扫框被障碍物或虚拟墙完全隔开,只要是机器人能抵达的区域,机器人也会全部清扫完成,从而实现无漏扫,提高机器人的清扫质量;通过机器人导航相关的代码避障只考虑障碍物,通过将清扫轨迹膨胀后标记成障碍物的方法来使机器人忽略或避开清扫轨迹,实现难度小,不改变机器人导航代码,减少机器人导航出错的几率。

以上所述,仅是本发明的较佳实施例而己,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

相关技术
  • 智能机器人的清扫方法和芯片以及智能清洁机器人
  • 一种机器人运动地毯偏移的识别方法、芯片及清洁机器人
  • 一种基于虚拟边界的清洁机器人跌落控制方法及芯片
  • 一种机器人的规划清扫方法和芯片
  • 一种基于清洁机器人的语音去噪方法和芯片
  • 一种机器人的清扫控制方法和芯片以及清洁机器人
  • 一种机器人的清扫控制方法和芯片以及清洁机器人
技术分类

06120116502650