掌桥专利:专业的专利平台
掌桥专利
首页

用于机器人导航、示教和建图的系统和方法

文献发布时间:2024-04-18 19:54:45


用于机器人导航、示教和建图的系统和方法

背景技术

机器人和/或机器可以用于自主或半自主地执行任务、提供服务和穿越环境。一些机器人或机器可以用于在机器人或机器所位于的,或者能够在有或没有人类操作者的输入或命令的情况下导航到或穿越过的环境中执行清洁任务。

发明内容

本公开总体上涉及用于机器人导航(navigation)、示教(teaching)和建图(mapping)的系统和方法。机器人系统可以包括能够在区域或环境中进行清洁、杀菌、消毒、运送物品、检查、监控或实行监视的机器人或机器。机器人或机器可被配置成自主或半自主地操作以清洁区域或环境。

在一个方面,提供了一种操作机器人的方法。该方法可以包括:(a)至少部分地基于环境内一个或多个可重新定位或可移动的初始化物体的一个或多个图像确定机器人的姿势;(b)生成机器人被配置成在其中移动的环境的地图,其中地图包括关于下列各项的信息:(i)机器人被配置成在其中移动或穿越通过以执行一个或多个任务或操作的环境的区域,(ii)用于机器人行进的一个或多个预定路径,以及(iii)机器人的姿势,其中地图和一个或多个预定路径与可重新定位或可移动的初始化物体相关联;以及(c)使机器人沿着一个或多个预定路径的至少一部分开始移动以执行一个或多个任务或操作。

在另一方面,方法可以包括:(a)提供包括一个或多个传感器的机器人,该一个或多个传感器被配置成随着机器人沿着一个或多个训练轨迹穿越或移动通过环境时检测环境中或附近的一个或多个障碍物,其中机器人被配置成:(1)通过(i)将一个或多个训练轨迹和使用一个或多个传感器获取的传感器数据投影到地图上以及(ii)基于地图中的一个或多个未占用栅格的位置来扩展一个或多个训练轨迹,确定在环境中的清洁区域,其中清洁区域包括一个或多个训练轨迹并且不包括使用一个或多个传感器检测到的一个或多个障碍物;(2)基于针对一个或多个目标区域标定一个或多个边界来标识清洁区域内要清洁的一个或多个目标区域,其中随着机器人沿着一个或多个边界穿越或移动,由机器人记录一个或多个边界;以及(3)沿着一个或多个清洁路径移动或导航通过一个或多个目标区域或在一个或多个目标区域内沿着一个或多个清洁路径移动或导航,以清洁一个或多个目标区域或其一部分。

进一步的方面涉及一种方法,包括:(a)提供(i)多个机器人和(ii)与环境的一个或多个地图相关联的一个或多个可扫描物体;以及(b)在该环境中部署多个机器人以执行一个或多个任务,其中多个机器人被配置成使用一个或多个地图导航通过环境以执行一个或多个任务。

本公开的另一方面提供了一种包括机器可执行代码的非暂时性计算机可读介质,该机器可执行代码在由一个或多个计算机处理器执行时实现以上或本文其他各处的任何方法。

本公开的又一方面提供了一种系统,该系统包括一个或多个计算机处理器和与之耦合的计算机存储器。计算机存储器包括机器可执行代码,该机器可执行代码在由一个或多个计算机处理器执行时实现以上或本文其他各处的任何方法。

本公开的其他方面和优点对于本领域技术人员而言将通过以下详细描述变得显而易见,其中示出和描述了本公开的说明性实施方式。如将认识到的,本公开能够具有其他和不同的实施方式,并且其若干细节能够在各个明显方面进行修改,所有这些均不背离本公开。因此,附图和描述本质上应被认为是说明性的,而不是限制性的。

援引并入

本说明书中提及的所有出版物、专利和专利申请均通过引用并入本文,其程度如同具体地和单独地指出通过引用而并入每个单独的出版物、专利或专利申请。在通过引用并入的出版物和专利或专利申请与说明书中包含的公开内容相矛盾的范围内,说明书旨在取代和/或优先于任何此类矛盾的材料。

附图说明

本公开的新颖特征在所附权利要求中特别阐述。通过参考以下阐述利用到各种原理的说明性实施方式的详细描述以及附图(本文也称为“图”),将会获得对本公开的特征和优点的更好理解:

图1示意性地图示了根据一些实施方式的机器人。

图2示意性地图示了根据一些实施方式的清洁机器人。

图3示意性地图示了根据一些实施方式的机器人可以在其中操作的包括障碍物的环境。

图4示意性地图示了根据一些实施方式的由机器人使用或安装在机器人上的双目相机模块。

图5示意性地图示了根据一些实施方式的刚性地耦合在一起的IMU和TOF传感器的坐标系。

图6示出了根据一些实施方式的初始化物体的示例,该初始化物体可用于建立机器人的起始位置,以用于初始化机器人的导航路径。

图7(a)-图7(c)图示了根据一些实施方式的地图和路径生成。

图8(a)-图8(c)图示了根据一些实施方式的地图和路径生成,以及用于避开障碍物的自动路径调节。

图9(a)和图9(b)图示了根据一些实施方式的环回检测和/或地图校正。

图10(a)和图10(b)图示了根据一些实施方式的可用于机器人定位的视觉码或标记物的示例,并且图10(c)图示了根据一些实施方式基于标记物位置将机器人位置投影到栅格地图上。

图11(a)和图11(b)图示了根据一些实施方式的使用图像信号作为用于机器人操作、行为和任务的指令。

图12(a)-图12(e)和图13(a)-图13(c)图示了根据一些实施方式的用于确定要清洁的一个或多个目标区域的机器人示教和边界划定的示例。

图14(a)示出了根据一些实施方式的螺旋形清洁路径,并且图14(b)示出了根据一些实施方式的弓字形清洁路径。

图15示意性地图示了根据一些实施方式的与中央服务器通信的多个机器人和/或机器。

图16示意性地图示了被编程或以其他方式配置成实现本文提供的任何方法的计算机系统。

具体实施方式

尽管本文已经示出和描述了各个实施方式,但对于本领域技术人员来说显而易见的是,这些实施方式仅作为示例提供。在不背离本公开的情况下,本领域技术人员可以想到许多变化、改变和替换。应当理解,可以采用本文所述的实施方式的各种替代方案。

每当术语“至少”、“大于”或“大于或等于”在一系列两个或更多个数值中的第一个数值之前,术语“至少”、“大于”或“大于或等于”适用于该系列数值中的每个数值。例如,大于或等于1、2或3等价于大于或等于1、大于或等于2,或者大于或等于3。

每当术语“不大于”、“小于”或“小于或等于”在一系列两个或更多个数值中的第一个数值之前,术语“不大于”、“小于”或“小于或等于”适用于该系列数值中的每个数值。例如,小于或等于3、2或1等价于小于或等于3、小于或等于2,或者小于或等于1。

本文可互换使用的术语“实时”或“即时”通常指事件(例如,操作、过程、方法、技术、计算、运算、分析、可视化、优化等)使用最近获取的(例如,收集或接收的)数据执行。在一些情况下,可以几乎立即或在足够短的时间跨度内执行实时事件,诸如在至少0.0001毫秒(ms)、0.0005ms、0.001ms、0.005ms、0.01ms、0.05ms、0.1ms、0.5ms、1ms、5ms、0.01秒、0.05秒、0.1秒、0.5秒、1秒或更长时间内执行。在一些情况下,可以几乎立即或在足够短的时间跨度内执行实时事件,诸如在至多1秒、0.5秒、0.1秒、0.05秒、0.01秒、5ms、1ms、0.5ms、0.1ms、0.05ms、0.01ms、0.005ms、0.001ms、0.0005ms、0.0001ms或更短时间内执行。

概述

本公开涉及用于机器人导航、示教和建图的系统和方法。机器人系统可以包括能够在区域或环境中进行清洁、杀菌、消毒、运送物品、检查、监控或提供监视的机器人或机器。机器人或机器可被配置成自主或半自主地操作以清洁区域或环境。

本文所述的方法和系统的优点包括使用(用于初始化机器人位置和/或机器人操作的)初始化物体,其可以在环境内重新定位或移动以用于机器人的后续操作,而不影响或不需要对环境地图进行更新。本公开还提供了这样的方法:其通过将训练轨迹和传感器数据投影到地图上以及基于一个或多个未占用栅格的位置扩展训练轨迹,从而在环境中确定机器人执行一个或多个任务的区域(例如,清洁区域)。本文公开的导航、示教和建图的系统和方法可以应用于各种机器人系统和许多不同类型的环境,以用于可以包括清洁任务或操作的一种或多种最终应用。

机器人/机器

在一个方面,本公开提供了一种包括机器人或机器的系统。在一些实施方式中,机器可以包括自主、半自主和/或非自主机器人或机器。在一些实施方式中,机器人可以包括自主、半自主和/或非自主机器或机器人。在一些实施方式中,机器人可以可互换地称为机器,并且机器可以可互换地称为机器人。在一些情况下,机器人可等同于机器,并且反之亦然。或者,机器人可以包括能够自主或半自主地操作的系统,并且机器可以包括能够由人或者其他机器或机器人操作的非自主系统。

在一些实施方式中,机器人或机器可以包括清洁机器或机器人(例如,洗地机或真空吸尘器)。在其他实施方式中,机器人或机器例如可以包括非自主、半自主或自主车辆、探测车、无人机或者用于运送人或物体的摆渡车。在一些情况下,机器人或机器可以包括类人机器人或非类人机器人。

在本文所述的任何实施方式中,一个或多个机器人或机器可被配置成单独地或共同地作为机器人或机器编队或集群操作。如本文所使用的术语“编队”可以指可独立地或联合地由人或计算机系统控制的多个机器人或其他机器的任何编组或集合。编队可以包括一个或多个机器人以及/或者一个或多个机器。一个或多个机器人以及/或者一个或多个机器可以包括可本地或远程控制的非自主、半自主或自主机器人或机器。编队中的机器人和/或机器可以由人类操作者和/或计算机控制。在本文所述的任何实施方式中,编队可以包括机器人和/或机器的组合。在本文所述的任何实施方式中,编队可以包括自主、半自主和/或非自主机器人和/或机器的组合。

在一些实施方式中,机器人或机器可以包括非自主机器人或机器。这样的非自主机器人或机器可能不包括或具有或者不需要包括或具有自主导航功能或能力。在一些情况下,这样的非自主机器人或机器可被配置成基于人类操作者提供的一个或多个输入、命令或指令来操作。一个或多个输入、命令或指令可以包括用以移动机器人或机器的物理运动、听觉通信,或者虚拟输入或对要由机器人或机器执行的动作或移动的选择。

图1图示了根据一些实施方式的机器人100的示例。机器人100可被配置成执行一个或多个任务或操作。在一些情况下,任务可以包括清洁任务,并且机器人可被配置成执行清洁例程或清洁操作。清洁例程或清洁操作可以涉及使用器械、工具或物质(例如,水和/或洗涤剂)或其任何组合来对区域或区进行清洁、消毒或杀菌。

在一些实施方式中,机器人100可以包括导航子系统110。导航子系统110可被配置成提供或管理由机器人用来导航环境以教导机器人清洁环境,和/或执行清洁操作或程序的控制逻辑。

在一些实施方式中,机器人100可以包括一个或多个传感器112。一个或多个传感器112可以用于获取与机器人(或者其任何组件或子系统)的操作、机器人操作的环境或者机器人周围的障碍物相关联的测量。在一些情况下,机器人可以使用通过使用一个或多个传感器112获取的测量来控制或调节机器人操作(例如,导航机器人通过环境,教导机器人来清洁环境,或者操作机器人的一个或多个组件或子系统)。

在一些实施方式中,机器人100可以包括处理器150。处理器150可被配置成基于使用一个或多个传感器112获取的测量或读数来控制机器人(或者其任何组件或子系统)的操作。在一些情况下,处理器150可以可操作地耦合到传感器112和/或机器人100的各个其他组件或子系统,以帮助(1)处理传感器数据以及(2)控制机器人100或机器人100的各个组件/子系统的操作或行为。该处理器与导航子系统和传感器组合可用于执行指令以执行或实现本文公开的任何方法。

图2图示了包括附加子系统或组件的机器人100的示例。图2中的机器人100可以是清洁机器人。

参考图2,在一些实施方式中,机器人100可以包括驱动单元101。驱动单元101例如可以包括车轮、辊子、传送带、踏面、磁体等。

在一些实施方式中,机器人100可以包括一个或多个刷子102。刷子102可被操作用以清洁环境。刷子102可以是可旋转的,以捕获污垢、灰尘、碎屑、废料、颗粒和/或污水。在一些情况下,刷子102可以包括擦洗器、清洁叶片和/或刮水器。

在一些实施方式中,机器人100可以包括箱斗103。箱斗103可被配置成从箱斗103近侧的刷子或擦洗器收集垃圾。

在一些实施方式中,机器人100可以包括箱104。箱104可以包括溶液箱和废水箱。溶液箱可以容纳(a)清洁溶液(例如,添加有洗涤剂的清水)或(b)清水。在一些情况下,清洁机器可被配置成自动混合洗涤剂与清水以产生可以施加到地板的清洁溶液。在一些情况下,溶液箱可以由用户用预先混合的清洁溶液手动填充。在其他情况下,溶液箱可以由用户单独地用清水和洗涤剂手动填充,清水和洗涤剂继而可以混合以产生清洁溶液。在一些实施方式中,可以将溶液箱中的溶液喷洒到滚刷和/或边刷上以供清洁地面。在一些实施方式中,可以施加负压来将地面上的废水收集回到废水箱。

在一些实施方式中,机器人100可以包括手柄105。手柄105可以用于操作、推动或携带机器人。在一些情况下,手柄可以用于启用操作模式、在选定模式下控制机器人或在不同操作模式之间切换。

在一些实施方式中,机器人100可以包括刮水器106。刮水器106可以用于从所清洁的区域清洁或移除残留水或水迹。

在一些实施方式中,机器人100可以包括缓冲器107。缓冲器107可被配置成检测机器人100与清洁环境中的一个或多个物体或人员或障碍物之间的接触(例如,冲击或碰撞)。缓冲器107可以用于保护机器人100或机器人100的任何组件免受损坏。

在一些实施方式中,机器人100可以包括清洁洗涤剂配给子系统108。清洁洗涤剂配给子系统可被配置成将洗涤剂提供或释放到机器人100的水箱104中。在一些情况下,可以在一个或多个耗材包、容器或袋内提供预测量剂量的洗涤剂。

在一些实施方式中,机器人100可以包括处理或消毒子系统109。处理或消毒子系统109可被配置成对机器人100的一个或多个组件或部分执行处理操作(例如,消毒操作或杀菌操作)。在一些情况下,处理或消毒子系统可以用于处理或消毒危险或有毒材料或者可能对人体或动物健康有害的任何其他材料。

在一些实施方式中,机器人100可以包括通信单元111。通信单元111可以包括用于传输和/或接收信息或数据的发射器和/或接收器。该信息或数据可以包括机器人的操作数据,其中包括机器人的组件的数据。在一些情况下,通信单元111可被配置成将信息或数据传输到中央服务器或者一个或多个其他机器人或机器。在一些情况下,通信单元111可被配置成接收从中央服务器或者一个或多个其他机器人或机器向机器人100传输的信息或数据。

示例机器人配置

机器人可以包括机架和用于使机器人移动通过环境的驱动机构。环境例如可以包括要由机器人清洁的一个或多个目标区域。在一些实施方式中,机器人可以包括一个或多个刷子,该一个或多个刷子用于在环境中清洁一个或多个物体、表面或区。在一些实施方式中,机器人可以包括一个或多个传感器,该一个或多个传感器用于检测环境中的物体或者建图/视觉检查环境。一个或多个传感器能够以任何合适的配置定位在机器人上的任何位置,以允许机器人从多个方向或视角智能地感测机器人周围的障碍物或移动。传感器的放置可以为机器人检测或感测障碍物或移动(例如,周边移动)提供高达360度的覆盖范围。

在一些实施方式中,机器人可以包括位于机器人的主体或机架中的缝隙或开口。机器人可以包括一个或多个传感器(例如,激光雷达(LIDAR)传感器),该一个或多个传感器定位在机器人的主体或机架中的缝隙或开口中。在一些情况下,可以将传感器(例如,光学传感器、LIDAR传感器、雷达传感器等)集成在机器人的被提供于缝隙或开口内或近侧的一部分上。在一些情况下,提供于缝隙或开口内或近侧的传感器可以具有宽水平视场。在一些情况下,宽水平视场可以是至少约180度、225度或270度。在一些情况下,提供于机器人的主体或机架的中部的传感器可能能够直接检测机器人附近的物体。在一些情况下,传感器可被定位成使得机器人具有最小盲点。

在一些实施方式中,机器人可以包括用于操作、推动或携带机器人的手柄。手柄可以用于启用操作模式、在选定模式下控制机器人或在不同操作模式之间切换。

在一些实施方式中,在操作状态下,刷子组装件和刮水器组装件被降低到地面。在一些实施方式中,当手柄打开或抬起时,清洁机器处于手动操作模式。在一些实施方式中,在手动操作模式下,可以执行清洁操作或地图约束操作。在一些实施方式中,当手柄关闭时,清洁机器处于自动操作模式。

手柄可以是可在两个或更多个位置之间移动的。该两个或更多个位置可以对应于不同的操作模式。在一些情况下,手柄可以与机器人的顶面齐平。在一些情况下,手柄可以相对于机器人的顶面成角度。在一些情况下,手柄可以暂时锁定在给定位置以允许操作者在期望操作模式下利用机器人,而无需持续监控或控制手柄相对于机器人的位置。

应用用途示例

在一些实施方式中,机器人可被配置成清洁环境。环境可以包括室内环境或室外环境。在一些情况下,环境可以包括一个或多个室内环境与一个或多个室外环境的组合。室内环境例如可以包括建筑物、办公室、住宅、商店或至少部分地被一个或多个墙壁、天花板、面板、地板或其他结构元件包围的任何其他空间或区域。室外环境例如可以包括至少部分地暴露于自然元素的任何空间,举例而言,包括公共空间、未被结构元件或组件包围的私人空间、道路、陆地或水生生态系统等。在一些实施方式中,机器人可以清洁或者可被配置成清洁诸如零售店、快餐店、便利店、机场、火车站、商场、商业建筑、超市、校园或学校等场所。

在一些实施方式中,机器人可被优化或配置用于商业用途的地板清洁,该清洁面积的范围为从100平方英尺至30,000平方英尺。在其他实施方式中,机器人可被优化或配置用于清洁大于30,000平方英尺的面积。在一个实施方式中,机器人可被优化或配置用于清洁多达15,000平方英尺的面积。

在机器人被配置用于10,000平方英尺以下的地板清洁面积的实施方式中,机器人可以远比下列各项更有效和高效地服务于此类领域:(i)无法在狭窄空间中敏捷地机动或者精确地导航到或穿越难以到达的区域的大型商用清洁机器人,(ii)缺少用于商业清洁应用的机器人的电池容量或生产率的小型家用清洁机器人,以及(iii)使用拖把或水桶对区域进行手动清洁的人类操作者。

图3图示了机器人100可以在其中操作的示例性环境300。环境可以包括机器人必须导航绕开以避免碰撞的一个或多个障碍物301。在本文所述的任何实施方式中,机器人可被配置成在导航绕开一个或多个障碍物的同时清洁环境300。

如图3中所示,机器人可能能够穿越环境300,在该环境300中多个障碍物301的位置彼此紧邻或相邻地聚集在一起。多个障碍物可以包括单独的和不同的障碍物。障碍物的示例可以包括架子、桌子、椅子、设备或可能阻碍机器人的路径或轨迹的任何实物。在一些情况下,多个障碍物可以包括同一物体的不同部分、区域、区段或组件(例如,同一椅子或桌子的不同的腿)。在本文所述的任何实施方式中,机器人可以具有这样的形状因子:其允许机器人导航绕开多个障碍物、以最小转弯半径急转弯,以及尽管沿着或靠近机器人运动轨迹存在障碍物但仍保持精确的清洁路径。清洁路径可以由机器人动态调节,以在利用机器人的形状因子和以最小转弯半径急转弯的能力的同时将清洁环境的特定特性或布局纳入考虑。

传感器

本文公开的系统可以包括一个或多个传感器。一个或多个传感器可以包括一个或多个视觉传感器和/或一个或多个导航传感器。一个或多个视觉传感器可被配置成基于使用一个或多个传感器获取的数据来创建机器人周围环境的可视化,或者以其他方式对周围环境进行模拟或建模。一个或多个导航传感器可以用于获取数据,该数据可由机器人用于在避开障碍物的同时穿越周围环境或沿着路径行进。在一些非限制性实施方式中,一个或多个传感器可以包括双目相机、雷达单元、飞行时间(TOF)相机、激光雷达单元、超声波或红外传感器、利用超声波或红外波的悬崖传感器、惯性单元(例如,惯性测量单元或IMU)、加速度计、速度传感器、冲击传感器、位置传感器、GPS、陀螺仪、编码器、里程计或如本文其他各处所述的任何其他类型的传感器。

在一些实施方式中,一个或多个传感器可被配置成获取机器人或机器的操作数据。在一些实施方式中,一个或多个传感器可被配置成获取关于机器人或机器在其中操作的环境的数据,或者关于该环境中一个或多个物体的数据。一个或多个物体可以包括静止物体或移动物体。

在一些实施方式中,一个或多个传感器例如可以包括车轮传感器、编码器或者用于测量机器或组件操作时间的时钟或计时单元。

在一些实施方式中,一个或多个传感器可以包括视觉传感器(例如,计算机视觉传感器)和/或导航传感器。视觉传感器和/或导航传感器可以包括激光雷达单元、飞行时间(TOF)相机、双目视觉相机或超声波传感器。在一些情况下,可操作地耦合到视觉传感器和/或导航传感器的处理器可被配置成重新确定机器人路线、机器路线或清洁例程/逻辑的优先级。在一些情况下,一个或多个视觉传感器和/或一个或多个导航传感器可以用于检测地板上的水或残留水/残留物以及朝向残留水/残留物或在其周围导航机器人。

在一些实施方式中,一个或多个传感器可被配置成获取机器人或机器的操作数据。在一些实施方式中,操作数据可以包括关于一个或多个处理或消毒程序发生或需要发生的频率的信息。在一些情况下,操作数据可以包括关于处理或消毒程序发生或需要发生的持续时间的信息。

在一些实施方式中,一个或多个传感器可以包括如上所述的一个或多个视觉传感器。在一些情况下,视觉传感器可被配置成检测地板上的碎屑。在一些情况下,视觉传感器可被配置成检测残留在地板或表面上的水量或水位。

在一些实施方式中,一个或多个传感器可以包括如上所述的冲击传感器或加速度计。冲击传感器或加速度计可以用于确定清洁效率,以及机器人、机器或者机器人或机器的操作者是否遵循最佳路径或清洁例程(即,使用的实际路径或清洁例程是否对应于经训练的或参考路径或清洁例程)。

建图和导航

在一些实施方式中,操作机器人的方法可以包括至少部分地基于环境内的一个或多个可重新定位或可移动的初始化物体的一个或多个图像来确定机器人的姿势,以及生成机器人被配置成在其中移动的环境的地图。

机器人可以包括双目相机模块。与使用单个单目相机相比,双目相机模块可以在姿势确定中提供更高的准确度。双目相机模块可以包括多个单目相机,例如两个单目相机。多个单目相机(例如,第一单目相机和第二单目相机)可以以预定距离分隔,以支持双目或立体视觉和成像。在一些实施方式中,双目相机模块可以包括IMU。具有IMU的双目相机模块可以实现距离测量(例如,测量从机器人到初始化物体的距离)以及姿势确定两者。

一个或多个初始化物体可用于建立机器人的起始位置,以用于初始化机器人。可以通过对一个或多个初始化物体的视觉识别来获取起始位置。初始化物体在本文中可以可互换地称为标记物。标记物包括唯一标识(ID),并且可用于确定机器人和标记物之间的相对姿势(位置和姿态角)。一个或多个初始化物体可包括AprilTag、快速响应(QR)码、图案、棋盘格、参照标记物、ArUco、Charuco、ARtag、CALTAG等。图6示出了AprilTag的示例,并且图10(b)示出了棋盘格的示例,前述AprilTag和棋盘格可用于确定机器人相对于那些标记物的姿势。初始化物体(或标记物)可以以各种形式提供,诸如打印在材料上(例如纸张上)。在一些实施方式中,初始化物体可以是电子屏幕或设备上显示的图像。

生成的环境的地图可以包括关于下列各项的信息:(i)机器人被配置成在其中移动或穿越通过以执行一个或多个任务或操作的环境的区域,(ii)用于机器人行进的一个或多个预定路径,以及(iii)机器人的姿势。地图和一个或多个预定路径可以与初始化物体相关联。在一些实施方式中,可以通过基于由机器人获取的传感器数据生成占据栅格地图,以及随着机器人移动通过环境扩展占据栅格地图,生成环境的地图。占据栅格地图可以包括一个或多个占用栅格,该一个或多个占用栅格指示出障碍物或环境的边界相对于机器人的位置或方向。占据栅格地图可以包括一个或多个占用栅格、未占用栅格和/或一个或多个未知栅格。可以基于一个或多个未占用栅格来调节机器人的移动。一个或多个占用栅格可以基于机器人相对于障碍物和/或环境的边界的姿势来定位。在一些情况下,可以通过将由机器人获取的传感器数据与生成的地图或与地图内的一个或多个特征或物体相匹配来更新机器人的姿势。

参考图7(a),最初可以生成空白栅格地图。然后,可以将机器人关于标记物的姿态投影到空白栅格地图上,标记物的位置作为地图上的原点。当机器人被操作时,导航子系统可被配置成组合来自各个传感器(例如,LIDAR,IMU,里程计等)的数据以计算机器人的位置。机器人的位置数据可以自动投影到栅格地图上。基于目前的位置数据以及历史导航数据,机器人计算(机器人近侧的)每个单独方形栅格被物体(障碍物)占用的可能性。如果占据的可能性高,则那些正方形栅格被记录为占用栅格(如图7(b)中所示出的阴影正方形)。相反地,如果占据的可能性低,则那些方形栅格被记录为可通过栅格(如图7(b)中所示出的非阴影正方形)。在一些实施方式中,当机器人移动靠近栅格地图的边缘时,栅格地图可以向机器人所移动的方向扩展(例如,如图7(c)所示)。

在一些实施方式中,当机器人在沿着一个或多个预定路径的至少一部分移动时,若机器人接近机器人先前已经经过的位置,则触发环回检测。环回检测可以使得机器人调节其轨迹并且与一个或多个预定路径重新对准。

在一些实施方式中,导航子系统可被配置成使用SLAM环回检测来执行校正。例如,机器人可以包括持续收集关于周围环境的数据的LIDAR。LIDAR传感器数据可以与其他传感器数据(例如,视觉/图像数据、里程计、IMU等)融合,以估计机器人的位置。当机器人移动到(或接近)其先前已经经过的区域时,机器人可被配置成执行环回检测和/或地图校正,例如如图9(a)和图9(b)所示。地图校正可以包括基于机器人的估计位置与机器人的目标位置之间的差异来校正地图和机器人的路径/轨迹。

地图构建一经完成,地图数据便可储存在机器人和/或远程服务器上。上述以及如本文其他各处所述的地图构建不需要合并现有地图,因为该地图构建基于栅格地图的自动填充,该填充从具有原点的空白栅格开始,并且当机器人在环境内移动时扩展栅格地图。

在一些实施方式中,可以通过使机器人开始沿着或控制其沿着一个或多个预定路径的至少一部分移动来操作机器人,以使其执行一个或多个任务或操作。机器人可被配置成基于由机器人执行的任务或操作而在环境内沿着不同轨迹移动或穿越不同区域。在一些实施方式中,一个或多个任务或操作可以包括清洁任务。

在一些实施方式中,路径规划和机器人训练可以基于路径决策学习。路径规划阶段期间可以记录或生成环境信息、期望的机器人路径以及环境地图。如果机器人用于清洁任务,则当机器人自主清洁操作激活时,可以加载规划路径和环境地图。参考图8(a),可以从传感器数据(例如,LIDAR、TOF传感器、双目相机等)收集障碍物信息,并且基于机器人上的不同传感器之间的本地位置和相对位置而将障碍物信息投影到环境地图上。然后,可以选择机器人路径上的点(例如,靠近机器人的点)作为目标点,并且机器人目前的位置可用作起点,以规划出在避开障碍物的同时通过环境的可操作路径。参见例如图8(b)。机器人可被配置成沿着规划路径自主移动以执行清洁任务。如果机器人感测到位于规划路径附近或其沿途的障碍物,则机器人可被配置成自主调节其路径以加强清洁并且避开那些障碍物,例如如图8(c)所示。

图10(a)和图10(b)图示了可用于机器人定位的视觉码或标记物的示例。参考图10(b),可以由机器人上的成像传感器(例如,本文其他各处所述的双目相机模块)捕获标记物的图像。可以使用软件(例如,AprilTag机器视觉软件)来检测标记物,并且可以确定图像中每个角点的位置。然后,可以基于角点(例如使用OpenCVPNP)来计算双目相机模块中每个单目相机(例如,左眼相机和右眼相机)关于标记物的相对姿态。考虑到双目相机模块在机器人上安装的位置已知,每个单目相机关于标记物的相对姿态可以转化/转换成机器人关于标记物的相对姿态。然后,基于已经记录到栅格地图的标记物位置,可以将机器人的位置投影到栅格地图上,例如如图10(c)所示。

标记物(例如,AprilTag)可用于建立和确定世界坐标系的原点。在创建地图时,一旦机器人使用双目相机模块检测到标记物,机器人便可使用标记物的位置来建立世界坐标系的原点。如果标记物放置在建筑物的墙上,则可以建立与该建筑物的结构大概一致的坐标系,这可以在减少存储器储存量以及显示图形方面提供技术优点(因为建筑物的结构/布局通常是已知的)。

标记物可以用于标记机器人位于其中的区域,这提供了机器人的初始和大概定位。然后,可以使用安装在机器人上的传感器(例如,LIDAR和视觉传感器)扫描周围环境,并且可以将周围环境与在创建地图时记录的所感测到的环境相匹配,以便提供精确定位。因此,标记物可用作用于重新定位机器人的参考,并且用于提供粗略初始定位。机器人的轨迹和动作记录在地图上,但是不需要与标记物的位置绑定或受其限制。例如,如果标志物的位置改变或移动到不同位置,机器人仍然能够在目标区域和规划路线内自主操作。此外,即使机器人和标记物在位置初始化步骤开始时以可观距离(例如,大于1m)分隔开,定位误差也不会累加。这与其他传统的机器人导航系统形成对比,传统的机器人导航系统在位置初始化步骤期间可能需要机器人紧邻(例如,小于0.1m)于标记物(否则误差可能会累加,从而导致路线不准确)。

因此,机器人沿着一个或多个预定路径或其一部分的轨迹可以独立于环境内的一个或多个初始化物体的位置。换言之,初始化物体不需要必须一直处于固定位置,并且其可以在环境内重新定位或移动,而不影响机器人的操作或轨迹。本文所述的初始化物体(例如,标记物)可用作用于路径起点和终点的参考。所生成的地图不需要与标记物相联系/相关联。例如,一经使用标记物作为起点和终点而生成地图,即使标记物被移动到地图中的另一位置,地图也不会改变或“变换”。上述特征是有利的,因为在许多情况下不允许标记物永久性粘附(例如,粘附到公共场所或建筑物中的墙上)。为了避免粘附到建筑物的墙上,标记物例如可以提供在可移动板(例如,海报架)上。至于机器人清洁任务/操作,一经使用标记物作为参考点生成地图,可移动板即可移除,直到下一清洁周期(可以是第二天或同一天内的另一不同时间)。在下一清洁周期,带有标记物的可移动板不需要必须放置在与之前相同的位置/地点。只要带有标记物的可移动板放置在沿着规划清洁路径的任何地方,已经生成的地图就不会变换或改变(即使带有标记物的可移动板不再与其被用于地图生成时处于相同的位置)。

图11(a)和图11(b)图示了根据一些实施方式的使用图像信号作为用于机器人操作、行为和任务的指令。机器人可被配置成收集周围环境的图像。可以使用机器视觉来校正机器人的动作/行为,诸如避开行人、避开电梯等。例如,如果机器人视觉检测到行人,导航子系统则可以计算行人和机器人的相对位置,并引导机器人减速、绕路或发出避让的音频信号。作为另一示例,如果机器人视觉检测到电梯,导航子系统则可以计算电梯和机器人的相对位置,引导机器人绕路,并确定操作环境是否对机器人操作构成风险。

在一些实施方式中,初始化物体或标记物可以包括平面棋盘格图案,该图案具有黑色正方形与白色正方形交替的重复图案。每个正方形可以大小一致,并且排列在具有多个行和列的栅格中。在一些实施方式中,正方形的角点可以作为用于执行相机校准的特征点。可以使用机器视觉技术(例如,AprilTag)来将角点与图像数据的其他部分相对容易地区分开。或者,棋盘格的其他部分可以作为用于校准目的的特征(例如,黑色正方形或白色正方形等)。可以使用各种特征提取技术来标识标记物特征,并且可以确定每个特征的图像坐标。可以通过对棋盘格的几何学知识来促进该过程。例如,在棋盘格正方形的角点作为标记物的特征点的实施方式中,正方形的大小限定相邻特征点之间的间距。因此,每个角点的图像坐标可以基于其在棋盘格内所处的行和列位置来确定。

一旦标记物中的特征的图像坐标已经确定,进而即可标识标记物上特征的图像坐标与世界坐标之间的对应性。可以相对于标记物来限定世界坐标系,使得每个特征的世界坐标对应于标记物上的特征的位置。

本文公开的双目相机模块可以包括左眼单目相机和右眼单目相机,该左眼单目相机被配置成捕获标记物的第一图像,而该右眼单目相机被配置成捕获标记物的第二图像。可以标识第一图像中特征(例如,角点)的图像坐标、第二图像中对应特征的图像坐标以及标记物中特征的世界坐标之间的对应性,并将其用于确定机器人的姿势。

低光条件

在一些实施方式中,双目相机模块还可以包括光传感器和红外光源。光传感器可被配置成检测环境照度。机器人可被配置成当(i)初始化物体没有被最初检测到或(ii)多个单目相机的中的仅一个或子集检测到了初始化物体时,激活光传感器以检测环境照度。机器人可被配置成在低照明或黑暗环境中激活红外光源,在这之后可以使用双目相机模块来检测初始化物体或获取初始化物体的一个或多个图像。

在一些实施方式中,机器人可被配置成当光传感器检测到曝光过度时调节双目相机模块的曝光时间或增益。相反地,机器人可被配置成如果光传感器检测到曝光不足,则激活红外光源以及/或者调节红外光源的照度。红外光源的照度可以具有0至100之间的可调节范围。在一些实施方式中,双目相机模块可被配置成初步尝试使用低照度水平来检测初始化物体。如果双目相机模块不能检测到初始化物体,则可以递增地增加照度,直到双目相机模块能够检测到初始化物体。

姿势确认

在一些实施方式中,可以使用基于无限小平面的姿势估计(InfinitesimalPlane-based Pose Estimation,IPPE)算法来验证或确认机器人的姿势的准确度。在其他实施方式中,可以使用PNP(透视-n-点)算法通过解出从3D(三维)到2D(二维)的透视投影来验证或确认姿势准确度。在一些实施方式中,当机器人姿势的准确度在预定阈值或范围内时,使机器人开始移动。如果机器人姿势的准确度在预定阈值或范围之外,机器人则可能不会操作或移动,并且可能需要重复初始化步骤,以达到预定阈值或范围内的姿势准确度。

带有TOF传感器的IMU

飞行时间(TOF)传感器可用于检测低海拔障碍物以用于识别和避开障碍物。然而,如果独立的TOF传感器没有精确安装在机器人上的预定位置,则该TOF传感器可能准确度低。

为了弥补以上缺点并提高检测准确度,本文公开的机器人可包括惯性测量单元(IMU)和飞行时间(TOF)传感器。IMU可包括3轴加速度计和3轴陀螺仪。IMU和TOF传感器可以彼此刚性地耦合。IMU和TOF传感器可以相对于彼此校准。可以以规律间隔执行自校准过程以弥补损失误差或传感器漂移。IMU可被配置成检测TOF传感器的运动和振动特性。图5图示了由于IMU与TOF传感器之间的刚性耦合而相对于彼此固定的IMU坐标系和TOF坐标系。

IMU和TOF传感器可用于协助机器人导航或移动通过环境。例如,IMU可被配置成在3维(3D)空间中实时检测机器人或TOF传感器的加速度、速度和/或姿态。检测频率可以高达500Hz(IMU频率1000Hz),这允许对机器人主体的动态检测以及由IMU进行的实时姿态检测。

TOF传感器可被配置成检测或识别一个或多个物体或障碍物。IMU可被配置成弥补使用TOF传感器获得的一个或多个测量中的一个或多个误差。基于来自IMU的动态信息,TOF信息可以在距离域以及频率域均得以弥补。距离域指的是动态振幅。频率域指的是由TOF传输导致的噪音,该TOF传输是由于机器人主体的振动而由多普勒效应造成的。

在一些情况下,上述IMU和TOF传感器组合的实验结果已经显示出(对于具有4x4x4cm

示教模式、自填充模式和地图分割

在一些情况下,用户可以经由人-计算机交互界面来在地图上限定要清洁的区域的一个或多个边界。清洁机器人可被配置成在由该边界限制的区域中执行自动路径规划,并且可以根据规划路径完成清洁任务。在一些情况下,机器人可能无法完全区分要清洁的区域,例如由于传感器的检测能力有限和/或存在复杂或形状复杂的障碍物边界。

为了克服至少上述困难,本文公开的机器人可以包括一个或多个传感器,该一个或多个传感器被配置成随着机器人沿着一个或多个训练轨迹穿越或移动通过环境时检测环境中或附近的一个或多个障碍物。机器人可被配置成通过(i)将一个或多个训练轨迹和使用一个或多个传感器获取的传感器数据投影到地图上以及(ii)基于地图中的一个或多个未占用栅格的位置来扩展一个或多个训练轨迹,确定环境中的清洁区域。地图可以包括(i)一个或多个障碍物区域,其包括由机器人检测到的一个或多个障碍物以及(ii)一个或多个可通行区域,其包括一个或多个训练轨迹。在一些实施方式中,地图可以包括占据栅格。清洁区域可以包括一个或多个训练轨迹并且不包括使用一个或多个传感器检测到的一个或多个障碍物。一个或多个训练轨迹可以限定或跨越潜在清洁区域的一部分。

传感器数据可以指示出一个或多个障碍物的位置或方向。在一些实施方式中,机器人可被配置成在机器人沿着一个或多个训练轨迹被手动推进的同时捕获传感器数据。机器人可被配置成随着机器人沿着一个或多个训练轨迹被手动推进时,在地图上登记或记录用于一个或多个边界的一个或多个坐标。

在一些其他的替代性实施方式中,机器人可被配置成在机器人沿着一个或多个训练轨迹自主移动或被远程控制移动的同时捕获传感器数据。在一些实施方式中,一个或多个目标区域的一个或多个边界可以由机器人的用户或操作者标定。附加地或可选地,一个或多个目标区域的一个或多个边界可以由与目标区域相关联的人员标定,例如经营者、楼层经理等。在某些实施方式中,一个或多个目标区域的一个或多个边界可以由被设计成优化或最大化要清洁的地板区域/空间的软件程序/算法来自动标定。

机器人可被配置成基于对一个或多个目标区域的一个或多个边界的标定来标识清洁区域内的一个或多个要清洁的目标区域。随着机器人沿着一个或多个边界穿越或移动,一个或多个边界可以由机器人记录。可以通过排除环境中的一个或多个障碍物位于其中的区域来标识一个或多个目标区域。在一些实施方式中,可以通过排除环境中的附加区域来标识一个或多个目标区域,该附加区域接近或邻近一个或多个障碍物位于其中的区域。附加区域可以从一个或多个障碍物位于其中的区域延伸出预定义距离(例如,范围为从1cm至50cm)。排除附加区域可以有利于减少机器人与一个或多个障碍物碰撞的风险,特别是当障碍物紧密拥挤或具有复杂的形状/大小时。

要清洁的目标区域一经标识,机器人便可被配置成沿着一个或多个清洁路径通过一个或多个目标区域或在一个或多个目标区域沿着一个或多个清洁路径移动或导航,以清洁一个或多个目标区域或其一部分。机器人可被配置成在避开一个或多个障碍物区域(包括由机器人(曾)检测到的一个或多个障碍物)时清洁一个或多个目标区域。

在一些实施方式中,目标区域可以包括由两个或更多个不同边界标定的两个或更多个目标区域。在一些实施方式中,两个或更多个目标区域可以合并成组合目标区域以供机器人清洁。相反地,在其他实施方式中,机器人可被配置成将目标区域分割成两个或更多个子区域以供清洁。在一些情况下,机器人可被配置成基于由机器人获取的传感器数据来扩展一个或多个训练轨迹。一个或多个扩展的轨迹允许机器人穿越延伸超出一个或多个训练轨迹的路径。在一些实施方式中,机器人可被配置成基于使用人工智能(AI)或机器学习(ML)对传感器数据进行的处理来调节或扩展一个或多个训练轨迹。机器学习算法的示例可以包括支持向量机(SVM)、朴素贝叶斯分类、随机森林、神经网络、深度学习或其他监督学习算法或无监督学习算法。可以使用一个或多个训练数据集来训练机器学习算法。

图12(a)-图12(e)和图13(a)-图13(c)图示了用于确定要清洁的一个或多个目标区域的机器人示教和边界划定的示例。在一些实施方式中,示教和边界划定可以通过由用户沿着一个或多个训练轨迹手动推进机器人来执行。在其他实施方式中,示教和边界划定可以通过由用户远程控制机器人沿着一个或多个训练轨迹移动来半自动地执行。在一些替代的实施方式中,示教和边界划定可以在机器人沿着一个或多个训练轨迹自主移动时自动执行。在一个或多个目标清洁区域已经确定之后,机器人可被配置成在一个或多个模式(例如,螺旋形模式或弓字形模式)下移动/穿越通过目标区域,以确保正确地清洁目标区域。

在示教步骤期间,机器人沿着一个或多个训练轨迹移动(例如,由用户手动推进机器人通过要清洁的环境)。机器人机上的传感器(例如,红外传感器、超声传感器、碰撞传感器、里程计、相机、LIDAR、TOF传感器等)可以在示教期间感测环境。传感器数据可以投影到2维(2D)栅格地图,例如,如图12(a)所示。栅格地图可以包括障碍物区域(即机器人不能通过的区域)以及可通行区域(即机器人可以通过的区域)。可以将值(例如,0至255)分配给栅格地图中的每个栅格,该值由此指示出栅格被占用的可能性。例如,障碍物区域中的栅格值可以被设定为254,而可通行区域中的栅格值可以被设定为0。

图12(b)图示了用于机器人避开障碍物区域的已示教轨迹。该已示教轨迹可以对应于用于对机器人进行示教的一个或多个训练轨迹。可以生成位置表列表-1。在示教步骤期间,已示教轨迹上的每个栅格的坐标可以以机器人移动/穿越的顺序记录在位置表列表-1中。位置表列表-1可以与栅格地图绑定。

然后,可以基于栅格地图和位置表列表-1来扩展已示教轨迹以得到最大覆盖/清洁区域。例如,可以通过预定数量的栅格来扩展轨迹内的每个路径,以获取要清洁的区域,如图12(c)所示。参考图12(c),经扩展的区域可以完全覆盖/包含已示教轨迹而不包括障碍物区域。因此,经扩展的区域可以对应于机器人能够清洁的最大覆盖区域。可以将与最大覆盖区域相关联的信息导入到新生成的地图-1中,其中最大覆盖区域内的栅格值为0。

然后,可以移动(或由用户手动推进)机器人来在目标区域中规定/划定清洁边界。可以记录划定的边界点。如图12(d)所示,虚线a可以对应于要清洁的目标区域的边界。沿着边界a的点的坐标可以记录在另一位置表列表-2中。然后可以将边界和由该边界包围的区域导入到新生成的地图,地图-2中,其中地图-2中的导入数据的栅格值被设定成1。

然后,为了获取要清洁的区域,可以生成新地图,地图-3。地图-1(最大覆盖区域,其中栅格值为0)和地图-2(由边界包围的区域,其中栅格值为1)被导入到地图-3中。地图-3(其中栅格值为1)中的区域对应于要清洁的目标区域(其由图12(e)中的阴影区域所描绘)。

在一些实施方式中,可以为目标区域规定/划定两个或更多个清洁边界。机器人可以移动(例如,由用户手动推进,或由用户远程控制,或自主移动),以划定两个或更多个清洁边界。例如,参考图13(a),可以通过移动机器人以限定那些边界,从而可以划定第一边界a和第二边界b。第一边界a可以和先前在图12(d)中所描述和示出的边界a一样。第一边界a的坐标可以记录在位置表列表-A(其与参考图12(d)所描述的列表-2相似或相同)中。第二边界b可以是附加的新边界,并且其坐标可以记录在位置表列表-B中。然后,可以将第一和第二边界(a和b)以及由两边界包围的区域导入到新生成的地图,地图-A中。地图-A中输入的数据的栅格值可被设定成1。然后,可以生成新地图,地图-4。可以将先前得到的地图-1(最大覆盖区域,其中栅格值为0)和地图-A(由边界包围的区域,其中栅格值为1)导入到地图-4中。因此,地图-4(其中栅格值设定为1)中的区域可以对应于要清洁的最终区域,例如如图13(b)中的阴影区域所示。

在一些实施方式中,可以将目标区域分割成两个或更多个子区域以供清洁。这可以有利于提高清洁效率,特别是在目标区域具有复杂形状或轮廓时。具有复杂形状或轮廓的目标区域可以分割成具有更简单的形状或轮廓的两个或更多个子区域。在一些实施方式中,可以限定由机器人对那些子区域进行清洁的顺序,例如,以从一个子区域到下一个子区域以及/或者基于要清洁的每个子区域的优先级优化清洁路径。

参考图13(c),要清洁的目标区域具有相对复杂的形状或轮廓。因此,可以将该目标区域分割成多个子区域(例如,子区域1、2和3),该多个子区域具有复杂程度更低的形状或轮廓。可以使用分割算法来将要清洁的目标区域自动分割成两个或更多个子区域。在一些实施方式中,分割算法可以是牛耕式单元分解算法。子区域可以有清洁顺序。例如,在图13(c)中,机器人可被配置成先清洁子区域1,再清洁子区域2,以及最后清洁子区域3。如先前提到的,清洁顺序例如可以基于从一个子区域到下一个子区域,以及/或者基于要清洁的每个子区域的优先级优化清洁路径。

在已经确定要清洁的目标区域(或要清洁的两个或更多个子区域)之后,可以为机器人自动生成目标区域内的清洁路径。该清洁路径可以具有任何数目的构型。例如,图14(a)示出了螺旋形清洁路径,并且图14(b)示出了弓字形清洁路径。清洁路径可以是单一构型的,或者可以具有两种或更多种构型。在一些实施方式中,清洁路径可以具有螺旋形和弓字形两种清洁路径的组合。路径构型的类型可以基于要清洁的区域的类型和/或清洁机器人的类型来确定。例如,某些区域可能使用螺旋形路径来更高效地清洁,而其他区域可能使用弓字形路径来更高效地清洁。相似地,一些清洁机器人可以被定制成以螺旋形方式行进,而其他清洁机器人更适合以弓字形方式行进。

基于用户输入(对机器人手柄的操作)的建图

在一些实施方式中,机器人可以至少部分地基于地图而自主操作。可以使用建图方法来构建地图。可以至少部分地基于用户输入来构建地图。在一些实施方式中,用户输入可以包括使用手柄推动机器人。在一些实施方式中,建图方法可以包括使用同时定位与建图(simultaneous localization and mapping,SLAM)或视觉SLAM(VSLAM)方法。在一些实施方式中,建图方法可以包括使用来自一个或多个传感器的传感器数据。在一些实施方式中,可以将一个或多个传感器安置在如本文其他各处所述的机器人上。在一些实施方式中,一个或多个传感器可以融合。在一些实施方式中,建图方法可以包括计算机器人的移动轨迹和/或位置信息。

在一些实施方式中,建图方法可以包括打开机器人的手柄。在一些实施方式中,建图方法可以包括使用视觉传感器和/或导航传感器扫描位置校准码。在一些实施方式中,校准码可以包括QR码或条形码。在一些实施方式中,建图方法可以包括推动手柄。在一些实施方式中,推动手柄可以启动对机器人的轨迹和/或位置信息的计算。在一些实施方式中,计算可以至少部分地基于通过被配置或实现用于SLAM或VSLAM应用的一个或多个视觉传感器和/或一个或多个导航传感器收集的数据(例如,VSLAM数据)。在一些实施方式中,方法可以包括释放手柄。在一些实施方式中,方法可以包括二次扫描位置校准码。在一些实施方式中,二次扫描位置校准码将地图保存在数字存储设备上。

可扫描物体和地图共享

在一些实施方式中,方法可以包括提供(i)多个机器人和(ii)与环境的一个或多个地图相关联的一个或多个可扫描物体;以及(b)在该环境中部署多个机器人以执行一个或多个任务。可以使用本文其他各处所述的任何系统和方法来生成环境的地图。可扫描物体在环境内可以是可重新定位或可移动的,而不影响或无需必须更新已经生成的环境的地图。

在一些实施方式中,方法可以包括当多个机器人对一个或多个可扫描物体进行登记或成像时,向多个机器人提供一个或多个地图。一个或多个地图可以包括多个不同的地图。多个不同的地图可以提供给多个机器人中的不同机器人。多个不同的地图可以包括用于不同机器人的不同轨迹。多个不同的地图可以对应于环境的不同区域或子区域。多个机器人可被配置成共享环境的一个或多个地图。

可扫描物体可以包括,或者可以对应于如本文其他各处所述的一个或多个可重新定位或可移动的初始化物体(或标记物)。可扫描物体可以关联于或者可贴附到要清洁或穿过的环境中的一个或多个实物或表面。在一些情况下,可扫描物体可以包括条形码、快速响应(QR)码、AprilTag、唯一标识符或序列号。

可扫描物体可由机器人扫描。在一些实施方式中,可扫描物体可用于促进清洁操作。基于该扫描,机器人可以启动清洁程序或沿着预定路线移动。多个机器人可被配置成使用一个或多个地图导航通过环境以执行一个或多个任务。任务例如可以包括如本文其他各处所述的一个或多个清洁任务。在一些实施方式中,多个机器人可被配置成共同地执行一个或多个任务。在其他实施方式中,多个机器人可被配置成各自独立地或单独地执行一个或多个任务。

运动路径

在一些情况下,可以基于针对一个或多个机器人或机器获取的操作数据来调节一个或多个机器人或机器的操作。在一些情况下,可以基于操作数据来调节分配给一个或多个机器人或机器的一个或多个运动路径或清洁例程。在一些情况下,可以基于检测到的预期机器人或机器行为或性能的变化或偏差来调节一个或多个机器人或机器的操作。

操作数据

编队中的一个或多个机器人或机器的操作数据可以使用一个或多个机器人或机器的一个或多个传感器来采集或获取。在一些情况下,一个或多个传感器可以包括如本文其他各处所述的一个或多个视觉传感器和/或一个或多个导航传感器。在一些情况下,一个或多个传感器可以包括位置传感器、GPS单元、编码器、里程计、加速度计、惯性测量单元(IMU)、陀螺仪或速度传感器。在一些情况下,一个或多个传感器例如可以包括温度传感器、压力传感器、湿度传感器,或者用于感测一个或多个机器人或机器在其中操作的环境的条件的任何其他类型的环境传感器。在一些情况下,一个或多个传感器可以包括如本文其他各处所述的光学传感器或视觉传感器。光学传感器或视觉传感器例如可以包括成像传感器或相机。在一些情况下,一个或多个传感器可以包括激光雷达传感器、视觉传感器、飞行时间传感器(例如,3D飞行时间传感器)、双目视觉传感器、立体视觉传感器或超声波传感器。

在一些实施方式中,可以从单个机器人和/或机器或者从多个机器人和/或机器接收操作数据。在一些情况下,可以从多个机器人和/或机器连续或顺序接收操作数据。或者,可以同时地或并发地从多个机器人和/或机器接收操作数据。如上所述,机器人和/或机器可以包括自主的、半自主的和/或非自主的机器人或机器,或者其任何组合。机器人和/或机器的任何组合,包括自主、半自主和非自主机器或机器人,可以一起用于实现本公开的系统和方法。

在一些情况下,操作数据可以包括关于一个或多个机器人或机器的地理位置的信息。在一些情况下,操作数据可以包括关于一个或多个机器人或机器的位置、方向或姿势的信息。在一些情况下,操作数据可以包括关于一个或多个机器人或机器跨区域或环境的空间分布的信息。

在一些情况下,操作数据可以包括关于一个或多个机器人或机器以及/或者一个或多个机器人或机器的一个或多个组件的电池电量或充电状态的信息。电池电量或充电状态可以指示出机器人或机器已经操作了多长时间,以及机器人或机器在失去电力之前可以继续操作多长时间。

在一些情况下,操作数据可以包括一个或多个机器人或机器以及/或者一个或多个机器人或机器的一个或多个组件的故障信息或警报信息。在一些情况下,故障信息可以由一个或多个机器人或机器自动生成。在一些情况下,故障信息可以由一个或多个机器人或机器的用户或操作者手动报告或生成。

在一些情况下,操作数据可以包括关于一个或多个机器人或机器的工作记录、清洁路径或清洁性能的信息。在一些情况下,操作数据可以包括关于一个或多个组件的总使用或操作时间的信息。

在本文描述的任何实施方式中,操作数据可以由一个或多个机器人或机器周期性地生成或编译以供传输或上传到中央服务器。在本文描述的任何实施方式中,操作数据可以以一个或多个预定或周期性时间间隔从一个或多个机器人或机器传输到中央服务器。在本文描述的任何实施方式中,操作数据可以以根据一个或多个机器人或机器的历史使用或总操作时间而变化的一个或多个时间间隔从一个或多个机器人或机器传输到中央服务器。

在一些实施方式中,可以使用浮子传感器获取操作数据。在一些情况下,浮子传感器可以指示出废水箱已满,并提醒用户该箱需要更换。在一些情况下,浮子传感器可以指示出空的溶液箱,并提醒用户该箱需要重新填充。

在一些实施方式中,操作数据可以包括关于机器人或机器的操作时间的信息。关于机器人或机器的操作时间的信息可以用于确定何时激活如本文其他各处所述的处理或消毒子系统。在一些情况下,关于机器人或机器的操作时间的信息可以用于提醒或通知用户该用户应当在何时启动处理或消毒程序(例如,消毒或清洁机器人或机器的组件或子系统,或者对在机器人或机器执行一次或多次清洁操作时随时间推移生成或积聚的有害物质或副产品进行杀菌)。

在一些实施方式中,操作数据可以包括关于处理或消毒程序发生或需要发生的频率的信息。在一些情况下,操作数据可以包括关于处理或消毒程序发生或需要发生的持续时间的信息。在一些情况下,频率信息和/或持续时间信息可以指示出随着时间的推移执行清洁的程度或频率。

在一些实施方式中,清洁数据或信息可以用于标识可能需要附加清洁的水斑或其他斑点,以及改变机器或机器组件的操作以优化清洁性能。

在一些情况下,清洁数据或信息可以包括关于与机器人或机器的操作环境相关联的环境因素的信息。环境因素例如可以包括温度、湿度或操作区域。在一些情况下,例如在较冷的气候中,机器人或机器可以自动调节其操作或移动以更慢地操作、增加真空功率和/或增加水流量。

机器人编队

图15示意性地图示了中央服务器2400以及与中央服务器2400通信的多个机器人和/或机器2401-1、2401-2和2401-3。在一些情况下,中央服务器2400可被配置成从多个机器人和/或机器2401-1、2401-2和2401-3接收操作数据。多个机器人和/或机器2401-1、2401-2和2401-3可以彼此通信。或者,多个机器人和/或机器2401-1、2401-2和2401-3可以不彼此通信或不需要彼此通信。

多个机器人和/或机器2401-1、2401-2和2401-3可以各自包括一个或多个传感器。一个或多个传感器可以用于捕获与多个机器人和/或机器2401-1、2401-2和2401-3的操作或状态相关联的操作数据。

中央服务器2400可被配置成处理操作数据。在一些实施方式中,中央服务器2400可被配置成将操作数据与一个或多个参考值或阈值进行比较,该参考值或阈值与一个或多个机器人或机器或者一个或多个机器人或机器的一个或多个组件的操作或状态相关联。在一些情况下,中央服务器2400可被配置成从存储器模块2410接收一个或多个参考值或阈值。中央服务器2400可被配置成至少部分地基于操作数据与一个或多个参考值或阈值的比较,来检测一个或多个机器人或机器或者一个或多个机器人或机器的一个或多个组件的操作或预期行为的一个或多个变化或偏差。中央服务器2400可被配置成基于检测到的变化或偏差或者基于使用从一个或多个机器人或机器接收到的操作数据计算的一个或多个指标来生成一个或多个报告或者更新一个或多个机器人或机器的操作逻辑。

在一些实施方式中,中央服务器2400可被配置成生成一个或多个报告2415并将其传输到一个或多个实体2420。一个或多个实体2420可以包括一个或多个机器人或机器的操作者或管理员。一个或多个报告2415可以包括与一个或多个机器人或机器的操作相关联的一个或多个指标。

平台/i-SYNERGY

在一些情况下,本公开的系统和方法可以使用用于收集和处理一个或多个机器人或机器的操作数据的平台来实现。编队中每个机器人或机器的操作数据可以传输到中央服务器或平台,该中央服务器或平台可被配置成收集和处理操作数据。操作数据(和/或可以从操作数据的处理中得出的任何其他信息)可以传输到一个或多个最终用户界面或门户以促进对机器人或机器操作的监控和控制。在一些情况下,中央服务器或平台可以包括IoT平台,该IoT平台基于从编队中的一个或多个机器人或机器获取的操作数据来协同管理编队中的多个清洁机器人或机器。

在一些情况下,平台可以包括经由无线通信网络与一个或多个机器人或机器通信的云服务器。云服务器可以可操作地耦合到被配置成在环境中操作的多个机器人或机器。在一些情况下,环境可以是支持无线通信的室内环境。

在一些情况下,清洁机器人或机器可以经由网络与云服务器通信。网络可以允许在(i)服务提供商或云服务器和(ii)清洁机器人或机器之间传输数据。服务提供商或云服务器可被配置成处理从机器人或机器接收到的数据。服务提供商或云服务器可被配置成基于从机器人或机器接收到的操作数据来监控或控制机器人或机器的操作。在一些情况下,服务提供商或云服务器可被配置成基于从机器人或机器接收到的操作数据向机器人或机器的用户或操作者提供一个或多个报告、警报和/或通知。一个或多个通知例如可以指示出已检测到预期机器人或机器性能或行为的变化或偏差,或者已标识出机器人或机器的计划运动逻辑的变动。在一些情况下,服务提供商或云服务器可以与移动应用或网络应用对接以促进清洁、机器人或机器操作的追踪以及/或者编队信息和/或操作数据的处理。

计算机系统

在一个方面,本公开提供了计算机系统,其被编程或以其他方式配置成实现本公开的方法,例如,用于机器人清洁的任何主题方法。参考图16,计算机系统2901可被编程或以其他方式配置成实现用于清洁环境的方法。计算机系统2901例如可被配置成控制机器人基于用户输入、事先训练或示教,或者由机器人基于传感器读数和/或使用人工智能或机器学习做出的决策来执行清洁程序或操作。计算机系统2901可以是用户的电子设备或相对于该电子设备位于远程的计算机系统。电子设备可以是移动电子设备。

计算机系统2901可以包括中央处理器(CPU,本文也称为“处理器”和“计算机处理器”)2905,该中央处理器2905可以是单核或多核处理器,或者是用于并行处理的多个处理器。计算机系统2901还包括存储器或存储器位置2910(例如,随机存取存储器、只读存储器、闪存)、电子存储单元2915(例如,硬盘)、用于与一个或多个其他系统通信的通信接口2920(例如,网络适配器),以及外围设备2925,诸如高速缓存、其他存储器、数据存储和/或电子显示适配器。存储器2910、存储单元2915、接口2920和外围设备2925通过诸如主板等通信总线(实线)与CPU 2905通信。存储单元2915可以是用于储存数据的数据存储单元(或数据存储库)。计算机系统2901可以借助于通信接口2920可操作地耦合到计算机网络(“网络”)2930。网络2930可以是因特网、互联网和/或外联网,或者内联网和/或与因特网通信的外联网。在一些情况下,网络2930是电信和/或数据网络。网络2930可以包括一个或多个计算机服务器,该一个或多个计算机服务器可以实现分布式计算,例如云计算。在一些情况下,借助于计算机系统2901,网络2930可以实现对等网络,这可以使耦合到计算机系统2901的设备能够充当客户端或服务器。

CPU 2905可以执行一系列机器可读指令,该机器可读指令可以体现为程序或软件。指令可以储存在诸如存储器2910之类的存储器位置中。指令可以被引导到CPU 2905,其可以随后对CPU 2905进行编程或以其他方式配置以实现本公开的方法。CPU 2905执行的操作的示例可以包括获取、解码、执行和回写。

CPU 2905可以是诸如集成电路等电路的一部分。系统2901的一个或多个其他组件可以包括在电路中。在一些情况下,该电路是专用集成电路(ASIC)。

存储单元2915可以储存文件,诸如驱动程序、库和保存的程序。存储单元2915可以储存用户数据,例如,用户偏好和用户程序。在一些情况下,计算机系统2901可以包括一个或多个位于计算机系统2901外部的附加数据存储单元(例如,在通过内联网或因特网与计算机系统2901通信的远程服务器上)。

计算机系统2901可以通过网络2930与一个或多个远程计算机系统通信。例如,计算机系统2901可以与用户(例如,机器人或机器的操作者或管理员)的远程计算机系统通信。远程计算机系统的示例包括个人计算机(例如,便携式PC)、平板或板状PC(例如,

如本文所述的方法可以通过储存在计算机系统2901的电子存储位置(举例而言,诸如存储器2910或电子存储单元2915)上的机器(例如,计算机处理器)可执行代码来实现。机器可执行或机器可读代码可以以软件的形式提供。在使用期间,代码可以由处理器2905执行。在一些情况下,可以从存储单元2915检索代码并储存在存储器2910上以供处理器2905随时访问。在一些情况下,可以排除电子存储单元2915,并且机器可执行指令储存在存储器2910上。

代码可以被预编译和配置用于与具有适于执行代码的处理器的机器一起使用,或者可以在运行时编译。代码能够以编程语言供应,该编程语言可被选择以使代码能够以预编译或当场编译的方式执行。

本文提供的系统和方法的各个方面,例如计算机系统2901,可以在编程中体现。技术的各个方面可以被认为是“产品”或“制品”,通常为承载于或体现在某种类型的机器可读介质中的机器(或处理器)可执行代码和/或关联数据的形式。机器可执行代码可以储存在电子存储单元上,诸如存储器(例如,只读存储器、随机存取存储器、闪存)或硬盘上。“存储”类型介质可以包括计算机、处理器等或其关联模块的任何或所有有形存储器,诸如各种半导体存储器、磁带驱动器、磁盘驱动器等,它们可以随时提供非暂时性存储以供软件编程。软件的全部或部分可以不时通过因特网或各种其他电信网络进行通信。例如,这样的通信可以实现将软件从一个计算机或处理器加载到另一计算机或处理器中,例如,从管理服务器或主机计算机加载到应用服务器的计算机平台中。因此,可以承载软件元素的另一类型的介质包括光波、电波和电磁波,诸如跨本地设备之间的物理接口、通过有线和光陆线网络以及通过各种空中链路使用的那些介质。承载此类波的物理元件,诸如有线或无线链路、光链路等,也可以被认为是承载软件的介质。如本文所使用,除非限于非暂时的、有形的“存储”介质,诸如计算机或机器“可读介质”之类的术语是指参与向处理器提供指令以供执行的任何介质。

因此,诸如计算机可执行代码之类的机器可读介质可以采取许多形式,包括但不限于有形存储介质、载波介质或物理传输介质。包括例如光盘或磁盘或任何计算机中的任何存储设备等在内的非易失性存储介质可以用于实现附图中所示的数据库等。易失性存储介质包括动态存储器,例如这样的计算机平台的主存储器。有形传输介质包括同轴电缆;铜线和光纤,包括构成计算机系统内总线的线路。载波传输介质可以采用电或电磁信号的形式,或者采用声波或光波的形式,诸如在射频(RF)和红外(IR)数据通信期间产生的那些。因此,计算机可读介质的常见形式例如包括:软盘、柔性盘、硬盘、磁带、任何其他磁性介质、CD-ROM、DVD或DVD-ROM、任何其他光学介质、穿孔卡纸带、任何其他带有孔图案的物理存储介质、RAM、ROM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或盒、传送数据或指令的载波、传送此类载波的线缆或链路,或者计算机可以从中读取编程代码和/或数据的任何其他介质。这些形式的计算机可读介质中的许多介质可涉及将一个或多个指令的一个或多个序列传送到处理器以供执行。

计算机系统2901可以包括电子显示器2935或与之通信,该电子显示器2935包括用户界面(UI)2940,该用户界面(UI)2940例如用于为用户或操作者提供门户以监控或控制一个或多个机器人或机器的操作。门户可以通过应用编程接口(API)来提供。用户或实体还可以经由UI与门户中的各个元素进行交互。UI的示例包括但不限于图形用户界面(GUI)和基于网络的用户界面。

本公开的方法和系统可以通过一种或多种算法来实现。算法可以通过在由中央处理器2905执行时的软件来实现。例如,算法可被配置成控制机器人基于用户输入、事先训练或示教,或者由机器人基于传感器读数和/或使用人工智能或机器学习做出的决策来执行清洁程序或操作。

尽管本文已经示出和描述了本发明的优选实施方式,但对于本领域技术人员来说显而易见的是,这样的实施方式仅作为示例提供。本发明并不意在受说明书中提供的具体示例的限制。尽管已经参照前述说明书描述了本发明,但本文中实施方式的描述和说明并不意味着被解释为限制意义。在不背离本发明的情况下,本领域技术人员现在将会想到许多变化、改变和替换。此外,应当理解,本发明的所有方面不限于本文阐述的具体描述、配置或相对比例,其取决于多种条件和变量。应当理解,在实施本发明时可以采用对本文描述的本发明实施方式的各种替代方案。因此设想到本发明还应涵盖任何这样的替代、修改、变化或等价物。所附权利要求旨在限定本发明的范围,并且由此覆盖这些权利要求范围内的方法和结构及其等同物。

技术分类

06120116381018