发明内容
本发明的主要目的在于提供清洁机器人的控制方法、装置、清洁机器人及存储介质,旨在避免清洁机器人被障碍物卡住无法移动,保证清洁机器人的正常运行。
为实现上述目的,本发明提供一种清洁机器人的控制方法,所述清洁机器人的控制方法包括以下步骤:
获取所述清洁机器人相对于目标障碍物的状态信息;
当所述状态信息为第一状态时,控制所述清洁机器人执行目标挣脱操作,以使所述清洁机器人从第一状态切换至第二状态;
其中,所述第一状态为所述清洁机器人限位于所述目标障碍物的状态,所述第二状态为所述清洁机器人与所述目标障碍物解除限位的状态。
可选地,所述控制所述清洁机器人执行目标挣脱操作的步骤包括:
确定所述清洁机器人的目标转向方向;
控制所述清洁机器人一边向第一行进方向行进,一边按照所述目标转向方向进行转向,以挣脱所述目标障碍物。
可选地,所述确定所述清洁机器人的目标转向方向的步骤包括:
将所述清洁机器人进入所述第一状态时的转向方向的反方向作为所述目标转向方向。
可选地,所述确定所述清洁机器人的目标转向方向的步骤之后,还包括:
若所述第一行进方向上存在行进空间,执行所述控制所述清洁机器人一边向第一行进方向行进,一边按照所述目标转向方向进行转向的操作的步骤;
若所述第一行进方向上不存在行进空间,控制所述清洁机器人一边向第二行进方向行进,一边按照所述目标转向方向进行转向。
可选地,在所述控制清洁机器人一边向第二行进方向行进,一边按照所述目标转向方向进行转向的步骤之前,所述方法还包括:
若所述第一行进方向上不存在行进空间、且所述清洁机器人进入打滑状态,则控制所述机器人按照第一转向方向或第二转向方向原地旋转预设角度。
可选地,所述控制所述清洁机器人一边向第二行进方向行进的步骤包括:
控制所述清洁机器人以第一速度向所述第二行进方向行进第一时长;
累计所述清洁机器人向所述第二行进方向的行进距离;
若所述行进距离小于预设距离阈值,再次执行所述控制所述清洁机器人以第一速度向所述第二行进方向行进第一时长的操作的步骤;
所述方法还包括:
若所述行进距离大于或等于所述预设距离阈值,则确定所述第一行进方向存在行进空间。
可选地,所述方法还包括:
获取所述清洁机器人的操作特征参数和/或所述清洁机器人的姿态变化参数;所述姿态变化参数为所述目标挣脱操作执行之前至当前时刻所述清洁机器人的姿态变化情况的参数;
根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作。
可选地,所述获取所述清洁机器人的操作特征参数的步骤包括:
累计所述清洁机器人向所述第二行进方向行进的行进次数或第二时长;
所述根据所述操作特征参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:
若所述行进次数大于第一次数阈值,或所述第二时长大于预设时长阈值,则控制所述清洁机器人停止执行所述目标挣脱操作。
可选地,所述获取所述清洁机器人的姿态变化参数的步骤包括:
在所述清洁机器人一边向所述第一行进方向行进,一边按照所述目标转向方向进行转向的过程中,获取所述清洁机器人的初始姿态参数和当前姿态参数;所述初始姿态参数为所述清洁机器人首次进入所述第一状态时的姿态参数;
确定所述当前姿态参数与所述初始姿态参数之间的差值绝对值,将所述差值绝对值作为所述姿态变化参数。
可选地,所述根据所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤,包括:
若所述当前姿态参数与所述初始姿态参数之间的差值绝对值大于或等于第一数值,控制所述清洁机器人结束所述目标挣脱操作。
可选地,所述获取所述清洁机器人的操作特征参数;根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:
累计所述清洁机器人按照所述目标转向方向进行转向的转向次数;
若所述转向次数到达第三次数阈值、且所述当前姿态参数与所述初始姿态参数之间的差值绝对值小于第二数值,则将所述目标转向方向的反方向作为新的目标转向方向,将当前姿态参数作为新的初始姿态参数,基于所述新的目标转向方向和所述新的初始姿态参数,控制所述清洁机器人重新执行所述目标挣脱操作。
可选地,所述获取所述清洁机器人的操作特征参数;根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:
若所述当前姿态参数与所述初始姿态参数之间的差值绝对值小于预设数值,控制所述清洁机器人一边向第二行进方向行进,一边按照目标转向方向进行转向;
控制所述清洁机器人重新执行所述目标挣脱操作;并累计执行所述目标挣脱操作的挣脱次数;
若所述挣脱次数大于第二次数阈值,控制所述清洁机器人停止执行所述目标挣脱操作。
此外,为了实现上述目的,本申请还提出一种清洁机器人,所述清洁机器人包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行清洁机器人的控制程序,所述清洁机器人的控制程序被所述处理器执行时实现如上任一项所述清洁机器人的控制方法的步骤。
此外,为了实现上述目的,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有清洁机器人的控制程序,所述清洁机器人的控制程序被处理器执行时实现如上任一项所述的清洁机器人的控制方法的步骤。
此外,为了实现上述目的,本申请还提出一种清洁机器人的控制装置,该清洁机器人的控制装置包括:
信息获取模块,所述信息获取模块用于获取所述清洁机器人相对于目标障碍物的状态信息;
执行模块,所述执行模块用于当所述状态信息为第一状态时,控制所述清洁机器人执行目标挣脱操作,以使所述清洁机器人从第一状态切换至第二状态;
其中,所述第一状态为所述清洁机器人限位于所述目标障碍物的状态,所述第二状态为所述清洁机器人与所述目标障碍物解除限位的状态。
此外,为了实现上述目的,本申请还提出一种清洁机器人的控制程序,所述清洁机器人控制程序被执行时如上清洁机器人的控制方法任一实施例的相关步骤。
本发明提出的清洁机器人的控制方法、装置、清洁机器人及存储介质,在清洁机器人限位于目标障碍物时,表明其被障碍物卡住,此时通过控制清洁机器人执行挣脱操作,解除清洁机器人与目标障碍物之间的限位状态,使清洁机器人可从目标障碍物上挣脱下来,避免清洁机器人被障碍物卡住无法移动,保证清洁机器人的正常运行。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取所述清洁机器人相对于目标障碍物的状态信息;当所述状态信息为第一状态时,控制所述清洁机器人执行目标挣脱操作,以使所述清洁机器人从第一状态切换至第二状态;其中,所述第一状态为所述清洁机器人限位于所述目标障碍物的状态,所述第二状态为所述清洁机器人与所述目标障碍物解除限位的状态。
由于现有技术中,在清洁机器人移动的过程中,经常会遇到障碍物(例如门槛),其经过障碍物时容易卡在障碍物上无法继续移动,影响清洁机器人的正常运行。
本发明提供上述的解决方案,旨在避免清洁机器人被障碍物卡住无法移动,保证清洁机器人的正常运行。
本发明提出一种清洁机器人,可以是扫地机器人,拖地机器人等用于环境清洁的自动化设备。
在本发明实施例中,参照图1,清洁机器人包括机身、清洁模块2和脚轮3。其中,清洁模块2可以是扫地模块、拖地模块等,具体设于机身的底部。脚轮3设于机身底部、且与清洁模块2间隔设置。
机身上可设有检测模块4,用于检测障碍物信息。具体的,检测模块4可包括双目传感器、红外传感器、激光雷达、碰撞传感器等中至少一者。
此外,机身还包括控制器1,上述的清洁模块2、脚轮3、检测模块4可与控制器1连接。具体的,参照图1,控制器1包括:处理器1001(例如CPU),存储器1002,计时器1003等,各部件之间可通过通信总线连接。存储器1002可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1002中可以包括清洁机器人的控制程序。在图1所示的装置中,处理器1001可以用于调用存储器1002中存储的清洁机器人的控制程序,并执行以下实施例中清洁机器人的控制方法的相关步骤操作。
本发明实施例还提供一种清洁机器人的控制方法,应用于对上述清洁机器人进行控制。
参照图2,提出本申请清洁机器人的控制方法一实施例。在本实施例中,所述清洁机器人的控制方法包括:
步骤S10,获取所述清洁机器人相对于目标障碍物的状态信息;
这里的状态信息具体表征的是清洁机器人相对于目标障碍物是否可移动的特征信息。
状态信息具体可包括第一状态和第二状态。所述第一状态为所述清洁机器人限位于所述目标障碍物的状态,也就是清洁机器人卡在目标障碍物上无法继续移动的状态。所述第二状态为所述清洁机器人与所述目标障碍物解除限位的状态,也就是清洁机器人从目标障碍物上挣脱下来、可以相对目标障碍物移动的状态。
具体的,状态信息可通过获取用户基于其看到的情况输入的参数得到,也可以通过读取清洁机器人自身设置的检测模块中的检测参数(例如碰撞传感器的检测数据、摄像头拍摄到清洁机器人运行场景的变化等)分析得到,还可以通过监测机器人自身行为情况(例如越障行为的次数),甚至可以通过获取清洁机器人外部的检测模块检测的数据(例如摄像头拍摄的机器人运行场景图像)得到,等等。
其中,目标障碍物可以清洁机器人遇到的任意障碍物,也可以是预先设置的一种障碍物。目标障碍物可为系统中默认设置的障碍物,也可以是用户基于自身需求输入相应的控制参数选定的障碍物。在本实施例中,目标障碍物为高度小于预设高度的障碍物,例如门槛。这里的预设高度可为系统默认配置,也可由用户自行设置。
步骤S20,当所述状态信息为第一状态时,控制所述清洁机器人执行目标挣脱操作,以使所述清洁机器人从第一状态切换至第二状态。
目标挣脱操作具体可包括转向、前进、后退、升降等任意用于挣脱目标障碍物的限位作用的操作或操作的组合。
目标挣脱操作为预先设置的固定操作,也可为适应于清洁机器人当前运行状态(例如执行挣脱操作的次数和/或行进方向是否存在行进空间等)从多种预先设置的操作中所选取的操作。
具体的,可确定目标挣脱操作对应的指令,按照所确定的指令控制清洁机器人与目标挣脱操作相关的部件运行(例如控制脚轮的驱动件的运行参数(如转速、转向方向、功率等)和/或控制清洁模块的驱动件的运行参数(如转速、转向方向、功率等)等),以执行目标挣脱操作。
清洁机器人可执行目标挣脱操作一次或多次。具体的,清洁机器人可重复执行目标挣脱操作,直至清洁机器人从第一状态切换至第二状态为止。
本发明实施例提出的一种清洁机器人的控制方法,该方法在清洁机器人限位于目标障碍物时,表明其被障碍物卡住,此时通过控制清洁机器人执行目标挣脱操作,解除清洁机器人与目标障碍物之间的限位状态,使清洁机器人可从目标障碍物上挣脱下来,避免清洁机器人被障碍物卡住无法移动,保证清洁机器人的正常运行。
进一步的,基于上述实施例,提出本申请清洁机器人的控制方法另一实施例。在本实施例中,具体的,参照图3,步骤S20中控制所述清洁机器人执行目标挣脱操作的步骤包括:
步骤S21,确定所述清洁机器人的目标转向方向;
目标转向方向可以是预先设置的固定方向,也可以基于清洁机器人的实际情况(例如其当前转向和/或被卡的位置等)进行确定;目标转向方向可以为顺时针方向或逆时针方向,又或者,例如,目标转向方向可以为向左的方向或向右的方向。
具体的,可通过读取存储器中预先存储的方向信息得到这里的目标转向方向;也可监测清洁机器人当前的转向和/或被卡住的位置等状态信息,基于所监测到的准确信息确定对应的方向为目标转向方向。
步骤S22,控制所述清洁机器人一边向第一行进方向行进,一边按照所述目标转向方向进行转向,以挣脱所述目标障碍物。
第一行进方向包括前进方向或后退方向。具体的,可控制机器人一边前进一边向目标转向方向转向,也可控制机器人一边后退一边向目标转向方向转向。
第一行进方向可为预先设置的方向,也可根据清洁机器人当前运行情况确定第一行进方向。例如,可获取清洁机器人在不同行进方向上行进空间的大小,将行进空间最大的行进方向作为第一行进方向;又如,可获取清洁机器人被障碍物卡住的位置,若该位置离清洁机器人的前端较近,可确定前进方向为第一行进方向;若该位置离清洁机器人的后端较近,确定后退方向为第一行进方向,等等。
清洁机器人向第一行进方向行进、且以目标转向方向转向的过程中,可按照预先设置的固定速率运行,也可基于清洁机器人实际被卡情况(例如被卡次数和/或被卡时长等)确定的速率运行。
在本实施例中,通过清洁机器人朝目标转向方向转向的同时朝第一行进方向行进,有利于改变障碍物对清洁机器人产生的约束力大小、方向,从而在清洁机器人转向、行进过程中更容易出现障碍物对机器人约束力较小的时机,实现清洁机器人可通过自身的驱动力克服变小的约束力使清洁机器人成功切换到第二状态,使清洁机器人可从障碍物上挣脱下来,保证清洁机器人可正常运行。
举例说明,可先确定清洁机器人的目标转向方向为顺时针方向,然后,控制清洁机器人一边前进(或后退),一边按照顺时针方向进行转向,以挣脱目标障碍物。
进一步的,在本实施例中,上述步骤S21包括:将所述清洁机器人进入所述第一状态时的转向方向的反方向作为所述目标转向方向。例如,检测到清洁机器人被卡住时的转向方向为向左,则将向右作为目标转向方向;又如,检测到清洁机器人被卡主时的转向方向为向右,则将向左作为目标转向方向,等等。这里通过将清洁机器人被卡住时的转向相反的方向作为机器人在挣脱过程中的目标转向方向,有利于清洁机器人与障碍物之间的相互作用力有较大的变化,清洁机器人更容易克服障碍物的阻力,从而更容易地从障碍物上挣脱下来。
进一步的,基于上述实施例,提出本申请清洁机器人的控制方法的又一实施例。在本实施例中,参照图4,步骤S21之后,还包括:
步骤S20a,判断所述第一行进方向上是否存在行进空间;
其中,步骤22中向第一行进方向行进,需要在第一行进方向上存在行进空间,否则,清洁机器人难以在第一行进方向行进,例如,若清洁机器人需要前进,则需要在前进方向上存在行进空间;若清洁机器人需要后退,则需要在后退方向上存在行进空间,因此,当所述第一行进方向上存在行进空间时,则执行步骤S22;当所述第一行进方向上不存在行进空间,则执行步骤S23。
步骤S23,控制所述清洁机器人一边向第二行进方向行进,一边按照所述目标转向方向进行转向。
第一行进方向上存在行进空间指的是位于第一行进方向上的障碍物与清洁机器人之间的距离大于或等于设定距离阈值。
第一行进方向上是否存在行进空间,可通过获取用户自行输入的状态指令确定,例如用户观察到清洁机器人在第一行进方向上存在行进空间时,可输入第一状态指令,用户观察到清洁机器人在第一行进方向上不存在行进空间时,可输入第二状态指令,基于此,基于清洁机器人接收到的第一状态指令和第二状态指令便可确定其第一行进方向是否存在行进空间。另外,第一行进方向上是否存在行进空间,也可通过清洁机器人机身上设置的障碍物传感器检测数据确定,例如,第一行进方向为前进方向,若设于清洁机器人前侧的障碍物传感器检测到位于清洁机器人前方设定距离阈值的空间范围内存在障碍物,则可确定第一行进方向上不存在行进空间;若设于清洁机器人前侧的障碍物传感器检测到位于清洁机器人前方设定距离阈值的空间范围内不存在障碍物,则可确定第一行进方向上存在行进空间。
第一行进方向和第二行进方向具体为相反的两个行进方向。由于清洁机器人挣脱过程中执行前进的动作比执行后退的动作更容易从障碍物上挣脱下来,因此,在本实施例中,可设置第一行进方向为前进方向,第二行进方向为后退方向。基于此,在清洁机器人前方存在前进空间时,则控制清洁机器人一边前进、一边按照目标转向方向进行转向;在清洁机器人前方不存在前进空间时,则控制清洁机器人一边后退、一边按照目标转向方向进行转向。此外,在其他实施例中,第一行进方向也可根据实际需求设置为后退方向,第二行进方向可设置为前进方向。
在本实施例中,在沿第一行进方向行进且沿目标转向方向转向之前,确认第一行进方向上存在行进空间,才控制清洁机器人向该第一行进方向行进、且转向,否则控制清洁机器人向不同于第一行进方向的第二行进方向行进且转向,有利于提高清洁机器人从障碍物上挣脱下来的成功率。
例如,若机器人前方存在前进空间,清洁机器人一边前进,一边按照顺时针方向进行转向;若机器人前方不存在前进空间,清洁机器人可一边后退,一边按照顺时针方向进行转向,当清洁机器人后退后,前进方向上会有前进空间,清洁机器人可前进。
其中,无论清洁机器人以第一行进方向行进还是第二行进方向行进,均以目标转向方向进行转向,有利于保证清洁机器人被卡住的轮子与障碍物(如门槛)的延伸方向垂直,提高清洁机器人与障碍物之间的摩擦力,以使清洁机器人行进且转向时,更容易克服障碍物的阻力从障碍物上挣脱下来。
进一步的,在本实施例中,在步骤S23之前,还包括:
若所述第一行进方向上不存在行进空间、且所述清洁机器人进入打滑状态,则控制所述机器人按照第一转向方向或第二转向方向原地旋转预设角度。
打滑状态具体指的是清洁机器人的脚轮的驱动装置处于运行状态而清洁机器人的位置变化幅度小于设定幅度的状态。清洁机器人是否处于打滑状态可通过获取机身上设置的检测模块的检测参数分析得到,也可通过对清洁机器人行为情况进行分析得到,还可通过获取清洁机器人所处场景的场景特征分析得到,甚至可以获取用户输入的指令得到。例如,可在控制清洁机器人移动的过程中,可获取清洁机器人在预设时长内的位置变化参数,若获取的位置变化参数小于设定阈值时,可确定清洁机器人处于打滑状态。
第一转向方向和第二转向方向为不同的转向方向。在本实施例中,第一转向方向和第二转向方向中之一为顺时针方向,第一转向方向和第二转向方向中之另一为逆时针方向。第一转向方向和第二转向方向可为与目标转向方向相同或不同的方向。
例如,在清洁机器人的前进方向不存在前进空间时,若清洁机器人处于打滑状态,则可控制清洁机器人向逆时针方向或顺时针方向原定旋转一定角度之后再边后退边沿目标转向方向进行转向。
本实施例中,若清洁机器人需要沿第二行进方向行进时清洁机器人处于打滑状态,则可先控制清洁机器人原地旋转一定角度,以确保清洁机器人可顺利沿第二行进方向行进,保证控制清洁机器人沿第二行进方向行进且按照目标转向方向转向后,第一行进方向上存在行进空间。
进一步的,在本实施例中,参照图5,控制所述清洁机器人一边向第二行进方向行进的步骤包括:
步骤S231,控制所述清洁机器人以第一速度向所述第二行进方向行进第一时长;
第一时长和第一速度可为预先设置的参数,也可根据清洁机器人实际运行情况所确定的参数。具体的,第一速度可大于设定速度阈值,保证清洁机器人挣脱过程中的速度较大,有利于提高挣脱的成功率。
步骤S232,累计所述清洁机器人向所述第二行进方向的行进距离;
具体的,可从清洁机器人首次向第二行进方向行进开始对清洁机器人行进的距离进行累加,累加得到的结果作为这里的行进距离。
步骤S233,判断所述行进距离是否小于预设距离阈值;
若所述行进距离小于预设距离阈值,再次执行步骤S231;若所述行进距离大于或等于所述预设距离阈值,则执行步骤S234。
步骤S234,确定所述第一行进方向存在行进空间。
预设距离阈值具体为表征第一行进方向上是否存在行进空间的距离临界值。预设距离阈值可根据实际情况进行设置。清洁机器人沿第二行进方向行进第一时长所达到的行进距离未达到预设距离阈值,表明第一行进方向上行进空间不足,此时再次执行S231,有利于保证清洁机器人在第一行进方向上有足够的行进空间;清洁机器人沿第二行进方向行进第一时长所达到的行进距离达到预设距离阈值,表明第一行进方向上存在足够的行进空间,此时可控制所述清洁机器人一边向第一行进方向行进,一边按照所述目标转向方向进行转向,以挣脱所述目标障碍物。
在本实施例中,通过上述方式,可实现清洁机器人沿第二行进方向行进的过程直至第一行进方向上存在行进空间时结束,保证清洁机器人向第一行进方向行进且按照目标转向方向转向时,第一行进方向上存在足够的行进空间,以确保清洁机器人沿第一行进方向行进过程中可成功从障碍物上挣脱下来,提高清洁机器人挣脱的成功率。
进一步的,基于上述任一实施例,本申请还提出清洁机器人的控制方法的再一实施例。在本实施例中,参照图6,所述控制方法还包括:
步骤S30,获取所述清洁机器人的操作特征参数和/或所述清洁机器人的姿态变化参数;所述姿态变化参数为所述目标挣脱操作执行之前至当前时刻所述清洁机器人的姿态变化情况的参数;
在清洁机器人执行目标挣脱操作的过程中,可获取清洁机器人的操作特征参数,也可获取清洁机器人的姿态变化参数,还可通过获取清洁机器人的操作特征参数和姿态变化参数。
操作特征参数具体为表征上述目标挣脱操作的操作情况的特征参数。操作特征参数具体可包括以下至少一种:目标挣脱操作的操作时长、操作次数、操作频率等。操作特征参数可通过对目标挣脱操作执行过程中相关部件的运行参数进行监测得到。
姿态变化参数具体可通过获取清洁机器人上或机器人外部设置的检测模块检测的姿态相关的数据得到。姿态变化参数可包括以下至少一种:翻滚角(roll)的变化值、俯仰角(pitch)、航向角(yaw)等。
步骤S40,根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作。
具体的,可预先设置有结束目标挣脱操作对应的操作限制条件和姿态变化条件。
若操作特征参数达到操作限制条件,可控制清洁机器人停止目标挣脱操作;若操作特征参数未达到操作限制条件,可控制清洁机器人重新执行目标挣脱操作。
若姿态变化参数达到姿态变化条件,可控制清洁机器人停止目标挣脱操作,若姿态变化参数未达到姿态变化条件,可控制清洁机器人重新执行目标挣脱操作。
若操作特征参数达到操作限制条件,或姿态变化参数达到姿态变化条件,可控制清洁机器人停止目标挣脱操作;若姿态变化参数未达到姿态变化条件、且操作特征参数未达到操作限制条件,则控制清洁机器人重新执行目标挣脱操作。
在本实施例中,操作特征参数可反映目标挣脱操作的操作情况,姿态变化参数可反映目标挣脱操作对清洁机器人产生的作用情况,基于此,通过操作特征参数或姿态变化参数中至少一个作为是否继续执行目标挣脱操作的判断依据,可保证适应于目标挣脱操作的操作情况和作用情况对目标挣脱操作执行进行控制,保证清洁机器人可从障碍物上挣脱下来同时避免不必要的重复执行目标挣脱操作,以节省清洁机器人的耗能。
进一步的,在本实施例的一实现方式中,所述获取所述清洁机器人的操作特征参数的步骤包括:累计所述清洁机器人向所述第二行进方向行进的行进次数或第二时长。
其中,第二行进方向可以为前进或后退,具体的,累计清洁机器人向第二行进方向行进的行进次数或第二时长,具体可以为清洁机器人前进的次数或时长,或者清洁机器人后退的次数或时长。
在本实施例中,在首次检测到清洁机器人的状态信息为第一状态时,可初始化行进次数为0,在后续清洁机器人每执行一次向第二行进方向行进的操作,可将行进次数累加一次,将当前累计得到的行进次数作为清洁机器人的操作特征参数。
在本实施例中,在首次检测到清洁机器人的状态信息为第一状态时,可初始化计时时长为0,在后续清洁机器人开始执行向第二行进方向行进的操作时开始计时,直至清洁机器人最后执行向第二行进方向行进的操作的时刻为目标时刻,将计时时刻与目标时刻之间的时间间隔作为这里的第二时长。
基于上述得到的行进次数或第二时长,所述根据所述操作特征参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:若所述行进次数大于第一次数阈值,或所述第二时长大于预设时长阈值,则控制所述清洁机器人停止执行所述目标挣脱操作。
第一次数阈值和预设时长阈值具体数值可根据实际情况进行设置。
这里在清洁机器人沿第二行进方向行进次数过多或时间过长时,清洁机器人无法自行从障碍物上挣脱下来,此时可停止清洁机器人继续执行挣脱操作,以避免清洁机器人不必要的耗能。
在其他实施例中,操作特征参数还可包括所述清洁机器人在预设时长内行进的距离变化值。若距离变化值小于预设距离阈值,可控制所述清洁机器人重新执行目标挣脱操作。
进一步的,在本实施例的另一实现方式中,所述获取所述清洁机器人的姿态变化参数的步骤包括:
在所述清洁机器人一边向所述第一行进方向行进,一边按照所述目标转向方向进行转向的过程中,获取所述清洁机器人的初始姿态参数和当前姿态参数;所述初始姿态参数为所述清洁机器人首次进入所述第一状态时的姿态参数;确定所述当前姿态参数与所述初始姿态参数之间的差值绝对值,所述姿态变化参数包括所述差值绝对值。
具体的,在本实施例中,在清洁机器人首次进入第一状态时记录其初始翻滚角作为初始姿态参数,在所述清洁机器人一边向所述第一行进方向行进,一边按照所述目标转向方向进行转向的过程中实时检测当前翻滚角作为当前姿态参数。将初始翻滚角与当前翻滚角之间的差值绝对值作为清洁机器人的姿态变化参数。
基于这里得到的清洁机器人的当前姿态参数与初始姿态参数之间的差值绝对值作为姿态变化参数,所述根据所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤,包括:若所述当前姿态参数与初始姿态参数之间的差值绝对值大于或等于第一数值,表明清洁机器人已成功从障碍物上挣脱下来,控制所述清洁机器人结束所述目标挣脱操作,以避免不必要的挣脱操作浪费能耗,并可使清洁机器人尽快恢复到正常运行;若当前姿态参数与初始姿态参数之间的差值绝对值小于第一数值,表明清洁机器人尚未从障碍物上挣脱下来,控制所述清洁机器人重新执行所述目标挣脱操作,从而通过多次挣脱操作提高清洁机器人从障碍物上挣脱下来的成功率。
进一步的,在本实施例的又一实现方式中,基于上述得到的清洁机器人的当前姿态参数与初始姿态参数之间的差值绝对值作为姿态变化参数,所述获取所述清洁机器人的操作特征参数;根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:累计所述清洁机器人按照所述目标转向方向进行转向的转向次数;若所述转向次数到达第三次数阈值、且所述当前姿态参数与所述初始姿态参数之间的差值绝对值小于第二数值,则将所述目标转向方向的反方向作为新的目标转向方向,将当前姿态参数作为新的初始姿态参数,基于所述新的目标转向方向和所述新的初始姿态参数,控制所述清洁机器人重新执行所述目标挣脱操作。
在本实施例中,在首次检测到清洁机器人的状态信息为第一状态时,可初始化转向次数为0,在后续清洁机器人每按照目标转向方向转向一次,可将转向次数累加一次,将当前累计得到的转向次数作为清洁机器人的操作特征参数。
第三次数阈值和第二数值的具体数值可根据实际需求进行设置。这里的第二数值和上述的第一数值可为相同或不同的数值,这里的第三次数阈值和上述的第三次数阈值可为相同或不同的数值。
具体的,在若所述转向次数到达第三次数阈值、且所述当前姿态参数与所述初始姿态参数之间的差值绝对值小于第二数值时,若清洁机器人当前的目标转向方向为向左,则将向右作为新的目标转向方向,若清洁机器人当前的目标转向方向为向右,则将向左为新的目标转向方向;在后续重新执行目标挣脱操作的过程中,按照新的目标转向方向控制清洁机器人进行转向。此外,在后续目标挣脱操作执行过程中,将后续实时检测到的清洁机器人的姿态参数作为新的当前姿态参数,基于新的当前姿态参数和新的初始姿态参数确定后续目标挣脱操作执行过程中是否维持执行目标挣脱操作或停止执行目标挣脱操作。
在本实施例中,在转向次数达到第三次数阈值而清洁机器人姿态变化较小时,表明清洁机器人按照当前目标转向方向进行挣脱时无法有效从障碍物上挣脱下来,此时将目标转向方向的反方向作为新的转向方向和当前姿态参数作为新的初始姿态参数后重新执行目标挣脱操作,有利于提高清洁机器人从障碍物上挣脱下来的成功率。
进一步的,在本实施例的再一实现方式中,基于上述得到的清洁机器人的当前姿态参数与初始姿态参数之间的差值绝对值作为姿态变化参数,所述获取所述清洁机器人的操作特征参数;根据所述操作特征参数和/或所述姿态变化参数判断是否控制所述清洁机器人重新执行所述目标挣脱操作或者停止所述目标挣脱操作的步骤包括:
若所述当前姿态参数与所述初始姿态参数之间的差值绝对值小于预设数值,控制所述清洁机器人一边向第二行进方向行进,一边按照目标转向方向进行转向;
控制所述清洁机器人重新执行所述目标挣脱操作;并累计执行所述目标挣脱操作的挣脱次数;
若所述挣脱次数大于第二次数阈值,控制所述清洁机器人停止执行所述目标挣脱操作。
例如,清洁机器人向前进方向前进并按照目标转向方向转向的过程中,若检测到的当前姿态参数与初始姿态参数之间的差值绝对值小于预设数值(如当前翻滚角和初始翻滚角之间的差值绝对值小于预设角度数值),表明清洁机器人姿态变化较小,未能从障碍物上挣脱下来,此时清洁机器人向后退方向后退并按照目标转向方向转向以使清洁机器人可从障碍物上挣脱下来。此后,可重新执行目标挣脱操作,将目标挣脱操作对应的挣脱次数累加一次,在累加得到的挣脱次数大于第二次数阈值时,表明挣脱次数足够多,此时可结束执行目标挣脱操作。
在本实施例中,在清洁机器人沿某一方向行进且以目标转向方向转向的过程中,若其姿态变化较小,则切换至另一个方向行进并以目标转向方向转向,并重新执行挣脱操作,有利于提高清洁机器人从障碍物上挣脱下来的成功率。并且,在累计挣脱次数足够大时,清洁机器人还未能挣脱下来,清洁机器人停止继续挣脱,有利于避免不必要的耗能。
以下列举两个例子,以更好的理解上述实施例中涉及的清洁机器人的控制方法:
在检测到清洁机器人被卡住时,可先将机器人进入卡住状态时的转向方向的反方向确定为清洁机器人的目标转向方向K,然后判断清洁机器人前方是否有足够空间可以前进,若未有足够空间可以前进,则清洁机器人以一定速度后退一段时间,如果由于打滑不能后退,则清洁机器人可顺时针或逆时针转动预设角度后再执行后退操作,直至清洁机器人后退至其前方具有足够的空间。其中,在清洁机器人以一定速度后退一段时间之后可统计其后退次数,在后退次数小于预设次数时,则可再次判断判断清洁机器人前方是否有足够空间可以前进,基于判断结果按照上述方式执行,在后退次数大于或等于第一预设次数时,可结束挣脱。
在清洁机器人前方有足够空间可以前进时,可记录首次进入卡住状态时的初始翻滚角,控制清洁机器人以目标转向方向K一边转向一边前进,在差值绝对值大于预设数值时,可确定清洁机器人挣脱成功;在当前翻滚角度和清洁机器人首次被卡住时的初始翻滚角的差值绝对值小于预设数值时,可控制清洁机器人以目标转向方向K一边转向一边后退,可获取清洁机器人的挣脱次数,若挣脱次数大于第二预设次数时,可结束挣脱;否则可重新确定清洁机器人的目标转向方向K,重复上述过程。
其中,目标转向方向K的确定方式如下:(1)首先,选择卡住时转向方向t的反方向作为目标转向方向K,并记录卡住时机器人相对于行进方向的旋转角度a;(2)如果清洁机器人向K方向旋转的旋转角度b相较于角度a大于第一数值,则选择原目标转向方向K的反方向作为新的目标转向方向K,并记录此时机器人新的旋转角度a;(3)如果清洁机器人向一个方向转向一定的次数,并且当前的旋转角度c都和旋转角度a之间的差值小于第二数值,则选择原目标转向方向K的反方向作为新的目标转向方向K,并记录此时机器人新的旋转角度a。
进一步的,基于上述任一实施例,本申请还提出清洁机器人的控制方法再另一实施例,在本实施例中,上述的步骤S10包括:
步骤S11,在当前时刻之前的目标时长内所述清洁机器人存在越障操作时,获取所述越障操作前后所述清洁机器人的位置变化参数;
目标时长可根据实际需求进行设置。位置变化参数具体可以是位置变化幅度、位置变化率等。
进一步的,获取目标时长内越障操作的操作次数,若次数大于或等于预设次数,则获取这里的位置变化参数,此时位置变化参数为多次越障操作执行之前到当前时刻对应的清洁机器人位置变化的特征参数。
具体的,在本实施例中,检测到清洁机器人处于打滑状态时可执行这里的步骤S11。例如,可在每次检测到清洁机器人处于打滑状态时,先控制清洁机器人停止运行预设时长,使其当前姿势稳定,此时可记录清洁机器人的位置信息,并控制清洁机器人执行越障操作。在执行越障操作之后,若再次触发打滑,则再次按照上述方式记录清洁机器人的位置信息。并且在每次检测到清洁机器人处于打滑状态时,若清洁机器人在当前时刻之间目标时长内执行越障次数大于或等于预设次(如两次),则可获取目标时长内对应记录的至少两个位置信息,根据至少两个位置信息确定这里的位置变化参数。
步骤S12,根据所述位置变化参数确定所述状态信息。
具体的,不同位置状态参数对应不同的状态信息。
具体的,若所述位置变化参数小于或等于预设阈值,则确定所述状态信息为所述第一状态;若所述位置变化参数大于所述预设阈值,则确定所述状态信息为所述第二状态。
这里在清洁机器人执行越障操作前后的位置变化不大时,表明清洁机器人障碍物卡住了导致无法成功越障,此时可认为清洁机器人处于第一状态,则可通过后续的步骤S20使清洁机器人障碍物上挣脱下来,在步骤S20之后,可继续控制清洁机器人执行越障操作,以提高清洁机器人越障的成功率。在清洁机器人执行越障操作前后的位置变化较大时,表明清洁机器人相对于障碍物可移动,此时,可无需执行步骤S20。这里,越障操作前后的清洁机器人的位置变化可实现对第一状态和第二状态的准确表征。
此外,在另一实施例中,所述清洁机器人设有检测模块,所述获取所述清洁机器人相对于目标障碍物的状态信息的步骤包括:获取所述检测模块的障碍物探测信号和所述清洁机器人的运动信息;根据所述障碍物探测信号和所述运动信息确定所述状态信息。
具体的,障碍物探测信号可具体包括障碍物距离、是否与障碍物发生碰撞、障碍物类型、障碍物属性信息(如形状等)中至少一者。运动信息包括清洁机器人移动或打滑等。不同的障碍物探测信号和不同的运行信息可对应表征不同的清洁机器人相对于目标障碍物的状态。基于此,可通过障碍物探测信号和运动信息实现对清洁机器人相对于目标障碍物状态的准确表征。在本实施例中,若所述障碍物探测信号存在碰撞特征信号、且所述运动信息为所述清洁机器人处于打滑状态,则确定所述状态信息为所述第一状态。这里清洁机器人上的检测模块的障碍物探测信号存在碰撞特征信号时,表明清洁机器人与目标障碍物发生碰撞并且打滑,此时可认为清洁机器人被卡住,确定清洁机器人为第一状态,从而通过碰撞和打滑的识别实现对第一状态的准确识别。
此外,为了实现上述目的,本申请还提出一种清洁机器人的控制装置,该清洁机器人的控制装置包括:
信息获取模块,所述信息获取模块用于获取所述清洁机器人相对于目标障碍物的状态信息;
执行模块,所述执行模块用于当所述状态信息为第一状态时,控制所述清洁机器人执行目标挣脱操作,以使所述清洁机器人从第一状态切换至第二状态;
其中,所述第一状态为所述清洁机器人限位于所述目标障碍物的状态,所述第二状态为所述清洁机器人与所述目标障碍物解除限位的状态。
在本实施例中,清洁机器人的控制装置各硬件模块所执行的步骤的细化方案及其技术效果具体可参见上述清洁机器人的控制方法中对应步骤的细化方案及其技术效果,在此不作赘述。
此外,为了实现上述目的,本申请还提出一种清洁机器人的控制程序,所述清洁机器人控制程序被执行时如上清洁机器人的控制方法任一实施例的相关步骤。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有清洁机器人的控制程序,所述清洁机器人的控制程序被处理器执行时实现如上清洁机器人的控制方法任一实施例的相关步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,清洁机器人,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。