覆盖机器人导航的制作方法

文档序号:6293061阅读:203来源:国知局
覆盖机器人导航的制作方法
【专利摘要】一种在地板上导航自主覆盖机器人的方法包括在清扫模式下控制机器人越过地板的运动、接收表示障碍物的传感器信号、使机器人旋转远离所感测到的障碍物、在至少部分的机器人旋转远离所感测到的障碍物的过程中确定接收到的传感器信号的变化、以及至少部分地基于所接收到的传感器信号的确定变化识别所感测到的障碍物。
【专利说明】覆盖机器人导航[0001]相关申请的交叉引用[0002]本申请要求根据美国专利法35USC § 119 (e)项于2010年12月30日提交的美国临时申请第61/428793号的优先权,其公开被认为是本申请的公开的一部分,其全部内容通过引用结合于此。【技术领域】[0003]本申请涉及机器人,更具体地说,涉及自主覆盖机器人。【背景技术】[0004]自主机器人是可以在非结构化环境中在没有人类不断指导的情况下执行所需任务的机器人。多种机器人在一定程度上是自主的。不同的机器人可以以不同的方式是自主的。自主覆盖机器人在没有人类不断指导的情况下经过工作表面来执行一个或多个任务。 在家庭、办公室和/或消费者为导向的机器人领域,执行家庭事务比如吸尘、洗地、巡逻、草坪切割和其他类似任务的移动机器人已被广泛采用。
【发明内容】
[0005]自主覆盖机器人在运行时将会遇到很多障碍物。为了继续运行,机器人将需要不断地躲避障碍物和/或操纵绕过障碍物。[0006]一方面,一种在地板上导航自主覆盖机器人的方法包括在清扫模式下控制机器人越过地板的运动、接收表示障碍物的传感器信号、使机器人旋转远离所感测到的障碍物、在至少部分的机器人旋转远离所感测到的障碍物的过程中确定接收到的传感器信号的变化、 以及至少部分地基于所接收到的传感器信号的确定变化识别所感测到的障碍物。[0007]本公开的此方面的实施方式可以包括下列特征中的一个或多个。在一些实现方式中,接收表示障碍物的传感器信号包括确定所接收到的传感器信号强度的增加。例如,确定所接收到的传感器信号强度的增加可以包括低通滤波所接收到的传感器信号并且将低通滤波的传感器信号与瞬时传感器信号相比较。[0008]在一些实施方式中,确定所接收到的传感器信号的变化包括确定所接收到的传感器信号的强度的峰值。例如,确定所接收到的传感器信号的强度的峰值可以包括低通滤波所接收到的传感器信号并且将低通滤波的传感器信号与瞬时传感器信号相比较。[0009]在某些实施方式中,至少部分地基于所接收到的传感器信号的确定变化识别所感测到的障碍物包括存储与表示障碍物的所接收到的传感器信号相关联的第一机器人航向并且存储与所接收到的传感器信号的确定峰值相关联的第二机器人航向。所述第一机器人航向与第二机器人航向中的至少一个可由机器人携载 的陀螺仪和/或由至少支承部分机器人于清洁表面之上的轮子的轮编码器确定。另外或可替代地,识别所感测到的障碍物包括至少部分地基于所存储的第一与第二机器人航向之间的差值确定所感测到的障碍物的角宽度并且将所感测到的障碍物的确定角宽度与阈值相比较。所述阈值可以至少部分地基于所接收到的传感器信号的强度和/或障碍物的角宽度而设定。[0010]在一些实施方式中,所述机器人限定了前后轴,并且表示障碍物的传感器信号被 接收于第一传感器与第二传感器之一,所述第一传感器与第二传感器设置在所述前后轴的 相应左右侧。在某些实施方式中,导航自主覆盖的方法包括:如果障碍物的确定角宽度小于 所述阈值,则操纵机器人以使所述前后轴方向基本上平行于所感测到的障碍物。例如,可以 对机器人进行定位,以使得对应于所接收到的传感器信号的传感器最接近所感测到的障碍 物。[0011]在某些实施方式中,当确定障碍物的角宽度小于阈值时,引导机器人朝向所感测 到的障碍物转弯。所述机器人可以基本上是圆柱形的,并且引导机器人朝向所感测到的障 碍物转弯可包括使机器人的转弯半径稍大于机器人的半径。例如,可以以在约等于机器人 的半径至机器人半径的约1.8倍之间的半径来引导所述机器人转弯。另外或可替代地,可 以以至少部分地基于障碍物的确定角宽度的转弯半径来引导机器人转弯。[0012]在某些实施方式中,引导机器人朝向所感测到的障碍物转弯包括引导机器人转弯 直至达到所述第一机器人航向,并且当达到第一机器人航向时,引导机器人沿着对应于所 述第一机器人航向的基本上笔直的路径移动。[0013]在一些实施方式中,当确定所感测到的障碍物的角宽度大于或等于阈值时,通过 改变机器人的转弯半径来操纵机器人以基本固定的距离跟踪所感测到的障碍物。改变机器 人的转弯半径可以包括在第一方向上使机器人转弯远离所感测到的障碍物,并且当确定不 再检测到传感器信号时,使机器人在第二方向上朝着所感测到的障碍物转弯。[0014]在某些实施方式中,当接收表示障碍物的传感器信号时,使机器人在与所接收到 的传感器信号相反的方向上沿大致直线移动。例如,所述机器人沿大致直线移动约15毫米 至约50毫米的距离。[0015]在一些实施方式中,降低清扫模式下覆盖机器人越过地板的速度(例如,至少部分 地基于表示障碍物的所接收到的传感器信号而降低)。[0016]另一方面,一种移动机器人包括底座、联接至所述底座以使机器人移动越过清洁 表面的驱动组件、布置成从上面驱动有机器人的地板上去除碎片的清扫头、第一接近传感 器、以及与所述驱动器组件通信以控制机器人移动越过清洁表面的控制器。所述底座具有 前部、后部,并且限定了在其间延伸的前后轴。所述第一接近传感器配置成在机器人移动越 过清洁表面时产生表示物体的信号。所述控制器配置成接收来自所述第一接近传感器的信 号,使机器人旋转远离所感测到的障碍物,并且至少部分地基于所接收到的传感器信号的 确定变化识别所感测到的障碍物。[0017]本公开的此方面的实施方式可以包括下列特征中的一个或多个。在一些实施方式 中,第二接近传感器配置成在机器人移动越过清洁表面时产生表示机器人旁边的物体的信 号,并且所述第一与第二接近传感器在机器人移动越过清洁表面时设置在前后轴的相对两 侧。[0018]在某些实施方式中,移动机器人包括携载在底座的前部上的保险杠,其中,所述第 一与第二接近传感器设置在保险杠上。例如,保险杠可以具有最右侧边缘和最左侧边缘,第 一接近传感器朝向保险杠的最右侧边缘设置,第二接近传感器朝向保险杠的最左侧边缘设 置。另外或可替代地,第三接近传感器设置在第一与第二接近传感器之间的保险杠上。保险杠在与障碍物接触时可相对于底座移动。[0019]在一些实施方式中,所述第一与第二接近传感器分别基本上平行于清洁表面。另 外或可替代地,所述第一与第二接近传感器彼此相对约180度。[0020]在某些实施方式中,所述第一接近传感器包括至少一个红外发射器和接收器对, 其在机器人移动越过清洁表面时基本上平行于清洁表面。[0021]另一方面,一种在地板上导航自主覆盖机器人的方法包括引导机器人以第一行为 模式移动越过地板,在所述第一行为模式过程中监测机器人在地板上的移动,至少部分地 基于在第一行为模式过程中所监测的机器人的移动,确定机器人是否受到限制,并且在确 定机器人受限时,启动第二行为模式。[0022]本公开的此方面的实施方式可以包括下列特征中的一个或多个。在一些实施方式 中,所述第一行为模式包括以下行为模式中的一个或多个:反弹模式、障碍物跟踪模式和点 覆盖模式。引导机器人以第一行为模式移动越过地板包括向由机器人携载的电机发送激活 指令,所述电机布置成向轮子提供动力,用于使机器人移动经过地板。在某些实施方式中, 所述第二行为模式可以选自下列行为模式中的一个或多个:撞击跟踪模式、墙壁跟踪模式 和避开模式。[0023]在一些实施方式中,监测机器人在地板上的移动包括确定一段时间内机器人在地 板上的多个位置。例如,确定一段时间内机器人在地板上的多个位置可以包括接收来自由 机器人携载的陀螺仪的信号和/或接收来自布置成监测轮子运动的轮编码器的信号。[0024]在某些实施方式中,确定机器人受限包括确定机器人的航向已经改变了约360度 或更多,并且机器人的直线运动小于约6米。[0025]另一方面,一种产生清洁表面的局部区域图的方法包括在清扫模式下控制自主覆 盖机器人移动越过地板,接收表示第一障碍物的传感器信号,在接收表示第一障碍物的传 感器信号时使机器人在远离所感测到的第一障碍物的方向上移动,接收表示第二障碍物的 传感器信号,在接收表示第二障碍物的传感器信号时确定第一障碍物与第二障碍物的相对 位置。控制自主覆盖机器人的运动至少部分地基于第一障碍物与第二障碍物的确定的相对 位置。[0026]本公开的此方面的实施方式可以包括下列特征中的一个或多个。在一些实施方式 中,控制自主覆盖机器人的运动包括如果第一障碍物与第二障碍物的相对位置小于阈值距 离,则使自主覆盖机器人在远离第一与第二障碍物的方向上移动。例如,阈值距离可以约等 于平行于清洁表面的自主覆盖机器人的最大尺寸(例如,当机器人移动穿过清洁表面时从 上往下观察基本呈圆形的大致圆筒状的机器人的直径)。[0027]在某些实施方式中,机器人的航向在接收表示第一障碍物的传感器信号时被确定。[0028]在一些实施方式中,控制自主覆盖机器人的运动包括在机器人相对于第一和/或 第二障碍物移动时使机器人朝着所感测到的航向偏移运动。[0029]在某些实施方式中,确定第一障碍物与第二障碍物的相对位置包括从第一感测到 的障碍物至第二感测到的障碍物的航位推算。航位推算可以至少部分地基于接收自设置在 机器人上的陀螺仪的航向。另外或可替代地,航位推算可以至少部分地基于在自主覆盖机 器人移动越过表面时测量自主覆盖机器人的轮子的旋转。例如,测量轮子的旋转可以包括接收来自轮编码器的信号。[0030]在一些实施方式中,控制自主覆盖机器人的移动包括使自主覆盖机器人移动以避 免第一与第二障碍物。例如,使自主覆盖机器人移动以避免第一与第二障碍物可以包括使 自主覆盖机器人在远离第一与第二障碍物的方向上移动。[0031 ] 在某些实施方式中,第一障碍物与第二障碍物的确定的相对方向被存储(例如,在 存储器中)。[0032]另一方面,一种在地板上导航自主覆盖机器人的方法包括存储所述自主覆盖机器 人的航向、使自主覆盖机器人沿着所存储的航向移动至与自主覆盖机器人的转弯圆相切的 障碍物、扫描携载在所述自主覆盖机器人上的传感器、接收所扫描的传感器信号、至少部分 地基于所接收到的扫描的传感器信号对障碍物进行分类、至少部分地基于作为柱子的障碍 物的分类使自主覆盖机器人运行绕过至少部分的分类的障碍物、在绕行所分类的障碍物过 程中将所存储的航向与自主覆盖机器人的航向相比较、以及至少部分地基于在绕行过程中 所存储的航向与自主覆盖机器人的航向的比较恢复所存储的航向。[0033]在一些实施方式中,恢复所存储的航向包括如果在绕行过程中自主覆盖机器人的 航向等于所存储的航向,则中断自主覆盖机器人的绕行。[0034]在某些实施方式中,恢复所存储的航向包括使自主覆盖机器人朝着所存储的航向 转弯。在一些示例中,使自主覆盖机器人朝着所存储的航向转弯可以包括使自主覆盖机器 人在与自主覆盖机器人的绕行方向相反的方向上转弯。例如,自主覆盖机器人可以绕行所 分类的障碍物,直至绕行过程中所存储的航向与自主覆盖机器人航向之间的差值是固定值 (例如,±45度),并且使自主覆盖机器人朝向所存储的航向转弯可以包括使自主覆盖机器 人在与绕行方向相反的方向上转弯,直至自主覆盖机器人的航向与自主覆盖机器人所存储 的航向相匹配。[0035]在一些实施方式中,使自主覆盖机器人绕行包括以半径大于自主覆盖机器人的转 弯周长使自主覆盖机器人移动。[0036]在某些实施方式中,至少部分地基于所接收到的扫描的传感器信号对障碍物进行 分类包括将扫描的传感器信号与经验模型相比较。[0037]在一些实施方式中,扫描携载在自主覆盖机器人上的传感器包括使自主覆盖机器 人转弯以使所述传感器移动。另外或可替代地,扫描携载在自主覆盖机器人上的传感器可 以包括使所述传感器相对于自主覆盖机器人移动。[0038]在某些实施方式中,所述传感器包括以下中的一个或多个:摄像头、激光器、以及 接近传感器。【专利附图】

【附图说明】[0039]图1示出了自主覆盖机器人示例的上方透视图。[0040]图2示出了图1的自主覆盖机器人示例的下方透视图。[0041 ]图3示出了图1的自主覆盖机器人示例的分解视图。[0042]图4A示出了图1的自主覆盖机器人示例的保险杠。[0043]图4B示出了图1的自主覆盖机器人示例的接近传感器。[0044]图5示出了图1的自主覆盖机器人示例的地板接近传感器、动力撞击传感器、以及安装卡具。[0045]图6A示出了自主覆盖机器人示例的方框图。[0046]图6B示出了自主覆盖机器人示例的运动控制的流程图。[0047]图6C示出了自主覆盖机器人示例的杂波导航的流程图。[0048]图7示出了作为自主覆盖机器人示例的判优器选择的运动控制行为的障碍物分 类的流程图。[0049]图8示出了结合作为自主覆盖机器人示例的判优器选择的运动控制行为的柱绕 行行为的障碍物分类的流程图。[0050]图9A-9H示出了识别和环绕物体的自主覆盖机器人示例的运动序列。[0051 ] 图1OA示出了图7的障碍物分类示例的流程图。[0052]图1OB示出了基于图1OA障碍物分类的障碍物分类的示例。[0053]图11示出了图7的障碍物分类示例的流程图。[0054]图12示出了自主覆盖机器人示例的柱导航的流程图。[0055]图13示出了自主覆盖机器人示例的柱绕行的流程图。[0056]图14示出了自主覆盖机器人示例的柱摆动的流程图。[0057]图15示出了自主覆盖机器人示例的笼机器人虚拟传感器的流程图。[0058]在各图中相同的参考符号表示相同的元件。【具体实施方式】[0059]图1-3示出了自主覆盖机器人100示例的上方透视图、下方透视图以及分解视图。 机器人100包括底座102、驱动系统104、主清扫头106b和控制器108。在一些实施方式中, 机器人100包括缘部清扫头106a。在使用过程中,控制器108向驱动系统104、主清扫头 106b以及缘部清扫头106a提供指令,从而使机器人100在清洁表面(例如,地板)上移动, 以便将杂物从清洗表面清除。[0060]参照图1,底座102包括前部103、后部105,并且将前后轴线101限定在其间。当 该机器人被放置在清洁表面上时,前后轴线101基本上平行于清洁表面。前后轴线101将 底座102分成右部107和左部111。[0061]再次参照图1-3,驱动系统104安装在底座102上,并且是配置成操纵机器人100 的差动驱动(左右轮子靠近机器人的中心直径或在其上,且可独立地控制速度)。缘部清扫 头106a可安装成延伸经过底座102的侧边缘,用于清除机器人100下方及与其紧邻的污物 和碎屑,并且更具体地,在机器人沿向前方向清扫时将污物和碎屑清扫到主清扫头106b的 清扫路径中。在一些实施方式中,主清扫头106b或缘部清扫头106a还可用于施加表面处 理(例如,水和/或洗涤剂)。控制器108 (也在图5A中示出)由底座102携带,并且由基于 行为的机器人控制,以便基于传感器读数或指示,向机器人100的零部件提供指令,如下所 述,从而以自主的方式来绕过障碍物导航、清扫、和/或处理地板。电池109可以为机器人 100及其子系统提供电源。底盖110可以保护机器人100的内部部分,并且防止灰尘和碎屑 的侵入。[0062]驱动系统104包括右驱动轮组件112和左驱动轮组件114。每个驱动轮组件112、 114包括轮子113和连结至轮子113以驱动轮子113的电机115。驱动轮组件112、114连接至底座102并且支承至少部分的底座102于清洁表面上方。在某些实施方式中,主清扫组件106b和/或缘部清扫头106a支承至少部分的底座102于清洁表面上方。另外或可替代地,机器人100可以包括支承至少部分的机器人100于清洁表面上方的脚轮组件116。
[0063]控制器108可向驱动系统提供指令来驱动轮组件112和114向前或向后以操纵机器人100。例如,指令可以由控制器108发出,以在向前方向上结合两个轮组件112、114,致使机器人100向前运动。在另一个实例中,指令可以发出用于左转,其促使左轮组件114在前进方向上结合,而右轮组件112在向后方向上驱动,致使在从上方观察时机器人100沿顺时针转。在另一个实例中,类似的指令可以发出用于右转,其致使在从上方观察时机器人100沿逆时针转。如在下面进一步详细所述,控制器108可将向前、向后、向右和/或向左的指令结合发给轮组件,以使得在机器人100移动越过清洁表面时使机器人100绕过所遇到的一个或多个障碍物。
[0064]参照图4A-B,保险杠130可用于机器人100。接近传感器134A-D容纳在保险杠130内,并且基本上平行于清洁表面以感应在机器人旁边的潜在障碍物(例如,当机器人沿清洁表面在行进的向前路径中移动时在机器人的前面)。例如,接近传感器134A-D可适于感知机器人100旁边(例如前面)约I英寸至约10英寸的潜在障碍物。在一些实施方式中,每个接近传感器134A-D包括红外线发射器检测器对,其应从约I英寸至10英寸(优选为I英寸至4英寸)发射(即,当接收器接收产生于相互倾斜的发射器与接收器的重叠空间中的反射时)。这种包括红外发射器/检测器对的接近检测器公开在题为“覆盖机器人移动性”的美国专利第7441298号中,其全部内容通过引用并入本文。
[0065]至少两个接近传感器(例如,接近传感器134A和134D)沿保险杠130的相应端部135a、b (例如,沿保险杠130的最右和最左部)布置,以使得接近传感器134A和134D彼此相对约180度。在这个方向上,接近传感器134A和134D在机器人100沿前后轴101移动时横跨该机器人的宽度。接近传感器134A和134D的这种定位降低了机器人100的“盲区”,例如,通过降低机器人100在其沿行进的向前方向移动时将不检测在其路径中的障碍物的可能性。
[0066]参照图5,安装卡具142可用于支承动力撞击传感器132和地板接近传感器140于机器人100上。动力撞击传感器132可感知机器人100与机器人前进道路中的物体之间的碰撞。地板接近传感器可由底座102携载,并且用于在机器人100靠近“悬崖”比如一组台阶时检测。地板接近传感器140可以发送信号至控制器108,指示是否检测到悬崖。基于来自地板接近传感器140的信号,控制器108可引导驱动系统104改变速度或速率,以避开悬崖。
[0067]保险杠130可移动地支承在底座102的前部103上,以使得在与障碍物接触时至少部分的保险杠130朝向底座102移动短距离。保险杠130的运动可以允许保险杠接触一个或多个动力撞击传感器132,以产生表不撞击物体的信号。
[0068]参照图6A,机器人100的电子设备包括与保险杠微控制器137进行通信的控制器108。同时,控制器108和保险杠微控制器137控制全向接收器、定向接收器、壁接近传感器134A-D和动力冲击开关132。控制器108监视所有其他的传感器输入,例如包括用于每个驱动轮组件112、114的悬崖传感器和电机电流传感器。
[0069]机器人100的方向与速度的控制可由运动控制行为处理,以在接近传感器134检测到潜在的障碍物时降低机器人100的速度幅值,所述运动控制行为由根据用于覆盖与限制的基于行为的机器人的原理的判优器选择(并且由控制器108执行),主要公开在美国专利第6809490号和第6781338号中,二者全部内容通过引用并入本文。由控制器108指导的运动控制行为还可在动力撞击传感器132检测机器人100与障碍物碰撞时改变机器人100的速度。
[0070]例如,参照图6B,控制器108的运动控制900包括引导机器人100在覆盖模式下穿过902清洁表面。例如,控制器可引导机器人100在一个或多个下列覆盖模式(即SPOTCOVERGE、RANDOM和STRAIGHT)下穿过902清洁表面。这些覆盖模式描述在题为“用于自主机器人的多模式覆盖的方法及系统”的美国专利第6809490号中,其全部内容通过引用合并于此。
[0071]通过接收来自一个或多个接近传感器134A-D和/或一个或多个动力撞击传感器132的信号,控制器108检测904接近的障碍物。至少部分地基于产生表示障碍物信号的传感器134A-D、132,控制器108确定相对于所检测904的障碍物的机器人100的大概方向。例如,接收来自置于前后轴101右侧的传感器134D的信号表示障碍物在机器人100的右侧。
[0072]控制器108确定905机器人100是否接触障碍物。确定905可以至少部分地基于所述控制器是否接收到来自接近传感器134A-D和/或动力撞击传感器132的信号。例如,如果控制器108仅接收来自接近传感器134A-D之一但不是来自动力撞击传感器132的信号,则控制器108确定905机器人100接近但尚未接触障碍物。作为另一个示例,如果控制器108接收来自动力撞击传感器132的信号(例如,单独或与接近传感器134A-D结合),则控制器108确定905机器人接近且接触障碍物。
[0073]当控制器108确定905接近但尚未接触障碍物(例如,通过接近传感器134A-D)时,控制器108执行温和的触摸程序901 (这可以是一个行为、一个行为的部分、或由一个以上的行为形成)。控制器108降低906机器人100的速度,以使得机器人100不以全清扫速度进入所感测到的障碍物中。在一些实施方式中,机器人100的速度通过减少提供给驱动轮组件112、114的电量而降低906。例如,控制器108降低906机器人的接近速度,从约300毫米/秒的全清扫速度至约100毫米/秒的降低的清扫速度。清扫速度的这种减少可以降低整体噪音、对机器人100的潜在损害和/或对所感测到的障碍物的潜在损害。
[0074]当控制器108通过动力撞击传感器132以全速检测905接触障碍物时,或者当控制器108通过动力撞击传感器132以降低的速度检测908接触障碍物时,控制器108可以执行一个或多个判优器选择的运动控制行为918。判优器选择的运动控制行为918的示例公开在题为“用于自主机器人的多模式覆盖的方法及系统”的美国专利第6809490号和题为“覆盖机器人移动性”的美国专利第7441298号中,二者的全部内容通过引用并入本文。另外或可替代地,判优器选择的运动控制行为918包括杂波导航,如下所述。
[0075]杂波(c Iutter )导航包括对环境的各个方面作出反应以通过环境(例如,通过沿着环境设置的障碍物)有效地操纵机器人100的一个或多个行为。例如,杂波导航平均起来可以减少周期到周期的变化和单个η通覆盖变化。另外或可替代地,杂波导航可以减少高冲击碰撞的数量,否则的话,高冲击碰撞在机器人100穿过杂乱区域时可能会出现。
[0076]参照图6C,在一个示例中,杂波导航950包括使机器人100沿着航向与速度设定移动952、检测954杂乱区域、操纵956机器人100通过杂乱区域、以及恢复958航向与速度设定。恢复958机器人100的航向与速度设定可以包括返回到航向与速度设定,例如,如果障碍物在一段时间内(例如,一个固定的时间段)并没有被检测954。
[0077]使机器人100沿着航向与速度设定移动952可以当作是清扫模式的一部分,或作为另一个判优器选择的运动控制行为的一部分。通过将航向设定与由一个或多个轮编码器121a、121b、121c和/或陀螺仪119 (参照图3)测量的实际航向相比较,并且至少基于该比较来调整一个或多个驱动轮组件112和114的移动,可以控制机器人100的航向。通过将速度设定与例如由一个或多个轮编码器121a、121b、121c测量的实际速度相比较,可以控制机器人100的速度。
[0078]检测954杂乱区域可以包括接收来自一个或多个触发器的信号,比如,例如检测与障碍物接触(参照图6B)。在一些实施方式中,检测954杂乱区域包括障碍物的光学检测(例如,通过图4B中的接近传感器134A-D)。
[0079]操纵956机器人100通过杂乱区域可以包括减少机器人100的速度设定(例如,从约300毫米/秒至约100毫米/秒)。另外或可替代地,操纵956机器人100通过杂乱区域可以包括使机器人100绕着检测到的障碍物移动,同时使机器人100朝着航向设定偏置运动。在某些实施方式中,机器人100仅在启动后的固定时间段之后(例如,在启动后约10秒钟至约一分钟之后)操纵956通过杂乱区域。另外或可替代地,机器人100仅在启动后的固定时间段之前操纵956通过杂乱区域,以便例如,如果机器人100接近清扫周期的尾声,则机器人100将不会试图操纵956通过杂乱区域。在一些实施方式中,如果电池109(图3所示)的充电状态高于阈值,则机械人100将不会视图操纵956通过杂乱区域。
[0080]在某些情况下,操纵956机器人100可包括响应检测到的障碍物(例如,响应与障碍物接触)而引导机器人100绕着障碍物移动。例如,机器人100可以绕开物体以稍微的半圆弧路径移动,或者以连续的交替部分的螺旋形(例如,圆弧半径逐渐减小)移动。在另一个示例中,机器人100可以移动远离物体,然后在与物体稍微相切的方向上移动。另外或可替代地,如在下面进一步详细描述,操纵956可包括至少部分地基于由控制器108所接收的来自装在机器人100上的一个或多个传感器的信号(例如,来自一个或多个接近传感器134A-D的信号)的障碍物的分类,和至少部分地基于该分类的操纵机器人100。
[0081]参照图6A、6B、6C和7,判优器选择的运动控制行为918可以包括障碍物分类1000(例如,作为杂波导航950的一部分),从而在使用过程中,控制器108使机器人100在清扫模式下移动902越过地板,检测908与障碍物接触,并且至少部分地基于检测908与障碍物908接触,启动可包括障碍物分类1000的判优器选择的运动控制行为918。与障碍物的接触由动力撞击传感器132检测908。如下面所述,障碍物分类1000至少部分地基于接近传感器134A和/或134D。
[0082]障碍物分类1000包括接收1001表示接近障碍物的传感器信号、使传感器相对于表示接近障碍物的接收到的传感器信号旋转1002 (例如,通过使机械人100旋转和/或使传感器旋转)、确定1004在机器人100旋转的至少一部分的过程中的传感器信号的变化,至少部分地基于所接收到的传感器信号中确定的变化来识别1006感测到的障碍物。如下面所述,例如,障碍物分类1000可以确定感测到的障碍物是否是柱或壁(或壁状结构)。在一些实施方式中,这样的确定有利于机器人100高效移动通过杂乱区域,例如,允许控制器108通过一个或多个环游行为确定使机器人100移动的潜在效力以基本上保持机器人100通过杂乱区域的航向设定。
[0083]接收1001表示障碍物的传感器信号包括接收来自一个或多个接近传感器134A-D(参照图4B)的信号。然而,在一些实施方式中,机器人100在接收1001来自接近传感器134A-D的信号之前移动远离接触908信号(代表障碍物)。使机器人100移动远离接触908可以提高由接近传感器134A-D所接收的信号强度。例如,至少基于接收接触908信号,机器人100可以最初移动远离所检测到的障碍物约15毫米至约50毫米(例如,38毫米)的距离。在某些情况下,机器人100在相反方向上移动的距离小于机器人100的前后尺寸的一半。机器人100的反向运动与机器人100的前后尺寸之间的这样的比率可以减少机器人100在相反的方向上移动时遇到障碍物和/或悬崖的可能性。在某些实施方式中,机器人100在相反方向上移动远离接触908信号,直至接收1001的来自一个或多个接近传感器134A-D的传感器信号在阈值之上。另外或可替代地,机器人100通常移动远离(例如,通常在向前方向上修正向后)接触908信号,直至接收1001的来自一个或多个接近传感器134A-D的传感器信号的强度约为最大值。
[0084]传感器的旋转1002可以包括使机器人100旋转远离接收1001的来自一个或多个接近传感器134A-D的传感器信号,从而可以是或顺时针方向或逆时针方向。例如,如果接收1001的信号对应于朝向机器人100左侧设置的接近传感器134A (例如,对应于在130中所示的前后轴的左侧),则旋转1002可以是顺时针方向。机器人100可以以类似的逆时针方向移动,以响应接收1001的来自朝向机器人100右侧设置的接近传感器134D的信号(例如,对应于在图1-2中所示的前后轴101的右侧)。在一些实施方式中,顺时针或逆时针旋转1002通过如上所述的引导驱动系统104 (图2-3)以使机器人100原地旋转来实现。在某些实施方式中,旋转1002是另一行为的一部分,比如例如,避开行为、障碍物回避行为和/或清扫行为。
[0085]确定1004在机器人100旋转的至少一部分的过程中接收1001的传感器信号的变化可以包括确定接收1001的来自接近传感器134A-D之一的传感器信号的增加。另外或可替代地,确定1004在机器人100旋转的至少一部分的过程中接收1001的传感器信号的变化可以包括确定所接收的传感器信号的强度的峰值。
[0086]在一些实施方式中,确定1004接收1001的传感器信号的变化包括将接收1001的传感器信号的大致瞬时值与接收1001的传感器信号的处理(例如,低通滤波)值相比较。瞬时信号与处理信号的这种比较可以减少产生于嘈杂或其它高度可变的传感器信号的假阳性确定(例如,增加或峰值)的可能性。
[0087]识别1006感测到的障碍物包括至少部分地基于所接收的传感器信号的确定1004的变化对障碍物进行分类。在一些实施方式中,所接收的传感器信号的确定1004的变化可以表示在朝向机器人100的方向上障碍物的角宽度。例如,如果所接收的传感器信号的确定1004的变化表示角宽度小于阈值(例如,小于约,另外或可替代地,在下面进一步详细描述的某些实施方式中,识别1006可以至少部分地基于所接收1001的传感器信号的增加,并且基于所接收1001的传感器信号的确定的峰值。
[0088]图8示出了判优器选择的运动控制行为918,其中障碍物分类1000与柱绕行程序1250相结合,以使得机器人100绕过已被识别为柱子的障碍物移动。
[0089]一般而言,参照图8,航向H被存储1402,机器人100沿着所存储的航向H移动1404至障碍物,传感器(例如,一个或多个接近传感器134A-D)被扫描1406。如在下面进一步详细描述,判定1410关于障碍物是否为柱子。如果判定1410障碍物不是柱子,则机器人100壁跟踪1414或者根据一个或多个其他的判优器选择的运动控制行为移动。如果判定1410表示障碍物是柱子,则机器人根据柱绕行程序1250移动。
[0090]下面进一步详细描述柱绕行程序1250。然而,一般而言,柱绕行程序1250包含绕1408柱运行,直至判定1410所存储1402的航向与机器人100的当前航向之间的差值等于阈值(例如,零和/或非零值),并且当满足阈值条件的判定1410时恢复1412所存储1402的航向。
[0091]图9A-9H示出了在结合的障碍物分类1000与柱绕行程序1250使机器人100绕过已被识别为柱子的障碍物移动的过程中机器人100的运动序列。在这些图中所示的运动序列示出了柱子的分类,使用最左侧的接近传感器134A和逆时针绕柱运行。然而,应该理解的是,柱子的分类和绕行可以通过使用最右边的接近传感器134D来实现,旋转方向相反。
[0092]如图9A所示,机器人100沿着所存储的航向H移动,直至机器人100接近柱子133。例如,机器人100可以沿着所存储的航向H移动,直至一个或多个动力撞击传感器132检测柱子133。另外或可替代地,机器人100可以沿着所存储的航向H移动,直至一个或多个接近传感器134A-134D检测柱子133。
[0093]如图9B所示,在一些实施方式中,机器人100在检测接近柱子133后逐渐从柱子133后退(例如,直接对着所存储的航向H)。为了最佳的信号强度,机器人100远离柱子133的运动可以允许接近传感器134A和134D定位成足以远离柱子133。另外或可替代地,远离柱子133的机器人100的这种运动可以减少机器人100在绕着柱子133运行时将会刮擦或以其他方式干扰柱子133的可能性。
[0094]如图9C所示,机器人100在基本上置于机器人100端部上的接近传感器的方向上旋转。例如,机器人100可以朝向接近传感器134A或接近传感器134D旋转(每个基本彼此相对地置于机器人100的相应的左右侧上)。在图9C所示的示例中,机器人100沿顺时针朝向最接近检测到柱子133位置的接近传感器(接近传感器134A)旋转。例如,朝向最接近的端部接近传感器134A或134D的机器人100的这种旋转通过减少障碍物分类1000过程中所需的旋转量可以减少识别柱子133所需的时间。
[0095]如图9C和9D所示,机器人100顺时针旋转,以使得接近传感器134A移动经过柱子133。如在下面进一步详细所述,相对于障碍物分类程序1000,在图9C和9D所示的移动过程中由机器人100所接收的信号允许机器人100确定柱子133的角宽度。如果该角宽度小于阈值,则障碍物被归类为柱子。应该理解的是,作为柱子的障碍物的分类并不一定需要该物体是实际的柱子。相反,作为柱子的障碍物的分类在本文中用作可以绕行像类似宽度柱子的物体的术语。
[0096]在图9C和9D所示的移动之后,如图9E所示,机器人100逆时针旋转,以对齐平行于在碰撞初始点柱子133的切线的行进的向前方向。基于接近传感器134A的已知位置和柱子133的检测到的角位置,可以实现相对于柱子133的机器人的这种垂直对齐。例如,在图9D所示的顺时针方向运动的结尾,接近传感器134A的角位置相对于柱子133是已知的,并且接近传感器134A的角度偏移相对于机器人100的几何形状是已知的。因此,机器人100的垂直对齐可由原地旋转实现,以使得行进的向前方向平行于在初始碰撞点的柱子133的切线。例如,一旦柱子133的角位置通过使机器人100顺时针原地旋转来确定以便接近传感器134A检测在障碍物分类1000结尾的峰值信号(如图9D所示),则机器人100的对齐通过逆时针原地旋转约20度来实现,以将机器人100的向前方向平行对齐在初始碰撞点的柱子133的切线(如图9E所示)。
[0097]如图9F所示,由于机器人100与柱子133垂直对齐,机器人100可以绕着柱子133运行。例如,通过使机器人100沿逆时针方向移动,机器人100可以绕着柱子133运行,转弯半径大于或等于机器人100的直径。这可以方便机器人100至少绕着部分的柱子133移动,以在柱子133附近清扫。
[0098]如图9G所示,图9F中开始的绕行可以继续,直至机器人100的瞬时航向等于所存储的航向H,然后机器人100可以沿着所存储的航向H在与柱子133基本相切的路径上移动。机器人100绕着柱子133的这种运动可以便于使机器人100沿着尽可能长的清扫路径移动(例如,以致在给定的时间段内使所覆盖的清洁表面的量最大化)。
[0099]另外或可替代地,如图9H所示,图9F中开始的绕行可以继续,直至所存储的航向H与机器人100的瞬时航向之间的差值等于阈值。例如,机器人100可以绕着柱子133运行,直至所存储的航向H与机器人100的瞬时航向之间的差值的绝对值等于约45度。当该阈值条件得到满足时,机器人100可以在顺时针方向卿,与绕行方向相反的方向)上原地旋转,以使机器人100朝向所存储的航向H往回移动。机器人100往回朝向所存储的航向H的顺时针旋转可以继续,直至机器人100的瞬时航向等于所存储的航向H。然后机器人100可以继续沿着所存储的航向H。因此,在这些实施方式中,机器人100的净移动是使机器人100绕着柱子133运行至越过所存储的航向H的位置,然后使机器人100往回朝着所存储的航向H原地旋转,直至机器人100的瞬时航向等于所存储的航向H。
[0100]图10A-10B示出了障碍物分类1000的示例,用于将白色的椅子腿与白色的墙壁区分开。在这个示例中,如果驱动半径小于约2000毫米(例如,小于约1300毫米)并且包括将第一 AO与第二 Al存储航向设定初始化1003为零,则障碍物分类1000得以启动。
[0101]机器人100远离障碍物的旋转1002包括确定1110机器人是否沿顺时针方向旋转。如果机器人100被确定1110沿顺时针方向旋转,则处理来自最左侧的接近传感器134A(图4B中所示)的信号。如果机器人100被确定沿逆时针方向旋转,则处理来自最右侧的接近传感器134D (图4B中所示)的信号。
[0102]判定1004所接收的传感器信号的变化包括接收1112来自最左侧接近传感器134A或最右侧接近传感器134D的大致瞬时的传感器信号。瞬时传感器信号是低通滤波的1114,以便瞬时传感器信号可以比作低通滤波1114的。如在下面进一步详细描述,接近障碍物的估计角宽度至少部分地基于所接收到1112与低通滤波1114的比较。
[0103]如果第一存储航向设定AO被确定1116为初始值,则控制器108监测1122来自接近传感器134A或134D的感测信号是否处于上升沿1150a、b。对于上升沿(例如,图1OB中的上升沿1150a、b)的监测1122包括将接收到1112和低通滤波1114的信号之间的差值与阈值(例如,非零值)相比较。如果该差值大于阈值,则第一存储航向设定AO被设定1124为旋转机器人100的当前航向设定。例如,当前航向设定可以由陀螺仪119和/或由一个或多个轮编码器121a、b、c (参照图3)确定。
[0104]如果第一存储航向设定AO被确定1116为初始值以外的值,则控制器108监测1118来自接近传感器134A或134D的感测信号是否处于拐点(例如,图1OB中的拐点1152a、b)。对于拐点1152a、b的监测1118包括将接收到1112和低通滤波1114的信号之间的差值与阈值相比较。如果该差值小于阈值,则第二存储航向设定Al被设定1120为旋转机器人100的当前航向设定。
[0105]在一些实施方式中,对于上升沿的监测1122阈值等于对于拐点的监测1118阈值。这些阈值中的每个都可以大于零,以减少上升沿和/或拐点的假阳性判定的可能性。在一些实施方式中,这些阈值中的一个或二者被设定为校准过程的一部分,校准过程包括接收1112从对准已知角宽度的物体的接近传感器134A或134D反射的瞬时和低通滤波1114的
传感器信号。
[0106]识别1006感测到的障碍物包括计算1126所感测的障碍物的角宽度、将计算1126出的所感测的障碍物的角宽度与阈值相比较1128、以及如果计算1126出的所感测的障碍物的角宽度小于该阈值,则确定1130障碍物是柱子(或者,更一般地,具有柱子角宽度特征的物体)。如果计算1126出的所感测的障碍物的角宽度大于或等于该阈值,则障碍物1132被确定为墙壁(或其他类似广泛的物体)。
[0107]计算1126出的所感测的障碍物的角宽度至少部分地基于所述第一与第二存储航向设定A0、A1之间的差值的绝对值。第一与第二存储航向设定A0、A1之间的差值的绝对值是障碍物角宽度的一半。要理解的是,角宽度的此减半值可以用作替代障碍物的全角宽度。因此,除非有相反的规定,关于障碍物的全角宽度与障碍物的减半角宽度,术语角宽度可以互换使用在本文中。
[0108]用于与计算1126出的角宽度相比较1128的阈值可以至少部分地基于接收1001到的传感器信号的强度被设定。例如,如果接收1001到的传感器信号弱,则可以增加阈值,以使得机器人100将不太可能基于这样的弱信号执行柱导航或其它环游行为。在一些实施方式中,用于进行比较1128的阈值可以至少部分地基于所计算出的障碍物的角宽度。
[0109]图1OB示出了对于白色椅子腿1151和白色墙壁1153的作为角度的函数的接收1001到的传感器信号。对于对应于白色椅子腿1151的接收1001到的信号来说,上升沿1150a发生在约15度处,拐点1152a发生在约20度处,从而计算1126出的角宽度为5度。对于对应于白色墙壁1153的接收1001到的信号来说,上升沿1150b发生在约13度处,拐点1152b发生在约50度处,从而计算1126出的角宽度为37度。因此,在该示例中,用于与角宽度相比较1128的阈值可以设定在约5度至约37度之间,以将柱子(例如,椅子腿)与墙壁区分开。
[0110]在一些实施方式中,当判定1132障碍物是墙壁时,通过改变机器人100的转弯半径,墙壁跟踪的行为可用于使机器人100在离墙壁基本固定的距离沿着墙壁移动。例如,转弯半径的这种变化可以包括使机器人100沿第一方向转弯远离所感测的障碍物,直至所感测的障碍物不再被检测到,然后使机器人100沿第二方向朝着所感测的障碍物转弯。这种墙壁跟踪行为公开在题为“用于自主机器人的多模式覆盖的方法及系统”的美国专利第7388343号中,其全部内容通过引用并入本文。
[0111]在某些实施方式中,当判定1132障碍物是墙壁时,反弹行为可以用来使机器人100移动远离墙壁,以继续清扫清洁表面。这种反弹行为公开在题为“用于自主机器人的多模式覆盖的方法及系统”的美国专利第7388343号中,其全部内容通过引用并入本文。[0112]关于传感器子系统50的这方面操作的进一步详情,以及具有检测与静止物体或障碍物接触或者接近的实用性的传感器的替代实施例可以被发现在2002年I月24日提交的题为“用于自主机器人的多模式覆盖的方法及系统”的共同拥有、共同未决的美国专利申请系列号为10/056804中。
[0113]当判定1130障碍物是柱子时,机器人可以通过执行一个或多个柱导航行为尝试操纵绕过该柱子。如在下面进一步的详细描述,这些柱导航行为可以包括用于操纵绕过所识别的柱子的柱绕行行为和用于操纵通过障碍物之间的小开口的柱摆动行为。
[0114]图11示出了使用由机器人100携载的可移动传感器进行障碍物分类1000的示例。在该示例中,如果驱动半径小于约2000毫米(例如,小于约1300毫米)并且包括将第一AO与第二 Al存储航向设定初始化1003为零,则障碍物分类1000得以启动。
[0115]传感器远离障碍物的旋转1002包括使携载在机器人100上的传感器(例如,声学传感器和/或基于视觉的传感器,比如摄像头、扫描仪、红外线或激光)移动1110’,以使得传感器相对于机器人100移动。例如,一个或多个接近传感器134A可以是相对于机器人100可以移动以跨越视场(例如,机器人100前面的视场)的基于视觉的传感器。在一些实现方式中,使基于视觉的传感器移动1110’包括在存储航向H的方向上越过机器人100前面180度的视场对其清扫。基于视觉的传感器的这种旋转可以进行,同时机器人100保持静止,这可以减少进行障碍物分类1000所需的时间量。
[0116]判定1004接收到的传感器信号的变化包括接收1113来自基于视觉的传感器的信号(例如,图像)并且从这些信号中提取1115特征。例如,在基于视觉的传感器是摄像头的实施方式中,通过使用霍夫变换或其它的线分类器,可以从由摄像头获得的信号(图像)中提取1115特征。在一些实施方式中,从接收1113来自基于视觉的传感器的信号中提取1115的特征包括障碍物边缘的阈值确定和大致对应于障碍物的宽度中心的拐点。对应于阈值的基于视觉的传感器的角度设定1117为A0。同样,对应于拐点的基于视觉的传感器的角度设定 1119 为 Al。
[0117]在该实施方式中,至少部分地基于所接收的传感器信号的确定变化识别1006感测到的障碍物可以参照如图10A-10B所述来实现。
[0118]参照图12-14,柱导航1200包括使机器人100柱绕行1250并且评估1252柱绕行1250是否使机器人100移动绕过障碍物。如果柱绕行1250不成功,则判定1254是否重试柱绕行1250。如果机器人100被确定1256在可能的小开口附近,则机器人100柱摆动1300以试图移动通过可能的小开口。柱摆动1300的成功被评估1258,以确定机器人100是否已操纵通过可能的小开口。如果柱摆动1300不成功,则判定1260是否重试柱摆动1300。
[0119]在一些实施方式中,每个判定1254和1260是否重试基于尝试的次数是否已经超过尝试的固定次数。在某些实施方式中,每个判定1254和1260是否重试基于尝试的次数是否已经超过与柱子角宽度成比例的阈值,以使得将对具有较大角宽度的障碍物进行更多的尝试执行柱绕行1250和/或柱摆动1300行为。另外或可替代地,每个判定1254和1260是否重试基于尝试的次数是否已经超过基于机器人100已在清洁模式下运作的时间量而降低的阈值。
[0120]如上参照图9A-9H所述,柱绕行1250可以使机器人100绕过识别为柱子的障碍物移动,以使得机器人100可以恢复航向设定以及在某些情况下的处于与障碍物的初始碰撞的机器人100的速度设定。柱绕行1250包括旋转1262以对齐平行于在与柱子初始碰撞点的切线的机器人100行进的向前方向,在与用于对齐的旋转1262相反的方向上绕行1264,以及确定1266是否机器人100的航向是否等于阈值。如果机器人100的航向被确定1266不同于阈值并且尝试绕行柱子的次数被确定1268小于或等于最大次数,则绕行半径逐步增加1270。如果机器人100的航向被确定1266不同于阈值并且尝试绕行柱子的次数被确定1268大于最大次数,则机器人100通过大半径转弯1280。
[0121 ] 如上参照图9A-9H所述,使机器人100旋转1262以对齐平行于在初始碰撞点的柱子133的切线的行进的向前方向包括使机器人100旋转。
[0122]在与用于对齐的旋转1262相反的方向上使机器人100绕行1264可以包括引导机器人朝向感测到的障碍物转弯。例如,如果机器人100的接近传感器134A (图4B)感测到障碍物,则绕行1264包括使机器人100在逆时针方向上旋转,如从机器人100上方所观察。在机器人100基本上是圆柱形的示例中,绕行1264可以包括以半径约等于或略大于(例如,1.8倍)机器人100的半径使机器人100转弯。另外或可替代地,绕行1264可以包括以至少部分地基于障碍物的确定的角宽度的半径使机器人100转弯。例如,机器人100可以与障碍物的确定的角宽度成比例的半径转弯。
[0123]在一些实施方式中,确定1266机器人100的航向是否等于阈值可以包括确定机器人100的航向是否等于机器人所存储的航向。在这些实施例中,如图9F-9G所示,机器人100绕柱子133运行,直至机器人100的瞬时航向等于所存储的航向H,在该点处机器人100的运行被中断,并且机器人100在碰撞之前在平行于原始路径的路径上沿着所存储的航向H移动。机器人100绕过柱子133的这种环游可以减少所需的使机器人100移动经过柱子133的时间量,同时仍允许机器人100在柱子133附近清扫。
[0124]在某些实施方式中,确定1266机器人100的航向是否等于阈值可以包括确定在所存储的航向H与绕行机器人100的瞬时航向之间的差值是否等于阈值(例如,±45度)。在这些实施例中,如图9F和9H所示,机器人100绕过柱子133运行,直至机器人100的瞬时航向不同于所存储的航向H达阈值(例如,对于顺时针和逆时针旋转要考虑的绝对值),在该点处机器人100的运行被中断,并且机器人100在与绕行(图9H)方向相反的方向上转弯,直至机器人100的瞬时航向等于所存储的航向H。然后,机器人100继续沿着所存储的航向H。机器人100绕着柱子133的这种环游提高了机器人100在柱子133附近的覆盖,例如,通过允许机器人100绕过柱子133的外周的较大部分移动。
[0125]逐步地增加1270绕行半径,在机器人100试图绕柱运行时识别1272哪个动力撞击传感器132被触发(例如哪个动力撞击传感器132对应于防止机器人100恢复初始航向的撞击)。例如,在图10所示的实施方式中,识别1272是在绕行侧动力撞击传感器132、远侧动力撞击传感器132以及中心动力撞击传感器132之间。
[0126]如果所识别的动力撞击传感器132在机器人100的绕行侧上(例如,在逆时针转弯过程中机器人100的左侧上或者在顺时针转弯过程中机器人100的右侧上),则绕行半径增加1274。例如,绕行半径可以增加约10毫米至约100毫米每次尝试。另外或可替代地,绕行半径可以在每次尝试过程中增加,增加的量与所检测到的柱子的角宽度成比例,以使得对于较大角宽度的柱子的绕行半径的增加1274大于其对于较小角宽度的柱子的增加。
[0127]如果所识别的动力撞击传感器132在机器人100的远侧上(例如,在逆时针转弯过程中机器人100的右侧上或者在顺时针转弯过程中机器人100的左侧上),则设定1276柱摆动触发。如果机器人100不能通过柱绕行1250而绕柱移动,则该柱摆动触发可以允许机器人100执行柱摆动1300,如下所述。
[0128]如果所识别的动力撞击传感器132在机器人100的中心上,则将尝试的次数设定1278为尝试的最大数目,以使得机器人100将在机器人100通过大半径转弯1280之前再做
一次尝试绕柱运行。
[0129]使机器人100通过大半径转弯1280可以减少在进行不成功尝试绕柱运行中由机器人100所花费的时间和精力。例如,使机器人100通过大半径转弯可以便于使机器人100移动经过不规则形状的柱子。在一些实施方式中,机器人100通过半径约100毫米至约500毫米(例如,约150毫米至约350毫米)的圆弧转弯1280。在某些实施方式中,机器人100在通过大半径移动之前转弯(例如,约100度至约180度)。如果撞击在机器人100通过大的转弯半径移动时被检测到,则柱绕行1250结束,并且在一些实施方式中,启动另一判优器选择的运动控制行为。这可以提高机器人100绕过障碍物移动的效率。如果机器人100通过大半径圆弧转弯1280达多于一段时间(例如,约I秒至约5秒),则柱绕行1250行为结束。在大半径圆弧超时的时候,机器人100很可能超越障碍物,和/或另一判优器选择的行为在使机器人100朝着初始航向设定移动中可能会更有效。
[0130]参照图14,柱摆动行为1300包括通过一系列逐渐变小的旋转以交替的方向操纵机器人100移动通过两个障碍物之间的空间。这种操纵可以允许机器人100移动通过该空间以恢复初始航向设定(例如,在与障碍物初始接触之前的航向设定)。障碍物之间的空间可以约等于平行于清洁表面的机器人100的最大尺寸。
[0131]柱摆动1300包括初始化1302变量,确定1303是否已达到尝试移动通过该空间的最大次数,如果已经达到了最大尝试次数(或者如果已经经过了最大的时间量)则使机器人100转弯1304通过大半径,如果还没有达到最大尝试次数则使机器人100相对于该空间摆动 1306。
[0132]初始化1302可以包括确定柱摆动触发是否由远侧撞击设定1276,同时柱绕行1250障碍物(参照图13)。这样的远侧撞击及因此柱摆动触发可以表明机器人100已遇到彼此附近间隔开的障碍物的倾向。如果尚未设定柱摆动触发,则柱摆动行为1300可以结束。另外或可替代地,启动1302摆动变量可以包括设定下列变量中的一个或多个:柱摆动尝试的次数、摆动运动的旋转角度R、以及机器人100的初始航向。在某些情况下,柱摆动的尝试的最大次数随着机器人100在清扫模式下已经使用的时间量而减小。
[0133]如果已经达到了最大尝试次数,则使机器人100通过大半径转弯1304类似于如上关于柱绕行1250 (图10)所述的转弯1280。
[0134]摆动1306包括检测1308撞击,在检测1308右和/或中心撞击时使机器人100逆时针旋转1310旋转角度R,在检测1308左撞击时使机器人100顺时针旋转1312旋转角度R,减少1314旋转角度R,以及直线行驶1316。响应于检测1308到的撞击的旋转角度R的这种渐进的减少1314可重复进行,直至检测1318已超过最大尝试次数,或者直至机器人100能够自由向前移动1318,并且沿圆弧1320返回朝着航向H,直至达到航向H或直至感测到撞击。当检测1303已超过最大尝试次数时,机器人100朝着任意航向相反H转弯1304,并且向前移动至圆弧达预定的时间或距离,或直至感测到撞击。[0135]在一些实施方式中,减少1314旋转角度R可以包括降低旋转角度R固定的量。在某些实施方式中,减少1314旋转角度R可以包括降低旋转角度R每步逐渐较少的量。
[0136]参照图15,笼机器人虚拟传感器1350可以检测机器人100是否被局限在小区域中。例如,笼机器人虚拟传感器1350可以检测机器人100是否已导航进入难以离开的区域(例如,以使得机器人100基本上局限于该地区)。如在下面进一步详细描述,通过切换机器人100至另一种行为模式,笼机器人虚拟传感器1350可以试图使机器人100移出受限区域。因此,在某些情况下,笼机器人虚拟传感器1350可以提高清洁表面的机器人覆盖效率,例如通过降低机器人100将保持局限在一区域的可能性。
[0137]笼机器人虚拟传感器1350包括引导1352机器人100以第一行为模式移动,监测1354机器人100以第一行为模式移动,确定1356机器人100是否受限,并且在确定1356机器人100受限时启动1358第二行为模式。在一些实施方式中,笼机器人虚拟传感器1350在判定机器人100处于杂乱区域时被激活(例如,通过接收来自于图4A-B和5中的接近传感器134A-D和/或动力撞击传感器132的一个或多个信号)。
[0138]引导1352机器人100以第一行为模式移动可以包括引导机器人以柱绕行1250和/或柱摆动1300行为(参照图13-14)移动。另外或可替代地,引导1352机器人100以第一行为模式移动可以包括引导机器人100通过一组行为模式移动。另外或可替代地,所述第一行为模式或一组行为模式可以包括下列行为模式中的一个或多个:反弹模式、障碍物跟踪模式、以及点覆盖模式。
[0139]监测1354机器人100在第一行为模式过程中的移动可以包括测量机器人100的航向并且测量由机器人100行进的直线距离。该监测1354可以在行为模式过程中和/或在一组行为模式过程中进行一段时间。在一些实施方式中,机器人100的所测量的航向包括来自陀螺仪119和/或由一个或多个轮编码器121a、b、C (图3)的测量。
[0140]确定1356机器人100受限可以包括:确定监测1354机器人100的移动包括360度或以上的航向变化和小于阈值(例如,小于约6米、小于约4米、小于约2米)的机器人100的所测量的直线运动。航向变化与直线运动的这种组合表明机器人100受限于小区域。例如,机器人100的直线运动可以由一个或多个轮编码器121a、b、c测量。
[0141]在确定1356机器人100受限时,第二行为模式得以启动1358。例如,第二行为模式可以包括避开模式。另外或可替代地,启动1358第二行为模式可以包括提供警报(例如,声音警报、视觉警报)和/或对机器人100切断电源。
[0142]在一些实施方式中,确定1356机器人100受限包括至少部分地基于确定所接触的障碍物之间的距离来产生局部区域图。例如,可以通过在与第一障碍物初始接触时存储机器人100的航向以及在与第二障碍物初始接触时使用航位推测法以确定第一与第二障碍物之间的距离,产生局部区域图。用于航位推测的速度或距离信息可以包括来自所述一个或多个轮编码器121a、b、C的里程计信息和/或来自所述驱动轮组件112、114的电机功率信息。
[0143]已描述了许多实施方式。尽管如此,要理解的是,在不脱离下面权利要求的精神和范围的情况下,可以做出各种修改。因此,其它实施方式在下面权利要求的范围之内。
【权利要求】
1.一种在地板上导航自主覆盖机器人的方法,所述方法包括:在清扫模式下控制所述机器人越过地板的运动;接收表示障碍物的传感器信号;使机器人旋转远离所感测到的障碍物;在至少部分的机器人旋转远离所感测到的障碍物的过程中确定所接收到的传感器信号的变化;以及至少部分地基于所接收到的传感器信号的确定变化识别所感测到的障碍物。
2.根据权利要求1所述的方法,其中,接收表示障碍物的传感器信号包括确定所接收到的传感器信号强度的增加。
3.根据权利要求2所述的方法,其中,确定所接收到的传感器信号强度的增加包括低通滤波所接收到的传感器信号并且将低通滤波的传感器信号与瞬时传感器信号相比较。
4.根据权利要求1至3中任一项所述的方法,其中,确定所接收到的传感器信号的变化包括确定所接收到的传感器信号的强度的峰值。
5.根据权利要求4所述的方法,其中,确定所接收到的传感器信号的强度的峰值包括低通滤波所接收到的传感器信号并且将低通滤波的传感器信号与瞬时传感器信号相比较。
6.根据权利要求4或5所述的方法,其中,至少部分地基于所接收到的传感器信号的确定变化识别所感测到的障碍物包括存储与表示障碍物的所接收到的传感器信号相关联的第一机器人航向并且存储与所接收到的传感器信号的确定峰值相关联的第二机器人航向。
7.根据权利要求6所述的方法,其中,识别所感测到的障碍物还包括至少部分地基于所存储的第一与第二机器人航向之间的差值确定所感测到的障碍物的角宽度并且将所感测到的障碍物的确定角宽度与阈值相比较。
8.根据权利要求7所述的方法,其中,所述阈值至少部分地基于所接收到的传感器信号的强度和/或障碍物的角宽度而设定。
9.根据权利要求7或8所述的方法,其中,所述机器人限定了前后轴,并且表示障碍物的传感器信号从第一传感器与第二传感器之一接收,所述第一传感器与第二传感器设置在所述前后轴的相应左右侧。
10.根据权利要求9 所述的方法,还包括:如果障碍物的确定角宽度小于所述阈值,则操纵机器人以使所述前后轴方向基本上平行于所感测到的障碍物进行导向。
11.根据权利要求10所述的方法,其中,操纵机器人以使所述前后轴方向基本上平行于所感测到的障碍物进行导向包括对机器人进行定位,以使得对应于所接收到的传感器信号的传感器最接近所感测到的障碍物。
12.根据权利要求7至11中任一项所述的方法,还包括,当确定障碍物的角宽度小于阈值时,引导机器人朝向所感测到的障碍物转弯。
13.根据权利要求12所述的方法,其中,所述机器人基本上是圆柱形的,并且引导机器人朝向所感测到的障碍物转弯包括使机器人的转弯半径稍大于机器人的半径。
14.根据权利要求12所述的方法,其中,以半径约等于机器人的半径至机器人半径的约1.8倍来引导所述机器人转弯。
15.根据权利要求12至14中任一项所述的方法,其中,以至少部分地基于障碍物的确定角宽度的转弯半径来引导机器人转弯。
16.根据权利要求12至15中任一项所述的方法,其中,引导机器人朝向所感测到的障碍物转弯包括引导机器人转弯直至达到所述第一机器人航向,并且当达到第一机器人航向时,引导机器人沿着对应于所述第一机器人航向的基本上直的路径移动。
17.根据权利要求7至17中任一项所述的方法,还包括,当确定所感测到的障碍物的角宽度大于或等于阈值时,通过改变机器人的转弯半径来操纵机器人以基本固定的距离跟踪所感测到的障碍物。
18.根据权利要求17所述的方法,其中,改变机器人的转弯半径包括在第一方向上使机器人转弯远离所感测到的障碍物,并且当确定不再检测到传感器信号时,使机器人在第二方向上朝着所感测到的障碍物转弯。
19.根据权利要求7至18中任一项所述的方法,其中,所存储的第一与第二机器人航向中的至少一个由机器人携载的陀螺仪确定。
20.根据权利要求7至19中任一项所述的方法,其中,所存储的第一与第二机器人航向中的至少一个由至少支承部分机器人于清洁表面之上的轮子的轮编码器确定。
21.根据权利要求1至20中任一项所述的方法,还包括,当接收表示障碍物的传感器信号时,使机器人在与所接收到的传感器信号相反的方向上沿大致直线移动。
22.根据权利要求21所述的方法,其中,所述机器人沿大致直线移动约15毫米至约50 毫米的距离。
23.根据权利要求1至22中任一项所述的方法,还包括,至少部分地基于表示障碍物的所接收到的传感器信号降低清扫模式下覆盖机器人越过地板的速度。
24.一种在地板上导航自主覆盖机器人的方法,所述方法包括:存储所述自主覆盖机器人的航向;使自主覆盖机器人沿着所存储的航向移动至与自主覆盖机器人的转弯圆相切的障碍物;扫描携载在所述自主覆盖机器人上的传感器;接收所扫描的传感器信号;至少部分地基于所接收到的扫描的传感器信号对障碍物进行分类;至少部分地基于作为柱子的障碍物的分类使自主覆盖机器人运行绕过至少部分的分类的障碍物;在绕行所分类的障碍物过程中将所存储的航向与自主覆盖机器人的航向相比较;以及至少部分地基于在绕行过程中所存储的航向与自主覆盖机器人的航向的比较恢复所存储的航向。
25.根据权利要求24所述的导航自主覆盖机器人的方法,其中,恢复所存储的航向包括如果在绕行过程中自主覆盖机器人的航向等于所存储的航向,则中断自主覆盖机器人的绕行。
26.根据权利要求24或25 所述的导航自主覆盖机器人的方法,其中,恢复所存储的航向包括使自主覆盖机器人朝着所存储的航向转弯。
27.根据权利要求26所述的导航自主覆盖机器人的方法,其中,使自主覆盖机器人朝着所存储的航向转弯包括使自主覆盖机器人在与自主覆盖机器人的绕行方向相反的方向上转弯。
28.根据权利要求24至27中任一项所述的导航自主覆盖机器人的方法,其中,使自主覆盖机器人绕行包括以半径大于自主覆盖机器人的转弯周长使自主覆盖机器人移动。
29.根据权利要求24至28中任一项所述的导航自主覆盖机器人的方法,其中,至少部分地基于所接收到的扫描的传感器信号对障碍物进行分类包括将扫描的传感器信号与经验模型相比较。
30.根据权利要求24至29中任一项所述的导航自主覆盖机器人的方法,其中,扫描携载在自主覆盖机器人上的传感器包括使自主覆盖机器人转弯以使所述传感器移动。
31.根据权利要求24至30中任一项所述的导航自主覆盖机器人的方法,其中,扫描携载在自主覆盖机器人上的传感器包括使所述传感器相对于自主覆盖机器人移动。
32.根据权利要求24至31中任一项所述的导航自主覆盖机器人的方法,其中,所述传感器包括以下中的一个或多个:摄像头、激光器、红外线传感器、接近传感器以及声学传感器。
33.一种自主覆盖移动机器人,其包括:底座,其具有前部、后部,并且限定了在其间延伸的前后轴;驱动组件,其联接至所述底座以使机器人移动越过清洁表面;清扫头,其布置成从上面驱动有机器人的地板上去除碎片;第一传感器,其配置成在机器人移动越过清洁表面时产生表示障碍物的信号;以及控制器,其与所述驱动器组件通信以控制机器人移动越过清洁表面,所述控制器配置成执行根据权利要求1至32中任一项所述的方法的操作。
34.一种编码有计算机程 序的计算机可读介质,包括执行时操作以促使计算机执行根据权利要求1至32中任一项所述的方法的操作的指令。
【文档编号】G05D1/02GK103534659SQ201180068875
【公开日】2014年1月22日 申请日期:2011年12月30日 优先权日:2010年12月30日
【发明者】M.S.施尼特曼 申请人:美国iRobot公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1