CN115867947A - 用于确定机器人动作的传送器网络 - Google Patents
用于确定机器人动作的传送器网络 Download PDFInfo
- Publication number
- CN115867947A CN115867947A CN202080102599.3A CN202080102599A CN115867947A CN 115867947 A CN115867947 A CN 115867947A CN 202080102599 A CN202080102599 A CN 202080102599A CN 115867947 A CN115867947 A CN 115867947A
- Authority
- CN
- China
- Prior art keywords
- action
- embedding
- observation data
- model
- data
- 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
Links
- 230000009471 action Effects 0.000 title claims abstract description 220
- 238000000034 method Methods 0.000 claims description 97
- 238000009826 distribution Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 21
- 238000013528 artificial neural network Methods 0.000 claims description 20
- 230000001143 conditioned effect Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000009877 rendering Methods 0.000 claims 1
- 230000033001 locomotion Effects 0.000 abstract description 47
- 238000012549 training Methods 0.000 abstract description 35
- 238000010801 machine learning Methods 0.000 abstract description 20
- 230000008901 benefit Effects 0.000 abstract description 6
- 230000004044 response Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 26
- 230000000007 visual effect Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 21
- 239000012636 effector Substances 0.000 description 12
- 238000006073 displacement reaction Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 11
- 230000014616 translation Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 206010021403 Illusion Diseases 0.000 description 1
- 241000219793 Trifolium Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/022—Optical sensing devices using lasers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40532—Ann for vision processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/12—Acquisition of 3D measurements of objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Data Mining & Analysis (AREA)
- Robotics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Optics & Photonics (AREA)
- Fuzzy Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Image Analysis (AREA)
Abstract
基于传感器反馈来确定机器人动作的传送器网络可以为机器人提供有效的自主移动。传送器网络可以利用空间对称性,并且不需要对象度量的假设来提供准确的对象操纵指令。传送器网络的机器学习模型还可以允许用比其他机器学习模型更少的训练示例来学习各种任务。传送器网络的机器学习模型可以摄取观察数据作为输入,并且可以响应于所处理的观察数据来输出动作。
Description
技术领域
本公开一般涉及机器人操作。更具体地,本公开涉及使用机器学习来确定机器人动作。
背景技术
机器人学领域包括机器人的设计、构造、操作和应用、以及用于其控制、感觉反馈和信息处理的计算机***。在许多情况下,机器人的操纵或控制计划可以被表述为诱导一系列的空间位移:其中,被移动的空间可以包含一个或多个对象或末端效应器(例如,被控制的机器人)。
机器学习技术已被证明对机器人操纵或其他形式的机器人控制计划特别有利。例如,机器学习技术——诸如直接从像素映射到机器人动作的端到端模型——具有学习复杂操纵技能的能力。然而,众所周知,直接从像素映射到机器人动作的现有模型需要大量的数据,因此难以在几乎没有训练数据可用或者获得训练数据困难或昂贵的情况下应用。
作为替代方法,用于机器人操纵的一些机器学习方法整合关于场景内的对象的以对象为中心的假设(例如,对象关键点、嵌入或密集描述符)。该以对象为中心的方法已被证明提高采样效率。然而,这些对象表征经常带来数据收集的负担,并且仍然难以解决具有未见过类别的对象、被遮挡的对象、高度可变形的对象或成堆的小对象的困难场景。所需的大量数据收集可能减慢处理速度,并且可能成为计算负担。此外,模型的健壮性可能因为表征约束的僵化而减弱。
发明内容
本公开的实施例的各方面和优点将在以下描述中部分阐述,或者可以从描述中了解,或者可以通过实施例的实践了解。
本公开的一个示例方面涉及一种用于生成机器人的动作的计算机实现的方法。用于生成机器人的动作的计算机实现的方法可以包括:获得观察数据,其中,观察数据包括描述环境的数据。计算机实现的方法可以包括:至少部分基于观察数据来确定机器人的第一动作,并且利用第一嵌入模型处理观察数据来生成第一特征嵌入。计算机实现的方法可以包括:利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件。计算机实现的方法可以包括:至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人的第二动作。
本公开的另一示例方面涉及一种计算机***。计算机***可以包括一个或多个处理器和一个或多个非暂时性计算机可读介质,其共同存储指令,指令在由一个或多个处理器执行时,使计算***执行操作。操作可以包括:获得观察数据,其中,观察数据包括描述环境的数据。操作可以包括:确定机器人的第一动作,并且利用第一嵌入模型处理观察数据来生成第一特征嵌入。在一些实施方式中,操作可以包括:利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件。操作可以包括:至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人的第二动作。操作可以包括:评估损失函数,其将第一动作和第二动作中的一个或两个与第一基准真值(ground truth)动作和第二基准真值动作中的一个或两个进行比较;以及,至少部分基于损失函数,修改第一嵌入模型和第二嵌入模型中的一个或两个的一个或多个参数的一个或多个值。
本公开的另一示例方面涉及一种机器人设备。机器人设备可以包括一个或多个非暂时性计算机可读介质,其共同存储指令,指令在由一个或多个计算设备执行时,使一个或多个计算设备执行操作。在一些实施方式中,操作包括:获得观察数据,其中,观察数据包括描述环境的数据。操作可以包括:确定机器人设备的第一动作,并且利用第一嵌入模型处理观察数据来生成第一特征嵌入。操作可以包括:利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件。操作可以包括:至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人设备的第二动作。操作还可以包括:由机器人设备执行第一动作和第二动作。
本公开的其他方面涉及各种***、装置、非暂时性计算机可读介质、用户界面和电子设备。
参考以下描述和所附的权利要求,将更好理解本公开的各种实施例的这些和其他特征、方面和优点。并入本说明书并构成其一部分的附图示出本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
参考附图的说明书阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1A描绘根据本公开的示例实施例的示例计算***的框图。
图1B描绘根据本公开的示例实施例的示例计算设备的框图。
图1C描绘根据本公开的示例实施例的示例计算***的框图。
图2描绘根据本公开的示例实施例的用于确定机器人的动作的示例网络过程的框图。
图3描绘根据本公开的示例实施例的用于训练***以确定机器人的动作的示例网络过程的框图。
图4描绘根据本公开的示例实施例的用于确定机器人的动作的示例网络过程的框图。
图5描绘根据本公开的示例实施例的用于确定机器人的动作的示例方法的流程图。
图6描绘根据本公开的示例实施例的用于确定机器人的动作的示例方法的流程图。
图7描绘根据本公开的示例实施例的用于训练***以确定机器人的动作的示例方法的流程图。
在多个附图之间重复的附图标记旨在标识不同实施方式中的相同特征。
具体实施方式
概述
一般地,本公开描述用于基于对环境的观察——诸如环境的图像——来确定机器人的动作的***和方法。具体地,本文提出的***和方法可以利用端到端的机器学习传送器网络,其可以学习以从观察数据——诸如视觉输入——推断机器人动作。具体地,***可以利用深度特征模板匹配来从视觉输入推断空间位移,这可以参数化机器人动作。所提出的模型避免依赖于对象度量(objectness)(例如,典型姿态、模型或关键点)的假设,利用空间对称性,并且在学习基于视觉的操纵任务时比示例基准的替代方案具有高几个数量级的采样效率:从堆叠块的锥体到用未见过的对象组装成套设备;从操纵可变形的绳索到用闭环反馈推动成堆的小对象。所提出的***和方法可以表示复杂的多模态策略分布,并且可以概括到多步连续任务以及6DoF任务,诸如6DoF取放。在各种模拟任务上的实验表明所提出的模型比各种端到端基线,包括使用基准真值对象姿态的策略,学习得更快,概括性更好。
因此,本公开的各方面涉及在没有以对象为中心的假设的情况下保留基于视觉的操纵的空间结构的端到端模型架构(例如,其可以被称为“传送器网络(transporternetwork)”)。所提出的模型和关联***相对于现有的基于像素的方法提供提高的学习效率,但是没有带来明确对象表示的限制或负担中的任何一个。
具体地,操纵经常涉及到重新布置事物,这可以被认为是执行一系列空间位移:其中,被移动(例如,传送)的空间可以包括对象或末端效应器。所提出的方法可以将操纵的视觉表述为估计这些位移。传送器网络可以通过学习关注于局部区域并经由深度特征模板匹配预测其目标空间位移——然后参数化机器人动作来进行操纵,直接对此进行优化。该表述使得能够进行高层感知推理,其涉及哪些视觉线索是重要的,以及它们应该如何在场景中被重新布置,其分布可以从演示中学习。
示例传送器网络也可以保留视觉输入的3D空间结构。例如,先前的端到端模型经常使用采用与原始图像的卷积架构,其中,有价值的空间信息可能因透视失真而丢失。所提出的方法的示例实施方式使用3D信息将视觉数据投射到空间一致的表示上,利用此能够更好地利用数据对称性中存在的归纳偏差的等值性,以进行更高效的学习。
在实验上,所提出的传送器网络的示例实施方式在若干个台面操纵任务上展示出卓越的采样效率,其中,这些任务涉及以有目的的方式改变机器人的环境的状态:从堆积块的锥体到用未见过的对象组装成套设备;从操纵可变形的绳索到用闭环反馈推动成堆的小对象。传送器网络在对多模态空间动作分布的建模中也很出色,并且根据构造,概括对象的旋转和平移。它们不需要对要操纵的对象的任何先验知识,而是基于来自几个演示的部分视觉数据(例如,RGB-D数据)中包含的信息来操作,并且能够概括到新的对象和配置,以及对于一些任务,概括到从单次演示进行一次性学习。
因此,本公开的示例方面利用空间结构的作用及其能力的新视角来改善基于视觉的操纵的端到端学习。提供了示例模型架构,其学习关注于局部区域并预测其空间位移,同时保留视觉输入的空间结构。
更具体地,用于执行机器人控制的示例***和方法可以首先获得观察数据。观察数据可以包括描述环境的数据。观察数据可以是图像数据(例如,RGB数据等)。附加或可替换地,观察数据可以是光探测和测距(LiDAR)点云数据。
如上所述,一些示例实施方式可以预处理观察,以确保空间一致性。例如,机器人控制***可以将原始观察数据解投射到三维空间,然后将解投射的数据渲染成环境的正视表示,以生成空间一致的观察数据。
机器人控制***可以处理观察数据以确定机器人的第一动作。例如,确定第一动作可以包括:通过使用第一机器学习动作值模型(例如,其为更大的传送器网络的部分),基于观察数据来生成第一动作的第一概率分布。第一动作的确定还可以涉及选择第一概率分布的最大值作为第一动作。第一动作可以是机器人姿态的改变和/或与对象接触。第一概率分布可以包括指示一个或多个点可以是对象操纵的起始位置的相应概率的一个或多个点。
机器人控制***还可以利用第一嵌入模型处理观察数据来生成第一特征嵌入。例如,第一嵌入模型可以是更大的传送器网络的部分。***还可以利用第二嵌入模型处理观察数据来生成第二特征嵌入(同样,第二嵌入模型可以是更大的传送器网络的部分)。
在一些实施例中,第二嵌入模型以第一动作为条件。具体地,在一些实施方式中,利用第二嵌入模型处理观察数据可以包括:旋转和/或裁剪(例如,在与第一动作关联的位置周围的局部区域中的)观察数据,以生成多个经过旋转裁剪的数据样本。在这种实施方式中,利用第二嵌入模型处理观察数据可以包括:利用第二嵌入模型分别处理多个经过旋转裁剪的数据样本来分别生成多个第二特征嵌入。在一些实施方式中,第一嵌入模型和第二嵌入模型中的每一个可以是或包括全卷积神经网络。
然后,机器人控制***可以确定机器人的第二动作。在一些实施方式中,第二动作的确定可以部分依赖于第一特征嵌入和第二特征嵌入(或多个)的比较。
作为一个示例,比较可以是或包括两个特征嵌入的卷积。卷积可以包括将第二特征嵌入中的每一个在第一特征嵌入上进行卷积,以生成相应的第二概率分布。
作为另一示例,在更复杂的实施方式中,并非简单地卷积第一特征嵌入和第二特征嵌入(或多个),第二动作的确定可以包括:利用第二机器学习值动作模型(例如,其也可能是更大的传送器网络的部分)来处理第一特征嵌入和第二特征嵌入(或多个)。第二机器学习值动作模型可以基于特征嵌入(或多个),输出一个或多个第二概率分布。
第二动作的确定可以包括选择第二概率分布(或多个)的最大值作为第二动作。在一些情况下,第二动作可以是机器人的第二姿态和/或释放与对象的接触。因此,第二概率分布(或多个)可以包括指示一个或多个点可以是对象操纵的停止位置的相应概率的一个或多个点。
在一些实施方式中,机器人控制***还可以获得一组目标图像数据,利用第三嵌入模型处理目标图像数据来生成第三特征嵌入,并且基于来自全部三个嵌入模型的特征嵌入,确定第二动作和/或第一动作。
本公开的额外方面可以包括用于训练传送器网络(例如,其组成模型)以进行动作确定的训练步骤。训练步骤可以包括评估损失函数,其将第一动作和第二动作与第一基准真值动作和第二基准真值动作进行比较。响应于评估步骤,嵌入模型和/或动作值模型(或多个)的参数的值可以基于损失函数(例如,以端到端的方式)被修改。
在一些实施方式中,评估损失函数可以包括:基于第一基准真值动作来生成第一独热(one hot)基准真值像素图,并且基于第二基准真值动作来生成第二独热基准真值像素图。第一独热基准真值像素图可以包括第一多个像素,其具有指示第一动作在环境中的基准真值位置的相应二进制值。此外,第二独热基准真值像素图可以包括第二多个像素,其具有指示第二动作在环境中的基准真值位置的相应二进制值。然后,由传送器网络确定的第一动作和第二动作(例如,它们的相应位置)可以分别与第一独热基准真值像素图和第二基准真值像素图进行比较。
在一些实施方式中,损失函数可以是或包括交叉熵损失。交叉熵损失可以分别将第一动作和第二动作与第一独热基准真值像素图和第二独热基准真值像素图进行比较。具体地,比较可以在逐个像素的基础上评估。
因此,本文提供的***和方法可以被实现为简单的端到端模型架构,其在没有以对象为中心的假设的情况下,保留基于视觉的操纵的空间结构。基于视觉的操纵可以包括执行一系列空间位移。操纵可以移动对象或末端效应器。网络的***可以涉及视觉反馈的***,以确定空间位移和空间位移的顺序。***可以学习关注局部区域,并且通过深度特征模板匹配来预测目标空间位移。深度特征模板匹配可以使用观察数据,以基于处理后的观察数据来确定第一姿态和第二姿态。然后,深度特征模板匹配可以实现对机器人动作的确定,以便进行操纵。
本公开的***和方法提供许多技术效果和优点。作为一个示例,***和方法可以提供机器人的更高效的动作确定,因此,提高机器人的生产力。此外,***和方法可以减少数据收集的负担,并且可以减少计算所需的计算能量。由于***和方法可以在不需要对象关键点、嵌入或密集描述符的情况下进行动作确定,因此***或方法可以减少所需的摄取数据。这种减少可以减少***所需的计算能量。
本公开的***和方法的另一技术优点是只需少量的训练示例或演示就提供更好的性能的能力。与先前的模型相比,***和方法可以用更少示例来训练,这允许***和方法比其他模型学习得更快。更快的学习可以导致节约计算资源。此外,在更少的训练示例上训练模型实际上可以导致更少地使用计算资源(例如,处理器存储器等),因此通过使模型能够使用更少的训练示例学习,***和方法会节约计算资源。
此外,***和方法可以被迭代使用以完成一系列任务。学习的模型可以有效地确定调整多模态任务的动作。有效处理多模态任务的能力可以进一步提高机器人的生产力。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例设备和***
图1A描绘根据本公开的示例实施例的基于传感器反馈来执行动作确定的示例计算***100的框图。***100包括在网络180上可通信耦合的用户计算设备102、服务器计算***130和训练计算***150。
用户计算设备102可以是任何类型的计算设备,诸如例如,个人计算设备(例如,笔记本计算机或台式计算机)、移动计算设备(例如,智能手机或平板计算机)、游戏机或控制器、可穿戴计算设备、嵌入式计算设备、或任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存存储器设备、磁盘等、以及其组合。存储器114可以存储数据116和指令118,其中,指令118由处理器112执行,以使用户计算设备102执行操作。
在一些实施方式中,用户计算设备102可以存储或包括一个或多个动作确定模型120。例如,动作确定模型120可以是或可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度神经网络)或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、递归神经网络(例如,长短期记忆递归神经网络)、卷积神经网络或其他形式的神经网络。示例动作确定模型120将参考图2、图4、图5和图6来讨论。
在一些实施方式中,一个或多个动作确定模型120可以经由网络180从服务器计算***130被接收,被存储在用户计算设备的存储器114中,然后由一个或多个处理器112使用或以其他方式实现。在一些实施方式中,用户计算设备102可以实现单个动作确定模型120的多个并行实例。
更具体地,动作确定模型可以摄取传感器数据,并且输出机器人的动作。动作确定模型可以被用于确定机器人的动作,包括但不限于取放动作、推动作、拖动作和序列动作。
附加或可替换地,一个或多个动作确定模型140可以被包括在根据客户端服务器关系与用户计算设备102通信的服务器计算***130中,或以其他方式被存储在服务器计算***130中并由其实现。例如,动作确定模型140可以由服务器计算***140实现为web服务(例如,机器人操纵服务)的一部分。因此,一个或多个模型120可以在用户计算设备102处被存储和实现,和/或一个或多个模型140可以在服务器计算***130处被存储和实现。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或手写笔)的触摸敏感的组件(例如,触摸敏感的显示屏幕或触摸板)。触摸敏感的组件可以用来实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘、或其他用户可通过其提供用户输入的方式。
服务器计算***130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存存储器设备、磁盘等、以及其组合。存储器134可以存储数据136和指令138,其中,指令138由处理器132执行,以使服务器计算***130执行操作。
在一些实施方式中,服务器计算***130包括一个或多个服务器计算设备或以其他方式由其实现。在服务器计算***130包括多个服务器计算设备的情况下,这种服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合来操作。
如上所述,服务器计算***130可以存储或以其他方式包括一个或多个机器学习动作确定模型140。例如,模型140可以是或可以以其他方式包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、递归神经网络和卷积神经网络。示例模型140将参考图2、图4、图5和图6来讨论。
用户计算设备102和/或服务器计算***130可以经由与在网络180上可通信耦合的训练计算***150的交互来训练模型120和/或140。训练计算***150可以与服务器计算***130分开,或可以是服务器计算***130的一部分。
训练计算***150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存存储器设备、磁盘等、以及其组合。存储器154可以存储数据156和指令158,其中,指令158由处理器152执行,以使训练计算***150执行操作。在一些实施方式中,训练计算***150包括一个或多个服务器计算设备或以其他方式由其实现。
训练计算***150可以包括模型训练器160,其使用各种训练或学***均平方误差、似然损失、交叉熵损失、铰链损失和/或各种其他损失函数。梯度下降技术可以被用于在若干个训练迭代上迭代更新参数。
在一些实施方式中,执行误差的反向传播可以包括通过时间执行截断反向传播。模型训练器160可以执行若干个泛化技术(例如,权重衰减、丢弃(dropout)等)以提高被训练的模型的泛化能力。
具体地,模型训练器160可以基于一组训练数据162来训练动作确定模型120和/或140。训练数据162可以包括,例如,一组基准真值动作。训练方法可以包括基于确定的动作与基准真值动作的比较的参数化。基准真值数据可以是独热基准真值像素图。
在一些实施方式中,如果用户已同意,则训练示例可以由用户计算设备102提供。因此,在这种实施方式中,提供给用户计算设备102的模型120可以由训练计算***150在从用户计算设备102接收到的用户特定数据上训练。在一些情况下,该过程可以被称为使模型个性化。
模型训练器160包括用于提供期望功能的计算机逻辑。模型训练器160可以用控制通用处理器的硬件、固件和/或软件来实现。例如,在一些实施方式中,模型训练器160包括存储在存储设备上的程序文件,其被加载到存储器中并由一个或多个处理器执行。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,其被存储在有形的计算机可读存储介质中,诸如RAM硬盘或者光学或磁性介质。
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)、或其某种组合,并且可以包括任何数量的有线或无线链路。一般来说,在网络180上通信可以使用各种各样的通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL)经由任何类型的有线和/或无线连接进行。
图1A示出可用于实现本公开的一个示例计算***。其他计算***也可以被使用。例如,在一些实施方式中,用户计算设备102可以包括模型训练器160和训练数据集162。在这种实施方式中,模型120可以在用户计算设备102处在本地训练和使用。在一些这种实施方式中,用户计算设备102可以实现模型训练器160,以基于用户特定数据使模型120个性化。
图1B描绘根据本公开的示例实施例来执行的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
计算设备10包括若干个应用(例如,应用1至N)。每个应用包含其自己的机器学习库和机器学习模型(或多个)。例如,每个应用可以包括机器学习模型。示例应用包括文本发消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。
如图1B所示,每个应用可以与计算设备的若干个其他组件通信,诸如例如,一个或多个传感器、情境管理器、设备状态组件和/或额外组件。在一些实施方式中,每个应用可以使用API(例如,公共API)与每个设备组件通信。在一些实施方式中,由每个应用使用的API特定于该应用。
图1C描绘根据本公开的示例实施例来执行的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
计算设备50包括若干个应用(例如,应用1至N)。每个应用与中央智能层通信。示例应用包括文本发消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。在一些实施方式中,每个应用可以使用API(例如,全部应用之间通用的API)与中央智能层(和存储在其中的模型)通信。
中央智能层包括若干个机器学习模型。例如,如图1C所示,相应的机器学习模型(例如,模型)可以被提供用于每个应用,并且由中央智能层管理。在其他实施方式中,两个或更多个应用可以共享单个机器学习模型。例如,在一些实施方式中,中央智能层可以提供用于全部应用的单个模型(例如,单一模型)。在一些实施方式中,中央智能层被包括在计算设备50的操作***中或以其他方式由其实现。
中央智能层可以与中央设备数据层通信。中央设备数据层可以是计算设备50的集中的数据存储库。如图1C所示,中央设备数据层可以与计算设备的若干个其他组件通信,诸如例如,一个或多个传感器、情境管理器、设备状态组件和/或额外组件。在一些实施方式中,中央设备数据层可以使用API(例如,私有API)与每个设备组件通信。
示例模型实施方式
空间不准确可能通过数据摄取生成感知失真而发生。传送器网络***可以保留视觉输入的三维空间结构。***可以使用三维信息将视觉数据投射到空间一致的表示。空间一致的表示可以允许利用在数据对称性中存在的归纳偏差的等值性,以便进行更有效的学习。
***可以被用来学习各种任务。一个这样的任务可以是取放动作(例如,图2中的示例)。从视觉观察ot用机器人学习取放动作at可以被表示为其中,/>是用于拾取对象的末端效应器的姿态,并且/>是用于放置对象的末端效应器的姿态。两个姿态可以用二维表示法或三维表示法来定义,这取决于末端效应器的可用的任务和自由度。两个动作可以依赖于由动作模型和嵌入模型处理的观察数据。放置动作也可以被表示为依赖于放置动作,使得:
***可以从视觉观察206恢复成功拾取和成功放置的分布,而不用假设对象度量。避免以对象为中心的表示可以允许***有能力处理未见过的对象、可变形的对象和不可计数的成堆的小对象。
等式可以被概括到取放动作之外的其他运动基元,其也可以由两个末端效应器姿态(即,初始动作姿态和最终动作姿态)参数化。虽然上述等式着重于两个姿态的基元,但是相同方法一般可以适用于更长序列的姿态改变一般地,在序列中可以有多个姿态改变。
此外,视觉观察ot206可以是场景的投影(例如,以RGB-D图像的形式),其在序列重排任务的时间步t的像素{(u,v)}的规则网格上被定义。通过相机到机器人校准,***可以将ot中的每个像素与该位置的拾取动作相对应:关于像素的成功拾取的分布208在本质上可以是多模态的。当在场景中存在同一对象的多个实例时,或者当对象的形状存在对称性时,多模态分布可能更加普遍。***可以使用各种类型的模型。在一些实施方式中,***可以使用全卷积网络来对与拾取成功相关的动作值函数/>建模:
***或方法可以通过解投影到三维点云,将RGB-D图像转换为空间一致的形式。然后,***可以将三维点云渲染成正视投影,其中,每个像素(u,v)表示三维空间的固定窗口。***可以使用该空间一致的表示来进行传送操作。
空间一致的视觉表示可以使***能够执行视觉空间传送。传送可以包括来自于部分裁剪的密集的像素级别特征被刚性变换,然后叠加在另一部分裁剪ot[Δτ]之上,其中,ot是在拾取前的观察,并且Δτ是来自拾取姿态的相对变换。在一些实施方式中,***可以涉及环境的部分裁剪被叠加在第二部分裁剪之上,以确定机器人的动作。
例如,可以是来自以/>为中心的ot的部分裁剪。***的目标可以是将查询密集地传送到一组姿态{Δτi},以搜索最佳放置,(即,具有最高特征相关性的ot[Δτi])。***可以将查询表述为模板匹配问题,使用来自两个深度模型的密集特征嵌入ψ(·)和φ(·)(例如,第一特征嵌入和第二特征嵌入)的互相关:
其中,可以是与放置成功相关的动作值函数,并且Δτ可以覆盖全部可能的放置姿态的空间。在一些实施方式中,全部可能的放置姿态的空间可以等同于在ot的二维平移的空间。密集特征ψ(ot)和φ(ot(的结构可以因观察数据的空间一致性而空间一致。
在二维平面应用中,和/>可以表示旋转以及叠加平移。对于二维平面示例实施例,***可以将二维平面旋转的空间离散为k个二进数,然后可以旋转每个二进数的输入视觉观察ot。因此,ot可以被定义在体素{(u,v,w)i}的网格上,其中,w位于旋转的k离散化的轴上,并且/>和/>可以在该网格上被离散地表示用于二维刚性变换。***可以通过并行运行全卷积神经网络k次——对每个旋转的ot运行一次,在全部旋转之间共享模型权重——来实现这些步骤。
***可以被应用于三维刚性变换。传送函数可以被用于将***扩展到三维交互。***可以使用多阶段方法来扩展到需要三维放置的任务。首先,三个二维刚性变换的自由度可以被解决,产生估计的然后,***可以扩展互相关的传送操作。***或方法可以在二维刚性变换空间上使用三个通道来回归剩余的旋转(rx,ry)和平移(z高度)的自由度。***可以使用两个嵌入模型ψ′和φ′,其与用于二维刚性变换分类的嵌入模型ψ和φ相同,但是具有与通道的子集分开的三个互相关(*3),并且可以经由三头MLP网络的互相关之后添加可学习的非线性,
***的混合离散/连续方法可以提供图像的二维刚性变换空间中的复杂多模态分布的准确表示,而一旦以多模态平面内分布为条件,则图像平面外的剩余自由度可以是单模态的。此外,一旦近似的二维刚性变换排列经由传送操作叠加,则该方法可以提供注意机制来帮助模型进行精确连续回归。
***的可能的应用的示例是河内塔对象取放序列的顺序挑战(例如,图3中的示例实施方式)。河内塔的挑战可以需要动作者按顺序将三个盘从第一塔移动到第三塔,而不将大盘放置在小盘上。盘可以是不同颜色的。完成任务可能需要正确安排七个取放动作的顺序。***可以基于视觉情境线索(例如,下一次取放取决于场景中被观察对象的定位或由于遮挡不存在),调整顺序任务的动作。***或方法可以是无状态的。***或方法可以通过视觉反馈学习排序行为。***可以增加嵌入模型的感受野,以涵盖大部分的视觉观察ot。***可以利用更多的存储器来处理非马尔科夫的任务。
***或方法可以被用于取放动作之外的任务。***可以被应用于其他两个姿态的基元任务,包括但不限于:推和拖。例如,***可以学习按顺序重新布置可变形的绳索,使得***确定能够允许机器人或其他动作者连接不完全三面体的两个端点的一组动作。另一示例应用可以包括使用铲形的末端效应器将成堆的小对象按顺序推到期望的目标集中。***可以使用视觉反馈学习其他闭环行为来完成这些任务。***可以适用于刚性位移和非刚性放置,比如这些示例。***可以被用来敲击对象,以启动对象向给定位置的移动。
***可以被用于确定切片或切割运动的开始和结束位置。这些示例运动基元还可以被组合以学习执行更复杂的任务。
***可以利用各种网络架构配置来配置。
***的观察空间的示例实施方式可以包括视觉观察ot,其可以是通过融合使用已知内在和外在因素用校准相机捕捉的480×640RGB-D图像来生成的0.5×1m台面工作空间的正视俯视图。俯视图像ot可以具有160×320的像素分辨率。像素可以表示工作空间中的3D空间的3.125×3.125mm垂直列。图像ot可以包含颜色(RGB)和标量的距底部高度(H)二者的信息。对颜色和高度值的访问可以使深度模型能够学习在视觉纹理和几何形状两方面丰富的特征。可以理解,其他大小的工作空间、RGB-D图像和俯视图像可以被替代使用。
***的第一姿态确定特征被用作拾取模型的示例实施例可以包括单前馈全卷积神经网络,其可以将视觉观察作为输入,并且可以输出密集的像素级别的值,其可以与拾取成功相关:/>拾取模型可以是沙漏式编码器解码器架构。例如,可以使用43层残差网络(ResNet),其具有12个残差块和8步长(stride)(编码器中有3个2步长卷积,并且解码器中有3个双线性上采样层),然后是图像级别softmax。第一卷积层之后的每个卷积层可以配备有膨胀,并且在最后一层之前与ReLU激活交错。使用8步长可以在最大化每像素预测的感受野覆盖率,同时最小化网络的潜在中层特征的分辨率损失之间取得平衡。可以理解,其他网络结构可以被替代使用。
***的第一姿态确定特征被用作放置模型的示例实施例可以使用双流前馈全卷积神经网络,其可以将视觉观察作为输入,并且可以输出两个密集特征图:查询特征/>和关键特征/>其中,d可以是特征维度。放置模型可以共享类似的沙漏式编码器解码器架构作为相关拾取模型。例如,每个流可以使用8步长43层ResNet。***可以在最后一层中在没有非线性激活的情况下使用ResNet。以附近为中心的大小为c的查询特征的部分裁剪可以通过Δτ(其涵盖可能的放置配置的空间)来变换,然后与关键特征图φ(ot)互相关,以输出与放置成功相关的密集的像素级别的值: 其中,Δτ可以被离散成k=36个角度(10°的倍数)。经由/>的可给出与部分裁剪的最高相关的平移和旋转Δτ给出/>在一些实施方式中,***可以用高度优化的矩阵乘法来实现操作,其中,裁剪被扁平化。在一些实施方式中,***可以将操作实现为卷积,其中,裁剪是卷积核。可以理解,其他网络结构可以被替代使用。
***可以使用基准真值数据和各种损失函数来训练。例如,在训练期间,可以从数据集均匀取得样本观察-动作对,每个动作at可以从中被解包为两个训练标签:/>和分别被用于生成二进制独热像素图/>和/>训练损失可以是独热像素图与取放模型的输出之间的交叉熵,例如,虽然每个密集概率图训练只可以对于单个像素具有标签,但是梯度可以经由图像级别softmax被传递到全部其他像素。/>
***或方法可以使用各种变换组被应用或教导。***可以利用谎言组,包括但不限于:SE(2)、SO(2)和SE(3)。
图2描绘根据本公开的示例实施例的示例动作确定模型200的说明。在一些实施方式中,动作确定模型200被训练为接收描述观察区域的一组输入数据206,并且作为接收到输入数据206的结果,提供包括第一姿态和第二姿态的输出数据208和220。因此,在一些实施方式中,动作确定模型200可以包括可操作以将对象从初始点移动到确定的端点的对象操纵模型。
图2描绘动作确定的***或方法的示例应用。所描绘的动作可以涉及取放动作、推动作、拖动作等。环境202可以包括具有末端效应器的机器人、对象、以及对象的端点/目标点。对象可以是任何形状,但是在该实施例中,对象的形状是大写的“L”。对象和端点可以位于环境内部的观察场景中。观察场景可以由一个或多个传感器观察。此外,一个或多个传感器可以是相机、LiDAR传感器或其他形式的测量传感器。在该实施例中,传感器摄取场景上的数据,以生成观察数据206。观察数据可以被输入到***中。***可以具有利用设定的端点204来取放对象的目标。
在所示的示例中,观察数据206由动作模型处理,以生成成功的第一动作的分布208。基于成功的第一动作的分布208,***确定机器人的第一姿态。
然后,观察数据206由第一嵌入模型210处理。在该实施方式中,第一嵌入模型210输出一个或多个第一特征嵌入214。
在该实施例中,观察数据206也可以被裁剪和旋转以产生多个经过裁剪和旋转的数据集。多个经过裁剪和旋转的数据集可以由第二嵌入模型212处理,以生成多个第二特征嵌入216。
一个或多个第一特征嵌入214和多个第二特征嵌入216可以被编译以提供多个第二可能姿态218。在所示的示例中,***使用深度特征模板匹配来确定每个可能的第二姿态的成功。***生成成功的第二姿态的分布220。然后,***从成功的第二姿态的分布220中选择第二姿态。
然后,动作确定模型200可以被用于引导环境202的机器人完成第一姿态和第二姿态,其中,第一姿态是其中机器人的末端效应器与对象接触的姿态,并且第二姿态是其中借助机器人的末端效应器将对象放置于端位置的姿态。
图3描绘根据本公开的示例实施例的示例动作确定模型300的说明。动作确定模型300类似于图2的动作确定模型200,除了动作确定模型300还包括用于评估和修改动作确定模型的参数的一组基准真值数据之外。图3描绘训练***的示例实施方式。所描绘的实施方式可以涉及用于完成目标任务的七个步骤。
动作确定模型300可以被教导完成“河内塔”序列的七步骤任务。***可以已被教导允许完成任务的具体顺序或具体规则。动作确定模型300可以包括具有机器人和观察场景的环境302,其中,“河内塔”组被设置在观察场景中。一个或多个传感器可以基于场景来生成观察数据306。然后,动作确定模型可以被用于处理观察数据306以完成目标任务304。
在所示的示例中,动作确定模型的第一步骤涉及获得观察数据306。一旦获得观察数据306,观察数据306就由动作模型处理,以生成成功的可能的第一动作的分布308。然后,***选择该模型的argmax来确定第一动作312。
在该实施例中,观察数据306和第一动作312然后由第一嵌入模型和第二嵌入模型处理,以生成第一特征嵌入316和第二特征嵌入。第一特征嵌入316可以与多个可能的平移相关。第二特征嵌入可以与多个可能的旋转相关。然后,第一特征嵌入和第二特征嵌入被卷积,然后卷积的特征嵌入320被用于深度特征模板匹配。基于深度特征模板匹配,***可以确定成功的可能的第二动作的分布。***可以选择可能的第二动作之一作为机器人的第二动作。动作确定模型300可以被迭代运行,以便完成整个序列314。
动作确定模型300可以使用基准真值数据314来训练。基准真值数据可以包括起始图像310、端点图像318、以及其间的每个放置的图像。对于在所示的示例中描绘的七步骤“河内塔”,基准真值数据314包括八个图像。每个步骤可以被处理,以生成每个步骤的独热基准真值像素图。为了完成“河内塔”的第一步骤,为基准真值第一动作和基准真值第二动作(即,拾取动作和放置动作)生成独热像素图。然后,生成的第一基准真值像素图和第二基准真值像素图可以与确定的第一动作和确定的第二动作进行比较,以评估动作确定模型。响应于评估,可以修改动作模型、第一嵌入模型或第二嵌入模型的参数。训练过程可以迭代运行,以提供更准确的结果。
在一些实施方式中,动作确定模型300可以使用基准真值数据314来帮助完成任务。基准真值数据314可以由第三嵌入模型处理,以生成第三特征嵌入。第三特征嵌入可以用于为深度模板匹配提供更准确的结果。
图4描绘动作确定的***或方法的示例应用。所描绘的实施方式可以涉及使用多模态策略来完成不同形状的不同动作。
动作确定模型400可以用于在相同的环境402中完成几个任务,涉及位于环境402中的不同位置处的不同对象。在该实施方式中,观察区域404包括具有四个不同形状的五个对象。观察区域404还包括与对象对应的四个不同形状的五个目的地。动作确定模型400可以被用于将每个对象取放到对应的目的地。动作确定模型可以迭代运行,以完成任务。
动作确定模型可以包括获得观察数据406,其可以由第一动作模型处理,以确定对象之一上的第一动作408。对于每个对象上的每个相应位置处的每个相应对象,第二动作可能由于对象的形状和目的地的形状而不同。例如,如果第一动作是在圆形对象410的边缘上的拾取动作,则动作确定模型可以产生可能的第二动作的分布,其中,分布是在圆形目的地414中的圆形分布。另一示例可以涉及第一动作是在“E”形对象412之一的腿上的拾取动作。动作确定模型可以生成由两个点组成的分布,其中,每个点位于“E”形目的地416之一中。
此外,动作确定模型可以用于确定每个相应对象420的第一动作(例如,拾取动作或接触动作)和第二动作(例如,放置动作或松开动作)。
此外,图4显示每个形状的旋转放置的成功分布418。每个对象的对称性有助于分布结果。例如,在中心处选择的圆被放置在圆形目的地可以具有从0到2π的均匀分布。然而,当选择点是中心时,正方形和四叶草形状可能具有四个单独的最大值,其幅度是几乎均匀的。当目的地是相同的形状时,缺乏任何形式的对称性的形状可能只产生具有统计意义的单个最大值。
类似地,改变选择点或平移点可能改变成功的分布422和424。
示例方法
图5描绘根据本公开的示例实施例来执行的示例方法的流程图。尽管图5为了说明和讨论而将步骤描绘为以具体顺序执行,但是本公开的方法不限于具体示出的顺序或排列。在不脱离本公开的范围的情况下,方法500的各个步骤可以被省略、重新排列、组合和/或以各种方式调整。
在502中,计算***可以获得观察数据。观察数据可以是图像数据、LiDAR点云数据、或另一形式的数据。此外,数据可以从位于观察场景周围的一个或多个传感器获得。观察数据可以包括关于环境的数据。此外,环境可以包括要采取动作的一个或多个对象。
在504中,计算***可以确定第一动作。第一动作的确定可以包括利用第一动作模型处理观察数据。第一动作模型可以使用像素映射来生成成功的可能的第一动作的分布。***可以使用分布来选择第一动作。在一些实施例中,第一动作可以是模型函数的argmax。
在506中,计算***可以处理观察数据来确定第一特征嵌入。观察数据可以由第一嵌入模型处理,以生成第一特征嵌入。在一些实施方式中,第一特征嵌入可以是多个可能的机器人移动平移。此外,第一嵌入模型可以是全卷积神经网络。
在508中,计算***可以处理观察数据,以至少部分基于第一动作来生成第二特征嵌入。观察数据可以由第二嵌入模型处理,以生成第二特征嵌入。第二特征嵌入可以描述多个可能的机器人移动旋转。在一些实施方式中,第二嵌入模型可以是全卷积神经网络。
在一些实施方式中,第一嵌入模型和第二嵌入模型可以针对第一动作来处理观察数据。
在510中,计算***可以确定第二动作。在一些实施方式中,第二动作可以至少部分基于第一特征嵌入和第二特征嵌入的卷积来确定。确定可以包括深度特征模板匹配。第一特征嵌入和第二特征嵌入的卷积可以被用于生成可能的第二动作的分布,其中,可以从分布中选择第二动作。
图6描绘根据本公开的示例实施例来执行的示例方法的流程图。尽管图6为了说明和讨论而将步骤描绘为以具体顺序执行,但是本公开的方法不限于具体示出的顺序或排列。在不脱离本公开的范围的情况下,方法600的各个步骤可以被省略、重新排列、组合和/或以各种方式调整。
在602中,计算***可以获得观察数据,然后处理观察数据来生成成功的初始动作的分布。观察数据可以由动作模型处理,并且观察数据可以包括关于机器人正在工作的环境的信息。在一些实施方式中,动作模型可以在逐个像素的基础上处理数据。
在604中,计算***可以确定第一动作。确定可以包括从成功的初始动作的分布中选择第一动作。选择可以基于点是否为局部最大值。此外,第一动作可以是拾取动作,其中,动作使机器人的末端效应器接触物品并拾取物品。
在606中,计算***可以处理观察数据来生成第一特征嵌入。处理可以由第一嵌入模型完成,并且在一些实施方式中,第一嵌入模型可以是全卷积神经网络。
在608中,计算***可以处理观察数据来生成第二特征嵌入。处理可以由第二嵌入模型完成,并且在一些实施方式中,第二嵌入模型可以是全卷积神经网络。
在610中,计算***可以至少部分基于第一特征嵌入和第二特征嵌入的比较来确定第二动作。第二动作的确定还可以取决于第一动作。此外,第二动作可以通过使用由第一特征嵌入和第二特征嵌入的比较生成的数据进行深度特征模板匹配来确定。在一些实施方式中,第二动作可以是放置动作,其中,动作释放由第一动作接触的物品。在一些实施方式中,第二动作可以将物品放置在期望位置。在一些实施方式中,机器学习模型可以被用于基于第一特征嵌入和第二特征嵌入来生成第二动作。
图7描绘根据本公开的示例实施例来执行的示例训练方法的流程图。尽管图7为了说明和讨论而将步骤描绘为以具体顺序执行,但是本公开的方法不限于具体示出的顺序或排列。在不脱离本公开的范围的情况下,方法700的各个步骤可以被省略、重新排列、组合和/或以各种方式调整。
在702中,计算***可以获得观察数据。观察数据可以是空间一致的表示,以允许利用等值原理。观察数据可以包括观察环境的数据。环境可以包括用于机器人操纵的一个或多个物品。
在704中,计算***可以确定第一动作。第一动作的确定可以基于由动作模型处理观察数据来生成成功的初始动作的分布。成功的拾取动作的分布可以包括一个或多个最大值,包括针对动作模型的函数的argmax。第一动作可以通过选择最大值或甚至动作模型的函数的argmax来确定。
在706中,计算***可以处理观察数据来生成第一特征嵌入。处理可以由第一嵌入模型完成,其中,第一嵌入模型处理观察数据来生成第一特征嵌入。第一特征嵌入可以包括针对第一动作的物品的可能平移。第一嵌入模型可以生成具有不同的可能平移的多个第一特征嵌入。
在708中,计算***可以处理观察数据来生成第二特征嵌入。处理可以由第二嵌入模型完成,其中,第二嵌入模型处理观察数据来生成第二特征嵌入。第二特征嵌入可以包括针对第二动作的物品的可能旋转。第二嵌入模型可以生成具有不同的可能旋转的多个第二特征嵌入。处理后的观察数据可以是经过裁剪和旋转的观察数据。经过裁剪和旋转的观察数据可以是通过裁剪固定在一组感兴趣像素上的观察数据来生成。然后,经过裁剪的数据可以被复制和旋转,以生成要被处理的多个经过裁剪和旋转的观察数据。
在710中,计算***可以确定第二动作,例如,至少部分基于第一特征嵌入和第二特征嵌入的卷积或至少部分基于更复杂的学习模型处理。第二动作的确定可以通过进行第一特征嵌入和第二特征嵌入的卷积并完成深度模板匹配确定哪些第二动作会成功来确定。第二动作可以从确定的成功的第二动作中选择。
在712中,计算***可以用损失函数评估第一动作和第二动作。评估可以包括使用损失函数将第一动作和第二动作与基准真值动作进行比较。基准真值动作可以被处理,以生成独热基准真值像素图,以便与确定的动作进行比较。对于三维操纵,损失函数可以是Huber损失。
在714中,计算***可以修改嵌入模型的参数的值。对动作模型、第一嵌入模型或第二嵌入模型的修改可以响应于第一动作和第二动作的评估来完成。评估和修改可以用来训练动作确定模型。模型可以通过迭代训练技术来训练。
额外公开
本文讨论的技术参考了服务器、数据库、软件应用和其他基于计算机的***、以及向这种***采取的动作和发送的信息、以及由这种***采取的动作和发送的信息。基于计算机的***固有的灵活性允许在组件之间有大量可能的配置、组合、以及任务和功能的划分。例如,本文讨论的过程可以使用单个设备或组件或者结合工作的多个设备或组件来实现。数据库和应用可以在单个***上实现,或分布在多个***上。分布式组件可以依次或并行操作。
虽然已经针对本主题的各种具体示例实施例来详细描述本主题,但是每个示例是以解释的方式提供,而不是对本公开的限制。本领域技术人员在理解上述内容后,可以容易地对这些实施例进行更改、变化和等同替换。因此,本主题的公开内容不排除本领域普通技术人员容易看到的对本主题的修改、变化和/或补充。例如,示出或描述为一个实施例的部分的特征可以与另一实施例一起使用,以产生进一步的实施例。因此,本公开旨在涵盖这种更改、变化和等同替换。
Claims (20)
1.一种用于生成机器人的动作的计算机实现的方法,包括:
获得观察数据,其中,观察数据包括描述环境的数据;
至少部分基于观察数据来确定机器人的第一动作;
利用第一嵌入模型处理观察数据来生成第一特征嵌入;
利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件;以及
至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人的第二动作。
2.根据前述权利要求中任一项所述的计算机实现的方法,还包括:控制机器人以使机器人执行第一动作和第二动作。
3.根据前述权利要求中任一项所述的计算机实现的方法,其中,第一动作包括机器人接触对象。
4.根据前述权利要求中任一项所述的计算机实现的方法,其中,观察数据包括图像数据。
5.根据前述权利要求中任一项所述的计算机实现的方法,其中,观察数据包括光探测和测距(LiDAR)点云数据。
6.根据前述权利要求中任一项所述的计算机实现的方法,其中,第一动作包括机器人的姿态的改变。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中,第一嵌入模型和第二嵌入模型中的每一个包括全卷积神经网络。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,确定机器人的第一动作包括:
基于观察数据并使用第一机器学习动作值模型,生成第一动作的第一概率分布;以及
选择在第一概率分布中具有最大值的动作作为第一动作。
9.根据权利要求8所述的计算机实现的方法,其中,第一概率分布包括一个或多个点,其指示一个或多个点是对象操纵的起始位置的相应概率。
10.根据前述权利要求中任一项所述的计算机实现的方法,其中,至少部分基于第一特征嵌入与第二特征嵌入的比较来确定机器人的第二动作包括:
将第二特征嵌入在第一特征嵌入上卷积,以生成第二概率分布;以及
选择在第二概率分布中具有最大值的动作作为第二动作。
11.根据前述权利要求中任一项所述的计算机实现的方法,其中,利用第二嵌入模型处理观察数据来生成第二特征嵌入包括:
旋转和裁剪观察数据,以生成多个经过旋转裁剪的数据样本;以及
利用第二嵌入模型处理多个经过旋转裁剪的数据样本,以分别生成多个第二特征嵌入。
12.根据前述权利要求中任一项所述的计算机实现的方法,其中,获得观察数据包括:
获得原始观察数据;
将原始观察数据解投射到三维空间中;以及
将解投射的数据渲染成环境的正视表示,其中,环境的正视表示被用作观察数据。
13.根据前述权利要求中任一项所述的计算机实现的方法,其中,观察数据、第一特征嵌入和第二特征嵌入包括三维数据。
14.根据前述权利要求中任一项所述的计算机实现的方法,其中,确定机器人的第二动作包括:利用第二机器学习值动作模型处理第一特征嵌入和第二特征嵌入。
15.根据前述权利要求中任一项所述的计算机实现的方法,还包括:
获得一组目标图像数据;以及
利用第三嵌入模型处理所述一组目标图像数据来生成第三特征嵌入;
其中,确定机器人的第二动作包括:至少部分基于第一特征嵌入、第二特征嵌入和第三特征嵌入,确定第二动作。
16.一种计算机***,包括:
一个或多个处理器;以及
一个或多个非暂时性计算机可读介质,其共同存储指令,所述指令在由一个或多个处理器执行时,使计算***执行操作,所述操作包括:
获得观察数据,其中,观察数据包括描述环境的数据;
确定机器人的第一动作;
利用第一嵌入模型处理观察数据来生成第一特征嵌入;
利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件;
至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人的第二动作;
评估损失函数,其将第一动作和第二动作中的一个或两个与第一基准真值动作和第二基准真值动作中的一个或两个进行比较;和
至少部分基于损失函数,修改第一嵌入模型和第二嵌入模型中的一个或两个的一个或多个参数的一个或多个值。
17.根据权利要求16所述的计算机***,其中,评估损失函数包括:
基于第一基准真值动作来生成第一独热基准真值像素图,并且基于第二基准真值动作来生成第二独热基准真值像素图,其中,第一独热基准真值像素图包括第一多个像素,其具有指示第一动作在环境中的基准真值位置的相应二进制值,并且其中,第二独热基准真值像素图包括第二多个像素,其具有指示第二动作在环境中的基准真值位置的相应二进制值;以及
将第一动作与第一独热基准真值像素图进行比较,并且将第二动作与第二独热基准真值像素图进行比较。
18.根据权利要求17所述的计算机***,其中,损失函数包括交叉熵损失,并且其中,将第一动作与第一独热基准真值像素图进行比较并且将第二动作与第二独热基准真值像素图进行比较包括:在逐个像素的基础上评估交叉熵损失。
19.一种机器人设备,包括一个或多个非暂时性计算机可读介质,其共同存储指令,所述指令在由一个或多个计算设备执行时,使一个或多个计算设备执行操作,所述操作包括:
获得观察数据,其中,观察数据包括描述环境的数据;
确定机器人设备的第一动作;
利用第一嵌入模型处理观察数据来生成第一特征嵌入;
利用第二嵌入模型处理观察数据来生成第二特征嵌入,其中,第二嵌入模型以第一动作为条件;
至少部分基于第一特征嵌入与第二特征嵌入的比较,确定机器人设备的第二动作;以及
由机器人设备执行第一动作和第二动作。
20.根据权利要求19所述的机器人设备,其中,观察数据包括空间一致的数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/055726 WO2022081157A1 (en) | 2020-10-15 | 2020-10-15 | Transporter network for determining robot actions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115867947A true CN115867947A (zh) | 2023-03-28 |
Family
ID=73172817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080102599.3A Pending CN115867947A (zh) | 2020-10-15 | 2020-10-15 | 用于确定机器人动作的传送器网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230256597A1 (zh) |
EP (1) | EP4150526A1 (zh) |
CN (1) | CN115867947A (zh) |
WO (1) | WO2022081157A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210397195A1 (en) * | 2018-11-28 | 2021-12-23 | Google Llc | Robot navigation using a high-level policy model and a trained low-level policy model |
-
2020
- 2020-10-15 EP EP20803705.1A patent/EP4150526A1/en active Pending
- 2020-10-15 CN CN202080102599.3A patent/CN115867947A/zh active Pending
- 2020-10-15 US US18/011,561 patent/US20230256597A1/en active Pending
- 2020-10-15 WO PCT/US2020/055726 patent/WO2022081157A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4150526A1 (en) | 2023-03-22 |
US20230256597A1 (en) | 2023-08-17 |
WO2022081157A1 (en) | 2022-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11325252B2 (en) | Action prediction networks for robotic grasping | |
US11941719B2 (en) | Learning robotic tasks using one or more neural networks | |
Fujita et al. | What are the important technologies for bin picking? Technology analysis of robots in competitions based on a set of performance metrics | |
JP6546618B2 (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
Sayour et al. | Autonomous robotic manipulation: real‐time, deep‐learning approach for grasping of unknown objects | |
Toussaint et al. | Integrated motor control, planning, grasping and high-level reasoning in a blocks world using probabilistic inference | |
KR20180114217A (ko) | 로봇 파지용 심층 기계 학습 방법 및 장치 | |
CN110730970A (zh) | 使用图像嵌入优化机器人代理的策略控制器 | |
EP4309151A1 (en) | Keypoint-based sampling for pose estimation | |
Xu et al. | GraspCNN: Real-time grasp detection using a new oriented diameter circle representation | |
Zeng | Learning visual affordances for robotic manipulation | |
Park et al. | Development of robotic bin picking platform with cluttered objects using human guidance and convolutional neural network (CNN) | |
Matsumoto et al. | End-to-end learning of object grasp poses in the Amazon Robotics Challenge | |
Ghazaei et al. | Dealing with ambiguity in robotic grasping via multiple predictions | |
US20220402125A1 (en) | System and method for determining a grasping hand model | |
Zhuang et al. | Instance segmentation based 6D pose estimation of industrial objects using point clouds for robotic bin-picking | |
Abid et al. | Dynamic hand gesture recognition for human-robot and inter-robot communication | |
Zhang et al. | Digital twin-enabled grasp outcomes assessment for unknown objects using visual-tactile fusion perception | |
JP2019164836A (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
Tobin | Real-world robotic perception and control using synthetic data | |
CN117611663A (zh) | 一种目标物体的位姿估计方法、计算机可读存储介质 | |
Nagata et al. | Modeling object arrangement patterns and picking arranged objects | |
CN115867947A (zh) | 用于确定机器人动作的传送器网络 | |
Peng et al. | A pushing-grasping collaborative method based on deep Q-network algorithm in dual viewpoints | |
CN114211490A (zh) | 一种基于Transformer模型的机械臂抓手位姿预测方法 |
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 |