用于通过自主型机器人完全覆盖表面的方法和系统转让专利

申请号 : CN201510398243.X

文献号 : CN104970741B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 迈克尔·S·斯托特加布里埃尔·弗朗西斯·布里松恩里科·迪贝尔纳多保罗·皮尔金南迪拉吉·戈尔詹姆斯·菲利普·凯斯迈克尔·J·杜利

申请人 : 艾罗伯特公司

摘要 :

本发明公开一种机器人,被配置为在一表面上移动,所述机器人包括:移动机构;逻辑地图,其表示关于该表面的数据并且在期间将多个位置与观察到的一个或多个属性相关联;初始化模块,被配置为建立包括初始位置和初始定向的初始姿势;区域覆盖模块,被配置为引起机器人移动从而覆盖区域;边缘跟随模块,被配置为引起机器人跟随未被跟随的边缘;控制模块,被配置为在至少部分地基于初始姿势的至少一部分限定的第一区域上调用区域覆盖,以调用边缘跟随,并且调用区域覆盖引起映射模块将已被跟随边缘标记为已被跟随,并且引起在边缘跟随期间发现的区域上进行第三区域覆盖。

权利要求 :

1.一种移动机器人,包括:

机动驱动器和连接至该机动驱动器的驱动电路,以使所述移动机器人以多种机器人姿势在一表面上运动;

边缘传感器,该边缘传感器被配置为检测在所述移动机器人横过的表面上的障碍物的边缘;

定位传感器,该定位传感器被配置为检测在所述移动机器人横过的表面上的机器人姿势;

存储电路,该存储电路存储所述表面的地图,其中,通过根据所述定位传感器和所述边缘传感器增加探测位置、未探测位置和边缘位置至所存储的地图中而扩展所述地图,其中,边界指示探测位置与未探测位置之间的边界,并且边缘指示探测位置与占用位置之间的边界;

区域覆盖程序模块,该区域覆盖程序模块提供驱动电路指令以跟随路径策略图案,以相对于一个或多个边界来扩展所述地图;

边缘追踪程序模块,该边缘追踪程序模块提供驱动电路指令以沿障碍物的被检测边缘追踪,其中,边缘追踪程序开始于区域覆盖程序中发现的边缘位置,并且当障碍物的新的边缘被所述边缘传感器实时地检测到时延长追踪,并且利用所述移动机器人在边缘追踪过程中沿边缘运动时发现的新的边界扩展地图;以及控制电路,该控制电路被配置为监测所述边缘传感器和定位传感器,执行驱动电路指令以使所述移动机器人运动,并且通过如下方式扩展所述地图:通过在区域发现的至少两个不同方向上交替地施加所述路径策略图案,执行区域覆盖程序以从非边缘的起始位置向外扩展所述地图,直至没有额外的边界被发现;

执行所述边缘追踪程序以追踪障碍物的被检测边缘;并且

在边缘追踪程序期间发现新的边界之后,返回至所述区域覆盖程序。

2.根据权利要求1所述的移动机器人,还包括映射程序模块,该映射程序模块被配置为通过将地图位置与足以指示未探测、探测和占用位置的一个或多个属性相关联而更新所述地图。

3.根据权利要求1所述的移动机器人,其中,当没有另外的边界被发现时,所述边缘追踪程序模块被配置为使所述移动机器人再次追踪之前已经追踪过的一个或多个边缘。

4.根据权利要求1所述的移动机器人,其中,所述边缘追踪程序模块在所述区域覆盖程序模块完成发现第一边界的步骤之后启动。

5.根据权利要求1所述的移动机器人,其中,所述边缘追踪程序模块被配置为从存储在所述存储电路中的地图中去除位置与边缘之间的关联。

6.根据权利要求1所述的移动机器人,其中,所述边缘追踪程序模块被配置为提供驱动电路指令以使所述移动机器人运动,从而使得:在跟随未被跟随的边缘时,如果与映射的边缘不相关联的至少一个位置被横过时,覆盖边缘被发现的区域。

7.根据权利要求1所述的移动机器人,其中,所述区域覆盖程序模块和所述边缘追踪程序模块包括具有硬件的计算机化系统。

8.一种映射表面与移动装置的计算机执行的方法,所述方法包括如下步骤:维持所述表面的地图;

所述地图包括探测位置、未探测位置和边缘位置,其中边界指示探测位置与未探测位置之间的边界,并且边缘指示探测位置与占用位置之间的边界;

通过计算机系统监测定位传感器和边缘传感器,所述定位传感器被配置为检测在所述表面上的所述移动装置的姿势,所述边缘传感器被配置为检测在所述表面上的障碍物的边缘;

至少使用所述定位传感器提供的姿势信息,通过在区域发现的至少两个不同方向上交替地施加路径策略图案,利用所述移动装置跟随路径策略图案,以相对于一个或多个边界从非边缘的起始位置向外扩展所述地图,直至没有额外的边界被发现;

至少使用所述边缘传感器提供的边缘信息进行以下步骤:

利用所述移动装置沿障碍物的被检测边缘追踪,并在跟随所述路径策略图案时发现的边缘位置处开始;

当障碍物的新的边缘被所述边缘传感器实时检测到时,延长追踪;

使用所述移动装置在边缘追踪过程中沿边缘运动时发现的新的边界来扩展所述地图;

并且

在边缘追踪期间发现新的边界之后,返回至所述路径策略图案。

9.根据权利要求8所述的方法,所述方法还包括如下步骤:当在边缘追踪期间没有另外的边界被发现时,使所述移动装置再次追踪之前已经追踪的一个或多个边缘。

10.根据权利要求8所述的方法,其中,所述边缘追踪在完成发现第一边界的步骤之后启动。

11.根据权利要求8所述的方法,所述方法还包括如下步骤:从所述地图上去除位置与边缘之间的关联。

12.根据权利要求8所述的方法,所述方法还包括如下步骤:提供驱动电路指令以使所述移动装置运动,从而使得:在跟随未被跟随的边缘时,当与映射的边缘不相关联的至少一个位置被横过时,覆盖边缘被发现的区域。

13.根据权利要求8所述的方法,所述方法还包括如下步骤:提供驱动电路指令以跟随所述路径策略图案。

14.根据权利要求8所述的方法,其中,所述移动装置包括计算机系统。

15.一种包括非暂时性存储装置的计算机存储系统,所述计算机存储系统具有存储于其上的可执行的程序指令,所述程序指令引导计算机系统执行至少如下步骤:维持移动装置在其上移动的表面的地图;

所述地图包括探测位置、未探测位置和边缘位置,其中边界指示探测位置与未探测位置之间的边界,并且边缘指示探测位置与占用位置之间的边界;

监测定位传感器和边缘传感器,所述定位传感器被配置为检测在所述表面上的所述移动装置的姿势,所述边缘传感器被配置为检测在所述表面上的障碍物的边缘;

至少使用从所述定位传感器接收的姿势信息,通过在区域发现的至少两个不同方向上交替地施加路径策略图案,使得所述移动装置跟随路径策略图案,以相对于一个或多个边界从非边缘的起始位置向外扩展所述地图,直至没有额外的边界被发现;

至少使用所述边缘传感器提供的边缘信息进行以下步骤:

使所述移动装置沿障碍物的被检测边缘追踪,并在跟随所述路径策略图案时发现的边缘位置开始;当障碍物的新的边缘被所述边缘传感器实时检测到时,延长追踪;

使用所述移动装置在边缘追踪过程中沿边缘运动时发现的新的边界来扩展所述地图;

并且

在边缘追踪期间发现新的边界之后,返回至所述路径策略图案。

16.根据权利要求15所述的计算机存储系统,所述可执行的程序指令还被配置为使所述计算机系统执行如下步骤:当在边缘追踪期间没有另外的边界被发现时,使所述移动装置再次追踪之前已经追踪的一个或多个边缘。

17.根据权利要求15所述的计算机存储系统,所述可执行的程序指令还被配置为在完成发现第一边界的步骤之后启动所述边缘追踪。

18.根据权利要求15所述的计算机存储系统,所述可执行的程序指令还被配置为执行如下步骤:从所述地图上去除位置与边缘之间的关联。

19.根据权利要求15所述的计算机存储系统,所述可执行的程序指令还被配置为执行如下步骤:提供驱动电路指令以使所述移动装置运动,以使得:在跟随未被跟随的边缘时,如果与映射的边缘不相关联的至少一个位置被横过,则覆盖边缘被发现的区域。

说明书 :

用于通过自主型机器人完全覆盖表面的方法和系统

[0001] 本申请是2012年6月20日进入中国的PCT专利申请PCT/US2010/055740,国家申请号为201080058160.1的专利申请的分案申请。
[0002] 对相关联申请的交叉参考和引用
[0003] 本申请要求2009年11月6日递交的美国临时申请No.61/280,678的基于35 USC§ 119(e)的权益,通过参考将其全部内容结合于此。

技术领域

[0004] 在此所披露的内容涉及在未知环境中的移动。

背景技术

[0005] 通常必要或有用的是在未知环境或表面中导航或移动,以便通过移动装置横过(覆盖)该未知表面的全部或大致全部(如,当上油漆或清洗时)。用于在未知环境中的表面上建立覆盖路径的某些系统和方法是已知的。然而,这样的系统往往以对用户表现随机的方式移动(例如,可能使用户怀疑通过移动装置进行清洗的功效),往往不能及时或有效地覆盖该表面的能够到达的部分,并且往往在视图覆盖更远的部分之前不能覆盖该表面的靠近该表面上的第一位置的能够到达的部分。一些传统系统还不能彻底覆盖该表面的周边(包括该表面的内部或部分内部的障碍的周边)。

发明内容

[0006] 在本申请中讨论的某些实施例可以结合在2005年3月25日提交的作为美国专利申请2005/0213082的美国专利号No.7,720,554中披露的系统和方法使用,在此通过参考将其内容整体结合于此。同样,在本申请中讨论的某些实施例可以与在2009年4月24日提交的美国专利申请序列号12/429963中披露的系统和方法结合使用,在此通过参考将其内容整体结合于此。
[0007] 所披露的是被配置为在表面上移动的移动装置,该移动装置包括:移动机构,被配置为将移动装置从包括第一位置和第一定向的第一姿势移动到包括第二位置和第二定向的第二姿势;映射模块,被配置为更新代表关于该表面的数据的地图,该地图将多个位置与一个或多个属性相关,所述属性包括足以说明“未探测”、“已横过”、“边缘”、“占用”的属性;初始化模块,被配置为建立包括初始位置和初始定向的初始姿势;第一区域覆盖模块,被配置为引起移动机构移动移动装置,从而覆盖至少部分地基于初始姿势的至少一个分量限定的第一区域,并且进一步被配置为引起映射模块更新所述地图;第二区域覆盖模块,被配置为引起移动机构移动移动装置,从而覆盖对应的至少一个附加区域,并且引起映射模块更新所述地图,其中第一区域和所述至少一个附加区域不重叠;边缘跟随模块,被配置为识别一个或更多个未被跟随的边缘,引起移动机构移动移动装置以跟随各个未被跟随的边缘,引起映射模块将已被跟随的边缘标记为已被跟随,并且使第三区域覆盖模块引起移动机构移动移动装置,从而在一个或更多个边缘被发现的区域被发现时覆盖这些边缘被发现的区域。
[0008] 同样披露的是用于使用移动装置在表面上移动的方法,该方法包括下述步骤:至少基于在具有一个或更多个边界和包含一个或更多个障碍物的表面上的移动装置的第一姿势的分量,使用计算装置限定参考范围,第一姿势包括第一位置和第一定向;通过移动装置探测该表面的第一区域,第一区域是至少部分地基于第一姿势的分量确定的;在探测第一区域以后,通过移动装置探测该表面的至少一个第一附加区域;将关于该表面的信息的地图保持在计算机可读存储器中,其中该信息的至少一部分是通过探测第一区域和所述附加区域获得的;在地图的分析指示存在一个或更多个未被跟随的周边部分时,周边跟随一个或更多个未被跟随的周边部分:以及探测在周边跟随时发现的未探测的第二附加表面区域。
[0009] 周边跟随步骤包括下述步骤:使移动装置移动到在作为未被跟随的第一周边部分上的第一位置;至少部分地依赖于用于确定如何跟随第一周边部分的一个或更多个传感器跟随第一周边部分;更新所述地图以指示被跟随的第一周边部分被跟随;以及用关于在跟随第一周边部分时横过的一个或更多个位置的附加信息更新所述地图。探测区域的步骤包括下述步骤:使移动装置在该区域中移动;当一个或更多个被发现的周边被识别时,更新所述地图以指示所述一个或更多个被发现的周边,所述周边包括表面边界和障碍物边界;以及更新所述地图以指示已经探测该表面的已横过部分。

附图说明

[0010] 将结合附图将披露的方面说明如下,提供附图以说明和不限制所披露的方面。相同指示表示相同元件。
[0011] 图1是说明可以用于在诸如表面的未知区域上移动的一个实施例的过程的示例的流程图。
[0012] 图2是说明如在执行在图1中图示的过程时可以用于覆盖区域的实施例的过程的示例的流程图。
[0013] 图3是说明如在执行在图1中图示的过程时可以用于跟随周边的实施例的过程的示例的流程图。
[0014] 图4说明可以包括移动装置的实施例的一些部件。
[0015] 图5A-5C说明如在执行在图2中图示的过程时可以用于在区域中或者沿着周边移动的实施例的过程的示例的流程图。
[0016] 图6说明在此所使用的一些术语,例如沿着“区域”中的“行”的“蜿蜒”的示例。
[0017] 图7-14说明将诸如在图1-3和图5中图示的这些过程示例性地应用到示例环境。
[0018] 图15A-15B说明区域的动态调整大小的示例。
[0019] 图16图示推迟的移动的示例。
[0020] 图17图示受限覆盖的示例。
[0021] 图18A-18D图示重叠覆盖的示例。

具体实施方式

[0022] 在此所描述的是用于使诸如移动装置(例如,机器人地板清洁装置)之类的目标在诸如未知环境之类的环境中移动的方法和系统。某些实施例可以使用这种移动以完全地覆盖或大致覆盖暴露的环境或环境的一部分(例如,铺有地毯或没铺地毯的地板)。
[0023] 在此公开的一些方法和系统促进技术在下述方面的发展水平,即移动装置获得有关其在环境中的相对位置和定向(姿势)的信息的情况下如何能够在这种环境中移动,任选地在没有该环境的布局的先验知识的情况下。按照在此披露的一定的方法和系统配置的移动装置移动从而覆盖或大致覆盖环境(例如,横过在诸如地板之类的环境中的所有或几乎所有能够横过的位置,不包括因为障碍物不能够横过的部分,如家具、宠物、人、楼梯等项目)。
[0024] 根据在此公开的方法和系统配置的另一个示例的移动装置可预见地实现环境的这种覆盖(例如,其倾向于以有组织的方式在单独的覆盖工作时在环境中跟随相同或大致相同路线,或倾向于以有组织的方式在单独的覆盖工作时以相同或相同的时间量完成环境的覆盖或大致覆盖)。这具有附加的可选益处,即使观看移动装置的操作的用户详细移动装置正以有组织的方式彻底地执行其任务。此外,因为以可预见的方式进行某些实施例,如果用户需要在由移动装置在其上操作的表面上走过,用户可以预测在不久的将来(例如,在下一分钟中)移动装置将不会被横过哪些区域,并且选择该区域走过。
[0025] 根据在此公开的方法和系统配置的移动装置的又一个示例以与传统装置相比减少的时间量实现表面或其他环境的完全覆盖或大致完全覆盖(假设传统装置可以以与所述又一个示例相同的速度移动)。
[0026] 一些披露的实施例可以有选择地实现这些结果,同时使用价格相对低廉的计算资源,如处理能力、存储和时间,以使在此披露的功能性可以以相对紧凑的移动装置获得和/或其可以以负担得起的大众市场消费品分布,包括执行超出移动之外的附加功能的产品。
[0027] 定义
[0028] 在此处的说明书全文中,“定位”可以包括确定环境中的目标的位置和该目标的定向两者。位置和定向的结合被称为“姿势”。
[0029] “移动”是广义术语,并且被以对本领域技术人员来说普通和惯常意义给出(即,其不限于特殊的或专用的含义),并且包括但不限于,确定路线,诸如从源位置到目标位置的路线,并且按照这条路线在环境中移动(“横过”)。可以非限定性地通过在轮子或履带或类似物上移动、通过飞行或滑翔、通过游泳或漂浮、通过逻辑地移动通过虚拟空间、通过挖掘通过材料等等执行横过。当移动装置在环境中或环境的一部分中移动时,所述环境中或环境的该部分中的位置可以被“覆盖(covered)”或“横过(traversed)”或“探测(explored)”或“移动(navigated)”。
[0030] “覆盖”是广义术语,并且被以对本领域技术人员来说普通和惯常意义给出(即,其不限于特殊的或专用的含义),并且包括但不限于,横过环境的从初始位置能够横过和可到达的所有或几乎所有位置;横过足够多这样的位置,从而所有或几乎所有这些位置可以由被配置为执行操作的移动装置在其上操作;诸如此类。“覆盖”一词也可应用于环境的一部分。环境或其部分可以被视为“覆盖”时的说明性示例包括如果至少100%、95%、90%、85%或一些其他的阈值百分比或比例的能够横过的位置被处理(例如,在其上横过或操作),或如果阈值量被覆盖或不覆盖。例如,真空吸尘器在它至少已经横过100平方英尺的阈值时,如80、85、90、95或99,则它可能被视为已经覆盖具有100平方英尺可到达表面的房间(例如,不是由于障碍物而难以接近的表面,如家具项目、宠物、人、台阶等)。或者,如果少于可到达地板的平方英尺的阈值数没有被清扫(诸如1、5、10或100),则可以将示例性清扫装置视为已经覆盖该地板,而不管可到达地板的总量。在一些应用中,如扫地或吸尘,可能特别重要的是,移动装置进行该环境的包括其“周边”的部分的明确覆盖。例如,扫地和吸尘往往导致碎片聚积在墙壁、家具或其他障碍物附近。对于其他应用,例如分散种子或洗涤剂,可能没有必要明确地覆盖环境的周边,只要该环境大体上被覆盖。
[0031] 为方便起见,此披露的大部分以“移动装置”或“移动目标”的术语表示。然而,所述披露的方面可以一般地用于使任何类型的目标移动,并且本领域技术人员会明白此披露如何可以应用到其他目标,包括没有独立地移动的那些(如由别的东西运输或承载的那些)。以说明和不限制的方式,移动装置可以是自动型、半自动型或远程指挥的地板清洁装置(例如,清扫装置、真空吸尘器、割草机和/或擦洗机)、运载车辆(例如,在建筑中传递邮件、在医院或宿舍等中传递食品等等)、或监控车辆(如污染或杂质检测仪、安全监控仪)。移动装置可以配备有一个或多个驱动马达,其驱动一个或多个轮子、履带或其他这种装置,其中驱动马达可以在执行存储在非暂时性存储器(如,其在目标断电时或在其他一些数据被覆盖或擦除时保持)中的程序的计算装置的控制下。移动装置可以被配置为了移动而移动,或者其可以被配置为执行其它任务,包括但不限于上面提到的那些,以及重新编码(视频、音频、和/或其他数据)、拖地、修剪、切割、分配(例如,油漆、密封剂、种子、化肥或游泳池清洁剂)。
移动装置可以是机器人,其被配置为执行任何这些功能和/或其他功能。总之,“移动目标”和“移动装置”是广义术语,并且被以它们的对本领域技术人员来说普通和惯常意义给出(即,它们不限于特殊的或专用的含义),并且包括但不限于上面提到的示例。
[0032] “环境”是广义的术语,并且被以其对本领域技术人员来说普通和惯常意义给出(即,它们不限于特殊的或专用的含义),并且包括但不限于单个房间、多间房间、走廊、汽车内部、草坪、农田、庭院、屋顶、人行道、道路、一定量的水或流体、游泳池、地板、天花板、墙壁、非封闭和部分封闭的室外空间、前述的部分等等。
[0033] “表面”是广义的术语,并且被以其对本领域技术人员来说普通和惯常意义给出(即,它们不限于特殊的或专用的含义),并且包括但不限于该环境的移动装置移动或尝试移动通过的部分,如地板、墙壁、天花板、地面、栅栏、室内装饰、顶部、底部、侧面、外部等等。表面不需要是平面或大致平面,但可以包括,例如,环境的内部空间(例如,在这种表面上移动包括在三维中在那个表面中移动)。
[0034] 通常情况下,表面具有一个或多个边界。“边界”是广义的术语,并且被以其对本领域技术人员来说普通和惯常意义给出(即,它们不限于特殊的或专用的含义),并且包括但不限于,地板的如由墙壁建立的或模制的限定边界,如由预定的尺寸设置的表面的限定边界(例如,表面可以被限定为5米×6米×4米,或者为具有位于特定位置处的中心和限定的半径的圆形),如基于移动装置的性能建立的表面的限定边界(例如,因为当其移动超越某些位置时其功率或定位信号降低到阈值以下)等等。应被理解,除非上下文另有所指,否则边界可以是“虚拟”边界(例如,由移动装置限定),而不是物理屏障。
[0035] “占用地图”或“地图”是将环境或表面中的位置与关于该位置的信息和属性相关联的逻辑结构。“占用地图”是广义的术语,并且被以其对本领域技术人员来说普通和惯常意义给出(即,它们不限于特殊的或专用的含义),并且可以被以广泛范围的方式实施,包括但不限于同,作为位置关于属性的地图;作为属性关于位置的地图;使用数据库技术,使用各种相关联的数据结构,或本领域技术人员可以选择的适合环境和要求的任何其他的实施例。因此,理解为,地图不需要是可视地图,而是可以通过存储在计算机可读存储器中的数据限定。作为阐述,地图可以对应于具有不同程度的精度和/或准确性的实际表面。例如,精度例如会受到对应于表面的一部分的离散的地图单元的影响。每个可以对应于表面的10厘米×10厘米部分,或表面的1米×1米部分(例如,他们不需要是方形或甚至所有相同尺寸)的这些单元的尺寸可以通过对被观测的性能的间隔尺寸施加限制而影响精度。精度可能受到传感器质量等(包括在此提及的各种其他因素)的影响。实施例可以执行基于地图中的信息在此讨论的一些或全部分析。
[0036] “探测”位置是表面的移动装置能够横过的那些位置或部分。例如,其可以排除地板在夹具下的、移动装置不能在其下滑动的部分、或者草坪的移动装置由于它不能行进通过泥或水而无法达到的部分。在其他情况下,(例如,如果移动装置适当地小,被配置用于“越野”或能够在水中航行),则这些区域潜在地可以成为探测区域。探测区域也可以排除该表面的移动装置尚未横过但是能够横过的部分。
[0037] “占用”位置可以包括表面的移动装置无法横过的那些部分。如果具有阻止移动装置横过那部分的物理障碍物、如果该表面的属性呈现其不能够接近的部分、如果移动装置的操作的电源或控制信号或其他必要要素不在那部分中充分发挥作用等等,则所述部分可以被占用。
[0038] “蜿蜒(snake)”是路径或路线类型,一些移动装置可以通过所述路径或路线横过表面的一部分。通过示例而不是限制的方式,可以说移动装置已经“在表面的一部分上采取蜿蜒形式”或可以说“蜿蜒可用于移动装置跟随”。跟随这样的路径的移动装置是“蜿蜒的”。在下文中更完整地阐述这个术语。
[0039] “边界(frontier)”是指表面的探测部分和未探测部分之间的边界。在一些实施例中,“蜿蜒边界”是指选定的或适合蜿蜒进入的边界。在一些实施例中,移动装置可以蜿蜒地移动到边界的未被探测侧。在一些地图中,边界可以由已横过或探测位置组成,所述已横过或探测位置具有邻近他们的未探测位置。在其他地图中,边界可以由紧邻探测或已横过位置的未探测位置组成。
[0040] 表面的“周边(perimeter)”可以包括表面的边界以及在表面中或部分地在表面中的任何障碍物的边缘。例如,一件家具的脚或沉睡的宠物的轮廓的印迹可以是周边的一部分。所以在地下环境中的密集岩石的三维轮廓也是可能的,其中在地下环境中能够横过的表面包括较小密度污物,并且移动装置无法横过通过该岩石。
[0041] “边缘(edge)”是表面的探测部分和占用部分之间的边界。例如,在割草机实施例中,边缘可以环绕树的树干。如果占用位置被认为是未探测的,或者如果一些边界位置是具有被占用位置的边界和具有未探测位置的其他边界两者的一部分,则这些边界位置也可以是边缘位置。实施例可以至少部分地基于至少在地图中的一些位置的至少一些属性,关于地图定义边界、边缘和/或周边。
[0042] 用于覆盖移动的方法和系统
[0043] 现在将参考一些附图描述示例实施例。以下详细说明主要参照诸如地板或墙壁的二维表面进行。本公开内容可以很容易地由本领域技术人员扩展以应用于具有三维的移动和表面。
[0044] 覆盖过程的概述
[0045] 图1是流程图,说明用于覆盖表面的示例控制过程100。示例过程包括以下覆盖阶段:(i)基于区域的覆盖;和(ii)周边覆盖或跟随。基于区域的覆盖一般地涉及表面的可到达部分的覆盖,而周边覆盖一般涉及表面的周边(边界和边缘)的覆盖。
[0046] 如图1所示,在状态110处,例如使用基于信号的定位系统或航位推算系统获得移动装置的当前姿势P。在图示的实施例中,覆盖过程100建立至少部分地由P限定的移动的初始位置和主轴(覆盖方向)。在一个实施例中,用户可以通过将移动装置放置在表面上建立P。在另一个实施例中,移动装置可以自身假设特定的初始位置和/或定向。这种实施例可以使用,例如,美国专利No.7,720,554的系统和方法来识别和假设姿势。在又一个实施例中,移动装置可以假设或要求其已经被放置在特定初始姿势中,后续处理依赖该假设。在再一个实施例中,移动装置可以行进直到其遇到障碍物,选择性地识别障碍物为墙壁或其他边界,并且基于障碍物的明显位置和/或定向建立P。
[0047] 在过程100的一个实施例中,从逻辑上讲,初始位置被限定为(0,0),并且从逻辑上讲,初始定向被限定π/2弧度(90度)。也就是说,由实施例使用的参照范围或坐标系统是相对于初始姿势P的。可以使用任何其他初始位置或定向定义,并且下面的描述中将相应地调整。
[0048] 根据过程100,移动装置首先通过调用诸如图2的过程200之类的基于区域的覆盖过程(其中在状态115中开始条件设置到“覆盖到右侧”),在状态120处执行基于区域的覆盖到这个初始位置的右侧。一旦移动装置完成区域覆盖至右侧,通过在状态125处设置开始参数到“覆盖到左”和在状态130处调用过程200,其执行类似覆盖动作到最初初始位置P的左侧。
[0049] 在覆盖至左侧和右侧两者以后,该表面有可能存在移动装置还没有覆盖的表面的非周边部分。例如,覆盖左侧和覆盖右侧程序中的一个或二者可以直接地或间接地施加最大值在移动装置可以行驶的距离上或施加最大值在在移动装置可能覆盖的表面的量上。此外,所述程序中的一个或二者可以被中断,诸如由于移动装置需要充电或耗材更换,或者用户暂停操作,或者由于诸如可能与移动装置进入错误状态相关联的异常,包括但不限于,失去牵引力、卡在凹槽中或停留在峰顶上或被卡住。图示过程100表示对该表面的到过程200之前已经被覆盖的潜在部分进行检查,其中其在140处调用在状态135处设置到“覆盖任何地方”的开始参数。在其他实施例中,这种检查可以由其他过程或在其他时间处进行。例如,当调用“覆盖左侧”或者可以通过过程100直接地执行或调用时,这种检查可以是过程200的结束状态。
[0050] 以下在图2的情况中,讨论说明可以如何识别和覆盖表面的这种部分的示例过程。如果这种部分被发现,则基于区域的覆盖过程200以143处的“被覆盖的区域”的值返回,并且过程200再次调用开始设置到“覆盖任何地方”。如果这种部分未被发现,则过程200以在
141处的“没有边界”的值返回。如果发生这种情况,移动装置应已经大致覆盖表面的被识别的可到达或能够横过的部分,并且形成那些部分的相当完整的地图。过程100然后继续进行到状态150,在状态150中其调用周边覆盖过程300。
[0051] 周边覆盖过程300的示例如图3所示,并且在下面更详细地讨论。在高的水平处,这种过程300分析地图或以其他方式选择未被跟随的边缘或边界(周边)以覆盖周边或沿着周边移动,沿着这个周边移动,当这样做时更新地图,并且确定继续周边覆盖是否是必要的。
[0052] 如图所示,过程100处理过程300的至少三个返回值或状态。如果过程300以如在155处的“形成蜿蜒”状况终止,则表面的新的未探测部分被发现和进入那部分的蜿蜒被识别。在这种情况下,在开始参数在状态143处被设置到“覆盖形成的蜿蜒”以后,在状态140处调用过程200。如果过程300以条件“周边覆盖”终止,则过程100可能会停止。替换地(并且如图所示),响应于“覆盖周边”,过程100可以循环返回以经由状态135和140用“覆盖任何地方”调用基于区域的覆盖过程200。在一些实施例中,这是额外的预防措施,以顾及如下情况:地图中的噪音(如由于传感器不准确或异常、缺陷,或移动装置的机械方面的偏差,或在定位中的其他错误)导致移动装置未能正确映射或正确表征位置,从而无法识别和探测一个或更多个边界。如果过程200的这个预防移动识别没有边界,则过程100再次调用周边覆盖过程300,这可能会导致移动装置以跟随尚未被周边覆盖的另一个周边。然而,另一种选择是,当这个过程的第一次调用以条件“周边覆盖”结束时,过程100直接地循环返回进入周边覆盖过程300,用于额外的通过,而不干预基于区域的覆盖过程200的调用。
[0053] 如果过程300得出结论认为,在地图上没有周边边界,则它可以以如在157处的条件“没有周边边界”返回。移动装置然后可以停止其覆盖控制程序,如在160处。
[0054] 在这点160处,移动装置可以发出其已经完成覆盖和/或与覆盖相关联的诸如清洁之类的行动的信号(例如,通过声音、视觉、触觉或电通信给用户,通过有线或无线信号或其它接口到调用装置,和/或到监测应用)。一些移动装置可以移动到充电站、储料仓、他们的初始位置或姿势、或预定的下一个位置或姿势。一些这样的实施例可以选择一个或多个行为以基于一个或多个条件结束。例如,实施例可以返回到初始姿势或位置,除非下一个位置或姿势已经被设定。另一个实施例可以会发送电子邮件,指示覆盖完成,如果其需要充电则返回到充电站,否则继续进行以再次覆盖表面(例如,返回到状态110,也许具有与其执行状态110的在前时间不同的开始姿势)。
[0055] 为在不同的运行中上提供可预见的和一致的行为,移动装置可以选择地在状态120和130处每次以相同的顺序相同的参数(虽然在其他的实施例中,如下面讨论地,不同的参数和/或顺序可以被反复使用)有利地调用基于区域的覆盖过程200,。因此,当这样的过程100运行时,移动装置的初始行为将一致,以使如果其被放置成(或假设)相同的初始姿势(或者一个几英寸或厘米远,但是具有非常相似的定向),那么其每次将至少以相同或大致相同的方式开始覆盖表面(虽然上面讨论的噪音和其他因素以及障碍物的位置变化可能会影响最终所采取的路线和覆盖表面的方式)。其他实施例可以随机地或伪随机调用过程
200,无论首先“覆盖到左侧”还是“覆盖到右侧”。然而,其他的实施例可以被配置有识别障碍物是否接近左侧或右侧方向的多个传感器,并且首先在这个方向或另一个方向上进行覆盖。
[0056] 在其中不需要周边覆盖来成功地完成移动装置的非移动功能的情况中(诸如可能分配洗涤剂),过程100可以在完成基于区域的覆盖阶段以后和在150处的周边覆盖的调用之前结束。这可能导致小于完整的表面覆盖,因为有些区域(例如,其存在可能由以“形成蜿蜒”的结果返回的周边覆盖过程300表示的那些区域)可能仍然保持未被发现并且因此未被横过。
[0057] 基于区域的覆盖
[0058] 图2图示示例的基于区域的覆盖程序或过程200的示例性实施方案。如由上面的讨论暗示,过程200可以具有几种可能的开始点(例如,至少四种可能的开始点(状态205、215、225和250)),这些开始点是至少部分地基于开始条件的值选择的。替换例(没有图示)用于诸如过程200的过程,以用单个进入点评估开始条件,并且相应地继续进行。基于区域的覆盖程序200的图示实施例具有在状态295和245处设置的两个退出条件。
[0059] 如上所述,诸如过程100的控制过程可以首先使用开始参数“覆盖到右侧”调用过程200,然后用“覆盖到左侧”调用过程200,然后用“覆盖任何地方”调用过程200,然后用“覆盖形成的蜿蜒”调用过程200。在其他环境或者实施例中,可以用例如如上所述的相同参数但以不同顺序调用过程200。此外,如下文阐述,补充或替代参数用于一些实施例。例如,“覆盖底部”和“覆盖顶部”、“以45度角覆盖左侧”、“首先覆盖30度”等。一般地,可以用跨越限定角度的扇区概括所描述的左/右侧清洗。如上所述,角度是180度,但是可以这种方式支持跨越其他角度(包括但不限于120度、90度和60度)的扇区。过程200还利用各种其他参数。本领域技术人员会理解可以使用各种因式分解和参数传递策略。
[0060] 当在205处调用“覆盖到右侧”时,在210处设置覆盖参数,以使初始位置是移动装置的初始位置(P的位置分量),并且覆盖或覆盖方向被设置到移动装置的旋转负π/2弧度(顺时针旋转90度)的初始定向(P的方向分量)。当开始条件被设置到“覆盖到左侧”时,过程200从开始点215进入,并且在状态220处,覆盖参数被设置为移动装置初始位置(再次)和旋转正π/2弧度(逆时针90度)的移动装置初始定向。
[0061] 这些设置的结果是诸如那些图示的一些过程引起移动装置首先在其被放置在所述表面上所沿的方向上移动,继续行进以覆盖所述表面在移动装置首先移动所沿的线的一侧的部分,返回到该初始位置,并且继续行进以覆盖所述表面在移动装置首先移动所沿的线的另一侧的部分。一些这样的实施例有利地是可可预测的,具有美学上令人满意的路线,并且按照用户的期望执行辅助任务(如清洁),因为它们围绕初始位置(其可以是特别重要的或与用户相关联的位置)最初地和反复地操作。
[0062] 过程200的子集212采用在255处建立的初始姿势SP和覆盖方向D。方向D确定在区域内可以选择的覆盖动作(例如,移动或蜿蜒而行)的定向,这又确定移动装置覆盖或移动所沿的方向。例如,虽然移动装置可以在各种方向上移动,但其一般地在方向D上覆盖表面。初始姿势SP确定移动装置的开始覆盖的位置。可选地,覆盖方向D和初始姿势方向(定向)是互相正交的。在状态255处可以设置的另一个参数是MAX,即在方向D上行进的同时移动装置应尽量覆盖的区域的最大数量。在初始化以后,在状态260处将当前区域设置为区域1。
[0063] 在状态265处,形成覆盖区域(最初地,区域1)。区域是包括虚拟的边界框的逻辑结构。可以基于方向D和初始姿势SP限定区域。在一个实施例中,区域被形成为地图的一部分,所述地图存储该区域的限定参数(包括,例如,其区域数量、D和SP)。区域可以是静态的或动态的。某些移动装置在相同的覆盖过程中可以使用静态区域和动态区域两者,而在其他实施例中,在给定的覆盖过程中仅使用静态区域和动态区域中的一个或另一个。其它移动装置还可以永远只使用静态区域和动态区域中的一个或另一个。
[0064] 在静态区域的情况下,可以在移动装置覆盖该区域之前建立该区域的关于SP和D的位置和尺寸。例如,静态区域可以被限定以具有相对SP的预定大小(如5英尺×5英尺)和位置(例如,围绕SP定中心的边缘或在SP上具有顶点)。在用于清洁美式家庭中的地板的移动装置的一个实施例中,静态区域大小预设为约7米长(沿“行”的方向,在下面将详细讨论)、1.5m宽和围绕SP定中心的边缘(虽然静态区域可以具有更小或更大的尺寸)。
[0065] 用尺寸,优选用被期望与表面的尺寸相比较小的尺寸(例如,对于期望在美式家庭的地板上操作的移动装置是0.5米×0.5米)初始化动态区域,并且允许动态区域扩展,或许扩展到预先确定的最大大小/尺寸,以根据环境适应该区域。动态区域像静态区域一样可以具有相对SP的预先确定的位置。
[0066] 静态区域和动态区域在图15A和图15B中图示。在图15A中,在姿势1530处开始的移动装置在房间1510内蜿蜒而行,并且被限于静态区域1510。它跟随的蜿蜒1540显示,当它检测到它正在离开区域1520时,它继续前进到其蜿蜒的下一行,尽管它仍然是在房间1510中。相比之下,图15B显示,跟随动态区域1550中的类似路径1560的移动装置将达到房间1510的南侧墙壁,因为当移动装置达到其南侧边缘但是仍然能够继续进入未探测的和未占用的区域时,区域1550扩展。
[0067] 与蜿蜒边界列举、选择和/或识别相关联的地图分析可以被限制到当前区域。一些实施例可以被配置为使得在某些时候它们在之前覆盖的区域中以及在当前区域中或除了当前区域进行球形边界列举或以其他方式列举。此外,在一些实施中任选地被限制到当前区域的是移动装置的移动本身。其他实施例中没有这样的限制,但限制具有引起移动装置在移动到别处之前试图覆盖当前区域的有利效果。例如,在状态270处,在当前区域内搜索蜿蜒S。
[0068] 如果存在符合约束条件SC1的蜿蜒S,则移动装置在状态275处开始蜿蜒而行。其他实施例可以实施除蜿蜒之外的覆盖动(移动)。当移动装置蜿蜒而行时,地图被更新,例如,记录已经横过的位置、已被检测的障碍物和明显存在的边界。下文在图5的情况中更详细地讨论蜿蜒。
[0069] 不同条件可以导致移动装置退出蜿蜒动作或其他横过动作。例如,移动装置可以达到当前区域的末端(例如,蜿蜒过程的下一行在区域以外,并且区域在是动态区域时无法进一步增长),其可以达到表面的边界,必要信号(诸如电源或定位信号)可能变弱,可以达到物理极限(诸如线的长度),或者障碍物可以足够大或被适当地设置而阻止整个蜿蜒行和防止移动装置的移动过程造成移动装置围绕其移动。在蜿蜒动作完成时,移动装置确定下一步采取什么行动。移动装置可以在状态280处通过分析地图和识别合适的边界(如最接近移动装置的一个边界)而这样做。适当的边界优选地满足约束条件SC2。这些约束条件可以包括具有最小行长度(例如,一个机器人直径或20厘米)和具有D的主导(大致)方向或定向。以这种方式限定D趋向导致移动装置像以前一样在相同方向(D)上继续覆盖或探测。一些实施例可以选择具有主导方向而不是D的边界,包括直接与D相反。一些实施例可以这样做,只要边界具有比具有主导方向D的任何边界长的最小行长度。实施例可以有利地用除当前主导方向之外的主导方向探测区域,因为有时进入区域的唯一方式是从特定初始扇区开始。
[0070] 如果至少一个这样的边界通过/满足约束条件SC2,则存在“有效”蜿蜒动作,并且其被选为候选S,用于到状态270的下一个循环。如果没有这种蜿蜒存在,那么如果当前区域不是MAX(例如,如果还没达到实施例的用于过程200的调用的区域数量的极限),则覆盖区域计数器在状态290处是递增的,并且在状态265处形成具有新的边界框的新的区域。新的边界框和其他的约束条件可以限制后续的、如刚刚描述的那样的地图分析和蜿蜒动作。
[0071] 如果移动装置在285处已经到达最大所允许的区域MAX,则以状态“区域已被覆盖”在295处终止逐步区域覆盖。一些实施例可以具有系统水平MAX,以使所形成的区域的总数不能超过它,而其他实施例可以具有用于逐步的基于区域的覆盖的特定调用的MAX,或者根本就没有MAX。一些实施例可以由于性能方面的原因施加一种类型或其他的MAX,如限制消耗的存储量或所需的处理时间。如果没有相应调整其他属性(如区域的大小),则对MAX的限制可能导致较低的覆盖程度。
[0072] 当在状态225处以被设置到“覆盖任何地方”的开始参数调用过程200时,移动装置还分析地图以在状态230处识别合适的边界。在状态235处针对约束条件SC1评估潜在的边界。在240处,选择边界(例如,最接近移动装置的当前位置的边界或到达将是最少花费的一个边界,假设费用计算或近似函数,如用于到达的功耗或时间),设置相应的初始参数(例如基于蜿蜒S的属性,移动装置的当前姿势和地图的状态)。随后在状态255处对每个子集212继续处理。根据在240处设置的参数,初始姿势SP可以是移动装置当时的当前姿势,并且方向D可以被设置到任何值,例如包括以前的D、移动装置的当前定向或待探测的边界的主导方向。
[0073] 约束条件SC1和SC2可以限制移动装置以确保良好的定位或其他行为。例如,适当的约束条件可以促进移动装置在探测具有更有限的可到达性和/或进一步远离初始位置的区域之前清洗接近初始位置的表面的宽阔的敞开区域。约束条件SC1和SC2可以包括长度限制,以使蜿蜒必须具有初始行长度,该初始行长度具有至少一定的阈值,如20厘米、1米或其他值(或者例如,移动装置直径,1.5倍或2倍移动装置直径,或移动装置直径的其他一些倍数)。约束条件SC1和SC2可以包括或可以不包括定向限制。虽然约束条件SC1可以具有或可以不具有最小长度,但如果SC2具有长度约束,则SC1有利地具有比SC2的长度约束的最小长度长的最小长度。例如,如果一实施例具有0.5米的最小SC2长度检查,则该实施例可以优选地具有1.5米的SC1的长度检查。在两个长度检查之间不需要具有相关性,但是在一些实施例中,用于SC2的最小长度将近似地对应于移动装置的直径(或近似地对应于正交于移动方向的最大截面),并且在一些实施例中,用于SC1的最小长度将近似地为该措施的三倍。在其他实施例中,这个比例将有所不同,并且在其他实施例中有可能是没有这样的相关性。
[0074] 使SC1的长度要求比SC2的长度要求大有助于说明观察到的可能性,即已经在子集212期间积累的定位或映射误差可能导致地图指示存在小的蜿蜒边界,即使事实上,移动装置已经覆盖该表面的那些部分。另一方面,在子集212期间中,选择较小的边界已被观察到有助于确定移动装置更完整地覆盖该表面的可到达部分,并且有助于减少地图中的边界的存在,否则可能通过后续处理解决这种边界的存在。
[0075] 返回图1,在图示实施例中状态135和140被重复,从而以开始参数“覆盖任何地方”调用过程200,直到没有满足SC1(或可选地小于满足SC1的蜿蜒的阈值数量)的蜿蜒S被发现,并且过程200以条件“没有边界”退出。因此,在地图上存在至少一个边界的同时移动装置继续从地图中选择这种边界。
[0076] 如果在周边覆盖期间发现蜿蜒,则还可以在250状态处以设置为“覆盖形成的蜿蜒”的开始参数调用图示的过程200。可以将用于覆盖的参数设置为像当在状态235期间发现蜿蜒S时的那样。
[0077] 至此为止已经描述和在其他附图中图示的内容暗示长方形区域,本方法和系统可以适用于任何形状的区域。例如,表面可以分成从开始移动装置位置辐射的三个或更多个区域。在这样的一个示例中,术语“覆盖到左侧”和“覆盖到右侧”将被修改到诸如“覆盖部分n”,其中“n”指示一部分。其他参数,如方向、区域尺寸和最小长度也可以被调整以考虑在这种环境中的几何形状变化。
[0078] 蜿蜒动作和移动
[0079] 以上,已经涉及蜿蜒、蜿蜒动作和建立蜿蜒参数。例如,在图2中的过程200的状态275中。蜿蜒动作可以通过诸如在图5中图示的过程500之类的过程实现。
[0080] 一般来说,蜿蜒动作(蜿蜒而行)可以选择地由当前区域限制。此外,当移动装置横过表面时,用包括但不限于下列部分或全部的信息更新地图:障碍物的位置、表面的已被横过部分、危险部分(例如,表面材料的变化、海拔高度的变化、大风的位置或存在特定化学品,或对于给定实施例可能构成危险的其他特性)、定位信号存在/缺乏、和/或类似物。
[0081] 到图示的蜿蜒过程500的输入参数可以包括蜿蜒的起始位置和定向、所需的蜿蜒动作的方向(航向或定向)、以及行的初始长度和行间距。在图示的实施例中,蜿蜒方向和蜿蜒起始定向是关于单个世界地图的。在图6中图示了如可以用在示例实施例中的这些参数。具有边界610的区域已经建立。蜿蜒的起始姿势(即移动装置在蜿蜒动作开始时的相向)是在姿势620处,在不失一般性并且简化披露的情况下,姿势620被设置以具有逻辑的北向方向。也可使用其他方向,包括南、东、西和斜向。图示的行630正交于或大致正交于初始姿势的轴线,但是其他实施例可以具有斜向或甚至平行于初始定向的轴线延伸的行。在这种情况中,图5中引用的某些方向和其他数和该附图的相关讨论将相应地变化。多个行630相互平行,并且在图示的实施例中,以行间距650均匀间隔开。
[0082] 在一些实施中,行间距650为约0.5米。在其他实施例中,行可以具有限定的但非恒定的间距。行间距650可以涉及移动装置的尺寸或功能特性(例如,移动装置的真空抽吸范围或移动装置播种机的分撒范围),使得所述表面受移动装置影响(横过或在其上操作)的部分在跟随一行的同时与该表面的在跟随下一个行时影响的部分重叠。取决于实施例,重叠可以或大或小,并且可能取决于上下文。例如,如果需要稀疏覆盖,诸如在某些类型的种植过程中,或者在分配将分散到环境中的材料时,行间距可以更大,如移动装置的尺寸的1.5或2倍(或更大)或1或2米。例如,如果表面的反复处理是有利的或无害的,如在修剪草坪时,例如,则行间距可以被设置到较低水平,如0.25米或以下。在一些实施例中,如图示的那些,较小的行间距可能导致覆盖需要更多的时间和/或更多的计算资源。行间距也可以相对于一个或多个移动装置尺寸,如0.25倍、0.5倍、1.0倍、1.25倍、1.5倍、2.0倍尺寸。
[0083] 行的长度是沿着正交于行间距650方向的方向640测量的。箭头660指示沿着移动装置在蜿蜒时将沿着行行进的方向。因此,图6中的移动装置可以向北行进到行1,顺时针转90度,并且沿着行1行进,直到到达区域边界610。移动装置然后可以逆时针旋转90度和行进,直到其到达行2。在这一点上,移动装置可以逆时针旋转90度,并继续沿着行2行进。以这种方式,移动装置沿着行“蜿蜒而行”,在其横过先前行的道路的相反方向横过每个行,并且大致在偏北覆盖方向上行进。在图5的情况中详细阐述蜿蜒动作的这个示例,其不过是一实施例可以用来横过一区域的一种移动策略。
[0084] 回到图5,其被分解成图5A、5B和5C,概述蜿蜒动作过程的示例。在状态502处程序开始。在状态504中,蜿蜒参数被设置并且当前行被设置到第一行。在状态506中,如果移动装置还没有处于蜿蜒起始姿势,则移动装置移动到蜿蜒起始姿势。在状态508中,移动装置沿着当前行在与该行相关联的横过方向上移动。正如下文所述,在一些实施例中,移动装置的移动可能不会直接地沿着当前行,但是可以一般地跟随当前行同时在该行的上方和/或下方移动。在状态510中,移动装置检查其是否已经到达行的末端,或者越过当前区域的边界。如果任何条件为真,在状态511中,地图被分析以查看该表面的超出行的末端的部分是否是未被探测的。
[0085] 如果条件为真,并且移动装置已到达行的末端但不是区域的边界,则当前行长度可以在状态513处延长预定的增量并且程序循环回到状态508以沿着现在较长的当前行继续移动。行长度的增加不需要是预定的并且可以,例如,以先前的长度增量、行的先前长度、行的当前末端和区域的边界之间的距离等等为基础。在动态定尺寸区域的实施例中,如果到达区域边界,则可以在在状态513处同样地延长区域的长度。如果不能在状态513处延长行,那么可以限定边界。地图的后续分析,如在上述的过程中或在下文所述的周边覆盖过程中,可以暴露用于蜿蜒而行的边界,或者其可以在这些过程的进行期间被探测。
[0086] 如果条件511为假(因为,例如,该表面的超出行的末端的部分是先前探测区域的一部分或者是被识别的障碍物),则在状态512处,当前行增加一个并且横过方向相对于先前的方向倒转。在一些实施例中,不是移动到下一个行,移动装置可以代替地跳过一行并且转移到第二或更高的行。在状态514处,移动装置检查退出条件,包括已经越过顶部(例如,逻辑北部)区域边界或者在在当前行横过期间失去定位信号。如果任何这些条件(或指定子集)为真,并且不可能弥补(例如,通过动态增长区域或者使用替代信号或定位装置),程序在状态516中退出,并且例如返回到图2的区域覆盖状态280。在一些实施例中,状态514的关键检查在中断基础或预定基础上运行,以及或者代替地在诸如过程500的过程的进行中的设定点处运行。如果条件514为假,则移动装置沿着每个状态508的当前行继续行进。
[0087] 如果条件510为假并且移动装置已经沿行移动,那么可能已经遇到或检测到障碍物。这在状态518处检查。如果条件518为假(没有检测到障碍物),则移动装置沿着每个状态508的当前行继续移动。然而,如果条件518为真,那么诸如图示的蜿蜒之类的移动方法至少部分地基于在状态520处对地图的分析以以下三种方式之一处理障碍物的检测。图示的选项是(1)在状态524处退出过程500,(2)在状态522处在逻辑北向方向上跟随被检测的障碍物的边缘,和(3)在状态526处在逻辑南向方向上跟随被检测的障碍物的边缘。
[0088] 可以使用许多不同的标准进行状态520处的决定。在一个实施例中,使用预定概率选择三个选项中的一个,以便在每个约1/3时间或其他预定比例时间处选择每一个选项。在另一个实施例中,随机或伪随机算法可以确定哪个选项被选中。在又一个实施例中,选择选项的概念例如基于之前的结果随着时间的推移变化(例如,如果选项导致继续蜿蜒,则在未来选择该选项的概率增加,并且如果该选项导致退出蜿蜒,则在未来选择该选项的概率降低)。在另一个实施例中,地图被分析以模拟几个可能的路径或路线(南向和北向二者),其将从当前位置(即,在障碍物的边缘处的一个位置)使移动装置围绕障碍物移动,从而或者再加入当前的行或横过到下一个(较高)行(例如,如果障碍物延伸当前行的可横过长度的其余部分)。各种标准,包括路径的几何长度和在路程期间消耗的资源(例如,在时间、计算资源和电力方面),可以用来选择所需的路径,并且因此选择是否在状态522中向北行进或在状态526中向南行进。
[0089] 在状态528处,移动装置当在北向方向上跟随障碍物的边缘时检查其是否相交下一个行。如果是,则程序循环回到状态512。在其它实施例中,移动装置可能记下下一个行上的该位置并且继续围绕障碍物的边缘,直到达到另一个指示,如第二行在上面、区域边界或障碍物更深地延伸到该区域的指示,并且因此,当移动装置最初遇到该边缘时,移动装置在其正向西移动时向东移动。在每个这样的决定点处(或在决定点的子集处),一些实施例可以决定继续试图围绕障碍物行走,一些实施例可能返回到记住的位置。如果移动装置在这个实施例中能够返回到初始的行,或者如果,如在图示实施例的状态532中,移动装置在到达下一个行之前达到当前行,则过程500在状态508处恢复,其中移动装置再加入当前的行并且继续沿着它移动。
[0090] 如果条件532为假(意味着移动装置在当前行和下一个行之间),则在移动装置在初始北向方向上跟随障碍物的边缘时检查是否已经向北行进太远,意味着在北向方向上的行进距离已经超过一些预定的阈值,如行间距的1/2或2/3。如果条件536为真,则程序在状态542处退出;如果为假,则移动装置在状态538中检查是否已经跨过区域边界。如果移动装置已经跨过区域边界,则程序在状态542处退出。
[0091] 在其他实施例中,如果536或538为真,移动装置可能不退出程序500,但是可以代替地移动回到原始行上的它遇到障碍物时的位置,或回到区域内且不太远远离北方的任何其他有效位置,并且返回到状态520,基于地图中获得的和记录的新信息作出决定。在图示的实施例中,如果在538处的测试为假,饿移动装置保持在其所在位置并且程序循环到状态520,在状态520根据新的移动装置姿势分析分析并且在最近的移动过程中将新信息添加到该地图。在其他实施例中,移动装置可以返回到当前位置和在状态520处恢复该程序之前首先遇到该边缘的那个位置之间的任何已横过位置。
[0092] 如果在状态520处选择选项(3),则可以跟随相似的和相同的状态,并且程序500引起移动装置在状态526中跟随南部边缘。在状态530中,移动装置检查其是否已经与当前行相交。如果移动装置与当前行相交,则程序循环回到状态508;若没有相交,移动装置在状态534中检查其是否已经向南行进太远,其可以类似于向北太远一样限定(虽然一些实施例可以使用不同的限定用于向北太远和向南太远)。向南太远也可能被限定为已经到达以前的行。如果移动装置已经向南移动太远,则蜿蜒行程500在状态542处退出;若还未向南移动太远,则移动装置在538处执行先前描述的检查。
[0093] 可以使用其他策略以在一区域内移动从而覆盖它。例如,移动装置可以绘制对应于从原点螺旋向外的圆形、方形或其他几何形状的路径。此外,对于具有潜在路径策略的任何移动方法(例如,螺旋形的行或者螺旋),移动装置可以以各种方式跟随那个路径。例如,它可以如上所讨论并且如下文所阐述的那样跟随该路径。移动装置也可以在任意方向中偏离该路径(例如,“上方”或“下方”)。例如,其可以扫出在路径上对中或大致地对中的正弦图案,或以交替来回运动描述的藤蔓状运动,在路径的方向中偏移,从而平均地,移动装置沿着该路径移动。在使用这些移动策略的一些实施例中,也许与移动装置的功能(例如,清扫地或擦洗)相关联的原因,或由于移动装置的移动能力所施加的限制,移动装置大致跟随该路径,同时覆盖该表面的不直接地该路径上的部分。实施例可以实现这个基本蜿蜒行程的多种变化。在使用蜿蜒策略的一些实施例中,代替线性地跟随一行,移动装置可以平均地跟随它,但是在行的上方或下方横过。可以使用这些和其他运动来覆盖区域。
[0094] 周边跟随/覆盖
[0095] 图3说明用于周边跟随程序300的实施例的示例过程。一些实施例可以至少部分地调用程序300,因为跟随以前发现的障碍物的边缘和/或表面边界具有功能价值。示例是被配置为使用静电垫以执行除尘的移动装置。朝向除尘(覆盖)过程的结束的执行周边除尘允许移动装置收集在基于区域的清洁过程中朝向周边推动的任何灰尘或杂物。周边覆盖的功能价值的另一个示例是,其可以帮助适当配置的装置清洁家具的底板和底部。
[0096] 一些实施例可以调用程序300,以通过发现该表面的先前未探测部分帮助获得更完整的覆盖。例如,在凌乱的房间中,地板的可到达和可横过部分的布局使得该表面的大的可横过部分仅通过只是比移动装置的宽度稍微更宽的小的连接部分可到达。在周边覆盖过程中,表面的部分(如在区域覆盖阶段过程中可能已经错过的这些小的连接部分中的一些)被识别。如这些部分被识别,则移动装置可以通过进入新的蜿蜒覆盖程序探测他们。这种连接部分可能被错过的一个方式是,例如,如果它们出现两个行之间,在所述行的与移动装置从第一行移动到第二行的端部相反的端部处。周边覆盖也是发现先前被识别的障碍物是否已经被移动或移除的机会。
[0097] 回到图1的讨论,在指示没有进一步的边界探测的地图分析(例如,区域覆盖过程200已经以退出条件“没有边界”在状态245处退出)之后,可以在状态150处由图示的覆盖程序100调用周边覆盖。在这一点处,在已经在该表面执行基于区域的覆盖之后,移动装置已经典型地构建该表面的大部分的地图。移动装置在状态310处通过分析地图并且列举满足约束条件PC1的边界开始周边覆盖阶段300。约束条件PC1描述适合周边覆盖的边界。例如,PC1可以使得其包括在探测的位置和占用的位置之间和/或在探测的位置和未探测的位置之间的边界(例如,在蜿蜒过程中没有被横过的位置),这些边界还未被周边覆盖并且在该表面内。
[0098] 如已知的那样通过移动装置或其他处理器针对表面进行约束分析。例如,可以针对或使用地图执行约束分析。地图在该表面上可以具有位于具有一些限定尺寸的离散单元中的标记位置。取决于上下文(例如,包括移动装置的功能、环境以及移动装置上的传感器),在不同的实施例中可以不同的单元的尺寸可以具有从0.5厘米或更小的正方形到0.5米或更大的正方形的范围。单元不需要是方形,或者甚至不需要是规则的,可以是圆形、矩形、六角形或其他封闭的形状。在一些实施例中,是这些单元与诸如占用、探测等等之类的属性相关联。
[0099] 虽然其他实施例可以使用用于地图的其他结构,具有属性的单元的这种命名有助于说明在PC1中的另一个可能限制,其基于如通过单元数确定的长度。当在状态310处进行分析时,移动装置可以在初始姿势P处开始其分析,并且沿着边界行进,对在边界上的没有被覆盖的单元进行技术。如果计数达到由在PC1中限制表示的数字,并且满足PC1的其他限制,则移动装置已经发现满足PC1的在P处开始的边界。这是一个方式,地图单元计数可以是用于长度参数的代理。也可以使用地图并且基于在地图中的全部或部分信息进行在此公开的其他分析。
[0100] PC1也可能有最小长度要求,类似于SC1和SC2的那些长度要求(例如小于移动装置的直径的3/4、20厘米、移动装置直径等)。这些值也可以作为单击计数存储在SC和P约束条件中。具有最小长度约束或约束具有限制的益处,包括但不限于,避免小的或微不足道的开放空间的探测,避免中断覆盖程序以覆盖小的区域(因为,例如,这样做看起来对观察者是不期望的),并且考虑地图中的噪声(如地图中的小的间隙,这些小的间隙来自传感器偏差并且可能指示不对应于实际表面中的边界的地图边界)。
[0101] 至少由于两个原因,在此分析中,未探测的区域可以被类似地处理为表面的被占用部分。一个原因是,由于在基于区域的覆盖期间移动装置的横过路径,移动装置可以仅具有关于障碍物的稀疏信息。另一个原因是,一些实施例可以实现周边覆盖,以探测该表面的先前未探测部分。该表面的未探测部分可以合理地可能包含障碍物(例如,它们往往是未探测的,因为它们接近障碍物)并且如果它们不是完全地由障碍物组成,则在一些实施例中,如在寻求最大限度地覆盖的那些实施例中,期望探测进入该表面的那些部分。
[0102] 在状态315处,基于状态310的边界列举是否列举或识别满足PC1的任何边界作出决定。如果没有找到合适的边界,则周边覆盖程序300在状态370处以结束条件“没有周边边界”终止。在图示的过程100中,这导致覆盖过程100在状态160处的运行的终止。如果边界被发现,则在状态320处选择优化函数Fn1的边界Fn1用于覆盖。Fn1是成本计算或等级函数,其任选地可以类似于先前已经讨论的那些函数。
[0103] 例如,等级函数可以基于参数对被识别的或被列举的边界分等级,该参数包括从移动装置的当前姿势到边界的距离或到达边界的功率或时间成本、边界长度(其中较长的边界可以接收更重的重量)、和/或沿着边界的定位信号的质量(例如,更好质量的信号可以接收较高的重量,但是在一些实施例中,例如如果处理微弱信号的能力退化,移动装置操作时间较长,则首先可以选择低质量的信号)。依照Fn1最高等级的边界首先被覆盖。其他实施例可以从随机或以其他方式可获得的边界中进行选择。一个实施例使用到边界的距离作为唯一因素;其他实施例可以使用其他参数的组合。
[0104] 一旦在状态320中选择边界,在状态325处,移动装置移动到该边界的初始位置并且在状态33处接合周边跟随或覆盖。一旦处于周边覆盖模式,移动装置执行包括状态335、340、345、350和355的循环。移动装置在状态335处跟随周边,同时在340处定期评价来源于当前移动装置位置的边界,以确定何时终止周边跟随。在一些实施例中,通过使用与移动装置相关联的传感器执行跟随周边,以检测周边的来源(例如,弱信号或物理障碍物),并且沿着该来源移动,例如,通过反复地向着该来源和远离它移动,具有切向于该来源的偏移。这是移动装置可以更新、更正或以其他方式增加在地图中信息的一种方式。例如,如果地图错误地指示位置被占用,则一些实施例的周边跟随可以纠正那些数据,因为跟随周边的来源的过程将导致其移动进入逻辑上被占用的位置。
[0105] 在状态340处,移动装置检查在当前移动装置位置处起源的边界以确定是否其先前的动作是否已经根据先前讨论的约束条件SC1形成适合创造适于基于区域的覆盖的边界。在一些实施例中,可以在状态340中使用不是SC1的其他约束条件。如果边界(frontier)满足该约束条件,那么周边(perimeter)覆盖程序(routine)300在365处以条件“以形成蜿蜒”结束,并且控制可以转到基于区域的覆盖,基于区域的覆盖在过程100和200的每个状态140和250中分别地具有开始条件“覆盖所形成的蜿蜒”。否则,在每个状态335继续进行周边覆盖。
[0106] 图3显示在没有满足该约束条件时在状态345以后接下来发生的状态350和355。一些实施例可以操作这个路线。更普遍地,状态340和345与状态350和355定期运行,而移动装置继续在每个状态335覆盖周边。例如,状态340和345与状态350和355可以以设定时间运行或在移动装置已经移动特定距离以后运行。多对状态可以定期地交替,一对状态的多次反复可以在其他对状态的反复之前运行,或可以以更复杂模式或者根据其它算法执行多对状态。
[0107] 在任何情况下,在状态350处,移动装置根据约束条件PC2评估来源于当前移动装置的当前位置的边界,以确定是否应继续进行边界周边覆盖。约束条件PC2可以与约束条件PC1相同之处在于,其选择该表面的被探测部分和被占用部分和/或未探测部分之间的边界,这些边界之前还为被周边覆盖,例如,没有离开该地图,并且不是在该表面的其中移动装置没有检测到足够的定位信号的部分中。两个约束条件之间的差异可能是PC2不如PC1严格。例如,PC1可以仅选择该周边的在还未被周边覆盖的部分前面至少一米多长的那些部分,而PC2可以仅选择那些在还未被周边覆盖的部分前面具有较短距离(如20厘米或一个或两个地图单元)的那些部分。以这种方式,一旦周边覆盖程序识别满足PC1的周边部分,则周边覆盖程序将在该部分上进行,只要其满足PC2。一些实施例可能处于之后的目的而这样做-如果PC1和PC2相同或不是完全不同,则一旦周边的足够多部分已经被覆盖,周边覆盖就可以停止,以使PC1/PC2失败,并且相对少的周边将实际上通过周边覆盖而被覆盖。
[0108] 当移动装置开始覆盖该周边的其已经覆盖的部分,试图横过该表面的边界,或接近该表面的先前已发现的已知具有差的定位信号(例如)的部分时,约束条件PC2开始失效,并且在状态355处,移动装置将决定在状态360处以终止条件“周边已被覆盖”终止。在这种情况下,控制过程100的一些实施例,如图示的一个实施例,将通过调用具有开始条件“覆盖任何地方”的基于区域的覆盖,如过程100的调用过程200的状态225的状态140,检查以查看基于区域的覆盖是否是在地图或表面中的任何地方都是可行的。
[0109] 房间覆盖的示例
[0110] 图7至14显示根据本披露的移动装置覆盖的示例。图7显示房间700的顶视图,包含内部的一些家具(705-717)和处于初始姿势720处的移动装置。移动装置已经放置在地板上,并且被指示开始覆盖(例如,通过与移动装置直接互动,如通过按下按钮或使用遥控器,或通过间接动作,如定时器或编程界面)。覆盖程序100的状态110被执行。地图的内容基本上是空的,并且在一些实施中,地图有没有单元。在其他实施例中,单元没有都被初始化或标记为未探测。移动装置不具有或大致没有关于房间布局和家具的位置的信息。
[0111] 参考图8,移动装置执行状态120并且以“覆盖到右侧”调用区域覆盖。根据过程200,建立用于区域1的边界框810。分界线(boundary)810显示为虚线,并且看起来延伸超出房间700的边界(border)。移动装置执行导致其跟随路径850的蜿蜒动作。当移动装置沿着当前行横过时,其在地图中输入有关该区域的其能够横过而没有撞击障碍物的信息(标记这些位置830为已覆盖/已横过)。当移动装置撞击或以其他方式检测诸如墙壁或家具之类的障碍物时,其将障碍物840的被评估位置为标记为被占用并且跟随障碍物的边缘直到其到达下一个行。移动装置然后在与行走的先前行方向相反的方向上沿着那个行行进。
[0112] 如图8所示,移动装置通过门725行进到房间700以外,但是它能够探测到其已经离开了房间,因为定位信号变为衰减低于在表面部分820中的预定阈值。当这被检测到时,移动装置转动/四周旋转。在一个实施例中,检测定位信号衰减通过测量投射在房间700的天花板上的一个或多个红外定位信号的水平并且检测到该水平已经下降低于预定水平来实施。在另一个实施例中,用户可以在门的附近放置“虚拟分界线”,例如,如在图17中图示和联系该附图讨论的那样。
[0113] 移动装置完成覆盖区域1,并且由于没有更多的蜿蜒边界进行覆盖而退出区域覆盖程序。沿着房间700的左侧和右侧墙壁的边界(指示为在区域810内的非填充房间边界)不满足相关SC2标准,因为它们太小,并且沿着该区域的顶部的边界不满足该标准,因为其在错误的方向上(即,地图分析或其他分析显示其在北向方向上敞开,但是移动装置当前正在南向方向上探测)。
[0114] 移动装置然后继续进行到状态130并且以开始条件“覆盖到左侧”调用区域覆盖。这在图9中图示。新区域1建立边界框910。当移动装置到达用于区域1的边界框的顶部并且没有更多内部边界可以通过蜿蜒覆盖时,蜿蜒动作以移动装置位于位置920处而结束。
[0115] 图10图示当在以“覆盖到左侧”调用的区域覆盖的执行过程中移动装置覆盖第二区域(区域2)时移动装置和地图的示例。这个附图显示,当覆盖到障碍物705的左侧时,对定位信号中的干扰导致移动装置不当将墙壁1040的位置记录在地图中。相同的效果可能具有其他原因,如暂时地导致移动装置成角度地而不是垂直地移动(也许,通过移动装置撞击障碍物705补救的故障)退化的定位程序或机械故障。如果存在人、宠物或其他临时障碍物,也可能产生相同效果。在任何情况下,地图错误地指示1030不是边界而是该表面的被占用部分的边缘。作为该错误的后果,移动装置终止区域覆盖,即使在可以被覆盖的区域中仍然存在表面的一些部分。移动装置然后执行状态140,但是在分析地图并且确定没有更多边界被覆盖时以结束条件“没有边界”退出(再次,因为没有潜在边界足够大以满足相关标准)。
[0116] 参照图11,移动装置进入状态150并且调用周边覆盖。基于成本评估函数和地图的分析,移动装置移动到位置1120,并且开始围绕家具的周边覆盖。周边覆盖程序导致移动装置移动经过错误的障碍位置,因为在一些实施例中,一旦其已经开始,周边跟随/覆盖完全反作用于障碍物。地图分析选择周边部分进行覆盖,但是实施例依赖物理传感器以继续跟随障碍物,并且根据其观察结果更新地图。移动经过错误障碍位置1030形成可以通过蜿蜒行动覆盖的新的边界。当周边覆盖程序检测新的蜿蜒边界满足SC1时,周边覆盖程序以结束条件“形成蜿蜒”退出。
[0117] 参考图12,覆盖控制程序循环返回具有开始条件“覆盖创造的蜿蜒”的区域覆盖。移动装置开始沿着由图11的周边覆盖动作1110形成的大边界蜿蜒而行。
[0118] 参照图13,有蜿蜒覆盖资格的第二边界定位在地图中。移动装置移动到边界跟随路径1310并且执行蜿蜒动作。然而,不存在具有蜿蜒覆盖资格的更多边界。区域覆盖存在并且重新进入周边覆盖。
[0119] 参照图14,移动装置覆盖在先前周边覆盖动作过程中没有被覆盖的全部周边部分。在这个示例中没有新的蜿蜒边界由周边覆盖动作形成。控制程序160在状态100处退出。
[0120] 覆盖区域的动态调整大小
[0121] 如上所述,区域和其边界框的限定可以在多个实施例之间改变,并且甚至在单个实施例中改变。作为动态区域的进一步示例,多个区域可以被限定并且有关它们的信息在移动装置获得任何有关表面的知识之前被存储在地图中,包括其布局。在一些实施例中,这些预定的区域可以以这样一种方式限定,即移动装置不使其行从一个(未知)墙壁边沿延伸到相对的(未知)墙壁边沿,因为该区域并不包括两个边沿。结果可能是蜿蜒行动并且覆盖路线例如对人类观察者来说不是合乎逻辑的或可预见。图15(B)说明这样一种情况。该区域具有预定的固定大小,并且当边界框1520相对于移动装置的位置1530定位时,该区域不包括或延伸超出下墙壁1510。
[0122] 在具有动态再调整大小区域的实施例的示例中,可以建立初始边界框1520(例如,2米×1.5米)。然而,当移动装置开始横过行1540时,该区域的长度延伸,直到在移动装置的路径中检测到障碍物,在这一点处,该区域停止延伸,并且具有如在图15(B)中图示的最终尺寸。
[0123] 延迟覆盖
[0124] 在一些表面结结构中,如图2所示和上文描述的基于区域覆盖区域可以引起移动装置行进大的距离以到达边界。一个示例在图16中显示。厨房岛1610将当前区域1620分割成两半,从而在该区域内不存在从点A到点B的路径。假设在1605的探测/覆盖过程中,移动装置发现边界FA和FB。根据图示的过程100、200、300和500,在覆盖区域1的边界FA以后,移动装置不得不在该表面的被覆盖部分之上行进返回以到达边界FB。在具有推迟覆盖的实施例中,移动装置将代替地增加边界FB到例如推迟边界的名单,并且继续行进到C。覆盖的顺序然后可以是A、C、B、D。在没有推迟覆盖的情况下,可替换顺序可以是A、B、D、C(或甚至A、B、C、D)。两种替换涉及在先前被探测的空间之上移动横过,而不是使用推迟覆盖,并且导致对观察者不足为奇的行为。具有推迟覆盖的实施例可以具有考虑到这个问题的蜿蜒或可横过协议。
[0125] 在一个实施例中,通过推迟覆盖一区域的一些部分,整体覆盖效率和移动装置可预见性增加。例如,给定移动装置的当前状态,如果覆盖边界的“成本”太高,移动装置可以决定推迟该边界的覆盖。这个成本可能是到边界的距离和在当前区域中执行的最大蜿蜒行的长度或其它度量(metrics)的比率,包括结合资源成本或时间的那些。推迟边界可以以类似于地图的方式存储在列表中或者作为地图的一部分。一旦已经完成基于区域的覆盖,它们可以由移动装置覆盖。移动装置可以再次确定哪个推迟边界是最佳的首先进行覆盖,给定其当前的状态和如在地图中体现的表面的知识。可以使用如上述讨论的各种度量。例如,在一个实施例中,到边界开始的距离是使用的度量。
[0126] 受限的覆盖
[0127] 受限的覆盖模式允许一些实施例给予表面的某些部分相对于其他部分的优先权。其他受限的覆盖模式防止移动装置探测表面的某些部分。这种模式例如,可用于防止擦洗机器人覆盖(并且擦洗)地板的铺有地毯的部分。通过使用可拆除的或临时信号发射器,可以形成配置有定位系统的移动装置以在表面的受限部分内进行覆盖(或避免),而不需要任何外部干预(如通过用户)。例如,根据移动装置的配置和其具有的信号传感器类型,策略地放置红外线发射器或磁条可以形成移动装置将不通过的虚拟边界线。
[0128] 在图17中所示的一个这样的实施例中,具有初始姿势1740的移动装置被限制以仅关于初始姿势1740覆盖右上象限1710。以上所述的覆盖程序可以适于通过处理虚拟墙壁1730障碍物的检测而适合这个约束条件,并且从而防止移动装置通过它。例如,通过放置移动装置在虚拟墙壁1730的一侧或另一侧上,用户可以控制移动装置是否在区域1710内或在区域1710外操作。
[0129] 重叠覆盖
[0130] 在某些情况下,减少或尽量减少区域之间的重叠是有利的,从而避免重复横过相同位置,并且因而较早完成覆盖和/或更少地花费诸如电力之类的资源和诸如由移动装置使用的清洁供用品之类的任何消耗品。即使在这种情况下,多种因素可能导致区域间的重叠。由于类似于已经在移动和行的情况中讨论的原因,一些这种重叠可能是故意的。例如,实施例可以限定彼此重叠的区域,用于美学或功能要求(例如,擦洗或清扫功能相关联的那些),如帮助多个区域看起来“融合”到彼此之中或者确保区域之间的接缝被覆盖。一些实施可以故意地限定重叠区域以帮助考虑地图和实际表面之间的差异。在在不准确地反映表面(例如,由于累积的传感器错误或以上讨论的其他因素)地图上限定多个区域的实施例可以故意限定重叠区域以帮助弥补这样的错误。然而,另一个实施例可以在地图上不限定重叠区域,但是例如由地图中的错误而将使移动装置覆盖重叠表面位置。又一个实施例可以限定重叠区域以方便覆盖的其它方面。例如,非重叠区域可能太小而不能够允许蜿蜒,所以可以限定重叠的邻近区域的较大区域。这些仅仅是举例说明为什么即使是在具有朝向非重叠区域的偏移的实施例中任何两个区域之间仍然可以存在10%、25%、33%、50%或是其它比例重叠。
[0131] 然而,在某些情况下中(即,特定表面布局,可能结合特定的初始位置),如以上讨论的那些覆盖程序仍然可以如通过始终未能检测理论上可达的表面部分二系统地忽视表面的一部分。
[0132] 通过执行重叠(并且因此理论上冗余)覆盖成的一些实施例可以减轻这种潜在的风险。在一个这样的实施例中,移动装置被配置为通过在状态135和140之前对基于区域的清洁过程200进行两次附加的方位而执行“纵横交错”覆盖。而先前所描述的“覆盖右侧”和“覆盖左侧”调用涉及顺时针90度和逆时针90度旋转,具有“向下覆盖”和“向上覆盖”的调用包含180度旋转、180度的第二旋转。所述过程可以以其它方式类似于先前所描述那些。结果是如在图18中图示的覆盖策略。除了如在图18A和图18B中所示的那样覆盖表面的左、右两半之外,这样的移动装置覆盖所述表面的上半部和下半部,如在图18C和18D中显示。在一般情况下,四个调用可以以其他顺序进行。所述调用之后可以是如前所述的敞开区域覆盖和周边覆盖。
[0133] 将表面划分成四个重叠半部允许移动装置在两个正交方向中覆盖相同区域。这种纵横交错覆盖在特定实施例中可以具有其他优势。例如,其可以减少由于清洗液的干燥而由清洗机器人留在地板上的斑纹图案,并且允许草坪割草机器人或吸尘机器人创造更美观图案。
[0134] 物理部件
[0135] 图4说明适当配置的移动装置的示例性物理部件。这种移动装置可以包括航位推算传感器490和/或信号传感器470。这些传感器部件可以与一个或多个处理器410通信。处理器的可以是,例如,专门配置的芯片或通过软件配置的更一般的处理器。处理器可以包括其自己的存储装置和/或装置400可以包括附加的存储器或存储装置420(例如,存储软件和数据,以实现在此描述的方法的部分或全部)。在一些实施例中,传感器470和/或490也可以直接地将数据在存储存储器420中。用于实施所披露的内容的多个方面的软件可以存储在ROM、存储器、磁存储器、光存储器和/或一些其他形式的永久存储装置中,虽然也可以使用易失性存储器(如RAM)。数据可以被存储在易失性存储器(例如,当系统掉电时可以擦除)和/或非易失性存储器(其存储数据供以后访问,即使装置被断电然后再次开机)中。处理器410和存储装置420也可以用于与定位没有直接关系的功能目的。例如,当执行诸如清洗或保护的任务时或当解释来自传感器470和490的数据时,移动装置100可以使用处理器410和存储装置420。在其他实施例中,处理器410和存储装置420致力于覆盖,并且该移动装置包含用于其他任务的附加计算能力。
[0136] 传感器490可以包括广泛范围的航位推算传感器、运动传感器、雷达和声纳类型装置,以及其他形式的障碍物检测传感装置。也可以是专门的障碍探测器,并且角落可以配备有角落探测器等等。例如,可以存在加速度计495。
[0137] 处理器410和/或存储装置420可操作地连接到各种输出机构,如屏幕或显示器、灯光和音响系统和数据输出装置(如总线、端口和有线或无线网络连接)。移动装置400显示在425处具有端口,如USB端口。处理器410和/或存储装置420也可操作地连接到移动系统,移动系统可以包括车轮480,或其他形式的移动装置,如履带或鳍板和舵以及推进源。运动可能涉及被发送到诸如马达(包括驱动马达或伺服马达)、刹车装置、致动器等之类的不同控制器的信号,该信息可以导致移动装置移动到新的姿势(或执行其他活动,如清洁功能)。到这个新姿势的移动又可以引发从传感器到处理器的附加输出。一个示例性实施例配置有ARM 7处理器、用于软件的256K闪存ROM和用于数据的64K RAM。这些都不是最低或最高要求-在此所披露的部分或全部可以用更少或更多的处理和存储能力完成。其他实施例可以是不同的处理器和不同的存储器结构,具有更大或更小的存储量。
[0138] 移动装置400也显示具有电源430、用于用户输入的控制面板405。还可以存在更多个或更少个元件,包括但不限于功能部件,如用于清洗或执行其他任务的功能部件。
[0139] 广泛适用
[0140] 在此所披露的系统和方法可以以硬件、软件、固件或其结合实现。软件可以包括存储在存储器中的计算机可读取指令(例如,非暂时性、有形存储器,如固态存储器(如ROM、EEPROM、FLASH RAM)、光存储器(例如,CD、DVD、蓝光光盘等)、磁存储器(如硬盘驱动器)等,这些计算机可读取指令被配置为在通用计算机、专用处理器或其组合上实现算法。
[0141] 虽然某些实施例可以被说明或讨论为具有某些示例部件,但可以使用另外的、较少的或不同的部件。此外,关于在此讨论的过程,各个状态可以以不同顺序或大致并行执行,并且不需要到达全部状态,并且可以利用更少的、附加的或不同的状态。
[0142] 已经在适当情况下描述了实施例的多个方面和优势。将被理解,全部这些方面或优势不是必然地可以根据任何特定实施例实现的。因此,举例来说,应该认识到,各种实施例可以以如下方式执行,即实现或优化如在此所教导的一个优势或一组优势,而不是必然实现在此所教导或者建议的其它方面或优势。此外,实施例可以包括一些新的特征,其中没有单个特征是单独地为实施例的期望属性负责,或者是实践再次描述的系统、装置、方法、技术所必须的。