CN112771540A - 用于装置控制的任务嵌入 - Google Patents

用于装置控制的任务嵌入 Download PDF

Info

Publication number
CN112771540A
CN112771540A CN201980061818.5A CN201980061818A CN112771540A CN 112771540 A CN112771540 A CN 112771540A CN 201980061818 A CN201980061818 A CN 201980061818A CN 112771540 A CN112771540 A CN 112771540A
Authority
CN
China
Prior art keywords
task
network
embedding
training
robotic device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980061818.5A
Other languages
English (en)
Inventor
斯特凡·劳埃德·詹姆斯
迈克尔·布勒施
安德鲁·戴维森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imperial Institute Of Technology Innovation Co ltd
Imperial College of Science Technology and Medicine
Imperial College of Science and Medicine
Original Assignee
Imperial Institute Of Technology Innovation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imperial Institute Of Technology Innovation Co ltd filed Critical Imperial Institute Of Technology Innovation Co ltd
Publication of CN112771540A publication Critical patent/CN112771540A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39376Hierarchical, learning, recognition and skill level and adaptation servo level

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Fuzzy Systems (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Manipulator (AREA)

Abstract

一种用于机器人装置的控制系统,其包括任务嵌入网络,所述任务嵌入网络用于接收任务的一个或多个演示并生成任务嵌入。所述任务嵌入包括所述任务的表示,并且每个演示包括对执行所述任务的一个或多个观察结果。所述控制系统包括控制网络,所述控制网络用于从所述任务嵌入网络接收所述任务嵌入,并且应用策略以将对所述机器人装置的多个连续观察结果映射到用于所述机器人装置的相应控制指令。由所述控制网络应用的所述策略是使用来自所述任务嵌入网络的所述任务嵌入跨对所述机器人装置的所述多个连续观察结果调整的。

Description

用于装置控制的任务嵌入
技术领域
本发明涉及使用任务的表示来控制诸如机器人装置的装置,在本文中称为任务嵌入。在某些实施方案中,本发明涉及以使得任务能够由装置执行的方式来处理对任务的演示的至少一个观察结果。本发明与模仿学习和少样本学习领域具有特定但非排他性相关性。
背景技术
人类和动物能够从很少的示例中快速学习新信息,并且明显地提高他们终身“学会学习”的能力。具有类似能力的赋能设备(诸如机器人)将允许高效地获取各种各样的技能,并且允许现有知识适应新的环境和任务。
尝试模拟人类和动物的学习能力的两个领域是模仿学习和元学习。模仿学习旨在通过观察演示者来学习任务。元学习旨在教导机器学会学习。图像识别中的许多单样本和少样本学习方法是元学习的形式,其中期望从少量示例中学习(例如在测试时)。在这些情况下,对系统学习新任务的能力进行测试,而不是对单个任务进行训练并对所述任务的未见的示例进行测试的惯常方法。元学习的常见形式包括递归、度量学习、学习优化器以及模型无关元学习(MAML)。另一种方法是逆向强化学习,其中代理尝试估计描述给定演示的回报函数。
模仿学习中的常见问题是训练此类系统所需的大量数据。少样本学习在实践中难以实现。通常存在一个问题,即任务是独立地学习的,其中学习一个任务并不能加速对另一任务的学习。
机器人技术的新兴趋势是以端对端方式直接从原始传感器数据学习控制。此类方法有潜力具有足够的通用性来学习各种各样的任务,并且已经证明它们能够执行机器人技术中较旧的方法难以实现的任务,诸如视觉与控制之间的协调,或者动态环境任务的协调。然而,这些解决方案通常从头开始学习其技能,并且需要大量训练数据。鉴于此,期望开发提高数据效率的方法。
C.Finn、T.Yu、T.Zhang、P.Abbeel和S.Levine在2017年机器人学习大会上发表的论文“One-shot visual imitation learning via meta-learning”中提出了一种元模仿学习方法,所述方法使得机器人能够学会学习,从而使得机器人能够从单个视觉演示端对端地学习新任务。重新使用来自多个其他任务的演示数据来实现对新任务的高效学习。训练将观察结果映射到预测动作的策略。提出模型无关元学习(MAML)的扩展,以提供模仿学习。在这种情况下,在元训练期间,将演示对用作训练-验证对。在元测试时间,提供对新任务的一个演示,并且更新模型以获取用于新任务的策略。然后,策略使得能够基于对新任务的观察结果来预测输出。策略的参数是神经网络体系结构的参数。神经网络体系结构将RGB图像映射到图像特征中。这些图像特征在映射到机器人动作之前与机器人配置矢量和偏差参数连接(concatenate)起来。
模型无关元学习虽然向前迈出了有益的一步,但在机器人系统方面仍存在多种局限性。例如,一旦培训了策略,除非在测试时再次给出示例,否则它无法完成训练过程中见到的任何任务。同样,一旦学习了特定任务,方法就可失去其元学习的能力,并且无法摆脱仅可用于所述一个任务的一组权重。解决此问题的一种方式是复制每项任务所需的权重,但这会引起可缩放性问题。
鉴于现有技术,期望存在教导机器人装置学习新任务的高效方式。
发明内容
根据本发明的第一方面,提供了一种用于机器人装置的控制系统,其包括:任务嵌入网络,所述任务嵌入网络用于接收任务的一个或多个演示并且生成任务嵌入,所述任务嵌入包括所述任务的表示,每个演示包括对执行所述任务的一个或多个观察结果;以及控制网络,所述控制网络用于从所述任务嵌入网络接收所述任务嵌入,并且应用策略以将对所述机器人装置的多个连续观察结果映射到用于所述机器人装置的相应控制指令,其中由所述控制网络应用的策略是使用来自所述任务嵌入网络的所述任务嵌入跨所述机器人装置的所述多个连续观察结果调整的。
在某些示例中,所述任务嵌入网络和所述控制网络各自包括通过基于训练集的联合训练产生的相应参数,所述训练集包括至少一个环境中的至少一个训练任务的训练样本,每个训练样本包括给定环境中的给定训练任务的一个或多个观察结果以及由所述机器人装置在所述给定环境中执行的对应动作。
在某些示例中,所述任务嵌入网络和所述控制网络中的至少一者是基于包括至少一个训练任务的训练样本的训练集训练的;所述至少一个训练任务包括第一任务;并且由所述任务嵌入网络接收的所述任务是不同于所述第一任务的第二任务,使得所述控制网络被配置来应用所述策略以将对所述机器人装置的所述多个连续观察结果映射到让所述机器人装置执行所述第二任务的所述相应控制指令。
在某些示例中,所述任务的所述一个或多个演示包括第一环境中对执行所述任务的一个或多个观察结果,所述控制指令包括让所述机器人装置在第二环境中执行所述任务的控制指令,所述第一环境和所述第二环境具有至少不同配置,并且对所述机器人装置的所述多个连续观察结果包括所述第二环境中对所述机器人装置的观察结果。
在某些示例中,对执行所述任务的所述一个或多个观察结果包括表示执行所述任务的所述机器人装置的至少一个图像的图像数据,并且其中所述控制指令包括用于所述机器人装置的一个或多个马达的马达控制指令。
在某些示例中,所述任务嵌入网络和所述控制网络各自包括通过基于训练集的联合训练产生的相应参数,所述训练集包括至少一个模拟环境中的至少一个训练任务的训练样本,每个训练样本包括对给定模拟环境中的给定训练任务的一个或多个观察结果以及由所述机器人装置的模拟物在所述给定模拟环境中执行的对应动作。
所述第一方面的控制系统可配置如下所述的本发明第二方面的任何特征。
根据本发明的第二方面,提供一种控制机器人装置的方法,所述方法包括:接收对在第一上下文中执行任务的至少一个观察结果;基于所述至少一个观察结果来生成任务嵌入;以及针对将由所述机器人装置在第二上下文中执行的连续动作:在给定动作之前的时间接收所述上下文中与所述机器人装置相关联的感测数据;将所述任务嵌入和所述感测数据映射到让所述机器人装置进行所述给定动作的控制指令;以及使用所述控制指令来指示所述机器人装置执行所述给定动作。
在某些示例中,对任务的所述至少一个观察结果包括至少两个时间步长的图像数据,所述至少两个时间步长覆盖在第一上下文中执行任务的时间段,所述图像数据表示示出在所述第一上下文中执行所述任务的所述机器人装置的至少一个图像。
在某些示例中,与所述机器人装置相关联的所述感测数据包括表示示出在所述第二上下文中执行所述任务的所述机器人装置的至少一个图像的图像数据和所述机器人装置的状态数据中的至少一者,并且其中所述控制指令包括让所述机器人装置的一个或多个致动器实现所述机器人装置在所述第二上下文中的移动的指令。
在某些示例中,所述方法包括在接收所述至少一个观察结果之前:加载相应参数以配置任务嵌入网络和控制网络,所述任务嵌入网络用于生成所述任务嵌入,并且所述控制网络用于将所述任务嵌入和所述感测数据映射到用于所述机器人装置的所述控制指令,所述参数通过所述任务嵌入网络和所述控制网络基于训练数据的联合训练产生,所述训练数据包括多个训练任务的训练样本,所述训练样本包括对执行所述多个训练任务的一个或多个观察结果以及采取以执行所述训练任务的对应动作。
在某些示例中,所述方法包括:在接收所述至少一个观察结果之前,联合地训练任务嵌入网络来执行所述任务嵌入并训练控制网络来应用策略以执行从所述任务嵌入和所述感测数据到用于所述机器人装置的所述控制指令的映射。在这些示例中,联合地训练所述任务嵌入网络和所述控制网络可包括:针对训练迭代:从一组训练数据采样一组训练任务;针对所述一组训练任务中的每个给定任务:确定用于所述给定任务的支持集,所述支持集包括对所述机器人装置执行所述任务的第一组观察结果;确定用于所述给定任务的查询集,所述查询集包括对所述机器人装置执行所述任务的第二组观察结果,所述第一组观察结果和所述第二组观察结果不相交;使用所述任务嵌入网络来计算用于所述支持集的任务嵌入和用于所述查询集的任务嵌入;初始化所述任务嵌入网络和所述控制网络的损失函数;并且针对所述一组训练任务中的每个给定任务:计算用于所述任务嵌入网络的损失函数项,所述损失函数项包括铰链损失函数,所述铰链损失函数将以下两者进行比较:用于所述给定任务的所述查询集的任务嵌入与用于所述给定任务的所述支持集的任务嵌入之间的第一相似度度量,与用于所述给定任务的所述查询集的所述任务嵌入与来自用于不是所述给定任务的任务的支持集的一组任务嵌入的任务嵌入之间的第二相似度度量。可重复所述训练迭代以优化所述损失函数,从而确定用于所述任务嵌入网络和所述控制网络的参数值。联合地训练所述任务嵌入网络和所述控制网络可包括:针对训练迭代:针对所述一组训练任务中的每个给定任务:计算用于所述控制网络的至少一个损失函数项,所述至少一个损失函数项包括使用控制网络的预测控制指令与采取以执行所述给定任务的动作的控制指令的比较。用于所述控制网络的所述至少一个损失函数项可包括用于给定任务的支持集的策略损失项和用于给定任务的查询集的策略损失项。在这些示例中,所述任务嵌入可提供所述任务的表示。具有共享特性集的两个任务的任务嵌入在嵌入空间中可比具有不同特征集的两个任务的任务嵌入更靠近。在这些示例中,用于所述任务嵌入网络和所述控制网络的所述参数集可使用模拟机器人装置在模拟环境中学习。
根据本发明的第三方面,提供一种包括计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令在由处理器执行时致使计算装置:获得用于包括至少任务嵌入网络的控制系统的训练数据,所述任务嵌入网络被配置来将输入数据映射到任务嵌入,所述训练数据包括用于由可控装置在一个或多个上下文中执行的一个或多个任务的观察结果-动作数据对;针对所述训练数据内表示的一组训练任务中的每一个生成支持集和查询集,这包括针对所述一组训练任务中的给定任务:将所述任务嵌入网络应用于给定任务的第一组观察结果-行动对以生成支持集任务嵌入,并且将所述任务嵌入网络应用于所述给定任务的第二组观察结果-动作对,以生成查询集任务嵌入,所述第一组观察结果-动作对和所述第二组观察结果-动作对不相交;并且优化所述控制系统的损失函数,以确定所述控制系统的可训练参数的值,所述控制系统的损失函数是所述任务嵌入网络的损失函数的函数,所述任务嵌入网络的所述损失函数是基于所述支持集与所述查询集的相似度度量的比较的,其中给定任务的查询集任务嵌入与所述给定任务的支持集任务嵌入之间的相似度度量是与所述给定任务的所述查询集任务嵌入与不是所述给定任务的任务的支持集任务嵌入之间的相似度度量进行比较。
在某些示例中,所述控制系统包括控制网络,所述控制网络用于应用策略以将所述输入数据和来自所述任务嵌入网络的所述任务嵌入映射到用于所述可控装置的动作数据;所述控制系统的所述损失函数是所述控制网络的损失函数的函数;并且所述控制网络针对给定任务的损失函数包括所述支持集的策略损失和所述查询集的策略损失。
在某些示例中,所述观察结果-动作数据对中的每一对内的观察数据分别包括表示在与所述观察结果-动作数据对相关联的动作之前捕获的以所述可控装置为特征的至少一个图像的图像数据,所述观察数据是在任务的执行期间捕获的。
在某些示例中,所述任务嵌入网络的损失函数包括铰链损失函数,并且所述相似度度量包括点积相似度。
在某些示例中,所述指令在由处理器执行时致使计算装置:接收观察数据,所述观察数据示出机器人装置在第一上下文中执行任务;将所述控制系统的所述任务嵌入网络在训练之后应用于所述观察数据以生成任务嵌入;并且将所述第二上下文中的所述机器人装置的所述任务嵌入和感测数据迭代地映射到所述机器人装置的控制动作序列,其中在所述第二上下文中执行控制动作之后,更新并重新映射所述感测数据。
所述非暂时性计算机可读存储介质可包括计算机可执行指令,所述计算机可执行指令在由处理器执行时致使所述计算装置执行本文所述的任何方法。
根据本发明的第四方面,提供一种用于机器人装置的控制网络,其中所述控制网络被配置来:接收任务嵌入,所述任务嵌入包括从任务的一个或多个演示生成的所述任务的表示;并且应用策略以将对所述机器人装置的多个连续观察结果映射到用于所述机器人装置的相应控制指令,其中由所述控制网络应用的所述策略是使用所述任务嵌入跨所述机器人装置的所述多个连续观察结果调整的。
在某些示例中,所述控制指令包括马达控制指令,并且所述控制网络被配置来使用所述马达控制指令来控制所述机器人装置的一个或多个马达。
另外的特征和优点将从下面仅举例来说给出的、参考附图进行的描述中变得显而易见。
附图说明
图1是示出根据示例的用于机器人装置的控制系统的示意图;
图2是示出根据示例的机器人装置的示意图;
图3A、图3B、图3C和图3D是示出可在示例中观察和/或执行的不同类型的任务的示意图;
图4是示出根据示例的控制系统的训练的示意图;
图5A是示出根据示例的任务嵌入的生成的示意图;
图5B是示出使用在图5A的示例中生成的任务嵌入来控制机器人装置的示意图;
图6是示出根据示例的任务嵌入网络的操作的示意图;
图7是示出根据示例的用于控制机器人装置的方法的流程图;
图8是示出根据示例的用于训练控制系统的方法的流程图;并且
图9是示出根据示例的包含计算机程序指令的非暂时性计算机可读介质的示意图。
具体实施方式
本文描述的某些示例提供并入对将执行的任务的嵌入(在本文中称为“任务嵌入”)的控制系统,以及生成装置控制指令的控制系统。这些示例性嵌入任务(其中在视觉和/或控制方面类似的任务)在嵌入空间中靠近在一起布置,而相异的任务彼此间隔一定距离布置。所述任务嵌入空间可以是多维的(例如,具有10-128的维数)。使用任务嵌入实现少样本学习,同时可以零样本方式从新的和不熟悉的任务中推断信息,诸如新任务以前看到的任务可有多相似。
在给定一个或多个演示的情况下,本文所述的某些示例包括任务嵌入网络和控制网络,它们联合地训练以输出动作(例如,马达速度)以尝试执行未见的任务的新变型。任务嵌入网络可被配置来学习由控制网络使用的任务的紧凑表示,以及对环境(例如,真实世界或虚拟世界)的连续接收的观察结果,以便以装置控制指令的形式输出动作。这些示例避免了对可学习的任务数量的严格限制,并且在元训练期间或之后不容易忘记先前学习的任务。在某些示例中,任务嵌入网络可在测试时间从演示者接收视觉信息。这可呈机器人装置执行任务的视频帧的形式。使用视觉信息使这些示例适合于从人类演示中学习。
本文所述的某些示例提供以单样本或少样本方式学习例如对视觉引导的操纵任务的视觉运动控制的能力。与比较方法相比,某些示例实现更高的成功率。
某些示例进一步实现模拟数据点与真实世界数据点的混合,例如,以便当在真实世界中执行任务时能够使用模拟环境中的训练,从而为大规模一般化提供途径。这是期望的,因为可能难以从真实世界观察结果获得端到端系统中所需的大量训练示例。尽管被训练来在模拟环境中进行元学习,但本文所述的某些示例仍使得机器人能够从真实世界中的单个演示学习新任务。
本文所述的某些示例在学习运动控制的背景下提供行为克隆。行为克隆可看作是模仿学习形式,其中代理以监督学习方式学习从观察结果到给定演示的动作的映射。在某些情况下,马达控制指令可基于学习到的嵌入或度量空间,直接从像素中学习。
图1示意性地示出根据示例的用于机器人装置的控制系统110的示例100。图1的控制系统110包括任务嵌入网络120和控制网络130。任务嵌入网络120接收任务的演示140。任务的演示140可包括对执行任务的一个或多个观察结果。在图1的示例中,接收到单个演示140。然而,在可能以其他方式类似于图1的其他示例中,可由任务嵌入网络120接收任务的多个演示。任务是例如将执行的行为或工作。例如,当已实现特定目的或目标时,任务可视为成功地完成。因此,可将任务定义为将执行以实现预定目的或目标的一组动作。例如,任务可包括以特定方式操纵环境中的可用对象,诸如将对象X放置在容器Y中或将对象X移动到位置Y。在机器人装置的上下文中,所述一组动作可包括执行任务的一组移动和/或致动器激活。任务嵌入网络120被配置来基于一个或多个演示140来生成包括任务的表示的任务嵌入150。
图1的控制网络130从任务嵌入网络120接收任务嵌入150。但在其他示例中,与图1的控制网络130类似或以其他方式相同的控制网络可替代地例如通过合适的网络从与任务嵌入网络120不同的部件(诸如从存储装置或从其他电子装置,诸如计算机装置或服务器装置)接收任务嵌入150。
图1的控制网络130还接收机器人装置的多个连续观察结果160,并且应用策略以将机器人装置的多个连续观察结果160映射到用于机器人装置的相应控制指令170。由控制网络130应用的策略是使用来自任务嵌入网络120的任务嵌入150跨多个连续观察结果160调整的。然后,由控制网络130生成的控制指令170可用于控制机器人装置执行任务。在这种情况下,调整可包括将策略应用为将任务嵌入150和多个连续观察结果160中的每个连续观察结果作为输入的功能,其中对于给定观察结果,输出可随着不同的任务嵌入而不同。参考图4、图5a和图5b,提供可用作图的控制网络130的示例性控制网络的进一步描述。
图2示意性地示出机器人装置210的示例200。机器人装置是例如能够受控以执行一系列动作的机器。机器人装置可能够基于控制指令自主地行动,以执行特定的一组移动或操纵。机器人装置(有时称为机器人)可采取各种不同的形式。例如,机器人可取决于机器人意图执行的任务而生产为具有不同形状或结构。
在图2的示例中,机器人装置210静态地安装在三维(3D)空间内。在这种情况下,机器人装置210的基座230附连到表面220。然而,机器人装置200的一部分(在这种情况下,机器人装置200的臂)能够在3D空间内移动并且与空间内的对象进行交互。基座230可允许或可不允许机器人装置210在表面220的顶部上旋转。机器人装置200的臂包括通过四个关节232、234、236、238以端对端方式连接的五个元件231、233、235、237、240。关节232、234、236、238可允许臂的元件231、233、235、237、240的旋转移动、平移移动、旋转移动和平移移动两者或其他类型的移动。在此示例中,机械臂的距基座230最远的元件240是可称为端部执行器的机械手。机械手240可用于执行各种不同的任务,诸如抓握、提升或移动对象等。机器人装置的端部执行器的类型可取决于机器人装置预期执行的任务,因此在其他示例中可与机械手不同。例如,端部执行器可以是意图执行清洁任务的机器人装置的真空喷嘴或表面擦拭端部执行器。
图2所示的示例性3D空间包括由表面220支撑的第一对象222和第二对象224。这里,“对象”可是指具有例如机器人装置可与之交互的物质存在的任何可见事物或实体。“对象”可对应于人类可标记的物质的集合。这里的对象被广泛地考虑,并且除许多其他项之外包括实体,诸如墙壁、门、地板和人以及家具、其他装置以及家庭、办公室和/或外部空间中的常规对象。尽管图2中的3D空间被示出为具有表面220,但并非在所有实现方式中都如此。例如,环境可以是空中或地球外空间内。
应了解,图2的机器人装置210仅是示例,并且可设想其他示例。例如,机器人装置可未固定就位。这样的机器人装置本身可以是可移动的。为了实现机器人装置的移动,这样的装置可包括致动器,以使得机器人装置能够导航三维(3D)空间。这些致动器可包括轮、挖掘机构、转子等。例如,机器人装置可以是或包括自主空中和/或地面移动装置。在其他情况下,机器人装置的与基座不同的部分可相对于表面或其他对象固定,和/或机器人装置的结构或布置可与图2所示的不同。
图3A、图3B、图3C和图3D是示出在示例中可观察和/或执行的不同类型的任务的示意图。
图3A和图3B各自提供触及任务的示例。图3A和图3B的触及任务涉及机器人装置310触及第三对象326。此示例中的机器人装置310是类似于图2的机器人装置210的机器人臂。然而,图3A和3B的机器人装置310包括基座312、通过关节316连接的两个元件314、318以及机械手320,因此包括比图2的机器人装置210少的部件。注意,为清楚起见,在图3B中省略了机器人装置310的部件的标记。
在此示例中,第三对象326是特定颜色的对象(在图3A和3B中通过第三对象326内的对角线图案示意性地示出)。第三对象326由表面300支撑,机器人装置310的基座312附连到所述表面300。在图3A和图3B中,第一对象322和第二对象324也位于表面300上。图3B另外在表面300上包括第四对象328。第一对象322、第二对象324和第四对象328具有与第三对象326不同的颜色。这在图3A和图3B中由第一对象322内的虚线图案、第二对象324内的水平线图案和第四对象328内不存在图案指示。
因此,在此示例中,可认为任务对应于触及特定颜色的对象(在这种情况下,第三对象326)。在这种情况下,触及任务是在存在其他颜色的对象(图3A中的第一对象322和第二对象324,以及第一322、第二对象324和第四对象328)的情况下执行的,这些对象可被视为障碍物,因为它们可能分散机器人装置310触及正确对象的注意力。
第一对象322、第二对象324和第三对象326的布置在图3A和图3B中是不同的,并且图3B还包括第四对象328。然而,图3A和图3B中的每一个示出机器人装置310朝向第三物体326而不是任何其他对象触及。因此,尽管布置不同,但可认为图3A和图3B中的每一个对应于相同任务的相应观察结果。例如,由于这些示例中的每个示例中各种对象的位置不同,因此可认为图3A和3B对应于不同上下文或不同环境中对同一任务的观察结果。
例如,任务的演示包括一个或多个观察结果,诸如图3A和图3B中所示的观察结果。例如,观察结果对应于捕获任务的执行的记录或其他数据。在某些情况下,观察结果可包括来自位于执行任务的实体的环境中的捕获装置的图像(例如,视频帧)。然而,在一些情况下,观察结果可以是模拟任务的虚拟观察结果,所述虚拟观察结果仍然可捕获任务的模拟执行。虚拟观察结果可包括从预定义相机姿势或配置捕获的模拟3D环境的渲染图像。虚拟观察结果还可包括或替代地包括用于一个或多个元件和关节或模拟机器人装置的位置和/或取向数据。在演示中,任务可由任何合适的实体(诸如人类或其他动物)或由无生命或人造对象或装置(诸如机器人装置(例如,图3A和图3B的机器人装置310))或由任何此类实体的模拟物来执行。演示任务的实体可与将执行任务的实体不同。通常,观察结果包括执行任务的实体的观察结果。例如,在图3A和图3B中,观察结果(在此示例中为图像)包括机器人装置310。观察结果通常还包括与任务执行中所涉及的其他实体或对象(诸如将作为任务一部分进行操纵的对象)相关的数据。例如,在图3A和图3B中,观察结果包括第三对象326,所述第三对象326是为了执行任务而将触及的对象。观察结果还可包括表示其他实体或对象的数据,所述其他实体或对象本身不形成任务的一部分但却在执行任务的演示时可能存在。此类对象可包括在演示任务的环境的背景中的对象,这些对象在任务执行期间不会被操纵。例如,图3A和图3B的观察结果各自包括表面300和其他对象(图3A中的第一对象322和第二对象324以及图3B中的第一对象322、第二对象324和第四对象328)。
观察结果可呈与任务嵌入网络120兼容的任何合适的格式,使得任务嵌入网络120可基于观察结果来生成表示任务的任务嵌入。例如,任务的观察结果可包括表示执行任务的实体的至少一个图像的图像数据。至少一个图像可以是实体的二维图像,其可呈任何合适的格式。例如,图像数据可包括图像的每个像素的强度值,所述强度值可以例如每个色带或颜色通道0至255的灰度级或亮度级来存储(用于8位数据)。当图像是彩色图像时,可针对每个彩色通道单独存储强度或亮度的像素值或者每个像素。如果像素由例如诸如RGB(红色、绿色、蓝色)的三原色或YUV颜色空间(其中Y表示颜色的亮度,U表示颜色的蓝色分量与亮度之间的差异)表示,并且V表示颜色的红色分量与亮度之间的差),则每个像素的视觉外观可由三个强度值表示,每个原色一个强度值。在此类情况下,图像数据可包括一系列图像,所述图像各自在任务执行期间(或者在任务执行之前或之后不久)在不同相应时间捕获实体。例如,图像数据可包括表示在实体开始执行任务之前实体的第一图像的数据。在此类情况下,图像数据还可包括表示在执行任务之后实体的第二图像的数据。通过比较两个图像,可确定实体所演示的任务。在其他情况下,图像数据可包括任务结果的图像。例如,参考图3A和图3B,观察结果可呈图3A和图3B中列出的场景的图像的形式。图3A和图3B示出机器人装置310在执行任务期间的位置,其中机器人装置310朝向第三对象326触及。
在其他示例中,图像数据可从视频数据导出。可认为视频数据包括随时间变化的图像数据。在此类情况下,图像数据可包括视频的多个帧。每个帧可与其内捕获3D空间的图像的时间段中的特定时间t有关。帧通常由所测量数据的2D表示组成。例如,帧可包括在时间t处记录的像素值的2D数组或矩阵,并且因此可等同于在时间t处记录的静止图像。
在另外的示例中,图像数据除了光度数据之外还可包括深度数据,所述深度数据例如表示颜色或强度值。深度数据可包括与用于获得深度数据的捕获装置的距离的指示,例如,每个像素或图像元素值可表示3D空间的一部分与捕获装置的距离。图3C和图3D示出机器人装置360的图像350和355。这些图像可包括视频数据的帧。在一种情况下,机器人装置360可包括图2中所示的机器人装置210。在另一种情况下,机器人装置360可包括例如在虚拟环境中操作的机器人装置210的模拟版本。在后一种情况下,图像350和355可包括来自虚拟环境的渲染图像。图3C的图像350示出机器人装置360与两个容器362和364共处一处的环境或上下文。图像350示出任务完成后的环境。在这种情况下的任务是将对象370放置在容器362中。图3D的图像355示出将执行任务之前的机器人装置360。在这种情况下,图像355示出具有两个不同形状的容器366和368以及不同形状的对象372的环境或上下文。在某些配置中,可拍摄图像355以示出与图像350不同的任务(例如,因为对象372与对象370不同)。也可称图像350和355的环境是不同的。在其他配置中,可称图像350和355在两个不同的环境或上下文中显示共同任务(例如,将对象放置在容器中)。为特定实现方式选择的配置影响数据在训练、演示和测试时间期间如何安排。
图4是示出控制系统410的训练的示例400的示意图。图4的控制系统410类似于图1的控制系统110。图4的与图1的对应元件类似的元件用相同附图标号加300来标记;应采用对应描述。
图4示出其中在包括至少一个环境中的至少一个训练任务的训练样本的训练集441上联合地训练任务嵌入网络420和控制网络430的示例。在图4中,训练集441包括N个训练任务(Φ1...ΦN)-每个任务在图4中被示出为442。联合地训练任务嵌入网络420和控制网络430允许获得对控制网络430更有意义的任务嵌入,这继而可改进控制网络430输出控制指令以控制机器人装置成功地执行给定任务的能力。
在图4中,对于N个训练任务,存在多个训练样本。对于每个训练任务Φ,可存在不同数量的训练样本s。在图4中,第一任务Φ1具有K1个训练样本,第二任务Φ2具有K2个训练样本,并且第N训练任务ΦN包括一系列KN个样品(s1...sKN)。每个训练样本sx可视为轨迹,其表示在执行任务期间从t=1至t=Tx的一系列时间步长上的一系列观察结果-动作对。因此,每个样本可以数学方式表示为:
sx={(o1,a1),...,(oTx,aTx)}
其中s表示轨迹,o表示观察结果,并且a表示动作。每个样本可具有不同数量的时间步长。训练集441可包括元组,所述元组包括表示观察结果的数据和表示对应动作的数据。在此类情况下,观察结果和动作可例如使用至少一个矢量、张量或其他多维数组来以数字方式表示。
在图4中,第一训练任务442(Φ1)与第一系列样本444相关联。第一系列样本444中的第一样本446(s1)包括观察结果-动作对,所述观察结果-动作对包括第一时间(t=1)处的观察结果448(o1)和动作452(a1)。第一样本446还包括其他时间(从t=2至t=T1)处的附另外的观察结果-动作对。观察结果可包括从图像导出的数值数据,例如如参考图3A至图3D所述。动作可包括从用于机器人装置的马达命令导出的数字数据,诸如期望的或影响的马达运动学数据。在某些情况下,观察结果可包括机器人装置状态数据,诸如在捕获机器人装置的图像时的马达角度和/或位置。机器人装置状态数据可不用于训练任务嵌入网络420,但可被包括在内以训练控制网络430。
以此方式,每个训练样本可包括给定环境中给定训练任务的一个或多个观察结果以及给定环境中由机器人装置执行的对应动作。因此,每个训练样本为控制系统410提供了响应于特定任务的给定观察结果而学习由机器人装置执行的动作的机会。这允许控制系统学习针对给定任务的策略。此策略例如取决于任务嵌入网络420获得以便提供任务特定的策略的任务嵌入。可训练控制系统410,使得针对给定任务的策略模仿或紧密匹配或符合所述任务的所谓“专家”策略。专家策略是例如理想策略,其中期望任务的观察结果(或一系列观察结果)的输入导致生成控制指令,以指示机器人装置执行期望任务。然而,由控制系统410学习的策略可在一定程度上与专家策略有所不同,因为在一些情况下,由控制系统410输出的控制指令可控制机器人装置执行与预期任务(以及一个或多个观察结果中的演示)不同的任务。然而,一般而言,控制系统410的训练意图使已学习策略与专家策略之间的差异最小化。在实践中,可将表示期望策略输出的数据作为来自训练样本的动作数据,例如,这些动作表示“专家”动作。
在训练控制系统410中使用的观察结果可类似于参考图3A和图3B所述的那些观察结果。因此,观察结果可以是在真实环境中对真实世界机器人装置执行任务的观察结果。替代地,训练样本可包括在至少一个模拟环境中的至少一个训练任务。在这种情况下,每个训练样本可包括给定模拟环境中给定训练任务的一个或多个观察结果,以及由机器人装置的模拟物在给定模拟环境中执行的对应动作。这可改进训练过程的可缩放性,因为生成模拟训练样本而不是通过手动地控制机器人装置执行给定任务来生成训练样本可能更容易或更快速。训练样本可基于在人类执行任务期间或在确定性控制下捕获的数据来生成。例如,训练样本可表示人类通过控制机器人装置来完成预定义任务的记录和/或可表示执行明确编程的任务的机器人装置的记录。然后,训练样本可包括被执行的不同任务的记录的混合。
参考图8进一步描述训练诸如图4的控制系统410的控制系统的示例。
图5A是示出任务嵌入550的生成的示例500的示意图。图5A中的任务嵌入550由包括任务嵌入网络520和控制网络530的控制系统510生成。例如,图5A的控制系统510可类似于图1的控制系统110和图4的控制系统410。然而,在其他示例中,与图5A的任务嵌入550类似的任务嵌入可由诸如任务嵌入网络520的任务嵌入网络来生成,所述任务嵌入网络形成与图5A的控制网络530不同或作为单独系统的控制系统的一部分。
任务嵌入网络520接收任务的演示540(d)作为输入。图5A中的演示540是通过使用手动控制器585控制机器人装置580执行任务来获得。手动控制器585可包括虚拟和/或增强现实控制器。然而,在其他示例中,演示可以不同方式获得。例如,演示可以是执行任务的机器人装置的模拟物的虚拟演示。在其他情况下,可使用电子控制系统(例如,使用一组预定义控制指令)而不是使用手动控制器585来控制机器人装置580执行任务。
机器人装置580对任务的执行由捕获装置590捕获,所述捕获装置590在此示例中是摄像机。摄像机在执行任务期间获得机器人装置580的一系列帧。由此,可获得任务的演示540,如参考图3A和图3B所述。在图5A的示例中,演示540包括来自机器人装置540的T个观察结果的至少第一观察结果和最后观察结果(在图中以图像{i1,iT}示出)。在某些情况下,任务的执行可在从t=1至t=T的一系列时间步长处连续地捕获,和/或静止帧可在时间t=1和t=T处捕获。在两种情况下,都可提供表示任务执行“之前”和“之后”的时间处的两个帧。在某些情况下,可提供多个观察结果,例如从t=1至t=T的所有帧。每个观察结果可对应于由捕获装置590捕获的视频的帧。然而,在其他示例中,演示540可包括机器人装置540执行任务的单个观察结果和/或除了来自捕获装置590的视频数据帧之外还包括数据(例如,包括马达和/或对象位置数据)。
演示540由任务嵌入网络520处理以生成任务嵌入550。任务嵌入网络520将演示540映射到任务的表示,如参考图6进一步所述。
在图5A中,未使用诸如控制网络530的某些部件。图5A可表示操作的“演示”阶段,其中图4表示操作的“训练”阶段,并且图5B表示操作的“测试”或“执行”阶段。由于在“演示”阶段未使用控制网络530,因此在某些情况下,此阶段可不存在控制网络530。例如,仅需要提供任务嵌入网络520和/或任务嵌入网络520可由远离控制网络530定位的计算装置来实现。例如,“演示”阶段可远离“测试”阶段进行,从而实现远程呈现形式。
图5B是示出使用图5A的示例500中生成的任务嵌入550来控制机器人装置590的示例555的示意图。在图5A和图5B的示例中,任务嵌入550从任务嵌入网络520发送到控制网络530。然而,在其他示例中,由任务嵌入网络520生成的任务嵌入550可存储在存储装置中,并且随后由控制网络530从存储装置检索,或者由控制网络530以其他方式接收。存储装置可以是控制网络530的本地存储装置或位于控制网络530外部的存储装置。
控制网络530接收一些时间步长t上机器人装置580的多个连续观察结果560(ot)。观察结果560示出在机器人装置580周围的当前环境内的机器人装置580,所述当前环境可能与任务的演示540期间机器人装置580的环境不同。图5B中的观察结果包括来自捕获装置590的图像数据it、来自机器人装置580的角度数据θt和来自机器人装置580的位置数据pt。角度数据θt例如表示机器人装置的至少一个关节的相应角度,其可以是相对于固定或共同参考平面(诸如水平面)所取的绝对角度,或机器人装置的两个邻接元件之间所取的相对角度。位置数据pt可表示机器人装置的端部执行器或其他元件的位置。位置可使用参考坐标系来测量,使得位置可使用参考坐标系内的坐标来表示。在其他示例中,位置可以是机器人装置的给定元件相对于机器人装置的不同元件的相对位置,诸如机器人装置的端部执行器相对于机器人装置的基座的位置。通过包括角度数据θt和位置数据pt,控制系统可更准确地控制机器人装置来执行观察到的任务。然而,在一些情况下,角度数据θt和/或位置数据pt可从机器人装置的观察结果省略。每个数据项可包括张量,例如,数据的向量表示。因此,由图5B中的控制网络530接收的每个观察结果560可包括图像、角度和位置数据的融合(例如,级联矢量或多维数组),或者观察结果可包括随后可由控制网络530融合的单独的图像、角度和位置数据。在其他实例中,控制网络530可从捕获装置仅接收图像数据it
控制网络530应用策略以使用任务嵌入550来映射对机器人装置590的观察结果560。与参考图4和图8解释的“训练”程序相比,这可称为“测试”程序。此过程可以用伪代码表达为:
Figure BDA0002984781240000201
其中E表示如参考图5A所述由任务嵌入网络520生成的任务嵌入550,Env表示机器人装置580周围的环境,o表示对机器人装置580的观察结果560,而π表示由控制网络530应用以将观察结果o映射到将由机器人装置580执行的动作a的策略。控制网络530所应用的策略可由神经网络(诸如卷积神经网络(CNN))来表示。例如,给定观察结果560的图像数据it可由CNN的卷积层处理以提取图像特征,所述图像特征可表示为张量,例如表示为矢量或多维数组。例如,CNN的卷积层可以输出图像特征矢量。在表示观察结果560的观察数据除了图像数据之外还包括角度数据和位置数据的情况下,角度数据和位置数据可分别是角度矢量和位置矢量的形式。在此类情况下,图像、角度和位置数据可通过将图像特征矢量、角度矢量和位置矢量进行级联来融合,以获得级联矢量。然后,级联向量可由CNN的剩余部分(诸如CNN的至少一个完全连接层)处理,以便实现策略。在观察数据缺少角度数据和/或位置数据的其他示例中,图像特征矢量本身可由CNN的剩余部分处理以实现策略。
在此类情况下,任务嵌入550可与观察结果560组合、融合或以其他方式处理,以根据策略π来生成将由机器人装置580执行的动作a。例如,呈任务嵌入矢量形式的任务嵌入550可在由控制网络530处理之前与观察结果560(其也可呈矢量形式)一起进行级联。例如,级联矢量可通过将表示任务嵌入550的任务嵌入矢量与通过使用CNN的卷积层处理图像数据而获得的图像特征矢量进行级联来生成。然后,级联矢量可由CNN的其余部分(诸如CNN的至少一个完全连接的层)处理,以生成将由机器人装置580执行的动作a。如上所述,在一些情况下,在级联矢量由CNN的其余部分处理之前,任务嵌入矢量和图像特征矢量也可与角度矢量和/或位置矢量(如果是观察结果560的一部分)进行级联,以生成级联矢量。
针对机器人装置580的一系列观察结果560,此程序可迭代地执行,以生成将由机器人装置580执行以实现任务的一系列动作。然而,针对每次迭代,尽管观察结果通常将随时间改变(例如,随着机器人装置580移动以执行任务),但将由机器人装置580执行的任务保持不变(例如,给定任务嵌入550是恒定的)。
图5B的控制网络530生成将由机器人装置580执行的动作a作为一系列控制指令。在此示例中,控制指令包括马达控制指令570(在图5B中示出为mt,以表示连续时间步长t上的一系列马达控制指令570)。马达控制指令570用于控制机器人装置580来执行马达动作序列。例如,马达控制指令570可例如通过控制机器人装置580的一个或多个马达来指示机器人装置580采用特定臂关节角度、端部执行器位置、关节速度、姿势测量、位置等。以此方式,机器人装置580可通过控制网络530控制以执行任务,而无需通过手动控制器585进行的人工输入。
在图5A和图5B的示例中,任务嵌入网络520和控制网络530中的至少一者可在包括至少一个训练任务(其包括第一任务)的训练样本的训练集上进行训练。然而,由任务嵌入网络520接收以生成任务嵌入550的任务可以是与第一任务不同的第二任务。换句话说,任务嵌入网络520可基于与测试时使用的任务不同的任务来训练。例如,第一任务可以是触及红色对象的任务,并且第二任务可以是触及蓝色对象的任务。然而,通过使用任务嵌入网络520,控制系统510可能够将第二任务适当地映射到捕获第二任务如何与第一任务不同的任务嵌入550。这进而可允许控制网络530更准确地确定执行第二任务而不是第一任务的控制指令。以此方式,控制系统510例如能够更好地学习或以其他方式适应新任务,而无需重新训练任务嵌入网络520和/或控制网络530。因此,机器人装置580可以高效方式从新任务的一个或多个演示中学习新任务。
在一些情况下,用于获得任务嵌入550的任务的演示540可包括在第一环境中对任务执行的观察结果。然而,可能期望在第二环境中执行任务,因此机器人装置580的多个观察结果560可包括第二环境中对任务执行的观察结果。第一环境和第二环境可具有彼此至少不同的配置。例如,相同的对象可存在于第一环境和第二环境中。然而,对象在第一和第二环境中的相对位置可彼此不同。然而,在其他情况下,第一环境和第二环境可对应于不同位置。例如,第一环境可以是室内环境,并且第二环境可在室外。然而,尽管第一环境与第二环境之间存在差异,但示例中的控制系统510仍能够基于第二环境中机器人装置580的观察结果560来生成控制指令,以使机器人装置580在第二环境中执行任务。例如,任务嵌入网络520允许获得例如相对于环境的变化相对不变的任务的表示。因此,即使观察到的用于执行任务的机器人装置的环境与演示任务的环境不同,由任务嵌入网络520获得的任务嵌入550的鲁棒性也改进控制网络530针对任务的给定演示准确地预测适当动作的能力。
图6是示出任务嵌入网络620的操作的示例600的示意图。任务嵌入网络620接收第一任务的样本610和第二任务的样本615。每组样本可视为用于特定任务的“支持集”。第一任务的样本610包括第一任务的四个观察结果,其中一个在图中用附图标记612标记。第二个任务的样本615包括第二任务的两个观察结果,其中一个在图中用附图标记616标记。
训练任务嵌入网络620例如涉及使用样本610、615中的每一者作为训练样本。任务嵌入网络620将样本610、615嵌入或以其他方式映射到相应任务的表示,所述表示可以是任务的紧凑表示。这样的表示可称为句子。任务的表示可以是潜在表示。潜在表示是例如基于任务观察结果的推断表示,其例如是由任务嵌入网络620推断的。任务通常可使用诸如张量或矢量的多维数字表示来以数字方式表示。任务嵌入可能比样本610、615本身更有意义,因为任务在嵌入空间中的位置可提供有关所述任务的类型的信息(例如,它是否是推送任务、提升任务等)。相反,演示的观察结果的像素值可提供关于在所述观察结果中执行的任务的类型以及与任务的不同观察结果是类似还是不同的有限信息。
图6示出样本610、615中的每一者在简化嵌入空间640中的嵌入。如可看出,第一任务的样本610在嵌入空间640中相对靠近,并且比第二任务的样本615在嵌入空间640中彼此更靠近。由嵌入网络620针对给定任务生成的嵌入可使用聚合函数来聚合,所述聚合函数可以是平均函数或均值函数。以此方式,可获得表示第一任务的第一嵌入642和表示第二任务的第二嵌入646。
随后,任务的另一样本630可使用任务嵌入网络620来处理。另一样本630可视为“查询集”。可计算损失函数以学习任务嵌入网络620的理想或最佳嵌入。如参考图8进一步所述,损失函数可以是任务嵌入损失,其涉及特定任务的示例与不同任务的示例的比较,使得任务嵌入网络620学习将不同的请求映射到嵌入空间640的不同区域。
例如,在训练期间,损失函数项可比较与另外的样本630(查询集)相对应的任务的任务嵌入654,可与第一嵌入642和第二嵌入646(例如,针对支持集中的每一个的任务嵌入)进行比较。例如,可使用具有可配置裕度的铰链损失函数。这样的损失函数可用于教导任务嵌入网络620以将第一任务的样本朝向表示第一任务的第一嵌入642映射,并且将表示第二任务的第二嵌入646远离第一任务的样本移动。
以此方式,任务嵌入网络620可用于生成任务嵌入,使得具有共享特性集的两个任务的任务嵌入在嵌入空间640中比具有不同特性集的两个任务的任务嵌入更靠近。例如,在图6中,认为相比第一样本集610另一任务630更靠近第二样本集615。这允许基于任务在嵌入空间640中的距离来标识任务之间的相似度。此外,未见的任务可被映射到嵌入空间640中的适当位置,这可表示它们与任务嵌入网络620已在其上训练的其他任务的相似度。通过以这种方式映射任务,控制网络可能够更容易地标识适当的控制指令集,以指示机器人装置执行未见的任务,而无需重新训练任务嵌入网络620或控制网络。在图6中,箭头652、654和656可表示将样本映射到嵌入空间的动作。铰链等级损失可驱动另外的样本630的点积,使得两个其他任务集之间的差(由线660表示)至少与裕度(由角度665表示)一样大。任务嵌入网络的训练可起作用以将针对给定任务的支持集的聚合任务嵌入移动成更靠近给定任务的查询集,也起作用以使针对不同任务的聚合任务嵌入(所谓的“否定句”)进一步远离给定任务的查询集移动。
图7示出根据示例的控制机器人装置的方法700。机器人装置可包括能够在相应真实或模拟环境中执行动作的任何真实或模拟装置。例如,机器人装置可包括如先前附图中的任何一个所示的机器人装置。
在框710处,接收对在第一上下文中执行任务的至少一个观察结果。如前所论述,任务可被定义为将执行以实现预定目的或目标的一组动作。术语“上下文”是指任务的环境配置。例如,第一上下文可涉及包括布置在特定空间中的一组特定对象的第一环境配置。任务的观察结果可包括跨一个或多个时间段的感测数据,在所述一个或多个时间段中执行与任务相关联的动作。例如,观察结果可包括实体执行任务的视频数据,诸如机器人或人类将环境中的特定对象放置在环境中的特定位置中。视频数据可包括覆盖执行任务的时间的至少两个帧。任务的观察结果可看作是任务的演示。感测数据可从位于正在执行任务的环境中的任何传感器中捕获。例如,除了视频数据之外,或者代替视频数据,观察结果还可包括姿势数据、位置数据、马达控制数据、来自环境内的对象的数据、触摸或接触数据、音频数据等。
在框720处,基于至少一个观察结果来生成任务嵌入。这可包括处理来自观察结果的感测数据。此处理可由经训练神经网络体系结构来执行。此体系结构可包括如前所述的任务嵌入网络。感测数据可进行处理并以数字形式供应给经训练神经网络体系结构,例如,作为一个或多个n维数组,其中n大于或等于1。表示视频数据帧的图像可作为一维或二维值数组,例如,视频数据可进行处理,使得每个帧都是大小为x*y*c的数组,其中x是图像宽度,y是图像高度,并且c是颜色通道数量。任务嵌入可包括预定义大小(例如,10-128)的数值数组。任务嵌入的大小可根据实现方式而变化,并且可设置为可配置参数。对于图像数据处理,经训练神经网络体系结构可包括卷积神经网络体系结构。
框710和720表示所谓的“演示”阶段,其中针对任务生成任务嵌入。这可在与框730至750不同的时间执行。在一种情况下,框730至750可应用于所获得任务嵌入。例如,任务嵌入可从存储器加载并且被供应以执行框730至750。框730至750表示“测试”或“执行”阶段,其中指示机器人装置执行由任务嵌入表示的任务。执行阶段是在第二上下文中执行的。第二上下文可与第一上下文不同。例如,任务可在具有对象的第一位置和配置的第一环境中演示,并且可能期望在具有对象的第二位置和配置的第二环境中执行此任务。在某些情况下,第一上下文和第二上下文可包括共同环境,例如,共同位置、时间不同,和/或在环境中存在不同对象集。在这种意义上,“对象”可是指有生命实体和无生命实体,以及静态对象和动态对象。
在演示阶段进行演示然后在执行阶段进行模仿的任务的一些非限制性示例包括:在两个不同的环境中打开门(例如,使用机械臂)、以测试设置和制造设置组装两个零件、以第一设置将特定对象放置在特定容器中并以不同设置将同一对象放置在同一容器中、移动到不同环境中的特定对象(例如,红叉)、在模拟环境中执行马达动作序列并在真实世界环境中执行同一马达动作序列等。
图7中的框730至750被配置来对于将由机器人装置在第二上下文中执行的连续动作进行重复。机器人装置可以是框710处所接收到的观察结果中作为特征的同一实体,或者可以是不同的实体。例如,关于框730至750使用的机器人装置可包括真实世界装置,而观察结果的实体可包括同一装置的模拟物;或者关于框730至750使用的机器人装置可尝试模仿由观察结果中作为特征的人类执行的动作。
在框730处,在给定动作之前的时间接收与第二上下文中的机器人装置相关联的感测数据。感测数据可包括:以机器人装置为特征的视频数据帧和马达运动学数据,诸如图2所示的机器人装置的手臂关节角度、端部执行器位置、关节速度、姿势测量结果等。在框730至750的初始运行中,感测数据可包括第二上下文中机器人装置的观察结果以及机器人装置的初始马达配置。
在框740处,将任务嵌入和感测数据映射到用于给定动作的机器人装置的控制指令。此映射可由经训练神经网络体系结构执行,所述神经网络体系结构将任务嵌入和感测数据作为输入,例如呈数值数组的形式。针对框740的每次重复,任务嵌入可具有相同的值,而随着机器人装置与环境交互和/或随着环境随时间变化,感测数据可改变。控制指令可包括用于驱动机器人装置的数值的数组,所述数值诸如以下中的一者或多者:期望的马达或关节角度、期望的马达或关节速度、期望的关键点或关节位置以及期望的姿势构型。控制指令的格式可呈或可不呈与框730处所接收的任何马达运动学数据相同的格式。取决于实现方式,用于执行映射的神经网络体系结构可具有众多配置。例如,如果感测数据包括图像数据,则经训练神经网络体系结构可包括卷积层,其中一层或多层的输出外加任何非线性度可与前馈层的一个或多个输出外加应用于其他感测数据(诸如马达运动数据)的任何非线性度进行组合。
在框750处,使用控制指令指示机器人装置执行给定动作。这可包括实现以一维或多维数值数组表示的马达配置。框730至750可同步或异步地执行。在前一种情况下,系统时钟可规定何时接收到感测数据以及何时执行操作。在后一种情况下,一旦处理完成就可顺序地执行这些框,例如,一旦马达反馈指示控制指令已经被致动,则可发送对感测数据的请求并执行框730。
在某些情况下,任务的至少一个观察结果包括至少两个时间步长的图像数据。至少两个时间步骤覆盖在第一上下文中执行任务的时间段。例如,两个时间步长可包括t=0和t=T,其中任务以T个时间单位执行。图像数据可表示显示机器人装置在第一上下文中执行任务的至少一个图像。例如,它可包括给定时间的视频数据帧,其中视频捕获装置被定位成以便观察机器人装置。与机器人装置相关联的感测数据可包括表示显示机器人装置在第二上下文中执行任务的至少一个图像的图像数据以及用于机器人装置的状态数据中的至少一者。如上所论述,状态数据可包括马达配置和/或运动学数据。控制指令可包括用于机器人装置的一个或多个致动器以实现机器人装置在第二上下文中的移动的指令。移动可包括机器人装置的一个或多个部分(诸如图2中的机器臂的关节)的移动,和/或机器人装置在第二上下文的环境内的位置改变。
图7的方法700可使用经训练神经网络体系结构来执行,例如以执行框720和740中的一个或多个。在一种情况下,经训练神经网络体系结构包括在框720处生成任务嵌入的任务嵌入网络以及在框740处将任务嵌入和感测数据映射到用于机器人装置的控制指令的控制网络。这些网络可包括前述任务嵌入网络和控制网络的实现方式。控制网络可使用策略来执行此映射,例如在强化学习方法中使用的策略。
经训练神经网络体系结构可通过加载用于任务嵌入网络和控制网络中的每一个的参数来初始化以执行方法700。这些参数可具有通过训练程序设置的值。训练程序可在接收至少一个观察结果之前的时间点在本地或远程地执行。例如,可通过在本地处理训练集或者通过在远程位置处理训练集并将参数值发送到经训练神经网络体系结构的本地实现方式来执行训练。这些参数可具有通过任务嵌入网络和控制网络基于包括多个训练任务的训练样本的训练数据的联合训练的值。每个训练样本可包括被执行的给定训练任务的一个或多个观察结果以及为执行训练任务而采取的对应动作。例如,可为多个任务中的每一个提供多个训练样本。每个训练样本可包括包含观察数据和动作数据的元组,其中观察数据和动作数据可包括数字表示(例如,多维值数组)。观察数据可具有与框710和/或框730处所接收的观察数据相同的形式。动作数据可与框730处所接收的感测数据和/或框740处所生成的控制指令共享形式。每个训练样本可通过记录在给定环境中执行相关联任务的实体(例如,人类或编程的机器人装置)来生成。每个训练样本可包括观察和动作数据的轨迹,例如,在执行任务的时间(例如,时间步长0至T)上延伸的元组序列。
在一种情况下,任务嵌入网络和控制网络的训练是联合执行的,即,两个网络的参数在共同或共享的训练过程中进行优化,其中一个网络的错误可在另一网络的损失函数中使用。联合地训练网络可实现更丰富且更有意义的任务嵌入,例如,可通过在训练任务嵌入网络时使用控制网络的控制损失来将任务嵌入优化成对控制网络具有更大的实用性。
图8示出用于任务嵌入网络和控制网络的联合训练的训练迭代800。训练迭代生成损失值Li,以实现对用于任务嵌入网络和控制网络的参数的优化。例如,训练的目的可以是使损失值最小化,并且通过可区分的两个网络向后传播来自训练的误差,以例如基于计算损失值的损失函数的梯度来更新用于训练迭代的参数的值。图8示出作为示例提供的用于执行训练迭代的方法;可替代地使用各种其他方法,并且可以设想来自图8的方法的变型。图8中所示的训练迭代800可用于实现图4中所示的训练。
在框810处,从一组训练数据中采样一组训练任务。例如,如果训练数据包括用于多个任务的轨迹,其中每个任务具有与多个轨迹相关的训练数据,则框810可包括选择任务的子集。采样可包括对任务进行随机采样(例如,其中每个任务具有被选择用于一组训练任务的相同可能性)。可定义批量以设置一组训练任务中的任务数量。采样任务实现可管理训练迭代,但在某些示例中可省略,例如,一组训练任务可包括训练数据中的所有任务。
在本发明示例中,针对一组训练任务中的每个给定任务,重复框820至840。在框820处,确定给定任务的支持集。支撑集包括执行任务的机器人装置的第一组观察结果。观察结果可从任务的一组示例性观察结果中采样。例如,可通过从随机采样的轨迹子集获得至少观察数据来生成支持集。支持集的大小可以是可配置参数。给定任务的支持集表示给定任务的示例群组,例如,可将它们视为“描述”任务。任务的每个示例可有所不同(例如,可具有不同环境配置,可表示在不同时间执行的任务,和/或可表示在执行共同任务时的不同尝试)。在框830处,确定给定任务的查询集。查询集包括执行给定任务的机器人装置的第二组观察结果,其中第一组观察结果和第二组观察结果不相交(即,任务的支持集和查询集不相交)。查询集的采样可类似于支持集的采样,其中应用了不相交约束。查询集表示任务的一个或多个示例,例如查询集用于测试网络执行任务的能力。在框840处,使用任务嵌入网络来计算用于支持集的任务嵌入和用于查询集的任务嵌入。这可包括类似于图7中的框720的操作。对于多个示例,例如在支持集中,用于每个示例的任务嵌入(例如,如使用来自示例的视频数据的初始帧和最终帧所计算)可使用聚合函数来组合。聚合函数可以是平均函数或均值函数,例如使得用于支持集的聚合任务嵌入包括支持集中每个单独示例的任务嵌入的平均值。
一旦已针对一组训练任务中的所有任务重复框820至840,则执行框850以初始化用于任务嵌入网络和控制网络的损失函数。这可包括将损失值或损失值的分量设置为零。然后,使用来自框820的支持集和来自框830的查询集以及来自框840的任务嵌入,针对一组训练任务中的每个任务,重复框860至880。
在框860处,确定任务嵌入损失。任务嵌入损失是通过任务嵌入网络的损失函数项产生的。任务嵌入网络的损失函数项将特定任务的示例与不同任务的示例进行比较,使得损失值的优化可将任务嵌入空间中的不同任务分开。在一种情况下,任务嵌入网络的损失函数项将查询集中一个或多个示例的任务嵌入与给定任务的支持集和不同任务的支持集的聚合任务嵌入进行比较。例如,可使用具有可配置裕度的铰链损失函数。铰链损失函数可实现嵌入空间中的任务得以区分,如参考图6所述。铰链丢失功能可将以下两者进行比较:针对给定任务的查询集的任务嵌入与针对给定任务的支持集的任务嵌入之间的第一相似度度量;针对给定任务的查询集的任务嵌入与来自针对不是给定任务的任务的支持集的一组任务嵌入的任务嵌入之间的第二相似度度量。可对查询集中的示例和不同任务的支持集执行求和。在一种情况下,查询集任务嵌入可与针对不是给定任务的训练任务集中的所有任务的每个支持集任务嵌入进行比较,并且这可针对查询集中的每个示例进行重复。相似度度量可包括两个任务嵌入之间的余弦距离。
在框870处,针对支撑集确定控制损失。控制损失是通过计算控制网络的至少一个损失函数项产生的。在这种情况下,存在两个损失函数项。所述至少一个损失函数项将由控制网络预测的控制指令与实际采取以执行给定任务的动作的控制指令进行比较。在框870处,损失函数项包括用于给定任务的支持集的策略损失项。例如在支持集中,这可包括:计算应用于支持集任务嵌入的策略和示例中的特定时间步长(例如,特定的观察结果-动作对)的策略与应用于示例中的相同时间步长的“专家”或理想策略之间的差异。在实践中,后一种专家策略可用特定观察结果-动作对中动作的价值来表示。因此,框870可包括:将控制网络应用于来自示例的支持集任务嵌入和观察结果,并且将其输出与来自示例的动作进行比较。对于支撑集中的每个示例或轨迹,可将损失值计算为L2距离。可比较一个或多个时间步长。在框880处,执行类似的计算以确定针对查询集的控制损失。这可包括将相同操作应用于查询集的示例。框880可包括计算针对给定任务的查询集的策略损失项。计算支持集和查询集的控制损失具有优势:支持集控制损失使用查询集损失来补充学习(例如,将支持集损失最小化可视为最小化查询集损失的更简单版本。相关信息可通过嵌入空间传递);并且提供能够重复给定示例的期望性质(例如,支持集确认针对查询集执行的学习)。
框860至880的每个重复以及来自每个框的结果可被求和以计算损失值Li。在某些情况下,可将权重应用于来自框860至880中的每一个的结果,其中权重是网络的超参数。训练迭代的输出Li可用于迭代地优化损失函数,以确定任务嵌入网络和控制网络的参数值。
在本文所述的示例性方法中,任务嵌入提供任务的表示。例如,可将任务嵌入视为以数字形式(例如,浮点值)表示的任务特征的已学潜在表示。训练导致具有共享特性集的两个任务的任务嵌入在嵌入空间中比具有不同特征集的两个任务的任务嵌入更靠近。培训可涉及采样批料中的一组独特任务,并且可从批料中的所有其他任务生成“否定”嵌入或句子,例如,可将批料中的每个任务与批料中的每个其他任务进行比较。对于任何铰链损失,可将裕度设置为可配置参数(例如,在0.01至1的范围内)。在某些情况下,可使用经训练任务嵌入网络对任务进行分类。此分类的准确性可通过在批料中的其他任务上的嵌入空间内执行最近邻搜索来估计。尽管在此示例中例如使用点积相似度度量来使用铰链损失,但在其他示例中可使用其他损失函数,诸如L2损失等。
图9示出处理器910和包括计算机可执行指令930的非暂时性计算机可读存储介质920的示例900。计算机可执行指令在由处理器910执行时致使计算装置(诸如包括处理器910的计算装置)训练任务嵌入网络。指令可导致执行与上述示例性方法相似的方法。
通过指令935,获得包括至少任务嵌入网络的控制系统的训练数据。任务嵌入网络被配置来将输入数据映射到任务嵌入。任务嵌入网络可包括如先前示例中的任何一个中所述的任务嵌入网络。训练数据可包括用于由可控装置在一个或多个上下文中执行的一个或多个任务的观察结果-动作数据对。可控装置可包括机器人装置,并且可以是或可以是不是与上述计算装置相同的装置,例如,包括处理器910的计算装置可执行指令930以控制通信耦接的机器人装置,或产生可用于嵌入任务以控制一个或多个远程装置的经训练任务嵌入网络。
通过指令940,针对在训练数据内表示的一组训练任务的每一个生成支持集和查询集。支持集和查询集可如参考图8的框820和830所述地生成。指令940可指示处理器针对一组训练任务中的给定任务,将任务嵌入网络应用于给定任务的第一组观察结果-动作对,以生成支持集任务嵌入,并且将任务嵌入网络应用于给定任务的第二组观察结果-动作对,以生成查询集任务嵌入,第一组观察结果-动作对和第二组观察结果-动作对不相交。观察结果-动作对可包括任务轨迹的时间步长。在某些情况下,仅观察数据可用于计算任务嵌入。支持集任务嵌入和/或查询集任务嵌入可包括如上所述的聚合任务嵌入。
通过指令950,控制系统的损失函数被优化以确定控制系统的可训练参数的值。在这种情况下,控制系统的损失函数是任务嵌入网络的损失函数的函数,其中任务嵌入网络的损失函数是基于对支持集与查询集的相似度度量的比较。损失函数可以是与图8中的框860中计算的损失函数相似的损失函数。针对给定任务的查询集任务嵌入与针对给定任务的支持集任务嵌入之间的相似度度量可与针对给定任务的查询集任务嵌入与针对不是给定任务的任务的支持集任务嵌入之间的相似度度量进行比较。任务嵌入网络的损失函数可包括铰链损失函数,并且相似度度量可包括点积相似度。
在某些情况下,控制系统包括控制网络,所述控制网络用于应用策略以将输入数据和来自任务嵌入网络的任务嵌入映射到可控装置的动作数据。在这种情况下,控制系统的损失函数是控制网络的损失函数的函数,并且针对给定任务的控制网络的损失函数包括支持集的策略损失和查询集的策略损失。例如,控制系统的损失函数可如参考图8中的框870和880所解释地计算。
在某些情况下,观察结果-动作数据对中的每一对内的观察数据分别包括表示在与观察结果-动作数据对相关联的动作之前捕获的以可控装置为特征的至少一个图像的图像数据。在这种情况下,观察数据是在执行任务期间捕获的。
指令930产生用于至少任务嵌入网络的一组经训练参数。然后可将任务嵌入网络应用于示出机器人装置在第一上下文中执行的任务的观察数据,以生成针对任务的任务嵌入。任务嵌入可从第一上下文抽象的方式来表示任务,例如,提供不受第一上下文的在其他上下文中可能改变的特定特征的强烈影响的潜在表示。任务嵌入可看作是针对机器人装置的高级指令的形式,例如,可将其嵌入到控制网络,以使得控制网络能够控制机器人装置执行任务。控制网络可通过迭代地将针对第二上下文中的机器人装置的任务嵌入和感测数据映射到针对机器人装置的控制动作序列来控制机器人装置。在这些情况下,在第二上下文中执行控制动作之后,更新并重新映射感测数据。
在某些情况下,如本文所述的示例可在模拟到真实的上下文中使用,其中目标是学习针对模拟内控制网络的策略,然后在很少或没有额外训练的情况下将这些策略转移到真实世界环境中。这可减少对真实世界中繁琐且耗时的数据采集的需求。在模拟期间,可应用随机化,例如以改变诸如照明位置、相机位置、对象纹理、物体尺寸和物体形状的因素。这提供使得能够学习有意义的抽象任务嵌入的训练数据。
本文所述的某些示例提供一种元学习的方法,所述方法实现端对端单样本(或至少少样本)模仿学习。本文所述的某些示例通过嵌入网络学习任务的紧凑描述,所述紧凑描述可用于调节控制网络以预测针对同一任务的不同示例的动作。示例性控制系统可在模拟中训练,然后在真实世界中部署。一旦部署,机器人装置就可继续从单个或多个演示中学习新任务。通过配置包括在训练集中的任务,任务嵌入网络将各种各样的任务一般化。在某些示例中,新任务可基于视觉数据来学习。这使得机器人装置能够学习模仿人类操作员手动地执行的任务,而无需在测试或执行时出现的专家动作或状态。
上述示例应被理解为说明性的。设想了另外的示例。应理解,关于任一个示例所述的任何特征都可单独或与所述的其他特征结合使用,并且还可与任何其他示例的一个或多个特征结合使用,或者与任何其他示例的任何组合结合使用。此外,在不脱离所附权利要求的范围的情况下,还可采用上面未描述的等效物和修改。

Claims (22)

1.一种用于机器人装置的控制系统,其包括:
任务嵌入网络,所述任务嵌入网络用于接收任务的一个或多个演示并且生成任务嵌入,所述任务嵌入包括所述任务的表示,每个演示包括对执行所述任务的一个或多个观察结果;以及
控制网络,所述控制网络用于从所述任务嵌入网络接收所述任务嵌入,并且应用策略以将对所述机器人装置的多个连续观察结果映射到用于所述机器人装置的相应控制指令,
其中由所述控制网络应用的所述策略是使用来自所述任务嵌入网络的所述任务嵌入跨对所述机器人装置的所述多个连续观察结果调整的。
2.如权利要求1所述的控制系统,其中所述任务嵌入网络和所述控制网络各自包括通过基于训练集的联合训练产生的相应参数,所述训练集包括至少一个环境中的至少一个训练任务的训练样本,每个训练样本包括对给定环境中的给定训练任务的一个或多个观察结果以及由所述机器人装置在所述给定环境中执行的对应动作。
3.如权利要求1或权利要求2所述的控制系统,其中:
所述任务嵌入网络和所述控制网络中的至少一者是基于包括至少一个训练任务的训练样本的训练集训练的;
所述至少一个训练任务包括第一任务;并且
由所述任务嵌入网络接收的所述任务是不同于所述第一任务的第二任务,使得所述控制网络被配置来应用所述策略以将对所述机器人装置的所述多个连续观察结果映射到让所述所述机器人装置执行所述第二任务的所述相应控制指令。
4.如权利要求1至3中任一项所述的控制系统,其中:
所述任务的所述一个或多个演示包括对在第一环境中执行所述任务的一个或多个观察结果,
所述控制指令包括让所述机器人装置在第二环境中执行所述任务的控制指令,所述第一环境和所述第二环境具有至少不同的配置,并且
对所述机器人装置的所述多个连续观察结果包括所述第二环境中对所述机器人装置的观察结果。
5.如权利要求1至4中任一项所述的控制系统,其中对执行所述任务的所述一个或多个观察结果包括表示执行所述任务的所述机器人装置的至少一个图像的图像数据,并且其中所述控制指令包括用于所述机器人装置的一个或多个马达的马达控制指令。
6.如权利要求1至5中任一项所述的控制系统,其中所述任务嵌入网络和所述控制网络各自包括通过基于训练集的联合训练产生的相应参数,所述训练集包括至少一个模拟环境中的至少一个训练任务的训练样本,每个训练样本包括对给定模拟环境中的给定训练任务的一个或多个观察结果以及由所述机器人装置的模拟物在所述给定模拟环境中执行的对应动作。
7.一种控制机器人装置的方法,所述方法包括:
接收对在第一上下文中执行任务的至少一个观察结果;
基于所述至少一个观察结果来生成任务嵌入;以及
针对将由所述机器人装置在第二上下文中执行的连续动作:
在给定动作之前的时间接收所述第二上下文中与所述机器人装置相关联的感测数据;
将所述任务嵌入和所述感测数据映射到让所述机器人装置进行所述给定动作的控制指令;并且
使用所述控制指令来指示所述机器人装置执行所述给定动作。
8.如权利要求7所述的方法,其中对任务的所述至少一个观察结果包括至少两个时间步长的图像数据,所述至少两个时间步长覆盖在所述第一上下文中执行所述任务的时间段,所述图像数据表示示出在所述第一上下文中执行所述任务的所述机器人装置的至少一个图像。
9.如权利要求7或权利要求8所述的方法,其中与所述机器人装置相关联的所述感测数据包括表示示出在所述第二上下文中执行所述任务的所述机器人装置的至少一个图像的图像数据和所述机器人装置的状态数据中的至少一者,并且其中所述控制指令包括让所述机器人装置的一个或多个致动器实现所述机器人装置在所述第二上下文中的移动的指令。
10.如权利要求7至9中任一项所述的方法,其包括:在接收所述至少一个观察结果之前:
加载相应参数以配置任务嵌入网络和控制网络,所述任务嵌入网络用于生成所述任务嵌入,并且所述控制网络用于将所述任务嵌入和所述感测数据映射到用于所述机器人装置的所述控制指令,所述参数通过所述任务嵌入网络和所述控制网络基于训练数据上的联合训练产生,所述训练数据包括多个训练任务的训练样本,所述训练样本包括对执行所述多个训练任务的一个或多个观察结果以及采取以执行所述训练任务的对应动作。
11.如权利要求7至10中任一项所述的方法,其包括:在接收所述至少一个观察结果之前,联合地训练任务嵌入网络来执行所述任务嵌入并训练控制网络来应用策略以执行从所述任务嵌入和所述感测数据到用于所述机器人装置的所述控制指令的映射。
12.如权利要求11所述的方法,其中联合地训练所述任务嵌入网络和所述控制网络包括:针对训练迭代:
从一组训练数据采样一组训练任务;
针对所述一组训练任务中的每个给定任务:
确定用于所述给定任务的支持集,所述支持集包括对所述机器人装置执行所述任务的第一组观察结果;
确定用于所述给定任务的查询集,所述查询集包括对所述机器人装置执行所述任务的第二组观察结果,所述第一组观察结果和所述第二组观察结果不相交;
使用所述任务嵌入网络来计算用于所述支持集的任务嵌入和用于所述查询集的任务嵌入;
初始化用于所述任务嵌入网络和所述控制网络的损失函数;并且
针对所述一组训练任务中的每个给定任务:
计算用于所述任务嵌入网络的损失函数项,所述损失函数项包括铰链损失函数,所述铰链损失函数将以下两者进行比较:用于所述给定任务的所述查询集的任务嵌入与用于所述给定任务的所述支持集的任务嵌入之间的第一相似度度量,与用于所述给定任务的所述查询集的所述任务嵌入与来自用于不是所述给定任务的任务的支持集的一组任务嵌入的任务嵌入之间的第二相似度度量;
其中重复所述训练迭代以优化所述损失函数,从而确定用于所述任务嵌入网络和所述控制网络的参数值。
13.如权利要求12所述的方法,其中联合地训练所述任务嵌入网络和所述控制网络包括:针对训练迭代:
针对所述一组训练任务中的每个给定任务:
计算用于所述控制网络的至少一个损失函数项,所述至少一个损失函数项包括使用控制网络的预测控制指令与采取以执行所述给定任务的动作的控制指令的比较,
其中用于所述控制网络的所述至少一个损失函数项包括用于所述给定任务的支持集的策略损失项和用于所述给定任务的查询集的策略损失项。
14.如权利要求10至13中任一项所述的方法,其中所述任务嵌入提供所述任务的表示,并且其中具有共享特性集的两个任务的任务嵌入在嵌入空间中比具有不同特性集的两个任务的任务嵌入更靠近。
15.如权利要求10至14中任一项所述的方法,其中用于所述任务嵌入网络和所述控制网络的所述参数集是使用模拟机器人装置在模拟环境中学习的。
16.一种非暂时性计算机可读存储介质,其包括计算机可执行指令,所述计算机可执行指令在由处理器执行时致使计算装置:
获得用于包括至少任务嵌入网络的控制系统的训练数据,所述任务嵌入网络被配置来将输入数据映射到任务嵌入,所述训练数据包括由可控装置在一个或多个上下文中执行的一个或多个任务的观察结果-动作数据对;
针对所述训练数据内表示的一组训练任务中的每一个生成支持集和查询集,这包括针对所述一组训练任务中的给定任务:
将所述任务嵌入网络应用于所述给定任务的第一组观察结果-动作对,以生成支持集任务嵌入,并且
将所述任务嵌入网络应用于所述给定任务的第二组观察结果-动作对,以生成查询集任务嵌入,所述第一组观察结果-动作对和第二组观察结果-动作对不相交;并且
优化所述控制系统的损失函数以确定所述控制系统的可训练参数的值,所述控制系统的所述损失函数是所述任务嵌入网络的损失函数的函数,所述任务嵌入网络的所述损失函数是基于所述支持集和所述查询集的相似度度量的比较,
其中所述给定任务的查询集任务嵌入与所述给定任务的支持集任务嵌入之间的相似度度量是与所述给定任务的所述查询集任务嵌入与不是所述给定任务的任务的支持集任务嵌入之间的相似度度量进行比较。
17.如权利要求16所述的介质,其中:
所述控制系统包括控制网络,所述控制网络用于应用策略以将所述输入数据和来自所述任务嵌入网络的所述任务嵌入映射到用于所述可控装置的动作数据;
所述控制系统的所述损失函数是所述控制网络的损失函数的函数;并且
所述控制网络针对给定任务的所述损失函数包括所述支持集的策略损失和所述查询集的策略损失。
18.如权利要求16或权利要求17所述的介质,其中所述观察结果-动作数据对中的每一对内的观察数据分别包括表示在与所述观察结果-动作数据对相关联的动作之前捕获的以所述可控装置为特征的至少一个图像的图像数据,所述观察数据是在任务的执行期间捕获的。
19.如权利要求16至18中任一项所述的介质,其中所述任务嵌入网络的损失函数包括铰链损失函数,并且所述相似度度量包括点积相似度。
20.如权利要求16至19中任一项所述的介质,其中所述指令在由处理器执行时致使所述计算装置:
接收示出在第一上下文中执行任务的机器人装置的观察数据;
将所述控制系统的所述任务嵌入网络在训练之后应用于所述观察数据以生成任务嵌入;并且
将所述第二上下文中的所述机器人装置的所述任务嵌入和感测数据迭代地映射到所述机器人装置的控制动作序列,其中在所述第二上下文中执行控制动作之后,更新并重新映射所述感测数据。
21.一种用于机器人装置的控制网络,其中所述控制网络被配置来:
接收任务嵌入,所述任务嵌入包括从任务的一个或多个演示生成的所述任务的表示;并且
应用策略以将对所述机器人装置的多个连续观察结果映射到用于所述机器人装置的相应控制指令,
其中由所述所述控制网络应用的所述策略是使用所述任务嵌入跨对所述机器人装置的所述多个连续观察结果调整的。
22.如权利要求21所述的控制网络,其中所述控制指令包括马达控制指令,并且所述控制网络被配置来使用所述马达控制指令来控制所述机器人装置的一个或多个马达。
CN201980061818.5A 2018-09-21 2019-09-10 用于装置控制的任务嵌入 Pending CN112771540A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1815431.0A GB2577312B (en) 2018-09-21 2018-09-21 Task embedding for device control
GB1815431.0 2018-09-21
PCT/GB2019/052520 WO2020058669A1 (en) 2018-09-21 2019-09-10 Task embedding for device control

Publications (1)

Publication Number Publication Date
CN112771540A true CN112771540A (zh) 2021-05-07

Family

ID=64024252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980061818.5A Pending CN112771540A (zh) 2018-09-21 2019-09-10 用于装置控制的任务嵌入

Country Status (6)

Country Link
US (1) US20210205988A1 (zh)
JP (1) JP2022501725A (zh)
KR (1) KR20210060519A (zh)
CN (1) CN112771540A (zh)
GB (1) GB2577312B (zh)
WO (1) WO2020058669A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168553A (zh) * 2018-09-28 2021-07-23 英特尔公司 机器人移动设备及相关方法
EP3753684B1 (en) * 2019-06-21 2022-08-10 Robert Bosch GmbH Method and system for robot manipulation planning
JP7452657B2 (ja) 2020-07-14 2024-03-19 日本電気株式会社 制御装置、制御方法及びプログラム
US20220068445A1 (en) * 2020-08-31 2022-03-03 Nec Laboratories America, Inc. Robust forecasting system on irregular time series in dialysis medical records
US20220161423A1 (en) * 2020-11-20 2022-05-26 Naver Corporation Transformer-Based Meta-Imitation Learning Of Robots
CN113674324A (zh) * 2021-08-27 2021-11-19 常州唯实智能物联创新中心有限公司 基于元学习的类级别6d位姿追踪方法、系统及装置
EP4184393A1 (en) * 2021-11-17 2023-05-24 Tata Consultancy Services Limited Method and system for attentive one shot meta imitation learning from visual demonstration
US20230191605A1 (en) 2021-12-17 2023-06-22 Nvidia Corporation Neural networks to generate robotic task demonstrations
CN114454176B (zh) * 2022-03-11 2024-03-12 深圳鹏行智能研究有限公司 机器人的控制方法、控制装置、机器人和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
JP6721785B2 (ja) * 2016-09-15 2020-07-15 グーグル エルエルシー ロボット操作のための深層強化学習
JP7087006B2 (ja) * 2017-09-20 2022-06-20 グーグル エルエルシー 画像埋め込みを使用するロボティックエージェントのためのポリシーコントローラの最適化

Also Published As

Publication number Publication date
JP2022501725A (ja) 2022-01-06
KR20210060519A (ko) 2021-05-26
US20210205988A1 (en) 2021-07-08
GB201815431D0 (en) 2018-11-07
GB2577312B (en) 2022-07-20
WO2020058669A1 (en) 2020-03-26
GB2577312A (en) 2020-03-25

Similar Documents

Publication Publication Date Title
CN112771540A (zh) 用于装置控制的任务嵌入
US20240017405A1 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US10946515B2 (en) Deep machine learning methods and apparatus for robotic grasping
US11717959B2 (en) Machine learning methods and apparatus for semantic robotic grasping
CN111695562A (zh) 一种基于卷积神经网络的机器人自主抓取方法
US11823048B1 (en) Generating simulated training examples for training of machine learning model used for robot control
JP7458741B2 (ja) ロボット制御装置及びその制御方法及びプログラム
Fu et al. Active learning-based grasp for accurate industrial manipulation
CN115351780A (zh) 用于控制机器人设备的方法
CN112512755A (zh) 使用从2.5d视觉数据预测的域不变3d表示的机器人操纵
CN114585487A (zh) 通过使用基于视觉的机器人任务模型训练模拟到真实模型来减轻现实差距
CN117769724A (zh) 使用深度学习的对象检测和分类的合成数据集创建
Fornas et al. Fitting primitive shapes in point clouds: a practical approach to improve autonomous underwater grasp specification of unknown objects
JP7205752B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
EP4238714A1 (en) Device and method for controlling a robot
Sun et al. Learning from few demonstrations with frame-weighted motion generation
Tekden Data Efficient Representation Learning for Grasping and Manipulation
Rungta Using Novel Visuo-Tactile Sensors to Recognize Contact in Robotic Manipulation
CN116719409A (zh) 一种基于智能体主动交互的操作技能学习方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination