发明内容
有鉴于此,本发明实施例提供了一种墙边角的识别方法、装置、终端设备及存储介质,以解决现有技术中扫地机器人无法准确识别墙边角的问题。
本发明实施例的第一方面提供了一种墙边角的识别方法,包括:
在机器人沿第一墙边工作的过程中,确定所述第一墙边的墙边方向;
根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域;
检测是否在所述至少两个检测区域接收到预设的传感器信号;
若在所述至少两个检测区域接收到预设的传感器信号,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角。
可选地,还包括:
统计所述机器人的工作时间;
当所述工作时间超过预设时间阈值时,判断在所述机器人预设方位的障碍检测传感器是否检测到障碍物;
若在所述预设方位的障碍检测传感器检测到障碍物,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角;
若在所述预设方位的障碍检测传感器未检测到障碍物,则执行所述确定所述第一墙边的墙边方向的步骤。
可选地,所述确定所述第一墙边的墙边方向的步骤包括:
获取所述机器人与所述第一墙边的碰撞数据,所述碰撞数据包括至少三次碰撞记录;
采用所述至少三次碰撞记录,确定所述第一墙边的至少两个方向角度;
根据所述至少两个方向角度,确定所述第一墙边的墙边方向。
可选地,所述碰撞记录包括碰撞时间和碰撞位置,所述采用所述至少三次碰撞记录,确定所述第一墙边的至少两个方向角度的步骤包括:
根据碰撞时间顺序,分别确定任一碰撞位置与上一次碰撞位置之间的距离是否大于最小距离阈值,且小于最大距离阈值;
若否,则舍弃所述碰撞位置对应的碰撞记录;
若是,则分别将所述任一碰撞位置及其上一次碰撞位置直线连接,以所述直线的方向作为所述第一墙边的方向角度。
可选地,所述根据所述至少两个方向角度,确定所述第一墙边的墙边方向的步骤包括:
若相邻的至少两个方向角度之间的角度差值小于预设角度阈值,则以所述至少两个方向角度的平均值所对应的方向为所述第一墙边的墙边方向。
可选地,所述至少两个检测区域包括第一检测区域和第二检测区域,所述根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域的步骤包括:
依据所述第一墙边的墙边方向,确定与所述第一墙边的墙边方向垂直的第一方向;
根据所述第一方向,确定与所述第一方向具有预设第一角度差的第二方向,和,与所述第一方向具有预设第二角度差的第三方向;
根据所述第二方向和第三方向,确定所述机器人的第一检测区域和第二检测区域。
可选地,在所述识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角的步骤后,还包括:
控制所述机器人按照所述墙边角对应的工作模式进行工作。
本发明实施例的第二方面提供了一种墙边角的识别装置,包括:
墙边方向确定模块,用于在机器人沿第一墙边工作的过程中,确定所述第一墙边的墙边方向;
检测区域确定模块,用于根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域;
信号检测模块,用于检测是否在所述至少两个检测区域接收到预设的传感器信号;
墙边角识别模块,用于若在所述至少两个检测区域接收到预设的传感器信号,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角。
可选地,所述装置还包括:
工作时间统计模块,用于统计所述机器人的工作时间;
障碍物检测判断模块,用于当所述工作时间超过预设时间阈值时,判断在所述机器人预设方位的障碍检测传感器是否检测到障碍物;
墙边角识别模块,用于若在所述预设方位的障碍检测传感器检测到障碍物,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角;
调用模块,用于若在所述预设方位的障碍检测传感器未检测到障碍物,则调用所述墙边方向确定模块。
可选地,所述墙边方向确定模块包括:
碰撞数据获取子模块,用于获取所述机器人与所述第一墙边的碰撞数据,所述碰撞数据包括至少三次碰撞记录;
方向角度确定子模块,用于采用所述至少三次碰撞记录,确定所述第一墙边的至少两个方向角度;
墙边方向确定子模块,用于根据所述至少两个方向角度,确定所述第一墙边的墙边方向。
可选地,所述碰撞记录包括碰撞时间和碰撞位置,所述方向角度确定子模块包括:
距离确定单元,用于根据碰撞时间顺序,分别确定任一碰撞位置与上一次碰撞位置之间的距离是否大于最小距离阈值,且小于最大距离阈值;
碰撞记录舍弃单元,用于若否,则舍弃所述碰撞位置对应的碰撞记录;
方向角度确定单元,用于若是,则分别将所述任一碰撞位置及其上一次碰撞位置直线连接,以所述直线的方向作为所述第一墙边的方向角度。
可选地,所述墙边方向确定子模块包括:
墙边方向确定单元,用于若相邻的至少两个方向角度之间的角度差值小于预设角度阈值,则以所述至少两个方向角度的平均值所对应的方向为所述第一墙边的墙边方向。
可选地,所述检测区域确定模块包括:
第一方向确定子模块,用于依据所述第一墙边的墙边方向,确定与所述第一墙边的墙边方向垂直的第一方向;
第二方向和第三方向确定子模块,用于根据所述第一方向,确定与所述第一方向具有预设第一角度差的第二方向,和,与所述第一方向具有预设第二角度差的第三方向;
检测区域确定子模块,用于根据所述第二方向和第三方向,确定所述机器人的第一检测区域和第二检测区域。
可选地,所述装置还包括:
控制模块,用于控制所述机器人按照所述墙边角对应的工作模式进行工作。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述墙边角的识别方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述墙边角的识别方法的步骤。
与背景技术相比,本发明实施例包括以下优点:
本发明实施例,通过在机器人沿第一墙边工作的过程中,确定第一墙边的墙边方向,然后依据第一墙边的墙边方向,确定机器人的至少两个检测区域,并检测是否在上述至少两个检测区域接收到预设的传感器信号,若是,则可以识别机器人到达由第一墙边以及与第一墙边相邻的第二墙边形成的墙边角。本实施例通过识别机器人工作过程中墙边角,使得机器人能够按照对应的工作方式进行工作,提高了机器人工作的有效性。以扫地机器人为例,通过识别墙边角,可以使得扫地机器人按照墙边角对应的工作模式进行清扫工作,提高了墙边角的清扫效率,提高了扫地机器人的除尘能力。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本发明。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
下面通过具体实施例来说明本发明的技术方案。
参照图1,示出了本发明一个实施例的一种墙边角的识别方法的步骤流程示意图,具体可以包括如下步骤:
S101、在机器人沿第一墙边工作的过程中,确定所述第一墙边的墙边方向;
需要说明的是,本方法可以应用于扫地机器人或其他需要对墙边角进行识别以便更好地进行工作的各类机器人或设备中。为了便于理解,本实施例以扫地机器人为例进行后续的说明和介绍。
一般地,扫地机器人的机身为无线机器,多以圆盘型为主。可以使用充电电池运作,操作方式以遥控器或是机器上的操作面板为主。扫地机器人机身设置有障碍检测传感器,可对障碍物进行检测,如碰到墙壁或其他障碍物,可以自行转弯,并依不同厂商或用户的设定,而走不同的路线,从而完成对规划区域的清扫。
通常,扫地机器人都支持沿墙边清扫。为了使扫地机器人更好地对两面墙边交汇处即墙边角进行清扫,在扫地机器人沿墙边清扫的过程中,可以首先确定第一墙边的墙边方向。需要说明的是,第一墙边即是扫地机器人进行清扫工作所参考的当前墙边。
在本发明实施例中,在确定第一墙边的墙边方向前,可以统计该机器人的工作时间,上述工作时间可以是指该机器人沿当前墙边进行清扫时的累计工作时间。当扫地机器人切换从一面墙切换至另一面墙后,该工作时间需要重新统计。
当上述工作时间超过预设时间阈值时,可以判断在该机器人预设方位的障碍检测传感器是否检测到障碍物,以便确定机器人当前工作的大致位置。例如,机器人是仍然沿墙边工作,还是已经达到两面墙相邻的墙边角位置等等。;
每面墙都有一定的长度,扫地机器人沿一面墙进行清扫的时间可以根据墙的长度与机器人清扫过程中的行进速率确定。因此,可以预先设定一时间阈值,当扫地机器人沿该墙边工作的时间超过上述时间阈值时,可以认为机器人即将到达墙角边。
需要说明的是,上述时间阈值可以由用户根据每面墙的长度具体设定,也可以统一设定一个数值作为该时间阈值,本实施例对此不作限定。
当扫地机器人沿当前墙边工作的时间超过上述时间阈值时,可以首先判断在机器人预设方位的障碍检测传感器是否检测到障碍物。上述预设方位的障碍检测传感器可以根据机器人的工作方向的不同而具体设定。例如,当扫地机器人按顺时针方向沿墙边工作时,上述预设方位的障碍检测传感器可以是指机器人的正前方或右前方的障碍检测传感器;而当扫地机器人按逆时针方向沿墙边工作时,上述预设方位的障碍检测传感器可以是指机器人的正前方或左前方的障碍检测传感器,本实施例对此不作限定。
当在预设方位的障碍物检测传感器检测到障碍物时,通常可以认为机器人行进到了当前墙边与相邻的另一墙边形成的墙边角处,此时,可以识别该机器人到达由第一墙边以及与第一墙边相邻的第二墙边形成的墙边角;若上述预设方位的障碍物检测传感器并未检测到障碍物,则可以执行确定第一墙边的墙边方向的步骤,通过确定第一墙边的墙边方向,来对墙边角进行识别。
在本发明实施例中,通过确定第一墙边的墙边方向可以确定扫地机器人的行进方向与该墙边之间的夹角角度。
以扫地机器人按顺时针方向沿墙边工作为例,扫地机器人可以通过左侧的传感器与左侧的第一墙边保持一定的距离,使得机器人的行进方向与第一墙边平行。
在本发明实施例中,可以通过扫地机器人与墙边的碰撞位置来确定第一墙边的墙边方向。
例如,可以记录扫地机器人最近三次与墙边发生碰撞时的碰撞位置,并按时间顺序将其标记为1、2和3,为了减少误差,上述记录需要丢弃掉距离小于最小距离阈值的碰撞位置记录;另一方面,若当前碰撞位置距离上一次的碰撞位置大于设定的允许最大距离阈值,则应当丢弃前两次的碰撞位置记录,重新从当前碰撞位置开始记录。在获得符合条件的碰撞记录1、2、3后,可以根据碰撞记录1和2的碰撞位置计算出墙边的方向1;同理,可以根据碰撞记录2和3的碰撞位置计算出墙边的方向2。然后,计算方向1和方向2之间的角度差,如果该角度差小于设定的角度阈值,则可以以方向1和方向2的平均值作为墙边的方向。
当然,以上描述仅为一种示例,本领域技术人员可以根据实际需要选择适当数量的碰撞记录进行墙边方向的计算,本实施例对此不作限定。
S102、根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域;
在本发明实施例中,当确定出第一墙边的墙边方向后,可以根据该墙边方向,进一步确定扫地机器人的至少两个检测区域。
扫地机器人的检测区域可以是指在扫地机器人上预先设定的某些区域。通常,在检测区域中可以配置有障碍检测传感器或其他类型的检测传感器,通过这些传感器,可以对扫地机器人的工作状态、所处位置等进行识别。
在本发明实施例中,上述至少两个检测区域可以包括第一检测区域和第二检测区域。
在具体实现中,可以以垂直于第一墙边的方向为第一方向,进而通过将该第一方向旋转设定的角度阈值,得到第二方向和第三方向,以第一方向和第二方向围成的区域作为第一检测区域,以第二方向和第三方向围成的区域作为第二检测区域。
S103、检测是否在所述至少两个检测区域接收到预设的传感器信号;
在本发明实施例中,上述两个检测区域中可以分别配置有障碍物检测传感器,通过检测这两个区域中的障碍物检测传感器是否接收到预设的传感器信号,可以确定在对应于这两个区域的位置中,该机器人是否检测到相应的障碍物。若在上述至少两个检测区域接收到预设的传感器信号,则可以执行步骤S104,识别该机器人到达由第一墙边以及与第一墙边相邻的第二墙边形成的墙边角。
S104、识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角。
在本发明实施例中,通过在机器人沿第一墙边工作的过程中,确定第一墙边的墙边方向,然后依据第一墙边的墙边方向,确定机器人的至少两个检测区域,并检测是否在上述至少两个检测区域接收到预设的传感器信号,若是,则可以识别机器人到达由第一墙边以及与第一墙边相邻的第二墙边形成的墙边角。本实施例通过识别机器人工作过程中墙边角,使得机器人能够按照对应的工作方式进行工作,提高了机器人工作的有效性。以扫地机器人为例,通过识别墙边角,可以使得扫地机器人按照墙边角对应的工作模式进行清扫工作,提高了墙边角的清扫效率,提高了扫地机器人的除尘能力。
参照图2,示出了本发明一个实施例的另一种墙边角的识别方法的步骤流程示意图,具体可以包括如下步骤:
S201、在机器人沿第一墙边工作的过程中,统计所述机器人的工作时间;
需要说明的是,本方法可以应用于扫地机器人中。为了识别由第一墙边和第二墙边两面墙组成的墙边角,可以首先统计该扫地机器人沿第一墙边清扫时的工作时间。
为了便于理解,本实施例以扫地机器人按顺时针方向沿墙边进行清扫工作为例进行后续的说明的介绍。
如图3所示,是本发明一个实施例的一种扫地机器人与墙边相对位置关系示意图。在图3中,1为左侧距离保持传感器,2为左前方障碍检测传感器,3为正前方障碍检测传感器,4为右前方障碍检测传感器,5为右侧距离保持传感器。上述传感器可以是反射式红外光电传感器,其中左侧传感器1和右侧传感器5处的反射式红外光电传感器分别用于顺时针方向和逆时针方向沿墙边清扫时保持与墙边一定距离而平行于墙边方向清扫;左前方障碍检测传感器2、正前方障碍检测传感器3,以及右前方障碍检测传感器4共三个反射式红外光电传感器用于前方障碍的检测。在扫地机器人的左侧和右侧还可以分别配以碰撞开关(图中未示出)以检测碰撞。当然,本实施例中以反射式红外光电传感器作为距离保持传感器和障碍检测传感器来进行描述仅为一种示例,本领域技术人员可以根据实际需要选择其他类型的传感器,例如:PSD距离检测传感器、超声波传感器、碰撞开关、TOF测距传感器等等,本实施例对此不作限定。
S202、当所述工作时间超过预设时间阈值时,判断在所述机器人预设方位的障碍检测传感器是否检测到障碍物;
在本发明实施例中,当扫地机器人按顺时针方向沿墙边工作时,预设方位可以是指扫地机器人的正前方和右前方。
因此,在扫地机器人的工作时间超过预设时间阈值时,可以首先判断在图3中的正前方障碍检测传感器3和右前方障碍检测传感器4是否检测到障碍物。
若正前方障碍检测传感器3和右前方障碍检测传感器4检测到障碍物,则可以认为扫地机器人当前已经工作至第一墙边和第二墙边交汇处的墙边角,从而可以执行步骤S210,控制该机器人按照墙边角对应的工作模式进行工作;若上述正前方障碍检测传感器3和右前方障碍检测传感器4并未检测到障碍物,则可以通过确定第一墙边的墙边方向来对墙边角进行识别和确认。
S203、获取所述机器人与所述第一墙边的碰撞数据,所述碰撞数据包括至少三次碰撞记录;
在本发明实施例中,在确定第一墙边的墙边方向时,可以首先获取扫地机器人与第一墙边的碰撞数据。通常,该碰撞数据应当包括至少三次碰撞记录,任意一次碰撞记录应当记录有本次碰撞的碰撞时间和碰撞位置。
S204、采用所述至少三次碰撞记录,确定所述第一墙边的至少两个方向角度;
在具体实现中,可以根据碰撞时间顺序,分别确定任一碰撞位置与上一次碰撞位置之间的距离是否大于最小距离阈值,且小于最大距离阈值。
如果二者之间的距离并未处于最小距离阈值和最大距离阈值范围内,则可以舍弃上述碰撞位置对应的碰撞记录,仅保留满足上述距离要求的那些碰撞记录。
保证任一碰撞位置与上一次碰撞位置之间的距离大于最小距离阈值,可以避免两个位置距离太小导致确定的方向不准确;同时,上述碰撞位置之间的距离还应当小于最大距离阈值,可以避免两个位置距离太大而得到的方向不是同一个墙边的方向。最小距离阈值和最大距离阈值均可以根据实际需要设定,本实施例对上述两个阈值的具体数值大小不作限定。
对于满足上述距离要求的那些碰撞记录,则可以分别将任一碰撞位置及其上一次碰撞位置直线连接,以该直线的方向作为第一墙边的方向角度。
需要说明的是,由于符合距离要求的碰撞记录可能包括多个,因此对应的碰撞位置也会包括多个,那么连接任一碰撞位置及其上一次碰撞位置之间的直线也就会有多条,则每一条直线对应的方向均可以看作是第一墙边的其中一个方向角度。
例如,有按照碰撞时间顺序记录的三次碰撞记录1、2和3,对应的碰撞位置分别为A、B和C三点,其中A、B两点之间的距离以及B、C两点之间的距离均满足上述距离要求,则在确定第一墙边的两个方向角度时,可以连接点A与点B形成直线AB,连接点B与点C形成直线BC,然后可以分别将直线AB和直线BC对应的方向作为第一墙边的两个方向角度。
S205、根据所述至少两个方向角度,确定所述第一墙边的墙边方向;
在本发明实施例中,在确定出至少两个方向角度后,可以计算相邻的各个方向角度之间的角度差值,判断该角度差值是否小于预设角度阈值。若若相邻的至少两个方向角度之间的角度差值小于预设角度阈值,则可以以上述至少两个方向角度的平均值所对应的方向为第一墙边的墙边方向。
例如,上述直线AB和直线BC与水平方向的直线之间的夹角角度分别为α和β时,可以计算α和β之间的角度差值α-β,若该角度差值α-β小于预设角度阈值,则可以以上述两个方向角度α和β的平均值所对应的方向作为第一墙边的墙边方向。该平均值即是(α+β)/2,因此,第一墙边的墙边方向可以是指与水平方向呈(α+β)/2角度的一个方向。
当然,以上示例均是以碰撞记录为3次为例进行介绍的,本领域技术人员可以根据实际需要选择更多碰撞次数来确定第一墙边的墙边方向,例如4次、5次等等,本实施例对此不作限定。
S206、依据所述第一墙边的墙边方向,确定与所述第一墙边的墙边方向垂直的第一方向;
在本发明实施例中,在确定出第一墙边的墙边方向后,可以通过由扫地机器人的中心向第一墙边作垂线,得到第一方向,该第一方向与第一墙边的墙边方向呈垂直关系。如图3所示,其中L1即是当前的第一方向。
S207、根据所述第一方向,确定与所述第一方向具有预设第一角度差的第二方向,和,与所述第一方向具有预设第二角度差的第三方向;
如图3所示,预设的第一角度差可以是a1,预设的第二角度差可以是a2,因此,通过将第一方向L1分别旋转相应的a1和a2角度后,可以得到第二方向L2和第三方向L3。
需要说明的是,在对第一方向L1进行旋转时,其旋转方向应当与扫地机器人的工作方向保持一直,即按照顺时针方向进行旋转。当然,上述旋转并非实际的旋转过程,仅仅是为了说明第二方向L2和第三方向L3与第一方向L1之间存在一定的角度关系。
S208、根据所述第二方向和第三方向,确定所述机器人的第一检测区域和第二检测区域;
在本发明实施例中,可以以第一方向和第二方向围成的区域作为第一检测区域,以第二方向和第三方向围成的区域作为第二检测区域。
如图3所示,在第一检测区域和第二检测区域内的传感器为正前方障碍检测传感器3和右前方障碍检测传感器4。
S209、若在所述至少两个检测区域接收到预设的传感器信号,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角;
当上述两个障碍检测传感器检测到障碍物时,可以认为扫地机器人已工作至两面墙交汇处的墙边角位置。
在本发明实施例中,通过直接使用预设方位的障碍物检测传感器对墙边角进行识别主要适用于扫地机器人容易使用左侧传感器1保持与墙边方向平行清扫的情况,其墙边角识别实时性好,不容易漏检;而通过确定墙边方向进而对墙边角进行识别,则弥补了上述情况的不足,使得在扫地机器人并非完全按照平行于墙边的路径进行工作时,也能够准确地对墙边角进行识别。
S210、控制所述机器人按照所述墙边角对应的工作模式进行工作。
在本发明实施例中,当识别出墙边角后,可以控制扫地机器人按照墙边角对应的模式进行清扫工作,以提高墙边角区域的除尘能力。
在本发明实施例中,当扫地机器人按照墙边角对应的工作模式完成对上述墙边角的清扫后,可以切换至正常的工作模式,继续沿墙边进行清扫工作。
在本发明实施例中,当扫地机器人按照与第一墙边平行的路径进行清扫工作时,可以通过预设方位的障碍物检测传感器对墙边角进行识别;当扫地机器人的清扫路径并非完全与第一墙边平行时,则可以通过扫地机器人与第一墙边的碰撞记录来确定第一墙边的墙边方向,进而通过检测特定区域内的障碍物检测传感器是否检测到障碍物实现对墙边角的识别,保证了墙边角识别的准确性,避免漏检。在识别出墙边角后,本实施例可以控制扫地机器人按照墙边角对应的工作模式进行清扫工作,保证了扫地机器人在墙边角位置处的除尘能力,提高了工作效率。
为了便于理解,下面以一个完整的示例对本发明的墙边角的识别方法作一说明。
如图4所示,是本发明一个实施例的墙边角的识别过程示意图,该过程具体包括如下步骤:
1)控制扫地机器人按顺时针方向沿墙边清扫,并开始记录扫地机器人的清扫时间,进入步骤2;
2)检查扫地机器人是否平行于墙边方向清扫超过了设定的时间阈值,如果是则进入步骤3,否则进入步骤4;
3)检查正前方和右前方的红外传感器的值,是否有一个大于障碍阈值,如果是则表示上述两个红外传感器在相应位置检测到的障碍物,此时进入步骤6,否则进入步骤4;
4)确定是否已经获得所沿墙边的墙边方向,如果已经得到所沿的墙边的方向,则进一步根据用于检测墙边角而规定的范围临界角度a1和a2,计算得到临界区域L2和L3,进入步骤5,如果未得到所沿的墙边的方向则返回步骤1;确定墙边方向的具体过程见步骤4.1-4.15的说明。
5)检测位于区域L2和L3之间的红外传感器的值,是否有一个大于障碍阈值,如果是则进入步骤6,否则返回步骤1;
6)检测到了墙边角,控制扫地机器人切换至墙边角清扫模式进入墙边角清扫,当完成对墙边角的清扫后,返回步骤1进入沿墙边清扫。
如图5所示,是本发明一个实施例的确定墙边方向的示意图。扫地机器人在清扫过程中会周期性执行如下步骤:
4.1)判断扫地机器人是否碰撞了墙边,且是否触发了左侧碰撞开关,如果是则进入步骤4.2,否则进入步骤4.13;
4.2)判断是否已经有了碰撞位置记录,如果有则进入步骤4.3,否则进入步骤4.12;
4.3)计算当前位置与上一次碰撞时位置距离,判断是否大于设定的最小阈值(避免距离太小两个位置确定的方向不够准确),如果大于则进入步骤4.4,否则过程结束;
4.4)判断当前位置与上一次碰撞时位置距离是否小于设定的最大阈值(避免距离太大而得到的方向不是同一个墙边的方向),如果小于则进入步骤4.5,否则进入步骤4.11;
4.5)碰撞位置记录个数是否大于或等于3个,如果是则进入步骤4.6,否则进入步骤4.7;
4.6)删除第1个位置记录,以便存储最新的碰撞位置,进入步骤4.8;
4.7)碰撞位置记录个数是否大于或等于2个,如果是则进入步骤4.8;否则进入步骤4.12;
4.8)记录当前的碰撞位置,并根据位置记录1和2计算墙边方向1,根据位置记录2和3计算墙边方向2,求解方向1和方向2的差值,如果差值小于设定的阈值,则认为是两个计算得到的方向对应于同一墙边,进入步骤4.9,否则进入步骤4.10;
4.9)通过计算方向1和方向2的平均值,即为墙边的方向,过程结束;
4.10)删除第1个位置记录,因为位置记录1不属于同一个墙边,过程结束;
4.11)当前碰撞位置与之前记录的碰撞位置相距太远,之前的记录不可靠,故删除以前的3个位置记录,进入步骤4.12;
4.12)记录当前碰撞位置,过程结束;
4.13)是否已获得所沿墙边的方向,如果是则进入步骤4.14,否则过程结束;
4.14)根据3个位置记录计算当前位置与墙边的距离,如果距离大于或等于设定的阈值进入步骤4.15,如果距离小于设定的阈值,则过程结束;
4.15)因距离墙边的距离大于或等于设定阈值,说明已经偏离了记录的墙边方向,故删除以前的3个碰撞位置记录,并将获得的墙边方向删除置为无效,过程结束。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图6,示出了本发明一个实施例的一种墙边角的识别装置的示意图,具体可以包括如下模块:
墙边方向确定模块601,用于在机器人沿第一墙边工作的过程中,确定所述第一墙边的墙边方向;
检测区域确定模块602,用于根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域;
信号检测模块603,用于检测是否在所述至少两个检测区域接收到预设的传感器信号;
墙边角识别模块604,用于若在所述至少两个检测区域接收到预设的传感器信号,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角。
在本发明实施例中,所述装置还可以包括如下模块:
工作时间统计模块,用于统计所述机器人的工作时间;
障碍物检测判断模块,用于当所述工作时间超过预设时间阈值时,判断在所述机器人预设方位的障碍检测传感器是否检测到障碍物;
墙边角识别模块,用于若在所述预设方位的障碍检测传感器检测到障碍物,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角;
调用模块,用于若在所述预设方位的障碍检测传感器未检测到障碍物,则调用所述墙边方向确定模块601。
在本发明实施例中,所述墙边方向确定模块601具体可以包括如下子模块:
碰撞数据获取子模块,用于获取所述机器人与所述第一墙边的碰撞数据,所述碰撞数据包括至少三次碰撞记录;
方向角度确定子模块,用于采用所述至少三次碰撞记录,确定所述第一墙边的至少两个方向角度;
墙边方向确定子模块,用于根据所述至少两个方向角度,确定所述第一墙边的墙边方向。
在本发明实施例中,所述碰撞记录包括碰撞时间和碰撞位置,所述方向角度确定子模块具体可以包括如下单元:
距离确定单元,用于根据碰撞时间顺序,分别确定任一碰撞位置与上一次碰撞位置之间的距离是否大于最小距离阈值,且小于最大距离阈值;
碰撞记录舍弃单元,用于若否,则舍弃所述碰撞位置对应的碰撞记录;
方向角度确定单元,用于若是,则分别将所述任一碰撞位置及其上一次碰撞位置直线连接,以所述直线的方向作为所述第一墙边的方向角度。
在本发明实施例中,所述墙边方向确定子模块具体可以包括如下单元:
墙边方向确定单元,用于若相邻的至少两个方向角度之间的角度差值小于预设角度阈值,则以所述至少两个方向角度的平均值所对应的方向为所述第一墙边的墙边方向。
在本发明实施例中,所述检测区域确定模块602具体可以包括如下子模块:
第一方向确定子模块,用于依据所述第一墙边的墙边方向,确定与所述第一墙边的墙边方向垂直的第一方向;
第二方向和第三方向确定子模块,用于根据所述第一方向,确定与所述第一方向具有预设第一角度差的第二方向,和,与所述第一方向具有预设第二角度差的第三方向;
检测区域确定子模块,用于根据所述第二方向和第三方向,确定所述机器人的第一检测区域和第二检测区域。
在本发明实施例中,所述装置还可以包括如下模块:
控制模块,用于控制所述机器人按照所述墙边角对应的工作模式进行工作。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图7,示出了本发明一个实施例的一种终端设备的示意图。如图7所示,本实施例的终端设备700包括:处理器710、存储器720以及存储在所述存储器720中并可在所述处理器710上运行的计算机程序721。所述处理器710执行所述计算机程序721时实现上述墙边角的识别方法各个实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器710执行所述计算机程序721时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至605的功能。
示例性的,所述计算机程序721可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器720中,并由所述处理器710执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序721在所述终端设备700中的执行过程。例如,所述计算机程序721可以被分割成墙边方向确定模块、检测区域确定模块、信号检测模块和墙边角识别模块,各模块具体功能如下:
墙边方向确定模块,用于在机器人沿第一墙边工作的过程中,确定所述第一墙边的墙边方向;
检测区域确定模块,用于根据所述第一墙边的墙边方向,确定所述机器人的至少两个检测区域;
信号检测模块,用于检测是否在所述至少两个检测区域接收到预设的传感器信号;
墙边角识别模块,用于若在所述至少两个检测区域接收到预设的传感器信号,则识别所述机器人到达由所述第一墙边以及与所述第一墙边相邻的第二墙边形成的墙边角。
所述终端设备700可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备700可包括,但不仅限于,处理器710、存储器720。本领域技术人员可以理解,图7仅仅是终端设备700的一种示例,并不构成对终端设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备700还可以包括输入输出设备、网络接入设备、总线等。
所述处理器710可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器720可以是所述终端设备700的内部存储单元,例如终端设备700的硬盘或内存。所述存储器720也可以是所述终端设备700的外部存储设备,例如所述终端设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器720还可以既包括所述终端设备700的内部存储单元也包括外部存储设备。所述存储器720用于存储所述计算机程序721以及所述终端设备700所需的其他程序和数据。所述存储器720还可以用于暂时地存储已经输出或者将要输出的数据。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置/终端设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。