CN114423574A - 确定针对机器人任务的环境调节的动作序列 - Google Patents

确定针对机器人任务的环境调节的动作序列 Download PDF

Info

Publication number
CN114423574A
CN114423574A CN202080064771.0A CN202080064771A CN114423574A CN 114423574 A CN114423574 A CN 114423574A CN 202080064771 A CN202080064771 A CN 202080064771A CN 114423574 A CN114423574 A CN 114423574A
Authority
CN
China
Prior art keywords
action
predicted
robot
network
actions
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
CN202080064771.0A
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN114423574A publication Critical patent/CN114423574A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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/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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • 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/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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
    • 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/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/147Details of sensors, e.g. sensor lenses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/17Terrestrial scenes taken from planes or by drones
    • 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/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/13Satellite images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Remote Sensing (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Vascular Medicine (AREA)
  • Fuzzy Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

本文公开了训练和/或使用机器学习模型来进行机器人任务。在许多实施方式中,环境调节的动作序列预测模型用于确定动作集合以及用于机器人为完成所述任务而进行的所述动作的对应特定顺序。在许多实施方式中,所述动作集合中的每个动作具有用于控制正进行所述动作的所述机器人的对应动作网络。

Description

确定针对机器人任务的环境调节的动作序列
背景技术
许多机器人被编程来进行某些任务,例如装配线上的机器人可以被编程为识别特定对象,并对那些特定对象进行具体操纵。举例来说,机器人可以利用例如“冲击式”夹具或“侵入式”夹具(例如,使用别针、针等物理穿透对象)的抓握末端实现器(effector)来从第一地点拾起对象,将对象移动到第二地点,并且将对象放在第二地点处。可以抓握对象的机器人末端实现器的一些额外示例包含“收缩性”末端实现器(例如,使用吸力或真空来拾起对象)和一个或多个“触及性”末端实现器(例如,使用表面张力、冷冻或者粘合剂来拾起对象),仅举几例。
发明内容
本文公开的实施方式利用经训练的动作序列预测模型,基于由机器人捕获的视觉数据的实例来确定针对机器人任务的动作的预测序列。在许多实施方式中,预测动作的序列可以按机器人的环境进行调节,其中机器人在完成任务时可能在不同的初始位置遇到环境中的对象。举例来说,机器人在第一次完成任务时可能遇到打开的门,而在第二次完成相同的任务时可能遇到关闭的门。
进行机器人任务需要机器人响应于环境的变化。作为说明性示例,对象操纵任务可以包含将含有球的杯子放在封闭的柜子内部的目的。机器人在进行该任务时可能遇到不同的环境状态,例如杯子的不同地点、球的不同地点和/或柜子门的不同状态(即柜子门是打开的或柜子门是关闭的)。完成任务所需的潜在动作可以包含:打开柜子门、关闭柜子门、移动杯子、移动球、将球移动到杯子中以及移动球与杯子。
当第一次进行任务时,机器人可能遇到关闭的柜子,而球和杯子在柜子外。在许多实施方式中,动作序列预测模型可用于确定以下动作的预测序列:(1)将球移动到杯子中;(2)打开柜子门;(3)将球与杯子移动到柜子中;以及(4)关闭柜子门。在所说明的示例中,一些动作组合具有固有序列顺序,例如在将球与杯子移动到柜中之前打开柜子门,在关闭柜子门之前将球与杯子移动到柜中等。另外或可替代地,可以以任何顺序进行动作的一些组合。举例来说,在将球放入到杯子中与打开柜子门之间没有固有顺序。换句话说,机器人可以通过在打开柜子门之前或之后将球放入到杯子中来完成任务。
作为另一示例,当第二次进行任务时,机器人可能遇到球在关闭的柜内部。动作序列预测模型用于确定以下动作的预测序列:(1)打开柜子门;(2)移动杯子;(3)移动球;(4)将球移动到杯子;(5)将球与杯子移动到柜子中;以及(5)关闭柜子门。如上所述,动作的一些序列具有固有顺序,而动作的其它序列不具有固有顺序。举例来说,应在可以移动杯子和球之前打开柜子门。类似地,应在关闭柜子门之前将球与杯子移动到柜子中。然而,在移动杯子与将球移到柜子外部之间没有固有顺序,并且这些动作可以按任一顺序进行以完成任务。
环境调节的动作序列预测模型可以包含卷积神经网络模型(“CNN”)部分以及序列到序列模型部分。在各种实施方式中,可以使用CNN部分来处理使用机器人的传感器捕获的视觉数据的实例,例如使用机器人的相机捕获的图像,以确定对应于视觉数据的实例的嵌入。可以使用序列到序列模型部分(例如,编码器-解码器模型、变换器模型等)来处理嵌入以确定动作的预测序列以完成机器人任务。
动作的预测序列可以取决于由机器人捕获的视觉数据的实例而改变。举例来说,如上所述,机器人可能遇到关闭的柜子,其中球和杯子在柜子外。动作序列预测模型可以用于确定以下动作的预测序列:(1)将球移动到杯子中;(2)打开柜子门;(3)将球与杯子移动到柜子中;以及(4)关闭柜子门。另外或可替代地,机器人可能遇到在关闭的柜子内的杯子和球,其中动作序列预测模型可以用于确定以下动作的预测序列:(1)打开柜子门;(2)移动杯子;(3)移动球;(4)将球移动到杯子;(5)将球与杯移动到柜子内以及(5)关闭柜子门。在许多实施方式中,使用动作序列预测模型确定的动作序列可以取决于完成机器人任务所必需的动作而包含不同动作。举例来说,当机器人遇到关闭的柜子,其中球和杯子在柜子外时,动作的对应预测序列不包含将球移到柜子外和/或将杯子移到柜子外,因为不需要所述行动。类似地,当机器人遇到杯子和球在关闭的柜子内时,动作的对应预测序列将包含移动球和移动杯子的动作。
预测序列中的每个动作可以用于确定对应动作网络,其中通过使用对应动作网络处理额外机器人传感器数据而生成的输出可以用于控制机器人。在许多实施方式中,对应于每个动作的动作网络可以是独特的网络,例如独特的策略网络。在一些这类实施方式中,可以使用基于动觉示范(kinesthetic demonstrations)的强化学习来训练每个策略网络,例如通过机器人的遥控操作进行的示范。
以上描述仅提供作为本文公开的一些实施方式的概述。所述技术的这些实施方式和其它实施方式在下文中更详细地公开。
应理解,前述概念和本文更详细描述的额外概念的所有组合都被认为是本文公开的主题的一部分。举例来说,本文所附的要求保护的主题的所有组合都被认为是本文公开的主题的一部分。
附图说明
图1图示了根据本文公开的实施方式的使用环境调节的动作序列预测模型生成预测动作集合并使用该预测动作集合来控制机器人的示例。
图2A图示了根据本文公开的实施方式的示例对象操纵机器人任务。
图2B图示了根据本文公开的实施方式的图2A的用于对象操纵机器人任务的传感器数据的示例实例。
图2C图示了根据本文公开的实施方式的图2A的用于对象操纵机器人任务的传感器数据的另一实例。
图3图示了根据本文公开的实施方式的在其中可以实施各种实施方式的示例环境。
图4是根据本文公开的实施方式的图示基于预测动作集合来控制机器人的示例过程的流程图。
图5是根据本文公开的实施方式的图示训练环境调节的动作序列预测模型的卷积神经网络模型部分的示例过程的流程图。
图6是根据本文公开的实施方式的图示训练环境调节的动作序列预测模型的序列到序列模型部分的示例过程的流程图。
图7是根据本文公开的实施方式的图示训练动作网络的示例过程的流程图。
图8示意性地描绘了机器人的示例架构。
图9示意性地描绘了计算机系统的示例架构。
具体实施方式
复杂对象操纵任务可以跨越长的操作序列。长时间范围上的任务规划可能具有挑战性,并且其复杂性可能随着子任务数量的增加而呈指数增长。本文公开的实施方式针对仅从示范视频集合中学习跨子任务的依赖关系和转换的深度学习网络。每个子任务可以表示为动作符号(例如,移动杯子),并且这些符号可以直接从图像观察中学习和预测。从示范中学习可以使学习易于处理,因为这为网络提供了关于子任务之间最频繁的转换和相关依赖关系的信息(而不是探索所有可能组合),而从视觉观察中学习可以使网络持续监测任务进度并且因此以交互方式适应环境的变化。可以使用两个长期任务来评估一些实施方式:(1)由人类执行的拼图块堆叠;和(2)机器人操纵任务,涉及拾取和放置对象以及用7-DoF(7自由度)机器人臂滑动柜子门。对于一些实施方式,可以示出在执行机器人任务时可以进行复杂规划,并且机器人可以交互地适应环境中的变化并从失败情况中恢复。
本文描述的一些实施方式可以利用复杂任务的两层表示,其中抽象动作或子任务集合可以用作抽象动作或子任务集合的中间表示。每个动作可以由符号表示,所述符号以抽象方式描述完成子任务所需发生的事情(例如,移动杯子)。这种离散化使我们能够推理任务的结构,而无需面对真实环境和相关物理学(例如,对象姿势)的繁杂。
每个符号可用于选择描述对象或智能体本身需要如何被操纵以实现更高级别目的的单独策略。在一些实施方式中,当执行动作时,可以考虑由真实场景强加的复杂性,例如寻找对象或识别对象姿势以抓住该对象。目的是通过学习任务相关动作之间的顺序依赖关系来执行复杂且长期任务。为了在谨慎对待场景中的变化的同时学习子任务序列,一些实施方式采用通常用于自然语言处理的序列到序列模型来将图像嵌入序列转换成动作符号。
序列预测的能力可以通过评估两个环境上的一些实施方式来测试。首先,机器人臂可用于在办公室环境中操纵对象,其中目的是在柜子中找到对象,对对象进行操作并将对象移回到柜子中。举例来说,任务可以是找到一个杯子,将一个球放入到杯子中,并将这两个对象一起移回柜子。子任务的不同序列可以通向任务的成功完成。举例来说,尽管机器人必须首先打开柜子门,但是机器人可以随后将杯子或球中的任一者移到柜子外,以最终将球放入到杯子中并将这两个对象一起放回到柜中。其次,机器人可以进行堆叠任务,该任务要求将块从初始随机配置移动到三个块堆叠。
与主要关注隐式学习动作符号的现有工作不同——例如作为潜在变量——本文描述的实施方式可以明确地表示动作,这反过来可以提供任务的更多的语义。另外或可替代地,可以直接从图像序列中学习动作符号。这可以有助于推断完成任务所必需的动作的正确顺序,同时还允许对环境中的变化做出响应。随后用单独策略来执行每个单独动作。
在一些实施方式中,任务的序列结构可以通过将任务分解成任务相关动作来学习。这通过观察激励,即许多任务既具有连续性,又具有组合性。任务是组合性的,其中智能体必须在离散对象集合中进行选择以进行任务。举例来说,堆叠任务要求布置多个对象。然而,智能体还必须在要求以连续方式与对象交互的物理环境中操作。
由于实际场景强加的不确定性,对上述两个因素进行优化以进行长远规划可能具有挑战性。因此,为了进行长远规划,可以将长期任务分解成离散动作集合。这些动作代表了完成子任务所需要发生的事情,但是处于非常高的抽象级别,并且没有任何关于智能体必须如何进行动作的概念。举例来说,动作可能只是“移动杯子”。其次,一旦将任务结构化成与任务相关的动作,就可以从所学习示范中获得专家策略以进行单独动作。
动作符号集合可以用作子任务的抽象表示。这些符号代表了基本动作,例如‘开门’、‘移动杯子’、‘放球’等。在一些实施方式中,可以为不同任务手动定义动作符号集合。另外或可替代地,可以为不同任务自动定义动作符号集合(例如,可以利用经训练的机器学习模型来生成动作符号集合)。符号序列可以提供任务的抽象,所述抽象可以被学习以被预测并且随后在机器人上执行。符号集合被表示K。
动作符号可以以两种方式使用:首先,可以训练一个单帧动作分类器,该单帧动作分类器允许生成图像的嵌入。其次,可以训练编码器-解码器序列到序列模型以将图像嵌入序列转换到动作符号序列。两个模型可以一起用于基于场景的当前状态以及根据哪些子任务已经完成了来预测下一动作。
在一些实施方式中,为了获得场景以及正在进行的动作的表示,可以将卷积神经网络训练为动作识别模型。举例来说,CNN可以包含ResNet50主干,其中具有一个附加密集层(32维)以提取图像特征,以及另一密集层,接着是Softmax,以在作为标签的动作符号上微调网络。这个模型可以被训练为关于序列图像的单个图像动作预测器,其中每个图像都用动作符号标记。基于单帧的动作识别可能是一个具有挑战性的问题,因为单个图像中所示的动作可能是不明确的;例如伸手去拿杯子看起来和离开杯子是一样的。然而,我们的目的不是使用这个模型的所得分类,而是相反使用所得嵌入来作为对我们的序列到序列模型的输入。序列到序列模型随后可以将产生的嵌入转换成动作符号。进一步地,由于序列到序列模型维持内部状态,因此序列到序列模型可以解决由动作分类器的错误预测动作符号所引入的歧义。
在一些实施方式中,序列模型可用于在给定图像嵌入历史的情况下预测未来动作符号。在给定图像嵌入(E1,...,ET)序列直至当前时间t的情况下,可以预测接下来的k个动作符号(at+1,...,at+k):
at+1,...,at+k=SeqMod(E1,...,Et)
在一些实施方式中,上述公式可以被视为图像嵌入到动作符号序列的‘转换’。因此,可以利用序列到序列模型(即,神经转换公式),其中可以将嵌入序列映射到动作序列。在一些实施方式中,序列到序列模型可以由编码器和解码器LSTM组成。编码器可以将输入图像作为嵌入序列消耗,并且可以将输入图像编码为单个向量,所述向量继而可以由第二LSTM解码为动作符号序列。
在一些实施方式中,基于图像嵌入和动作符号来学习任务的序列结构可以在改变子任务的不同的组合的情况下并且取决于给定场景配置来促进任务的进行。举例来说,所示的堆叠任务要求在具体配置中堆叠彩色块。两个块(红色、黄色)需要在其它块(粉红色、绿色)可以堆叠在其上之前放置。在给定这个任务描述的情况下,可以以不同的顺序进行所述任务。举例来说,蓝色块可以独立于其它块搭建,而绿色块和粉色块依赖于红色块和黄色块。
在一些实施方式中,动作符号可以被建模为动作基元(motion primitives)。动作基元是用于进行原子动作(例如,抓握、放置等)的参数化策略。基元可以用作可以由例如状态机组成的构建块,以实现更高级的机器人行为。举例来说,将对象放入柜子中的任务可以具有以下动作基元:抓握、打开/关闭柜子和放置。状态机可用于基于世界状态对基元进行定序。最初,状态机可以触发柜子打开基元。在成功后,状态机可以切换到抓握基元并且可以将状态机调节到需要抓握的特定对象上。随后状态机可以继续放置基元,然后是关闭柜子基元。在失败的情况下,状态机可以切换基元以从错误中恢复。应注意,状态机的使用可以隐含地要求访问成功检测模块以便从一个基元正确地过渡到另一基元。
在一些实施方式中,状态机可以与动作基元一起使用。符号预测网络可以代替状态机和成功检测模块。动作符号中的每个动作符号可以对应于动作基元,因此我们具有单独基元来抓握杯子、抓握球、移动杯子、移动球、滑动门等等。应注意,在不失一般性的情况下,一些实施方式可以针对每个对象利用不同的抓握/移动基元来简化运行时执行。可替代地,在一些其它实施方式中,所有抓握基元可以统一为用于多个对象(例如杯子和球)的一种抓握策略。
在一些实施方式中,动作基元中的每个动作基元可以被建模为动态系统策略(DSP),其可以从一些示范中被训练。在给定目标姿势,即对象姿势的情况下,DSP将机器人臂从其初始姿势驱动到目标姿势,同时表现出与示范类似的行为。在一些实施方式中,可以基于通过动觉示范捕获的五个示范来训练基元中的每个基元。对每个DSP基元的输入可以是当前对象和臂末端实现器姿势,并且输出可以是下一个末端实现器姿势。在一些实施方式中,机器人配备有进行对象检测和分类并且可以提供每个对象关于机器人框架的笛卡尔位姿(Cartesian pose)的感知系统,所述位姿可以被传递给DSP基元。DSP表示可以允许用几个示范快速地对每个基元进行建模,然而,这可能是以取决于感知系统为代价的。可以使用额外和/或可替代的(多种)方法来取代DSP,例如使用端到端深度网络策略来代表每个基元以避免这种依赖性。
在一些实施方式中,一旦序列模型确定下一个动作,就可以用相关对象的姿势调用对应基元,并且机器人可以开始执行运动。应注意,在一些实施方式中,存在两个循环:1)DSP控制循环,该DSP控制循环例如以20Hz(赫兹)运行并且负责将臂移动到目标地点,以及2)符号切换循环,该符号切换循环例如以2Hz运行并仅基于图像流来确定需要执行的下一个基元。
在一些实施方式中,动作分类器可以在单对图像和动作符号上进行训练,并且这些对可以从训练数据的所有序列中随机地(或伪随机地)选择。进一步地,动作分类模型可以针对每个数据集单独训练,直至收敛。在一些实施方式中,动作分类模型在200个时代(epochs)内收敛。
在一些实施方式中,可以在图像嵌入和动作符号的序列上训练序列到序列网络。网络可以在指定序列长度(SL)的子序列上进行训练,而不是在完整序列上进行训练。举例来说,可以使用长度为10、20、30和/或额外或可替代长度的子序列来训练序列到序列网络。可以将子序列生成为整个序列上的‘滑动窗’。在一些实施方式中,序列到序列模型可以被训练以便转换图像嵌入序列以预测动作符号序列。然而,预测动作符号序列可能会偏移达k,其中k表示我们想要在未来预测的步骤数。举例来说,可以将步骤数设置为k=1,这意味着可以预测未来一步的动作。在一些实施方式中,步骤数可以设置为k=N步骤数,这意味着可以预测未来N个步骤的动作(例如,k=1,其中可以预测未来一步的动作;k=2,其中可以预测未来两步的动作;k=3,其中可以预测未来三步的动作等)。
在一些实施方式中,编码器可以获取输入帧嵌入并且可以从其最后的循环层生成状态嵌入向量,所述最后的循环层编码所有输入元素的信息。随后解码器可以获取这种状态嵌入并将其转换回动作符号序列。在一些实施方式中,可以针对每个任务个别训练两个网络。序列到序列模型可以用256的潜在维度进行训练,并且通常在50个时代之后收敛。在一些实施方式中,任一模型的超参数可能没有被特定微调。另外或可替代地,在一些实施方式中,可以针对每个任务同时训练两个网络。
转向附图,图1图示了使用环境调节的动作序列预测模型生成预测动作集合并使用预测动作集合控制机器人的示例。在所图示示例中,传感器数据102的实例可以使用环境调节的动作序列预测模型104来处理,以生成预测动作集合112和对应顺序以进行所述集合中的动作。可以使用机器人的一个或多个传感器来捕获传感器数据102的实例。举例来说,可以使用机器人的各种传感器来捕获传感器数据102的实例,例如视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等等。在各种实施方式中,传感器数据102的实例可以包含使用机器人的相机捕获的视觉数据的实例。环境调节的动作序列预测模型104可以包含卷积神经网络模型部分106、编码器部分108、解码器部分110和/或额外或可替代的机器学习模型部分(未描绘)。在许多实施方式中,可以使用卷积神经网络模型部分106来处理传感器数据102以生成对应于传感器数据的实例的嵌入。另外或可替代地,编码器108和解码器110可用于处理嵌入以生成预测动作集合112。
预测动作集合112可以包含动作1 114、动作2 116、…、动作N 118。在许多实施方式中,动作集合具有对应特定顺序,例如进行动作1 114、进行动作2 116、...、进行动作N118。每个预测动作可以在动作网络120中具有对应动作网络。举例来说,动作网络1 122可以对应于动作1 114,动作网络2 124可以对应于动作2 124,…,动作网络N 126可以对应于动作N 118。在多种实施方式中,选择的动作网络可用于处理额外传感器数据128的一个或多个实例以用于机器人控制130以使机器人进行动作1。一旦动作1完成,动作网络2 124就可用于处理额外传感器数据128的一个或多个额外实例以用于机器人控制130以使机器人进行动作2。另外或可替代地,一旦动作N-1完成,动作网络N 126可用于处理额外传感器数据128的一个或多个额外实例以用于机器人控制130以使机器人进行动作N。
图2A图示了示例对象操纵机器人任务。示例200图示了目的为将块定位在期望地点的对象操纵任务。块202是放置在期望位置208的圆。块204是放置在期望位置210的三角形,其堆叠在块202的顶部上。块206是放置在期望位置212的正方形。块202和204的放置具有固有序列顺序,其中块202必须在块204放置在块202顶部上的位置210之前放置在位置208。另外或可替代地,块206的放置不具有固有序列顺序,因为块206可以在块202之前放置、在块202与块204的放置之间放置和/或在块204的放置之后放置。换句话说,在所示示例中,各种动作序列可用于块放置,包含:(1)放置块206、放置块202、放置块204;(2)放置块202、放置块206、放置块204以及(3)放置块202、放置块204、放置块206。
图2B图示了捕获对象202、204和206的初始姿势的视觉数据214的实例。对象202最初位于位置216处,对象204最初位于位置218处并且对象206最初位于位置220处。根据许多实施方式的环境调节的动作序列预测模型可以用于确定预测动作集合以及对应顺序以将对象202放置在位置208处、将对象204放置在位置210处以及将对象206放置在位置212处。举例来说,环境调节的动作序列预测模型可以确定具有对应特定顺序的预测动作集合:(1)放置块206、放置块202、放置块204;(2)放置块202、放置块206、放置块204和/或(3)放置块202、放置块204、放置块206。在所图示示例中,期望目的位置208、210和212由虚线描绘。
图2C图示了捕获对象202、204和206的额外初始姿势的视觉数据222的另一实例。对象202最初位于位置208,对象204最初位于位置226并且对象206最初位于位置224。对象202的初始定位使得对象202已被定位在期望目的位置208中。换句话说,机器人不需要移动对象202来完成任务。环境调节的动作序列预测模型可以用于确定具有对应特定顺序的预测动作集合:(1)放置块204、放置块206;和/或(2)放置块206、放置块204。
图3图示了其中可以实施本文描述的实施方式的示例环境。图3包含示例机器人300、动作序列预测系统302、预测引擎304、动作网络引擎306、预测模型训练引擎310、动作网络训练引擎316和/或额外或可替代的引擎(未描绘)。还包含预测模型308、预测训练示例312、动作模型314和动作训练示例318。
机器人300是具有多个自由度的“机械臂”,以使得抓握末端实现器能够沿着多个潜在路径中的任何潜在路径横越以将抓握末端实现器定位在期望地点。机器人300进一步控制抓握末端实现器的两个相对的“爪”以至少在打开位置与关闭位置(和/或可选地多个“部分关闭”位置)之间致动爪。进一步地,机器人300可以包含多种传感器,所述传感器可以生成与传感器视线内的对象的形状、颜色、深度和/或其它特征相关的图像。视觉传感器可以是例如单幅相机、立体相机和/或3D激光扫描仪。3D激光扫描仪可以是例如飞行时间3D激光扫描仪或基于三角测量的3D激光扫描仪并且可以包含位置敏感检测器(PDS)或其它光学位置传感器。机器人300可以包含额外和/或可替代的传感器。
尽管关于图3描述了特定机器人300,但可以利用额外和/或可替代的机器人,包含类似于机器人300的额外机器人臂、具有其它机器人臂形式的机器人、具有人形形式的机器人、具有动物形式的机器人、通过一个或多个轮子移动的机器人(例如,自平衡机器人)、潜水器机器人、无人驾驶飞行器(“UAV”)等等。可以利用额外和/或可替代的末端实现器进行,例如可替代的冲击抓握末端实现器(例如,具有抓握“板”的实现器,具有更多或更少“指”/“爪”的实现器)、侵入式抓握末端实现器、收缩性抓握末端实现器、触及性抓握末端实现器或非抓握末端实现器。
机器人300可以利用动作序列预测系统302来生成预测动作集合和对应特定顺序。在许多实施方式中,动作序列预测系统302可以包含预测引擎304以及动作网络引擎306。在许多实施方式中,预测引擎304可以使用环境调节的动作序列预测模型308来处理传感器数据的实例(例如视觉数据的实例),以生成预测动作集合以及对应特定顺序来进行预测动作。预测模型训练引擎310可以使用预测训练示例312来训练预测模型308。关于图5的过程500和/或图6的过程600描述了根据各种实施方式训练环境调节的动作序列预测模型,例如预测模型308。
动作网络引擎306可以处理使用预测引擎304确定的预测动作集合以确定动作模型314的一个或多个对应动作模型。在许多实施方式中,每个预测动作具有独特的对应动作模型。另外或可替代地,动作网络引擎306可以处理传感器数据的额外实例以通过使用对应动作模型处理传感器数据的所述额外实例来进行预测动作集合中的每个动作,直至完成动作并且完成动作集合。动作网络训练引擎316可以基于动作训练示例来训练动作模型314。在各种实施方式中,动作训练示例318可以包含使用机器人进行每个动作的操作员的动觉示范。在各种实施方式中,每个动作模型可以是通过动作网络训练引擎316使用强化学习训练的策略网络。本文关于图7的过程700描述了根据许多实施方式来训练一个或多个动作网络,例如动作模型314。
图4是根据本文公开的实施方式的图示基于预测动作集合来控制机器人的示例过程400的流程图。为了方便起见,过程400的操作是参考进行操作的系统来描述的。这个系统可以包含各种计算机系统的各种组件,例如图8和/或图9中描绘的一个或多个组件。此外,虽然过程400的操作以特定顺序示出,但这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框402处,系统使用环境调节的动作序列预测模型处理传感器数据的实例(例如,图1的传感器数据102)来确定预测动作集合以及对应的特定顺序来进行针对机器人任务的动作。传感器数据的实例可以包含使用机器人的一个或多个视觉传感器捕获的视觉数据的实例。举例来说,视觉数据的实例可以包含使用机器人的相机捕获的图像。然而,这仅仅是说明性的,并且可以根据本文描述的一些实施方式利用传感器数据的额外和/或可替代的实例。
在许多实施方式中,环境调节的动作序列预测模型可以包含卷积神经网络部分、序列到序列网络部分和/或额外或可替代的部分。在一些这类实施方式中,可以使用卷积神经网络模型部分来处理视觉数据的实例以确定对应于视觉数据的实例的嵌入。可以使用序列到序列模型部分(例如,编码器-解码器模型部分)来处理嵌入,以确定预测动作集合和对应顺序以进行针对机器人任务的预测动作。根据许多实施方式的环境调节的动作序列预测模型可以用于各种机器人任务,包含对象操纵任务、导航任务和/或额外机器人任务。图4的过程400是关于卷积神经网络部分和序列到序列网络部分描述的。然而,这仅仅是说明性的并且可以利用额外和/或可替代的网络。举例来说,可以利用多种网络中的任何一种网络,包含递归神经网络部分、变换器模型部分和/或额外或可替代的神经网络部分。
在许多实施方式中,预测动作集合根据机器人的环境进行调节(例如,根据传感器数据的实例进行调节)。举例来说,在关于图2A至图2C描述的对象操纵对象中,环境调节的动作序列预测模型可以用于基于传感器数据的不同初始实例来确定预测动作的不同集合。
在框404处,系统以特定顺序选择预测动作集合中的未进行动作。
在框406处,系统选择对应于选择的动作的动作网络。在许多实施方式中,独特的动作预测网络对应于每个预测动作。举例来说,动作预测网络可以各自是使用动态系统策略训练的策略网络。在一些实施方式中,可以使用动作网络引擎306从如图3中描述的动作模型314中选择对应于选择的动作的动作网络。
在框408处,系统使用选择的动作网络处理传感器数据的额外实例以生成输出。举例来说,传感器数据的额外实例可以包含每个对象关于机器人的当前姿势。
在框410处,系统基于生成的输出来控制机器人。举例来说,当机器人正在进行导航任务时,生成的输出可以指示用于机器人的轨迹。作为另一示例,生成的输出可以指示用于移动末端实现器以抓握对象的电机命令。
在框412处,系统确定机器人是否已经完成进行选择的动作。如果否,则系统返回到框408以使用选择的动作网络处理传感器数据的额外实例以生成额外输出,并且进行到框410以基于所额外生成的输出来控制机器人。如果机器人已完成进行选择的动作,则系统进行到框414。
在框414处,系统确定预测动作集合中是否存在任何未进行动作。如果是,则系统进行到框404,并且在使用下一个未进行动作进行到框406、408和410之前,以特定顺序选择预测动作集合中的下一个未进行动作。如果否,则过程结束。
图5是根据本文公开的实施方式的图示训练环境调节的动作序列预测模型的卷积神经网络模型部分的示例过程500的流程图。为了方便起见,过程500的操作是参考进行操作的系统来描述的。这个系统可以包含各种计算机系统的各种组件,例如图8和/或图9中描绘的一个或多个组件。此外,虽然过程500的操作以特定顺序示出,但这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框502处,系统选择机器人任务视觉数据的训练序列,其中训练序列中的每个动作具有对应标签。举例来说,训练序列可以捕获进行上文关于图2B描述的对象操纵任务的机器人,其中训练序列中的对应动作具有以下标签:移动块202、移动块204、移动块206。在许多实施方式中,机器人任务视觉数据的训练序列可以从图3的预测训练示例312中选择。
在框504处,系统选择视觉数据的实例和在框502处选择的训练序列中的动作的对应标签。举例来说,系统可以在捕获机器人移动块202的训练序列中选择视觉数据的实例,并且可以选择“移动块202”的对应动作标签。
在框506处,系统使用环境调节的动作序列预测模型的卷积神经网络模型部分来处理视觉数据的选择的实例以生成预测输出。举例来说,系统可以使用如图1所图示的动作序列预测模型104的CNN 106来处理视觉数据的选择的实例。
在框508处,系统确定预测输出与对应动作标签之间的差异。
在框510处,系统基于在框508处确定的差异来更新卷积神经网络模型部分中的一个或多个部分。举例来说,系统可以使用反向传播来更新卷积神经网络模型中的一个或多个权重。
在框512处,系统确定是否处理训练序列中的任何额外动作。如果是,则系统返回到框504并在使用视觉数据的额外实例和额外对应动作标签进行到框506、508和510之前,选择视觉数据的额外实例和额外对应动作标签。如果否,则系统进行到框514。
在框514处,系统确定是否处理机器人任务的任何额外训练序列。如果是,则系统返回到框502并在使用额外训练序列进行到框504、506、508、510和512之前选择机器人视觉数据的额外训练序列。如果否,则系统结束。
图6是根据本文公开的实施方式的图示训练环境调节的动作序列预测模型的序列到序列模型部分的示例过程600的流程图。为方便起见,过程600的操作是参照进行操作的系统来描述的。这个系统可以包含各种计算机系统的各种组件,例如图8和/或图9中描绘的一个或多个组件。此外,虽然过程600的操作以特定顺序示出,但这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框602处,系统选择机器人任务视觉数据的训练序列,其中序列中的每个动作具有对应标签。在许多实施方式中,可以从图3的预测训练示例312中选择训练序列。
在框604处,系统使用环境调节的动作序列预测模型的卷积神经网络模型部分来处理选择的训练序列以生成嵌入的输出序列。在一些实施方式中,环境调节的动作序列预测模型的卷积神经网络模型部分根据图5的过程500进行训练。
在框606处,系统从针对动作的训练序列中选择动作的生成的嵌入和对应标签。
在框608处,系统使用环境调节的动作序列预测模型的序列到序列模型部分来处理选择的嵌入以生成预测动作输出。
在框610处,系统确定预测动作输出与对应动作标签之间的差异。
在框612处,系统基于在框610处确定的差异更新序列到序列模型中的一个或多个部分(例如,通过反向传播更新)。
在框614处,系统确定是否处理使用卷积神经网络生成的动作的任何额外嵌入。如果是,则系统返回到框606并在使用额外动作进行到框608、610和612之前选择该动作的额外嵌入。如果否,则系统进行到框616。
在框616处,系统确定是否选择机器人任务视觉数据的任何额外训练序列。如果是,则系统返回到框602并在使用额外训练序列进行到框604、606、608、610、612和614之前选择该额外训练序列。如果否,则系统结束。
图7是根据本文公开的实施方式的图示训练一个或多个动作网络的示例过程700的流程图。为方便起见,过程700的操作是参照进行操作的系统来描述的。这个系统可以包含各种计算机系统的各种组件,例如图8和/或图9中描绘的一个或多个组件。此外,虽然过程700的操作以特定顺序示出,但这并不意味着限制。一个或多个操作可以被重新排序、省略和/或添加。
在框702处,系统选择机器人任务的动作。
在框704处,系统选择对应于动作的动作训练数据序列。在许多实施方式中,动作训练数据选自图3中描绘的动作训练示例318。
在框706处,系统使用动作训练数据的选择的序列来生成对应于动作的针对动作模型的更新的策略参数。
在框708处,系统使用更新的策略参数来更新动作模型。
在框710处,系统确定是否处理针对机器人动作的额外训练序列。如果是,则系统返回到框704,并在使用训练数据的额外序列进行到框706和708之前选择对应于动作的该训练数据的额外序列。如果否,则系统进行到框712。
在框712处,系统确定是否训练对应于额外动作的额外动作模型。如果是,则系统返回到框702并在使用额外动作进行到框704、706、708和710之前选择机器人任务的该额外动作。如果否,则系统结束。
图8示意性地描绘了机器人825的示例架构。机器人825包含机器人控制系统860、一个或多个操作组件825a-825n和一个或多个传感器842a-842m。传感器842a-842m可以包含例如视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等等。虽然传感器842a-842m被描绘为与机器人825集成在一起,但这并不意味着限制。在一些实施方式中,传感器842a-842m可以位于机器人825外部,例如作为独立单元。
操作组件840a-840n可以包含例如一个或多个末端实现器和/或一个或多个伺服电机或其它致动器以实现机器人的一个或多个组件的移动。举例来说,机器人825可以具有多个自由度,并且致动器中的每个致动器可以响应于控制命令而在一个或多个自由度内控制机器人825的致动。如本文所用,除了可与致动器相关联并将接收的控制命令转换成用于驱动致动器的一个或多个信号的任何驱动器之外,术语致动器还涵盖产生运动的机械或电气装置(例如,电机)。因此,向致动器提供控制命令可以包括向驱动器提供控制命令,该驱动器将控制命令转换成用于驱动电气或机械装置产生期望运动的适当信号。
机器人控制系统860可以在机器人825的一个或多个处理器中实施,例如CPU、GPU和/或其它控制器。在一些实施方式中,机器人825可以包括“电脑(brain box)”,其可以包含控制系统860的所有或方面。举例来说,电脑可以向操作组件840a-840n提供数据的实时突发,其中实时突发中的每个实时突发包括一个或多个控制命令集合,这些命令尤其指配用于一个或多个操作组件840a-840n中的每个操作组件的运动参数(如果有的话)。在一些实施方式中,机器人控制系统860可以进行本文描述的过程400、500、600和/或700的一个或多个方面。如本文所述,在一些实施方式中,由控制系统860生成的控制命令的所有或方面可以定位机器人825的肢体以用于机器人位移任务。尽管控制系统860在图8中被图示为机器人825的集成部分,但在一些实施方式中,控制系统860的所有或方面可以在与机器人825分离但与机器人825通信的组件中实施。举例来说,控制系统860的所有或方面可以在与机器人825有线和/或无线通信的一个或多个计算装置上实施,例如计算装置910。
图9是可以可选地用于进行本文描述的技术的一个或多个方面的示例计算装置910的框图。举例来说,在一些实施方式中,计算装置910可以用于提供机器人825和/或其它机器人的期望位移。计算装置910通常包含至少一个处理器914,所述至少一个处理器通过总线子系统912与多个外围装置通信。这些外围装置可以包含:存储子系统924,该存储子系统包含例如存储器子系统925和文件存储子系统926;用户界面输出装置920;用户界面输入装置922;以及网络接口子系统916。输入和输出装置允许用户与计算装置910交互。网络接口子系统916提供到外部网络的接口并且耦合到其它计算装置中的对应接口装置。
用户界面输入装置922可以包含键盘、例如鼠标、轨迹球、触摸板或图形输入板的定点装置、扫描仪、并入到显示器中的触摸屏、例如语音识别系统的音频输入装置、麦克风和/或其它类型的输入装置。一般来说,术语“输入装置”的使用旨在包含将信息输入到计算装置910中或通信网络上的所有可能类型的装置和方式。
用户界面输出装置920可以包含显示子系统、打印机、传真机或例如音频输出装置的非视觉显示器。显示子系统可以包含阴极射线管(CRT)、例如液晶显示器(LCD)的平板装置、投影装置或用于产生可见图像的一些其它机构。显示子系统还可以提供非视觉显示,例如通过音频输出装置。一般来说,术语“输出装置”的使用旨在包含将信息从计算装置910输出到用户或另一机器或计算装置的所有可能类型的装置和方式。
存储子系统924存储提供本文描述的模块中的一些或所有模块的功能性的编程构造和数据构造。举例来说,存储子系统924可以包含用于进行图4、图5、图6和/或图7的过程的选择的方面的逻辑。
这些软件模块通常由处理器914单独或与其它处理器组合执行。存储子系统924中使用的存储器925可以包含多个存储器,包含用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)930和其中存储固定指令的只读存储器(ROM)932。文件存储子系统926可以为程序和数据文件提供持久存储,并且可以包含硬盘驱动器、软盘驱动器连同相关联的可移动介质、CD-ROM驱动器、光驱动器或可移动介质盒。实施某些实施方式的功能性的模块可以由文件存储子系统926存储在存储子系统924中,或存储在能够由处理器914访问的其它机器中。
总线子系统912提供用于让计算装置910的各种组件和子系统按预期彼此通信的机制。尽管总线子系统912被示意性地示出为单个总线,但是总线子系统的可替代实施方式可以使用多个总线。
计算装置910可以是变化类型,包含工作站、服务器、计算集群、刀片服务器、服务器群或任何其它数据处理系统或计算装置。由于计算机和网络的不断变化的性质,图9中描绘的计算装置910的描述仅旨在作为为了图示一些实施方式的具体示例。计算装置910的许多其它配置可能具有比图9中描绘的计算装置更多或更少的组件。
尽管本文已经描述和图示了几种实施方式,但是可以利用用于进行功能和/或获得本文描述的结果和/或一个或多个优点的各种其它部件和/或结构,并且这种变化和/或修改中的每个变化和/或修改被认为在本文描述的实施方式的范围内。更一般来说,本文中描述的所有参数、尺寸、材料和配置均意味是示例性的,并且实际参数、尺寸、材料和/或配置将取决于本教导所使用的一个或多个具体应用。本领域技术人员将认识到或能够仅使用常规实验来确定本文描述的具体实施方式的许多等效物。因此,应理解,前述实施方式仅作为示例呈现,并且在所附权利要求及其等效物的范围内,可以以不同于具体描述和权利要求的方式来实践实施方式。本公开的实施针对本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这类特征、系统、物品、材料、套件和/或方法不是相互矛盾的,那么两个或者更多个这类特征、系统、物品、材料、套件和/或方法的任何组合包含在本公开的范围内。
在一些实施方式中,提供了一种由机器人的一个或多个处理器实施的方法,所述方法包含使用环境调节的动作序列预测模型处理传感器数据的实例,其中所述传感器数据包含由所述机器人的视觉组件捕获的视觉数据实例,并且其中所述环境调节的动作序列预测模型是经训练的机器学习模型。所述方法还包含基于以使用所述环境调节的动作序列预测模型的处理为基础而生成的输出,确定针对机器人任务的预测动作集合,以及用于进行所述集合的预测动作的特定顺序。所述方法还包含控制所述机器人来以所述特定顺序进行所述集合的预测动作,其中控制所述机器人来以所述特定顺序进行所述集合的预测动作中的每个预测动作包含:针对所述预测动作中的每个预测动作,并且以所述特定顺序选择对应于所述预测动作的对应动作网络。在确定所述预测动作完成之前,所述方法还包含使用所述对应动作网络来处理所述机器人的对应额外传感器数据。所述方法还包含基于以使用所述对应动作网络为基础的所述处理所生成的动作输出来控制所述机器人。
本文公开的技术的这些实施方式和其它实施方式可以包含以下特征中的一个或多个特征。
在一些实施方式中,所述方法还包含使用所述环境调节的动作序列预测模型来处理传感器数据的第二实例,其中第二数据的所述第二实例包含由所述机器人的视觉组件捕获的视觉数据的第二实例。在那些实施方式的一些版本中,所述方法还包含基于以使用所述环境调节的动作序列预测模型的处理为基础而生成的第二输出,确定针对所述机器人任务的第二预测动作集合,以及用于进行所述集合的预测动作的第二特定顺序。在那些实施方式的一些版本中,所述方法还包含控制所述机器人来以所述特定顺序进行所述第二集合的预测动作,其中控制所述机器人来以所述特定顺序进行所述第二集合的预测动作中的每个预测动作包含针对所述第二集合中的所述预测动作中的每个预测动作,并且以所述第二特定顺序,选择对应于所述预测动作的所述对应动作网络。在确定预测动作完成之前,在那些实施方式的一些版本中,所述方法还包含使用所述对应动作网络处理针对所述机器人的对应额外传感器数据,以及基于以使用所述对应动作网络为基础的所述处理所生成的额外动作输出来控制所述机器人。在那些实施方式的一些版本中,针对所述任务的预测动作集合包含一个或多个预测动作,所述一个或多个预测动作不包含于针对所述任务的所述第二预测动作集合中。在那些实施方式的一些版本中,所述预测动作集合中的预测动作与所述第二预测动作集合中的预测动作是相同的,并且其中针对所述预测动作集合的特定顺序不是针对所述第二预测动作集合的特定顺序。在那些实施方式的一些版本中,使用所述环境调节的动作序列预测模型处理传感器数据的所述实例包含使用所述环境调节的动作序列预测模型的卷积神经网络模型部分处理视觉数据的所述实例以生成对应于视觉数据的所述实例的嵌入。在那些实施方式的一些版本中,所述方法还包含使用所述环境调节的动作序列预测模型的编码器-解码器模型部分处理所述嵌入以生成输出。
在一些实施方式中,所述任务是对象操纵任务。
在一些实施方式中,所述任务是机器人导航任务。
在一些实施方式中,每个预测动作具有独特的对应动作网络。在那些实施方式的一些版本中,针对每个预测动作的所述独特的对应动作网络是策略网络。在那些实施方式的一些版本中,使用动态系统策略来训练针对每个预测动作的所述独特的对应动作网络。
在一些实施方式中,使用所述对应动作网络处理所述机器人的对应额外传感器数据包含使用所述机器人的感知系统来检测所述机器人的环境中的一个或多个对象。在那些实施方式的一些版本中,所述方法还包含使用所述机器人的感知系统来确定每个检测对象的姿势。在那些实施方式的一些版本中,所述方法还包含使用所述对应动作网络来处理每个检测对象的所确定的姿势。
在一些实施方式中,所述环境调节的动作序列预测模型通过选择传感器数据的训练实例来训练,所述传感器数据的训练实例包含捕获所述机器人进行动作的视觉数据的训练实例和所述动作的对应标签。在那些实施方式的一些版本中,所述方法还包含使用所述环境调节的动作序列预测模型的所述卷积神经网络模型部分来处理视觉数据的所述训练实例以生成预测嵌入。在那些实施方式的一些版本中,所述方法还包含确定所述预测嵌入与所述动作的标签之间的差异。在那些实施方式的一些版本中,所述方法还包含基于所确定的差异来更新所述卷积神经网络模型中的一个或多个部分。
在一些实施方式中,所述方法还包含使用所述环境调节的动作序列预测模型的编码器-解码器模型部分来处理使用所述卷积神经网络生成的所述预测嵌入,以生成预测输出。在那些实施方式的一些版本中,所述方法还包含确定所述预测输出与所述对应动作标签之间的额外差异。在那些实施方式的一些版本中,所述方法还包含基于所确定的额外差异来更新所述编码器-解码器模型中的一个或多个部分。
在一些实施方式中,通过选择动作训练实例来针对每个预测动作的策略网络进行训练,所述动作训练实例包含捕获进行所述预测动作的所述机器人的视觉数据的序列。在那些实施方式的一些版本中,所述方法还包含使用所述选择的动作训练实例为对应于所述预测动作的所述策略网络生成更新的策略参数。在那些实施方式的一些版本中,所述方法还包含使用所述更新的策略参数来更新对应于所述预测动作的所述策略网络的一个或多个部分。
此外,一些实施方式包含一个或多个计算装置的一个或多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和/或张量处理单元(TPU),其中所述一个或多个处理器能够操作以执行存储在相关联的存储器中的指令,并且其中所述指令被配置用以执行本文描述的方法中的任何方法。一些实施方式还包含一个或多个暂时性或非暂时性计算机可读存储介质,所述一个或多个暂时性或非暂时性计算机可读存储介质存储能够由一个或多个处理器执行以进行本文描述的方法中的任何方法的计算机指令。

Claims (17)

1.一种由机器人的一个或多个处理器实施的方法,所述方法包括:
使用环境调节的动作序列预测模型处理传感器数据的实例,其中所述传感器数据包含由所述机器人的视觉组件捕获的视觉数据实例,并且其中所述环境调节的动作序列预测模型是经训练的机器学习模型;
基于以使用所述环境调节的动作序列预测模型的处理为基础而生成的输出,确定针对机器人任务的预测动作的集合,以及用于进行所述集合中的各预测动作的特定顺序;
控制所述机器人来以所述特定顺序进行所述集合中的各预测动作,其中控制所述机器人来以所述特定顺序进行所述集合中的各预测动作中的每个预测动作包括:
针对各预测动作中的每个预测动作,并且以所述特定顺序:
选择对应于所述预测动作的对应动作网络;
直至确定所述预测动作完成:
使用所述对应动作网络来处理所述机器人的对应额外传感器数据,以及
基于动作输出来控制所述机器人,所述动作输出是基于使用所述对应动作网络的所述处理而生成的。
2.根据权利要求1所述的方法,进一步包括:
使用所述环境调节的动作序列预测模型来处理传感器数据的第二实例,其中传感器数据的所述第二实例包含由所述机器人的视觉组件捕获的视觉数据的第二实例;
基于以使用所述环境调节的动作序列预测模型的处理为基础而生成的第二输出,确定针对所述机器人任务的预测动作的第二集合,以及用于进行所述集合中的各预测动作的第二特定顺序;
控制所述机器人来以所述特定顺序进行所述第二集合的各预测动作,其中控制所述机器人来以所述特定顺序进行所述第二集合的各预测动作中的每个预测动作包括:
针对所述第二集合中的各预测动作中的每个预测动作,并且以所述第二特定顺序:
选择对应于所述预测动作的所述对应动作网络;
直至确定所述预测动作完成:
使用所述对应动作网络处理针对所述机器人的对应额外传感器数据,以及
基于额外动作输出来控制所述机器人,所述额外动作输出是基于使用所述对应动作网络的所述处理而生成的。
3.根据权利要求2所述的方法,其中,针对所述任务的预测动作的所述集合包括未被包括在针对所述任务的预测动作的所述第二集合中的一个或多个预测动作。
4.根据权利要求2所述的方法,其中,预测动作的所述集合中的预测动作与预测动作的所述第二集合中的预测动作是相同的,并且其中针对预测动作的所述集合的所述特定顺序不是针对预测动作的所述第二集合的所述特定顺序。
5.根据权利要求2所述的方法,其中,使用所述环境调节的动作序列预测模型处理传感器数据的所述实例包括:
使用所述环境调节的动作序列预测模型的卷积神经网络模型部分处理视觉数据的所述实例以生成对应于视觉数据的所述实例的嵌入;以及
使用所述环境调节的动作序列预测模型的编码器-解码器模型部分处理所述嵌入以生成输出。
6.根据前述权利要求中的任一项所述的方法,其中,所述任务是对象操纵任务。
7.根据前述权利要求中的任一项所述的方法,其中,所述任务是机器人导航任务。
8.根据前述权利要求中的任一项所述的方法,其中,每个预测动作具有独特的对应动作网络。
9.根据权利要求8所述的方法,其中,针对每个预测动作的所述独特的对应动作网络是策略网络。
10.根据权利要求9所述的方法,其中,针对每个预测动作的所述独特的对应动作网络是用动态系统策略训练的。
11.根据前述权利要求中的任一项所述的方法,其中,使用所述对应动作网络处理所述机器人的对应额外传感器数据包括:
使用所述机器人的感知系统来检测所述机器人的环境中的一个或多个对象;
使用所述机器人的感知系统来确定每个检测对象的姿势;以及
使用所述对应动作网络来处理每个检测对象的所确定的姿势。
12.根据权利要求5所述的方法,其中,所述环境调节的动作序列预测模型通过以下训练:
选择包含捕获所述机器人进行动作的视觉数据的训练实例和所述动作的对应的标签的传感器数据的训练实例;
使用所述环境调节的动作序列预测模型的所述卷积神经网络模型部分来处理视觉数据的所述训练实例以生成预测嵌入;以及
确定所述预测嵌入与所述动作的标签之间的差异;
基于所确定的差异来更新所述卷积神经网络模型中的一个或多个部分。
13.根据权利要求12所述的方法,进一步包括:
使用所述环境调节的动作序列预测模型的编码器-解码器模型部分来处理使用所述卷积神经网络生成的所述预测嵌入,以生成预测输出;
确定所述预测输出与对应的动作标签之间的额外差异;以及
基于所确定的额外差异来更新所述编码器-解码器模型中的一个或多个部分。
14.根据权利要求9所述的方法,其中,针对每个预测动作的策略网络通过以下操作来训练:
选择动作训练实例,所述动作训练实例包含捕获所述机器人进行所述预测动作的视觉数据的序列;
使用所选择的动作训练实例为对应于所述预测动作的所述策略网络生成更新的策略参数;以及
使用所述更新的策略参数来更新对应于所述预测动作的所述策略网络的一个或多个部分。
15.一种包括指令的计算机程序产品,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行前述权利要求中的任一项所述的方法。
16.一种包括指令的计算机可读存储介质,当由一个或多个处理器进行时,所述所述指令使所述一个或多个处理器执行根据权利要求1至14中的任一项所述的方法。
17.一种系统,包括用于执行根据权利要求1至14中的任一项所述的方法的一个或多个处理器。
CN202080064771.0A 2019-09-15 2020-09-09 确定针对机器人任务的环境调节的动作序列 Pending CN114423574A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962900603P 2019-09-15 2019-09-15
US62/900,603 2019-09-15
PCT/US2020/049851 WO2021050488A1 (en) 2019-09-15 2020-09-09 Determining environment-conditioned action sequences for robotic tasks

Publications (1)

Publication Number Publication Date
CN114423574A true CN114423574A (zh) 2022-04-29

Family

ID=72562025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080064771.0A Pending CN114423574A (zh) 2019-09-15 2020-09-09 确定针对机器人任务的环境调节的动作序列

Country Status (4)

Country Link
US (1) US20220331962A1 (zh)
EP (1) EP4003665A1 (zh)
CN (1) CN114423574A (zh)
WO (1) WO2021050488A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6728495B2 (ja) * 2016-11-04 2020-07-22 ディープマインド テクノロジーズ リミテッド 強化学習を用いた環境予測
US11874671B2 (en) 2018-11-08 2024-01-16 SafeAI, Inc. Performing tasks using autonomous machines
US20210216596A1 (en) * 2020-01-13 2021-07-15 Digital Candy, Inc. Method for executing a search against degraded images
US20210229281A1 (en) * 2021-03-26 2021-07-29 Venkat Natarajan Collaborative multi-robot tasks using action primitives
US11713059B2 (en) * 2021-04-22 2023-08-01 SafeAI, Inc. Autonomous control of heavy equipment and vehicles using task hierarchies
US20240100693A1 (en) * 2022-01-27 2024-03-28 Google Llc Using embeddings, generated using robot action models, in controlling robot to perform robotic task
CN115204387B (zh) * 2022-07-21 2023-10-03 法奥意威(苏州)机器人系统有限公司 分层目标条件下的学习方法、装置和电子设备
WO2024028839A1 (en) * 2022-08-04 2024-02-08 Dematic Corp. Method for using reinforcement learning to optimize order fulfillment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049573A (zh) * 2013-03-14 2014-09-17 通用汽车环球科技运作有限责任公司 具有可扩展的编程环境的机器人任务指挥器
CN104908030A (zh) * 2015-06-23 2015-09-16 江南大学 基于粒度模型的scara机器人精准定位方法
US9314924B1 (en) * 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
CN106960099A (zh) * 2017-03-28 2017-07-18 清华大学 一种基于深度学习的机械手抓取稳定性识别方法
US20170355078A1 (en) * 2016-06-09 2017-12-14 Shmuel Ur Innovation Ltd. System, Method and Product for Utilizing Prediction Models of an Environment
US20180247160A1 (en) * 2017-02-27 2018-08-30 Mohsen Rohani Planning system and method for controlling operation of an autonomous vehicle to navigate a planned path
CN110168574A (zh) * 2016-11-04 2019-08-23 谷歌有限责任公司 中间强化学习目标的无监督的检测

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055667B2 (en) * 2016-08-03 2018-08-21 X Development Llc Generating a model for an object encountered by a robot
JP6721785B2 (ja) * 2016-09-15 2020-07-15 グーグル エルエルシー ロボット操作のための深層強化学習
EP3696733B1 (en) * 2019-02-13 2024-03-27 Siemens Aktiengesellschaft Encoding and transferring scene and task dependent learning information into transferable neural network layers
IT201900002853A1 (it) * 2019-02-27 2020-08-27 Magneti Marelli Spa "Sistema per ottenere la predizione di un’azione di un veicolo e procedimento corrispondente"
US11670001B2 (en) * 2019-05-17 2023-06-06 Nvidia Corporation Object pose estimation
US20210023715A1 (en) * 2019-07-24 2021-01-28 Abb Schweiz Ag Incorporating Vision System and In-Hand Object Location System for Object Manipulation and Training

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049573A (zh) * 2013-03-14 2014-09-17 通用汽车环球科技运作有限责任公司 具有可扩展的编程环境的机器人任务指挥器
US9314924B1 (en) * 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
CN104908030A (zh) * 2015-06-23 2015-09-16 江南大学 基于粒度模型的scara机器人精准定位方法
US20170355078A1 (en) * 2016-06-09 2017-12-14 Shmuel Ur Innovation Ltd. System, Method and Product for Utilizing Prediction Models of an Environment
CN110168574A (zh) * 2016-11-04 2019-08-23 谷歌有限责任公司 中间强化学习目标的无监督的检测
US20180247160A1 (en) * 2017-02-27 2018-08-30 Mohsen Rohani Planning system and method for controlling operation of an autonomous vehicle to navigate a planned path
CN106960099A (zh) * 2017-03-28 2017-07-18 清华大学 一种基于深度学习的机械手抓取稳定性识别方法

Also Published As

Publication number Publication date
EP4003665A1 (en) 2022-06-01
US20220331962A1 (en) 2022-10-20
WO2021050488A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
CN114423574A (zh) 确定针对机器人任务的环境调节的动作序列
US20200361082A1 (en) Machine learning methods and apparatus for robotic manipulation and that utilize multi-task domain adaptation
JP6921151B2 (ja) ロボットの把持のための深層機械学習方法および装置
JP6586243B2 (ja) ロボットの把持のための深層機械学習方法および装置
CN110785268B (zh) 用于语义机器人抓取的机器学习方法和装置
US9844873B2 (en) Apparatus and methods for haptic training of robots
US11559885B2 (en) Method and system for grasping an object
CN113677485A (zh) 使用基于元模仿学习和元强化学习的元学习的用于新任务的机器人控制策略的高效自适应
CN110691676A (zh) 使用神经网络和几何感知对象表示的机器人抓取预测
JP2013193202A (ja) 人間援助型タスクデモンストレーションを使用してロボットを訓練するための方法およびシステム
WO2019113067A2 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US20220161424A1 (en) Device and method for controlling a robotic device
CN115605326A (zh) 用于控制机器人的方法和机器人控制器
JP2022061022A (ja) 力及びトルク誘導ロボット組立のための技術
US11772272B2 (en) System(s) and method(s) of using imitation learning in training and refining robotic control policies
Yoon et al. Real-time video prediction using gans with guidance information for time-delayed robot teleoperation
US11712804B2 (en) Systems and methods for adaptive robotic motion control
US20240091951A1 (en) Synergies between pick and place: task-aware grasp estimation
US20220317659A1 (en) Transfer between Tasks in Different Domains
CN116079762A (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