自主世界模型中的动态细化标记的制作方法

文档序号:26007917发布日期:2021-07-23 21:27阅读:94来源:国知局
自主世界模型中的动态细化标记的制作方法

本公开主要涉及与在自主设备的世界模型中动态细化标记有关的方法、系统和装置。所公开的技术可被应用于例如工业自动化系统和采用自主设备的其它操作环境。



背景技术:

自主系统是一种工业系统,它拥有足够的知识,只需相当高级的指令就能完成任务。例如,一个移动机器人可为一个自主设备,它可在工厂里自动搜索一台机器,然后通过打开机器、取出零件和放回零件来照料这台机器。如果机器人只被编程有打开目标机器以及如何拾取和放置零件的基本知识,而没有为执行任务而进行的未改变的移动对移动操作序列的专门编程,则该设备将是自主的。

在系统没有被明确编程或训练的情况下,自主系统执行自主动作以智能地行动。对于此类系统,自主系统在其中起作用的复杂而稳健的世界模型可能至关重要。尽管有些系统将世界模型隐藏在诸如神经网络的随机和统计数据结构中,但其它系统则利用了人类程序员的知识,这些程序员开发了复杂的模型来表示系统周围的环境。

世界模型的结构将必然含有表示自主设备与之交互的物理实体的对象。同样,世界模型可含有语义信息,该语义信息提供系统知道如何与特定对象交互的知识。出于本公开的目的,将假定这种信息用于“标记”世界模型中的物理对象的表示。与对象相关联的知识信息的集合在本文中被称为“标记”。在实际系统中,此类数据可分布得更广,也可由算法表达式组装而成。一般而言,可假定标记携带用于理解对象的数据。

另外,可假设标记具有与特定对象或通用类对象的关联,从通用类对象类可得出与特定对象的关联。

自主系统对每个对象的理解高度依赖于世界模型中该对象的知识。然而,与对象相关联的数据通常是动态的,并且在自主系统遇到环境中的对象时可能是不完整或不正确的。因此,设计自主系统及其世界模型的一个主要问题是确保与对象相关联的数据保持完整、正确和最新。而且,数据可能仅在达到标准时变得相关,诸如当设备进入与标记对象交互的范围时。在这种情况下,可根据需要检索数据,以便利用更详细的知识继续操作。

将自动化系统编程为具有自主行为并不常见。传统的自动化程序是由人类开发人员手工编码的,以对其输入值做出非常具体的编程响应。输入与输出之间的关系通常被表示为逻辑代码,诸如使用ieee1131标准。一般而言,表示机器环境的数据结构不是以通用方式编程的;而是将数据最小化为仅覆盖算法必须计算的状态的低级布尔值和数值。

用于研究自主行为的学术系统可表现出更复杂的适应模式;然而,这些系统通常无法以易于解释的方式表示世界。运用深度学习技术和其它机器学习技术,这些技术将机器的数据和编程的行为表示为一个大的数值集合。这些值的绝大多数的特殊含义对于外部观察者是未知的,并且程序的正确性很难估计。同样,一旦网络或类似的数据结构得到训练,系统就不会在系统执行其任务时更新这些值。任何瞬态知识均必须被表示为网络内的反馈回路,并且尚不清楚此类知识在何处以及如何被编码。

一些学术系统可能使用本体数据库来编码系统应该如何解释对象和执行行为的知识。数据库是从人类知识中创建的,并且可类似于本发明中描述的具有标记方法的世界模型。机器收集新信息时,到目前为止已示出的数据库不会更新。与特定物理对象的关联是手工编码的,就像机器的整体功能和行为反应一样。目前学术界的本体系统也倾向于关注设备的功能或行为,而不是知识表示。可针对计划系统对动作进行编码,该计划系统具有用于确定在给定时刻执行动作的有效性的前置条件和后置条件。对世界状态知之甚少的知识以分布式方式被编码为布尔状态变量。积累或修改关于特定世界对象的知识不是系统的一部分。



技术实现要素:

本发明的实施例通过提供在自主设备与其操作环境交互时与动态细化世界模型有关的方法、系统和装置,解决并克服上述缺点和缺点中的一个或多个。简而言之,当从传感器或从外部知识库收集更多数据时,本文描述的技术可被用于更新可从标记获得的信息并用具体标记替换更多的通用标记。

根据一些实施例,用于在包括多个对象的操作环境中执行自主操作的系统包含服务器计算机。服务器计算机包括存储在操作环境中的对象的详细表示的非暂时性计算机可读介质。对象的每个详细表示分别包括一个或多个提供与对象有关的知识信息的标记。该自主设备包括:非暂时性计算机可读介质,其存储包括操作环境中的对象的稀疏表示的世界模型;处理器,其被配置为使用世界模型来执行需要使用至少一个对象的任务;以及网卡,其用于连接到服务器计算机。当新任务的执行需要使用操作环境中的特定对象时,自主设备更新世界模型以包含特定对象的详细表示。

根据其它实施例,用于在包括多个对象的操作环境中执行自主操作的系统包括自主设备。该自主设备包括长期和短期存储器、计算机可读介质和处理器。长期非暂时性计算机可读介质存储操作环境中的对象的详细表示。对象的每个详细表示分别包括一个或多个提供与对象有关的知识信息的标记。短期非暂时性计算机可读介质存储包括操作环境中的对象的稀疏表示的世界模型。处理器使用世界模型来执行需要使用至少一个对象的任务。当执行需要在操作环境中使用特定对象的新任务时,自主设备更新世界模型以包含特定对象的详细表示。

根据另一实施例,用于在包括多个对象的操作环境中执行自主操作的方法,包含在服务器计算机的长期存储器中存储操作环境中的对象的详细表示。对象的这种详细表示包括提供与对象有关的知识信息的一个或多个标记。另外,包括操作环境中的对象的稀疏表示的世界模型被存储在自主设备的短期存储器中。该方法还包含:自主设备接收需要在操作环境中使用特定对象的新任务,以及响应于接收到新任务而从服务器计算机检索该特定对象的详细表示。自主设备更新世界模型以包含特定对象的详细表示,并利用更新的世界模型来执行新任务。

根据下面参考附图进行的说明性实施例的详细描述,本发明的附加特征和优点将变得显而易见。

附图说明

当结合附图阅读时,从下面的详细描述中将最好地理解本发明的前述和其它方面。为了说明本发明,在附图中示出了当前优选的实施例,然而,应当理解,本发明不限于所公开的具体技术手段。附图中包含以下附图:

图1提供了移动机器人与激光切割设备交互的示例场景;

图2示出了激光切割设备的非描述形式如何通过机器人停放位置的标记来增强;

图3示出了可提供给移动机器人以补充世界模型的信息类型的示例;

图4a示出了如何使用详细的对象描述来执行自主行为的图形描述;

图4b示出了物理移动机器人的照片,其被示出执行与图4a所示相同的任务;

图5示出了根据一些实施例的用于在包括多个对象的操作环境中执行自主操作的系统的示例架构;以及

图6示出了根据一些实施例的用于在包括多个对象的操作环境中执行自主操作的系统的替代示例架构。

具体实施方式

本文描述的系统、方法和装置主要涉及自主系统的世界模型中的动态细化标记。大多数自动化系统不是自主的,那些自主的系统将使用一组固定的参数,这些参数通常从训练人工智能(ai)算法得出。利用本文描述的技术,每个自主机器均可访问动态世界模型。从人类理解的角度来看,这个世界模型是可访问的;但是世界模型也是可变的,因此与任务相关的信息是基于机器与哪些对象交互来提供的。知识并不像传统的自动化编程那样从一开始就完全分配给所有的对象。从远处看或设备不完全知道的对象可以被认为是不完整或抽象的状态。信息可根据机器在给定时间需要如何与对象交互而分阶段产生,并且当任务改变时可用不同的信息交换。这些信息可被标记到世界模型中的对象上,而不需要像数据库一样进行分发。

为了说明本文描述的用于动态细化标记的技术,图1提供了移动机器人105与激光切割设备110(或“激光切割机”)交互的示例场景。尽管在该示例中使用了移动机器人105,但是应当理解,本文描述的原理可应用于可在很少或没有用户支持的情况下执行任务的任何设备(即,任何“自主设备”)。

假设期望的任务是使移动机器人105从远处角落处的激光切割设备110获取零件。为了执行此任务,移动机器人105必须首先被赋予任务,将自身移动到激光切割设备110所在的位置,打开激光切割设备110的门,取回激光切割设备110内的零件,最后关闭激光切割设备110的门。从激光切割设备110取出零件的任务可由直接命令提供,诸如人类通过用户界面引导移动机器人105,或者经由来自另一系统的指令。例如,制造执行系统(mes)系统可请求从激光切割设备110取回零件。

在图1的示例中,移动机器人105是自主系统的一部分。如本文所用,术语“自主系统”是指一个或多个自主设备的系统。本文所描述的技术允许自主系统动态地管理和编码针对其必须与之交互的各种对象的知识。这允许自主系统根据需要去获得和丢弃关于特定对象的知识,而不是试图始终保持关于所有对象的完整知识。在图1所示的示例中,移动机器人105不能到达激光切割设备110的门,因为它位于太远的位置。在此阶段,移动机器人105不需要关于激光切割设备110的详细知识。相反,移动机器人105仅需要基本的知识,诸如其在房间中的相对位置。

图2示出了激光切割设备110的非描述形式如何能够通过机器人停放位置的标记来增强。在图2中,示出了移动机器人及其周围物体的整体地图。使用该地图,移动机器人105可导航到激光切割设备110,同时避开物体。在该示例中,激光切割设备110被表示为方形区域(图2中标记为“激光切割区域”),其相对位置相对于移动机器人(图2中标记为“移动机器人”)的位置是精确的。

移动机器人105在其本地存储器中存储有定义了操作环境中的对象的世界模型。在一些实施例中,该世界模型包括定义了空间中的三维物体的坐标值或其它信息。例如,世界模型可包含激光切割设备110的三维表示,以及图1所示的占用空间中的输送机轨道和物体。

包含在每个对象的世界模型中的详细程度可根据手头任务所需的交互程度而有所不同。因此,当移动机器人105不与特定对象交互时,该对象的形式和定义可为抽象的。例如,如图2所示,激光切割设备110的抽象性被表示为二维地图中的二维框。在一些实施例中,对象可为三维盒子,但是仍然可为相对地无形式的。当移动机器人105被分配需要使用激光切割设备110的任务时,世界模型可更新为包含激光切割设备110的详细三维表示。

根据本文所描述的本发明的各个实施例,世界模型允许系统读取和解释模型中各个对象上的标记。例如,参考图2,激光切割机的区域可具有与桌子和架子所在的占用空间物体相同的类型和描述。占用空间在图中被标记和示出,但是在机器人的世界模型中可为未标记的三维空间。激光切割机也可从未标记的三维空间开始,但是一旦系统知道它必须与激光切割机一起工作,就可能要求提供关于激光切割机的更多知识。在这种情况下,系统可在激光切割机所在的已占用空间物体上添加标记,使其成为机器人可以搜索的物体。机器人搜索带有激光切割机标记的物体,找到标记的区域,然后继续进行其活动。

在一些实施例中,世界模型用关于机器人的任务及其必须如何与操作环境中的对象交互的上下文信息来扩充。例如,在图2中,激光切割机的物体可以用标记进一步增强,该标记示出了移动机器人为了能够到达激光切割机并与其交互以执行任务而必须停放和定向自身的位置。在世界模型中,标记可与模型中的对象相关联。标记的类型可能会根据对象的特征或空间位置而有所不同。例如,激光切割设备110可用第一类型的标记(例如,“刀具对象”)来定义,而停放位置可用第二类型的标记(例如,“临时停放区域”)来定义。在一些实施例中,该系统也可记录其它对象的标记。例如,如果机器人需要从架子上拿东西,则架子的区域可能会标有标签和停放位置。每个对象均可用自己的方式标记,并且可支持许多标记和不同类型的标记。系统可基于标记属性(诸如标记类型、标记内容、附加对象、与附接对象相关联的其它标记、几何位置和其它可能的方法)搜索标记。

当移动机器人105被分配使用激光切割设备110的任务时,移动机器人105用机器人停放位置标记来更新其世界模型。然后,移动机器人105使用世界模型前往停放位置。一路上,它将变得更靠近激光切割设备110,并且将能够更详细地观察它。移动机器人105对激光切割设备110的感知能够确定正在使用哪种激光切割设备110,以及该设备的位置更精确地定位在哪里。移动机器人105可更新其世界模型,以更精确地定位激光切割机的区域。进而,这将更精确地定位停放位置标记,因为该标记与激光切割机对象相关联并且可相对于所感知的对象移动到适当的位置。

当移动机器人105接近激光切割设备110时,对移动机器人的改善的感知可与关于要提供的设备的更详细的信息相结合。激光切割机的详细信息可含有有关设备尺寸和形状、运动学、质量特性以及与如何操作设备有关的语义标记的更多详细信息。

在一些实施例中,包括关于激光切割设备110的信息的对世界模型的更新可以由诸如在线数据库的外部来源提供。例如,在一个实施例中,移动机器人105包含用于连接到覆盖操作环境的无线网络的机载网卡。可使用本领域中通常已知的任何联网技术将对世界模型的更新递送给移动机器人105。例如,在一些实施例中,使用“推送”网络架构,其中服务器使用http服务器推送机制来将任务连同对世界模型的相关更新递送给移动机器人105。在其它实施例中,可采用“拉式”网络架构,其中移动机器人105向服务器发送具体请求,并且服务器以对世界模型的更新进行回复。例如,在接收到新任务时,移动机器人105可确定其需要激光切割设备110的更新的表示。在这一点上,移动机器人105可向服务器发出对更新的世界模型的请求。在一些实施例中,可使用基于位置的系统,其中监控移动机器人105在操作环境中的位置(例如,经由相机或机载传感器),并且对世界模型的更新在需要之前立即被递送。例如,激光切割设备110的更新表示仅可在移动机器人105处于机器人停放位置时被递送给移动机器人105。作为前述基于网络的系统的替代方案,在一些实施例中,移动机器人105具有带有详细的世界模型信息的机载数据库。根据需要,移动机器人105从其自身的知识库内部获取信息。即使整个数据在本地可用,系统仍可能通常使用不太详细的信息并在需要时用更详细的信息替换。

图3示出了可提供给移动机器人以补充世界模型的信息类型的示例。该图继续以移动机器人105与激光切割设备110交互的示例为例。然而,应当理解,下面论述的一般概念可根据所使用的对象类型进行修改或扩展。如上所述,根据需要,移动机器人105用更详细的模型替换其关于激光切割机的不太详细的知识。这种替换可通过移除原始对象并对带有原始对象的定位和其它信息的新对象的副本进行参数化,并将新副本放置到模型中来实现。新的详细模型也可以被添加到模型中,作为原始对象的扩充,而不删除原始对象。图3右侧的图示出了移动机器人为了打开盖子可能需要的物理和语义知识的示例。它示出了盖子的手柄并标记了机器人运动必须遵循的抓握位置和路径。

自主设备可使用对其世界模型的更新来执行活动或以其它方式来通知行为。图3所示的示例示出了关于如何接近和打开激光切割设备的盖子的细节。其它信息可包含工件在内部的位置和抓取零件的方式。当需要标记来执行系统的当前行为时,标记可能会变为活动状态;而当行为不相关或不完整时,标记可能会变为无效状态。

图4a和图4b示出了可用于执行自主行为的详细对象描述的示例。在此示例中,移动机器人被示出为抓取激光切割机内的零件。在图4a中,示出了行为的图形描述。在图4b中,示出了执行相同任务的物理移动机器人的照片。

为系统使用一组固定的知识是本文所描述技术的最可能的替代解决方案。固定知识系统的缺点是,在不直接修改其编程的情况下,无法轻松地向自主机器提供新的动作或活动。使用本文所描述的更新的标记和对象描述方法,可基于对象数据使用新信息来更新自主设备。该系统可像其环境中事物的解释器一样工作,并且可通过提供对事物的新描述而轻松地扩展到新事物。

使用从经验中学习新活动的ai方法是本文所描述技术的另一种替代解决方案。由于操作期间可能会出现大量环境配置的复杂性,因此该技术通常不适用于工业环境。即使在学术界,学习方法通常也仅限于在设备部署到实际工作区域之前的培训阶段。从模拟或经验中学习通常很慢,并且需要数百或数千个示例来使学习算法充分概括以执行任务。

上文论述了外部知识源的使用。一些系统可能只考虑使用外部知识来源,而没有或具有非常有限的内部知识或编程。人们还可采用远程控制,其中诸如人类的用户直接控制该设备以完成其任务。在这种情况下,将记录自主设备的活动,但是可能无法管理关于设备正在操纵哪些对象的知识。

图5示出了根据一些实施例的用于在包括多个对象的操作环境中执行自主操作的系统的示例架构。图5中所示的世界模型服务器505是包括存储操作环境中存在的对象的详细表示505a的非暂时性计算机可读介质的计算机。对象的这些详细表示505a均包括提供与对象有关的知识信息的标记。在一些实施例中,存储对象的详细表示505a的计算机可读介质利用本领域通常已知的数据库系统。例如,在一些实施例中,存储在每个控制器处的数据被存储在具有表等效结构的no-sql数据库中。如本领域中所理解的,术语“no-sql”被用于定义在其设计中不相关的一类数据存储。在其它实施例中,可采用传统的sql数据库。

世界模型服务器505还包含服务器应用程序505b。服务器应用程序505b是便于与自主设备515、520通信的可执行软件应用程序。可应用各种技术将相关数据提供给自主设备515、520。例如,自主设备515可被分配需要使用特定对象的新任务(经由服务器应用程序505b或者来自在图5中未示出的另一计算机系统上执行的另一应用程序)。在一些实施例中,在接收到新任务时,自主设备515使用机载网卡515e向服务器应用程序505b发出请求,以检索特定对象的详细表示(即,与特定对象相关联的标记)。在其它实施例中,自主设备515可经由来自服务器应用程序505b的推送消息使用网卡515e接收特定对象的详细表示。例如,在一些实施例中,服务器应用程序505b可在创建任务及其对应的标记时将其推送到自主设备515。在其它实施例中,世界模型服务器505外部的应用程序向服务器应用程序505b通知计划由自主设备515执行的任务,并且服务器应用程序505b根据需要将标记推送到自主设备515。在其它实施例中,服务器应用程序505b可监控自主设备515,以确定计划执行什么任务,并且可根据需要推送标记。例如,如图5所示,自主设备515可包含任务队列515c。服务器应用程序505b可周期性地(例如,每分钟)向自主设备515发送查询消息,并且作为响应,接收任务队列515c中即将到来的任务的列表。

世界模型服务器505经由网络510连接到自主设备515、520。网络510可为本领域通常已知的任何网络或系统,包含互联网、内联网、局域网(fan)、广域网(wan)、城域网(man)、直接连接或一系列连接、蜂窝电话网络或能够促进自主设备515、520与世界模型服务器505之间的通信的任何其它网络或介质。网络510可为有线的、无线的或其组合。无线连接可使用wi-fi、wimax和蓝牙、红外、蜂窝网络、卫星或本领域通常已知的任何其它无线连接方法来实施。另外,几个网络可单独工作或彼此通信以便于网络510中的通信。

每个自主设备515、520包含非暂时性计算机可读介质,在图5中称为本地存储器515a、520a。每个相应的本地存储器515a、520a存储包括(至少初始地)操作环境中的对象的稀疏表示的世界模型。如本文中所用,术语“稀疏”是指对象的表示,其包含比世界模型服务器505可用的对象的详细表示505a更少(并且经常少得多)的信息。例如,对象的稀疏表示可包含物体的二维表示而没有任何标记或使用仅提供有限信息(例如位置)的通用标记。

在该示例中,每个自主设备515、520还包含任务队列515c、520c。任务执行应用程序515f、520f在操作期间从任务队列515c、520c移除并执行任务。每个自主设备515、520包含一个或多个处理器515d、520d,用于使用世界模型515b、520b来执行它们各自的任务。最后,如上所述,每个自主设备515、520具有网卡515e、520e,其便于经由网络510与世界模型服务器505以及可能的其它计算系统通信。每个网卡515e、520e的类型和功能可根据网络510支持的协议而变化;然而,一般而言,可使用本领域中已知的任何类型的网卡。在一些实施例中,作为将网卡515e、520e置于自主设备515、520中的替代方案,当自主设备515、520处于坞站(图5中未示出)时,执行联网。也就是说,坞站将被用于从世界模型服务器505接收数据,并且将该数据加载到自主设备515、520的本地存储器515a、520a中。

图6示出了根据一些实施例的用于在包括多个对象的操作环境中执行自主操作的系统的替代示例架构。如在图5所示的示例中,该系统包含具有短期存储器615a(即本地存储器)的自主设备615,该短期存储器保持世界模型615b、任务队列615c和任务执行应用程序615f。一个或多个处理器615d使用世界模型615b执行任务队列615c中的任务。与图5所示的系统相比,对象615g的详细表示被存储在自主设备615中的长期存储器615e(例如,数据库)中。当执行需要在操作环境中使用特定对象的新任务时,自主设备615更新世界模型615b以包含特定对象的详细表示。也就是说,任务执行应用程序615f(或在自主设备615上执行的另一个应用程序)从长期存储器615e中检索特定对象的详细表示并相应地更新世界模型615b。

本公开的实施例可用硬件和软件的任何组合来实施。另外,本公开的实施例可被包含在具有例如计算机可读的非暂时性介质的制品(例如,一个或多个计算机程序产品)中。该介质中实施了例如用于提供和促进本公开的实施例的机制的计算机可读程序代码。制品可作为计算机系统的一部分包含在内,也可单独出售。

尽管本文已公开了各个方面和实施例,但是其它方面和实施例对于本领域技术人员将是显而易见的。本文所公开的各个方面和实施例是出于说明的目的,而不是旨在进行限制,真实的范围和精神由所附权利要求书指示。

除非另有说明,否则从以下论述中显而易见,应当理解,诸如“应用”、“生成”、“识别”、“确定”、“处理”、“计算”、“选择”或类似术语可指计算机系统或类似的电子计算设备的动作和过程,该计算机系统或类似的电子计算设备将计算机系统的寄存器和存储器中表示为物理(例如电子)量的数据操纵和转换成类似地表示为计算机系统存储器或寄存器或其它这种信息存储、传输或显示设备中的物理量的其它数据。本文描述的方法的实施例可使用计算机软件来实施。如果用符合公认标准的编程语言编写,则可编译为实施这些方法而设计的指令序列,以便在各种硬件平台上执行,并与各种操作系统接口。另外,本发明的实施例没有参考任何特定的编程语言来描述。应当理解,可使用各种编程语言来实施本发明的实施例。

如本文中所使用,可执行应用程序包括代码或机器可读指令,用于调节处理器以实施预定功能,诸如响应于用户命令或输入的操作系统、上下文数据获取系统或其它信息处理系统的功能。可执行过程是用于执行一个或多个特定过程的一段代码或机器可读指令、子程序或其它不同的代码段或可执行应用程序的一部分。这些过程可包含接收输入数据和/或参数,对接收的输入数据执行操作和/或响应于接收的输入参数执行功能,以及提供结果输出数据和/或参数。

本文的功能和处理步骤可响应于用户命令而自动地或全部地或部分地执行。自动执行的活动(包含步骤)是响应于一个或多个可执行指令或设备操作而执行的,而无需用户直接启动该活动。

附图的系统和过程不是唯一性的。可根据本发明的原理得出其它系统、过程和菜单以实现相同的目的。尽管已参考特定实施例描述了本发明,但是应当理解,本文示出和描述的实施例和变型仅用于说明目的。在不脱离本发明的范围的情况下,本领域技术人员可对当前设计实施修改。如本文所描述,各种系统、子系统、代理、管理器和过程可使用硬件组件、软件组件和/或其组合来实现。此处的任何权利要求要素均不应根据35u.s.c.112(f)的规定进行解释,要素使用短语“用于……的装置”明确地叙述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1