机器人被困检测及脱困方法
技术领域
本发明涉及机器人运动控制技术领域,特别是涉及一种机器人被困检测及脱困方法。
背景技术
自主移动机器人是一类利用传感器自主探测周围环境、利用控制器来决定本体的运动、,利用执行机构(如轮子)来实现上述运动的机器人。随着经济和科技的发展,越来越多的清洁机器人已经在家庭得到应用。现有的清洁机器人如在家庭环境中凳子的四条脚、茶几的入口等狭窄区域,清洁机器人若进入这些区域,由于累计误差的存在、碰撞传感器和红外传感器的分辨率低,机器人想从原来的入口离开,只要略有偏差,就容易撞上边角,导致被困于此狭窄区域,而不能清扫家庭中的其他地方。
传统的技术方案在进入狭窄区域后,往往需要很长时间才能检测被困于此,并需要很长时间才能脱离。比如部分机器人采用弓形清扫和沿边清扫结合的方式来缓解狭窄区域被困的问题,即弓形清扫一段时间后,立即切换到沿边清扫方式,此时若机器人被困于狭窄区域,则有可能顺着障碍物的轮廓行走脱离此区域。因此这种方式不能及时发现机器被困于狭窄区域,也无法判断是否能真的脱离此狭窄区域。
另外一些清洁机器人利用精密的距离传感器(如激光雷达)来探测周围的障碍物轮廓,由于其精度高,虽然机器人存在累计误差和打滑情况,但只要狭窄区域入口并未真正堵住,机器人就能调整姿态,从入口离开此区域。但是这种方式的距离传感器价格昂贵,只能在少部分机器上使用。
发明内容
基于此,有必要针对上述问题,提供一种机器人被困检测及脱困方法。
一种机器人被困检测方法,所述方法包括:
建立栅格地图,所述机器人行进过程中实时更新所述栅格地图,获取所述机器人当前位置在所述栅格地图下的第一栅格坐标和目标位置在所述栅格地图下的第二栅格坐标,所述目标位置为所述机器人检测过的位置;
根据所述第一栅格坐标和所述第二栅格坐标判断所述机器人所处的区域是否为封闭状态;
响应于所述机器人所处的区域为封闭状态,则判断所述第一栅格坐标所在的连通区域的数量;
响应于所述第一栅格坐标所在的连通区域大于或等于两个,则获取所述第一栅格坐标所处区域的封闭清扫面积;
根据所述封闭清扫面积判断所述机器人是否被困于狭窄区域。
在其中一个实施例中,所述根据所述封闭清扫面积判断所述机器人是否被困于狭窄区域的步骤,包括:
判断所述封闭清扫面积是否小于第一预设阈值;
若是,则判定所述机器人被困于狭窄区域。
在其中一个实施例中,所述方法还包括:
响应于所述封闭清扫面积大于所述第一预设阈值,则判断所述第一栅格坐标所在的连通区域的面积与最大连通区域的面积之间的比值是否小于第二预设阈值;
若是,则判定所述机器人被困在狭窄区域。
在其中一个实施例中,所述第二预设阈值为0.3-0.4。
在其中一个实施例中,所述根据所述第一栅格坐标和所述第二栅格坐标判断所述机器人所处的区域是否为封闭状态的步骤,包括:
判断所述第一栅格坐标和所述第二栅格坐标之间是否具有路径;
响应于所述第一栅格坐标和所述第二栅格坐标之间不具有路径,则判定所述机器人所处的区域为封闭状态。
基于同样的发明构思,本申请还提供一种机器人脱困方法,所述方法包括:
通过前述所述的机器人被困检测方法,确定所述机器人被困在狭窄区域;
控制所述机器人切换至沿边模式;其中,所述沿边模式下,所述机器人与障碍物或者栅格地图边界之间的距离保持一定;
于所述沿边模式下,所述机器人按照预设的沿边方向进行移动;
在移动过程中实时更新所述机器人在所述栅格地图下的栅格坐标,并根据更新后的所述栅格坐标判断所述机器人是否脱困。
在其中一个实施例中,所述根据更新后的栅格坐标判断所述机器人是否脱困的步骤,包括:
根据所述更新后的所述栅格坐标获取所述机器人所处的第一连通区域;
判断所述第一连通区域是否与所述机器人记录到的外部连通区域连通;
响应于所述第一连通区域与所述机器人记录到的外部连通区域连通,则脱困成功。
在其中一个实施例中,所述方法还包括:
若所述第一连通区域与所述机器人记录到的最大栅格地图区域之间的间隔在一预设距离,则判定所述机器人脱困成功。
在其中一个实施例中,所述脱困方法还包括:
响应于所述机器人按照当前的沿边方向仍然未能脱困成功;
则控制所述机器人以与当前沿边方向相反的方向继续进行移动;
记录所述机器人在移动过程中沿边行走的第一累计角度。
在其中一个实施例中,所述机器人包括红外传感器和碰撞传感器;所述脱困方法还包括:
响应于记录到的第一累计角度的绝对值大于预设阈值,则控制所述红外传感器关闭;
通过所述碰撞传感器进行沿边移动,在所述碰撞传感器移动过程中实时更新所述机器人在所述栅格地图下的栅格坐标、并记录所述机器人在移动过程中沿边行走的第二累计角度,并根据更新后的所述栅格坐标和所述第二累计角度判断所述机器人是否脱困;
响应于记录到的第二累计角度的绝对值大于同一预设阈值,则判定所述机器人所处的区域被封死,并控制所述机器人停止工作。
上述机器人被困检测及脱困方法,通过建立栅格地图,先判断机器人是否处于封闭状态,然后获取机器人所在的连通区域的数量,最后获取机器人的封闭清扫面积,并根据封闭清扫面积来判断机器人是否被困在狭窄区域这样层层递进的方式来检验机器人是否被困在狭窄区域;相比于传统的被困检测方法来说,可以快速、及时的检测出机器人是否被困,从而提高机器人的有效清扫效率,降低系统的能量损耗;同时此方法不需要机器人具备精密的距离传感器(如激光雷达),只需要普通的红外或者碰撞传感器即可,所以可以降低机器人的成本。
附图说明
图1为一实施例中的机器人被困检测方法流程示意图;
图2为图1中步骤S110的具体实现方法流程示意图;
图3为图1中步骤S104的具体实现方法流程示意图;
图4为一实施例中的机器人脱困方法流程示意图;
图5为图4中步骤S408的具体实现方法流程示意图;
图6为机器人初始位置时建立的栅格地图;
图7为机器人按照规划的清洁路径进行移动时建立的栅格地图;
图8为机器人按照规划的清洁路径移动到房间门口时建立的栅格地图;
图9为机器人从门口进入狭窄区域进行清洁时建立的栅格地图;
图10为机器人清洁完狭窄区域后建立的栅格地图;
图11为一实施中的机器人脱困示意图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的较佳实施方式。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本申请的公开内容理解的更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。
一般的扫地机器人进入狭窄区域后,往往需要很长时间才能检测被困于此,并需要很长时间才能脱离。比如部分机器人采用弓形清扫和沿边清扫结合的方式来缓解狭窄区域被困的问题,即弓形清扫一段时间后,立即切换到沿边清扫方式,此时若机器人被困于狭窄区域,则有可能顺着障碍物的轮廓行走脱离此区域。因此这种方式不能及时发现机器被困于狭窄区域,也无法判断是否能真的脱离此狭窄区域。
另外一些清洁机器人利用精密的距离传感器(如激光雷达)来探测周围的障碍物轮廓,由于其精度高,虽然机器人存在累计误差和打滑情况,但只要狭窄区域入口并未真正堵住,机器人就能调整姿态,从入口离开此区域。但是这种方式的距离传感器价格昂贵,只能在少部分机器上使用。
基于此,本申请希望提供一种能够解决上述技术问题的技术方案。本申请所提供的技术方案将在以下实施例中详细说明。
请先参阅图6、7、8、9、10、11。该栅格地图中,RB表示机器人,L1表示第一参考线,带有箭头的虚线表示机器人RB的清扫路线,带有箭头的实线表示机器人RB的脱困路线,A表示栅格地图的边界,B表示障碍物,C表示机器人RB上次记录为障碍不可通过,但实际为可以通过的区域,D表示机器人RB的传感器探测认为能去的区域,E表示机器人RB未探测区域,空白部分表示已经清扫的区域,Dr表示门,A1表示第一区域,A2表示第二区域,T表示目标位置。应当说明的是,本申请中B可能会变化(由于移动障碍或者误差)。
请先参阅图7-图10,如图7所示,机器人RB在清扫过程中,一边清扫一边建立栅格地图,其自带的传感器可以感应前方及左右的共五个栅格坐标(阴影部分),确认相应位置是否有障碍物,若存在障碍物则标识为B,若无障碍物则标识为D。如图8所示,机器人RB行进到门附近,门Dr所在的栅格单元标识为D,表示可以行进,并经由该门Dr进入到第一区域A1。如图9所示,机器人进入到第一区域A1后,由于传感器误差将半掩的门Dr感应为障碍物B/或进入后由于门Dr被关闭使得该栅格单元被感应为障碍物B。由于机器人RB之前由该栅格位置进入第一区域A1,后续才感应到该栅格单元为障碍物B,因而将栅格单元标注为C。如图10所示,机器人RB完成第一区域A1的清扫,其传感器感应到周围的栅格单元要么被清扫,要么为障碍物B或者边界A,因而准备寻找新的区域进行清扫。此时将寻找之前未清扫但已探测过的栅格单元D作为目标位置T,从而开始进行机器人的被困检测和脱困过程。
请同时参阅图1和图7,本申请提供一种机器人被困检测方法。该方法可以包括步骤S102-S110。
步骤S102,建立栅格地图,所述机器人行进过程中实时更新所述栅格地图,获取所述机器人当前位置在所述栅格地图下的第一栅格坐标和目标位置在所述栅格地图下的第二栅格坐标,所述目标位置为所述机器人检测过的位置。
具体地,通常扫地机器人在执行清扫作业的时候,均会按照预设的路径规划进行行走,通过建立栅格地图来计算扫地机器人行走的栅格数,从而可以实现构建地图,记录清扫轨迹,计算清扫面积等功能。本申请也通过建立栅格地图来进行路径规划。在本具体实施例中,机器人开始清扫前,会建立一个带边界的地图,边界标识为A。机器人在清扫过程中,一边清扫一边建立栅格地图,其自带的传感器可以感应前方及左右的共五个栅格坐标(阴影部分),确认相应位置是否有障碍物,若存在障碍物则标识为B,若无障碍物则标识为D。获取机器人当前在所述栅格地图下的位置坐标,记为第一栅格坐标(图未示),以及目标位置在所述栅格地图下的位置坐标,记为第二栅格坐标(图未示)。目标位置为所述机器人检测过、且检测无障碍物的位置,通常,机器人之所以会出现这样一个判断是因为机器人已清扫完当前区域,需要寻找新的清扫区域。
步骤S104,根据所述第一栅格坐标和所述第二栅格坐标判断所述机器人所处的区域是否为封闭状态。
具体地,该步骤S104可以包括子步骤S1042-S1046。
步骤S1042,判断所述第一栅格坐标和所述第二栅格坐标之间是否具有路径。
步骤S1044,响应于所述第一栅格坐标和所述第二栅格坐标之间不具有路径,则判定所述机器人所处的区域为封闭状态。
具体地,如果所述第一栅格坐标和所述第二栅格坐标之间不具有路径,则表明机器人所处的区域为封闭状态。
步骤S106,响应于所述机器人所处的区域为封闭状态,则判断所述第一栅格坐标所在的连通区域的数量。
步骤S108,响应于所述第一栅格坐标所在的连通区域大于或等于两个,则获取以所述第一栅格坐标为中心,向外层层扩散的封闭清扫面积。
具体地,根据前述步骤确定机器人RB所处的区域为封闭状态之后,可以开始搜索整个栅格地图,获取第一栅格坐标所在的连通区域的数量。其中,连通区域指该区域内所有点可以互相连通,外部为障碍或者地图边界的一个区域。如果发现连通区域大于或等于两个,说明还有其他需要清扫的区域;如果当该连通区域为唯一时,说明机器人已经处于唯一的清扫环境下,不需要再跨越到其他区域清扫。然后获取以所述第一栅格坐标为中心,向外层层扩散的封闭清扫面积。
步骤S110,根据所述封闭清扫面积判断所述机器人是否被困于狭窄区域。
具体地,该步骤S110可以包括子步骤S112-S114。
步骤S112,判断所述封闭清扫面积是否小于第一预设阈值。
步骤S114,若是,则判定所述机器人被困于狭窄区域。
具体地,判断获取的封闭清扫面积与第一预设阈值的大小,本申请中,第一预设阈值可以为2平方米,如果获取的封闭清扫面积小于2平方米,则判定机器人RB被困于狭窄区域。
在一个实施例中,该机器人被困检测方法还可以包括步骤:
响应于所述封闭清扫面积大于所述第一预设阈值,则判断所述第一栅格坐标所在的连通区域的面积与最大连通区域的面积之间的比值是否小于第二预设阈值;
若是,则判定所述机器人被困在狭窄区域。
具体地,如果获取的封闭清扫面积大于2平方米,但是第一栅格坐标所在的连通区域的面积与最大连通区域的面积之间的比值又小于第二预设阈值,本申请中,第二预设阈值可以为0.3-0.4。因为,机器人RB当前所在的连通区域相比最大连通区域的面积来说,小得多,通过机器人RB当前所在的连通区域相比最大连通区域的面积来进行判定也可以判定机器人被困在狭窄区域。如果所述第一栅格坐标所在的连通区域的面积与最大连通区域的面积之间的比值大于0.4,则也可以表明机器人所处的区域不为狭窄区域。
上述机器人被困检测方法,通过建立栅格地图,先判断机器人是否处于封闭状态,然后获取机器人所在的连通区域的数量,最后获取机器人的封闭清扫面积,并根据封闭清扫面积来判断机器人是否被困在狭窄区域这样层层递进的方式来检验机器人是否被困在狭窄区域,可以快速、及时的检测出机器人是否被困,从而提高机器人的有效清扫效率,降低系统的能量损耗;同时此方法不需要机器人具备精密的距离传感器(如激光雷达),只需要普通的红外或者碰撞传感器即可,所以可以降低机器人的成本。
基于同样的发明构思,请参阅图4,本申请还提供一种机器人脱困方法,该方法可以包括步骤:S402-S408。
步骤S402,通过前述所述的机器人被困检测方法,确定所述机器人被困在狭窄区域。
具体地,可辅助参阅图9,机器人RB按照预设的路径规划进行清扫作业,开始时,机器人RB从狭窄入口(Dr)进入狭窄区域(第一区域A1)进行清扫,此时入口未封闭,机器人RB在狭窄区域清扫的过程中,因移动障碍、误差等原因探测导致狭窄入口被封闭,机器人将其进行标记为状态C;然后此时通过前述的机器人被困检测方法,确定机器人被困在狭窄区域。
步骤S404,控制所述机器人切换至沿边模式;其中,所述沿边模式下,所述机器人与障碍物或者栅格地图边界之间的距离保持一定。
具体地,可先设定机器人RB中的距离传感器(红外传感器)的感应阈值,不停调整机器位置使得该阈值为恒定值,使机器人RB与障碍物或者栅格地图边界之间的距离保持一定,(通常为0.5厘米-1.5厘米),从而实现模式的切换。
步骤S406,于所述沿边模式下,所述机器人按照预设的沿边方向进行移动。
具体地,作为机器人脱困方法中比较重要的沿边方向,可辅助参阅图11,本申请中预设的沿边方向为所述机器人RB当前位置指向瓶颈的方向偏离第一参考线或第二参考线的方向。如图11所示,L1为第一参考线,也就是垂直方向的直线,其中,所述瓶颈为狭窄区域的入口,也就是C,所述第一参考线与所述第二参考线垂直,相应的,第二参考线为水平方向的直线。以图11所示为例,机器人RB当前位置与入口C的连线方向相对于第一参考线L1来说,位于第一参考线L1的左边,所以,可以设置机器人RB的沿边方向为逆时针旋转(位于右边设置为顺时针旋转)。
步骤S408,在移动过程中实时更新所述机器人在所述栅格地图下的栅格坐标,并根据更新后的所述栅格坐标判断所述机器人是否脱困。
具体地,该步骤S408还可以包括子步骤S4082-S4086。
步骤S4082,根据所述更新后的所述栅格坐标获取所述机器人所处的第一连通区域。
步骤S4084,判断所述第一连通区域是否与所述机器人记录到的外部连通区域连通。
步骤S4086,响应于所述第一连通区域与所述机器人记录到的外部连通区域连通,则脱困成功。
具体地,当机器人RB按照前述确定的沿边方向进行移动的过程中,实时更新所述机器人RB在所述栅格地图下的栅格坐标,并且根据更新后的所述栅格坐标获取所述机器人RB所处的第一连通区域,然后判断所述第一连通区域是否与所述机器人RB记录到的外部连通区域连通,如果发现,第一连通区域与外部区域连通,则表明脱困成功。
在一个实施例中,该机器人脱困方法还可以包括步骤:
若所述第一连通区域与所述机器人记录到的最大栅格地图区域之间的间隔在一预设距离,则判定所述机器人脱困成功。
具体地,在遇到狭窄区域的出口被打开(例如门Dr被开启),机器人RB从门Dr进入另外一个未在当前栅格地图记录的区域(例如第二区域A2)下时,也就是机器人RB有可能发现了一个新区域,此时,进入该新区域A2也可以视为脱困,本申请将新发现的区域与所述机器人RB记录到的最大栅格地图区域之间的间隔设定在一预设距离作为判定机器人RB是否进入新区域的一个依据,该预设距离可以为60厘米,如果大于或者等于60厘米,则表明机器人RB进入了一个新的区域,此种情况也可以视为脱困。
在一个实施例中,该脱困方法还可以包括以下步骤:
响应于所述机器人按照当前的沿边方向仍然未能脱困成功;
则控制所述机器人以与当前沿边方向相反的方向继续进行移动;
记录所述机器人在移动过程中沿边行走的第一累计角度。
具体地,在机器人RB按照当前的沿边方向仍然未能脱困成功的情况下,则控制机器人RB反向沿边(即与前面沿边方向相反的方向),同时纪录机器人在狭窄区域的沿边行走的累计角度,该累计角度可以记为第一累计角度。
进一步地,所述脱困方法还可以包括步骤:
响应于记录到的第一累计角度的绝对值大于预设阈值,则控制所述红外传感器关闭;
通过所述碰撞传感器进行沿边移动,在所述碰撞传感器移动过程中实时更新所述机器人在所述栅格地图下的栅格坐标、并记录所述机器人在移动过程中沿边行走的第二累计角度,并根据更新后的所述栅格坐标和所述第二累计角度判断所述机器人是否脱困;
响应于记录到的第二累计角度的绝对值大于同一预设阈值,则判定所述机器人所处的区域被封死,并控制所述机器人停止工作。
具体地,在机器人RB反向沿边的过程中,若记录到的第一累计角度的绝对值>360°+A(A为保证算法鲁棒性的边缘角度,一般为90°左右,以保证机器人RB能刚好沿墙体一周多点),则关闭机器人RB的红外传感器,利用机器人RB的碰撞传感器进行沿边,同时实时更新机器人RB的栅格坐标,并根据更新的栅格坐标获取连通区域,判断该连通区域是否与外部区域连通;若记录的第二累计角度的绝对值>360°+A,并且仍然未脱困成功,则说明该区域已被人为封死,则控制机器人RB停机。此流程可以避免机器人RB长时间进行无用的脱困操作,导致机器人RB系统的能量损耗。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。