CN110785268A - 用于语义机器人抓取的机器学习方法和装置 - Google Patents

用于语义机器人抓取的机器学习方法和装置 Download PDF

Info

Publication number
CN110785268A
CN110785268A CN201880039073.8A CN201880039073A CN110785268A CN 110785268 A CN110785268 A CN 110785268A CN 201880039073 A CN201880039073 A CN 201880039073A CN 110785268 A CN110785268 A CN 110785268A
Authority
CN
China
Prior art keywords
semantic
grab
neural network
end effector
joint
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.)
Granted
Application number
CN201880039073.8A
Other languages
English (en)
Other versions
CN110785268B (zh
Inventor
E.江
S.维贾亚纳拉西姆汉
P.帕斯托萨姆佩德罗
J.伊巴兹
S.莱维恩
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 CN110785268A publication Critical patent/CN110785268A/zh
Application granted granted Critical
Publication of CN110785268B publication Critical patent/CN110785268B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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/39298Trajectory learning
    • 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/39536Planning of hand motion, grasping

Landscapes

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

Abstract

提供了与语义机器人抓取有关的深度机器学习方法和装置。一些实施方式涉及训练对语义抓取模型的抓取神经网络、语义神经网络和联合神经网络的训练。在那些实施方式的一些中,联合网络是深度神经网络,并且可以基于以下两种方式进行训练:基于通过抓取神经网络生成的抓取预测而生成的抓取损失,以及基于通过语义神经网络生成的语义预测而生成的语义损失。一些实施方式针对利用训练后的语义抓取模型来伺服或控制机器人的抓取末端执行器,以实现对具有期望的(多个)语义特征的对象的成功抓取。

Description

用于语义机器人抓取的机器学习方法和装置
背景技术
许多机器人被编程为利用一个或多个末端执行器来抓取一个或多个对象。例如,机器人可以利用诸如“冲击式”夹具或“侵入式”夹具(例如,使用钉、针等物理地穿透对象)的抓取末端执行器从第一位置拾取对象,将对象移动到第二位置,并在第二位置处放下对象。可以抓取对象的机器人末端执行器的一些附加示例包括“限制式”末端执行器(例如,使用吸力或真空来拾取对象)和一个或多个“接触式”末端执行器(例如,使用表面张力、冻结或粘合剂来拾取对象),仅举几例。
发明内容
本说明书通常针对与语义机器人抓取有关的机器学习方法和装置。一些实施方式针对训练语义抓取模型的抓取网络、语义网络和联合网络。在那些实施方式的一些中,抓取网络和语义网络是深度神经网络(即,抓取神经网络和语义神经网络),并且彼此独立地训练。换句话说,基于在训练期间通过抓取网络生成的抓取预测而生成的损失用于更新抓取网络(以及可选地,联合网络)的参数,而不用于更新语义网络。类似地,基于通过语义网络生成的语义预测而生成的损失用于更新语义网络(以及可选地,联合网络)的参数,而不用于更新抓取网络。此外,在那些实施方式的一些中,联合网络是深度神经网络(即,联合神经网络),并且可以基于以下两项进行训练:基于通过抓取网络生成的抓取预测而生成的抓取损失,以及基于通过语义网络生成的语义预测而生成的语义损失。以这种方式,至少部分地“联合地”训练联合网络,因为其参数在训练期间基于以下两项来学习:基于抓取网络的损失,以及基于语义网络的损失。
在各种实施方式中,语义抓取训练示例可以用于训练抓取网络、语义网络和联合网络。可以基于一个或多个机器人的抓取尝试来生成语义抓取训练示例。语义抓取训练示例可以分别包括以下训练示例输入:(1)运动矢量,其基于在对应抓取尝试的对应实例处的机器人的抓取末端执行器的姿势以及在对应抓取尝试的最终实例处的抓取末端执行器的姿势;以及(2)至少一个图像,其捕获在对应实例处的机器人的工作空间的至少一部分。语义抓取训练示例还可以分别包括以下训练示例输出:(1)抓取成功标签,其指示对应抓取尝试的抓取是否成功,以及(2)在对应抓取尝试中抓取的对象的(多个)语义特征(例如,类别或类型)的(多个)语义标签。
在那些各种实施方式的一些中,将训练示例的训练示例输入的运动矢量和至少一个图像作为输入应用于联合网络,以基于所应用的输入来生成联合输出(即,来自联合网络的输出)。此外,将联合输出应用于抓取网络和语义网络两者。使用基于联合输出的抓取网络生成预测的抓取输出,并使用基于联合输出的语义网络生成预测的语义输出。基于预测的抓取输出与训练示例的训练示例输出的抓取成功标签的比较来确定抓取损失。此外,基于预测的语义输出与训练示例的训练示例输出的语义标签的比较来确定语义损失。
抓取损失可以用于更新抓取网络和联合网络的参数(例如,通过反向传播)。此外,语义损失可以用于更新语义网络和联合网络的参数(例如,通过反向传播)。以这种方式,抓取网络和语义网基于它们各自的损失进行训练。此外,基于抓取损失和语义损失两者来训练联合网络。
在各种实施方式中,可以经由非语义抓取训练示例和/或语义(非抓取)训练示例对语义抓取模型进行进一步的训练。
例如,非语义抓取训练示例可以分别具有与语义抓取训练示例相同的格式,除了它们省略所抓取的对象的(多个)语义标签(或者包含语义标签的“空”值)。换句话说,它们不包括指示所抓取的对象(如果有的话)的(多个)语义特征的训练示例输出。非语义抓取训练示例的训练示例输入可以应用于联合网络以生成联合输出。此外,联合输出应用于抓取网络(而不必应用于语义网络)。使用基于联合输出的抓取网络生成预测的抓取输出,并且基于预测的抓取输出与训练示例的训练示例输出的抓取成功标签的比较来确定抓取损失。抓取损失可以用于更新抓取网络和联合网络的参数(例如,通过反向传播)。值得注意的是,对于非语义抓取训练示例,由于非语义抓取训练示例在训练示例输出中缺少标签语义输出,因此不生成语义损失和/或不利用语义损失来更新语义网络和/或联合网络。然而,抓取损失可以用于改善抓取网络的性能和/或改善联合网络的性能(例如,由联合网络学习的早期视觉表示)。联合网络性能的这种改善可以进一步改善语义网络的性能(因为它利用了来自联合网络的联合输出),并且可以进一步改善抓取网络的性能(在它利用来自联合网络的联合输出的实施方式中)。
此外,例如,语义(非抓取)训练示例可以分别与语义抓取训练示例具有相同的格式,除了它们省略抓取成功标签(或者包含抓取成功标签的“空”值)。换句话说,它们不包括指示抓取是否成功的训练示例输出。在一些实施方式中,语义训练示例可以包括来自图像分类(或(多个)其他特征)数据库的训练示例,附带有随机、伪随机或其他方式生成的运动矢量作为训练示例输入。例如,训练示例可以包括训练示例输入,该训练示例输入包括至少一个图像,并且附带有随机生成的运动矢量;并且训练示例可以包括训练示例输出,该训练示例输出是图像中对象的类别标签。语义训练示例的训练示例输入可以应用于联合网络以生成联合输出。此外,联合输出应用于语义网络(而不必应用于抓取网络)。使用基于联合输出的语义网络生成预测的语义输出,并基于预测的语义输出与训练示例的训练示例输出的语义标签的比较来确定语义损失。可以利用语义损失来更新语义网络和联合网络的参数(例如,通过反向传播)。值得注意的是,对于语义训练示例,由于语义训练示例在训练示例输出中缺少抓取成功标签,因此不会生成抓取损失和/或不利用抓取损失来更新抓取网络和/或联合网络。然而,语义损失可以用于改善语义网络的性能和/或改善联合网络的性能(例如,由联合网络学习的早期视觉表示)。
训练之后,可以将(1)定义机器人的抓取末端执行器的候选运动(如果有的话)(即从一个姿势到另一个附加姿势的运动)的候选运动矢量,以及(2)捕获机器人的工作空间的至少一部分的至少一个图像作为输入应用于训练后的联合网络。此外,可以基于所应用的输入,使用训练后的联合网络来生成联合输出。
联合输出可以应用于训练后的语义网络,以预测图像中对象的类别和/或其他语义特征。
在一些实施方式中,联合输出还应用于训练后的抓取网络,以基于该应用生成抓取成功度量,该抓取成功度量直接或间接指示实施候选运动矢量将导致成功抓取的概率。在一些其他实施方式中,(1)候选运动矢量和(2)至少一个图像被替代地应用于附加训练后的抓取网络,以基于该应用来生成抓取成功度量。在那些其他实施方式中,附加训练后的抓取网络与用于训练联合网络的抓取网络是分开的。例如,附加训练后的抓取网络可以是单独的并且仅基于非语义抓取训练示例来训练。因此,在推断中可以利用附加训练后的抓取网络,而在推断中不利用用于训练联合网络的抓取网络。
然后,预测的抓取成功度量和预测的(多个)语义特征可以用于伺服利用抓取末端执行器的机器人的抓取尝试的执行。例如,如果抓取成功度量满足阈值,并且(多个)语义特征指示该抓取有可能是对于具有期望的(多个)对象语义特征的对象,则可以通过实施末端执行器运动命令然后进行抓取来尝试抓取尝试。这可以使得能够对抓取末端执行器进行伺服或控制,以实现抓取末端执行器对具有期望的对象语义特征的对象的成功抓取。
使用(多个)训练后的网络来实现对具有期望的对象语义特征的对象的成功抓取,可以使机器人能够执行针对具有(多个)特定对象特征的对象的各种动作,其中,那些(多个)特定对象特征是由人工生成的用户界面输入和/或由另一个组件(例如,更高级别的任务计划者或控制器)所决定的。例如,用户可以提供指示想要抓取具有一个或多个特定对象特征的对象的用户界面输入(例如,语音、打字),并且仅在以下情况下,机器人可以利用训练后的网络来尝试抓取:抓取有可能会成功,并且有可能是对于具有(多个)特定对象特征的对象。因此,机器人可以通过结合空间推理和语义推理两者,基于指定要拾取的对象类型的输入命令,尝试在其环境中抓取对象:机器人可以确定其环境中的哪些对象属于所请求的对象类型,以及如何成功地抓取那些对象中的一个或多个对象。例如,用户可以提供“拾取勺子”的用户界面输入,并且机器人可以基于使用指示抓取有可能成功的抓取网络生成的输出并且基于使用指示抓取有可能是对于具有“勺子”分类的对象来尝试抓取。因此,可以提供对机器人的改善的控制和利用。
其他实施方式可以包括存储可以由一个或多个处理器(例如,中央处理器(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)和/或张量处理单元(tensor processing unit,TPU))运行的指令的非暂时性计算机可读存储介质,以执行诸如上述和/或本文其他地方描述的方法中的一个或多个的方法。然而,其他实施方式可以包括一个或多个计算机和/或一个或多个机器人的系统,一个或多个机器人包括一个或多个处理器,一个或多个处理器可操作来运行存储的指令以执行诸如上述和/或本文其他地方描述的方法中的一个或多个的方法。
应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1A示出了示例环境,在该示例环境中,抓取尝试可以由机器人执行,与抓取尝试相关联的数据可以用于生成抓取训练示例,和/或抓取训练示例可以用于训练语义抓取模型的一个或多个网络。
图1B示出了图1A的语义抓取模型的网络的一种实施方式,以及可以应用于网络并通过网络生成的示例数据。
图1C示出了图1A的语义抓取模型的网络的另一种实施方式,以及可以应用于网络并通过网络生成的示例数据。
图2示出了图1的机器人之一以及该机器人的抓取末端执行器沿着路径移动的示例。
图3是示出执行抓取尝试并存储与抓取尝试相关联的数据的示例方法的流程图。
图4是示出基于与机器人的抓取尝试相关联的数据来生成语义抓取训练示例的示例方法的流程图。
图5是示出基于语义抓取训练示例来训练语义抓取模型的网络的示例方法的流程图。
图6是示出基于非语义抓取训练示例来训练抓取模型和联合网络的示例方法的流程图。
图7是示出了基于语义训练示例来训练语义模型和联合网络的示例方法的流程图。
图8A示出了图1B的语义抓取模型的实施方式的示例架构。
图8B示出了图1B的语义抓取模型的实施方式的另一示例架构。
图8C示出了图1C的抓取网络的实施方式的示例架构。
图9是示出利用语义抓取模型来对抓取末端执行器进行伺服的示例方法的流程图。
图10是示出利用语义抓取模型来对抓取末端执行器进行伺服的另一种示例方法的流程图。
图11示意性地描绘了机器人的示例架构。
图12示意性地描绘了计算机系统的示例架构。
具体实施方式
本文描述的技术的一些实施方式针对语义机器人抓取的任务,其中,机器人使用由相机或机器人的其他视觉组件捕获的图像(例如,由机器人的专题相机捕获的单目图像)来拾取具有用户指定的语义特征(例如,指定的类别)的对象。
在机器人学中,对象检测、分类和抓取计划一般被视为要独立解决的单独问题。本文描述的实施方式呈现了用于语义抓取的方法,该方法相反地以端到端的方式一起学习这些组件(对象检测、分类和抓取计划)。在那些实施方式的一些中,“腹侧通路(ventralstream)”(例如,训练后的语义网络)识别对象语义,而“背侧通路(dorsal stream)”(例如,训练后的抓取网络)同时解释运行成功的抓取所必需的几何(或空间)关系。在那些实施方式的一些版本中,利用机器人的自主数据收集能力来获得用于训练背侧通路的大型自监督数据库,并利用半监督标签传播来训练腹侧通路。本文描述的各种实施方式可以使得抓取准确性优于其组件不是端到端学习的抓取系统。此外,如本文中所描述的,用辅助数据(例如,包括非语义抓取数据库和/或非抓取语义数据库的辅助数据)对语义抓取模型的(多个)网络进行联合训练可以附加地或替换地改善语义抓取性能。
在本文描述的各种实施方式中,将既是空间的又是语义的视觉推理分为两种通路:以空间不变的方式推理对象身份的腹侧通路和不考虑语义而推理空间关系的背侧通路。在那些各种实施方式的一些中,背侧通路由神经网络(抓取网络)建模,该神经网络预测特定的抓取动作是否会导致成功的抓取。腹侧通路由另一个神经网络(语义网络)建模,该神经网络被训练为预测将拾取哪种类型的对象(或对象的其他特征)。本文描述的双通路模型的一个示例是两分支架构(例如,图1B),其在分支到指定于抓取的(抓取网络)和指定于语义特征的(语义网络)分支之前,共享图像和末端执行器运动矢量处理(联合网络)。与单通路方法相比,双通路方法可提供更好的抓取准确性。从而,可以提高对象识别和定位的精度。
在一些实施方式中,利用自监督机器人数据收集和标签传播的组合来构建用于训练本文描述的神经网络模型的大型对象分类数据库。此外,在一些实施方式中,通过整合来自非语义抓取数据库的辅助空间(或非语义)信息和来自图像分类数据库的辅助语义信息,利用域转移附加地、独立地训练背侧和/或腹侧通路。使用辅助空间信息(或数据)进行训练可以改善抓取性能。使用辅助语义标签信息(或数据)而无需抓取动作可以提高模型的通用性。
在一些实施方式中,本文描述的语义抓取模型将图像It、I0作为输入,图像It、I0与机器人的相机看到的当前图像(It)和机器人的相机在抓取情节期间看到的初始图像(I0)相对应。可以在抓取情节开始之前记录初始图像,并且可以包括该初始图像,以允许系统处理由机器人手臂造成的自我遮挡。语义抓取模型还接收候选末端执行器运动矢量作为输入,诸如,任务空间运动命令at,其可以由夹具的笛卡尔(Cartesian)位移以及夹具的垂直旋转来参数化。语义抓取模型输出p(g,c|It,at),该p(g,c|It,at)是运行命令at将导致事件g(对象被抓取)和事件c(所抓取的对象是正确的语义标签)的联合概率。伺服函数对抓取进行采样(例如,使用优化技术),并使用语义抓取模型来选择具有最高的拾取期望对象的概率的抓取。
在那些实施方式的一些中,语义抓取模型是通过独立于识别对象类别而监督模型检测和抓取对象的能力来训练的。这可以通过有效地将语义抓取模型分为两种通路来完成:以抓取不变的方式推理对象身份p(c|It,atg)的腹侧通路和不考虑语义而推理空间关系的背侧通路p(g|It,at)。例如,可以将预测问题细分为基于使用二元交叉熵损失、基于非语义抓取数据(例如,其标签为成功或失败的训练示例输出)生成的损失进行训练的背侧通路,而腹侧通路在使用标准交叉熵损失、基于来自成功抓取的语义抓取数据(例如,其标签指示多个对象类别(或其他(多个)语义特征)中的每一个的存在或不存在的训练示例输出)生成的损失上进行训练。该模型学习推断动作将在何处发送夹具,并隐式关注该位置,以便提取其与抓取和语义身份的空间相关性。
语义抓取模型可以包括联合网络,诸如,该联合网络是深度卷积神经网络(deepconvolutional neural network,CNN),其用几个卷积层对输入图像(例如,It、I0)进行预处理,并与动作嵌入(嵌入候选末端执行器运动矢量)合并以生成联合输出。在一些实施方式中,然后将联合输出提供给两个单独的网络(抓取网络和语义网络),这两个网络是来自联合网络的分支并且在抓取成功或类别(或其他(多个)语义特征)预测方面受到独立监督。这些分支的输出包括背侧通路和腹侧通路,背侧通路和腹侧通路在推断处相乘(或以其他方式一起考虑)以计算策略的值函数。在一些实施方式中,在推断处,在与背侧概率相乘(或以其他方式一起考虑)之前,经由min(p(c|It,at,g)+0.5,1)(或其他函数)来平滑腹侧概率,这允许机器人即使在不确定对象的语义身份的情况下拾取对象。例如,抓取网络和/或语义网络可以每一个都是包括一个或多个卷积层的深度CNN。
双通路分解还准许在推断时对来自不同模型的背侧通路和腹侧通路进行混合且匹配(mixing-and-matching)。因此,在一些实施方式中,结合联合网络,仅被训练为预测背侧通路的深度抓取CNN(附加抓取神经网络)可以用于预测背侧/抓取成功结果,而单独的语义网络可以用于预测腹侧/语义结果。在一些实施方式中,仅被训练为预测背侧通路的深度CNN的这种用法在非语义抓取能力上可以胜过双分支模型的实施方式。
在一些实施方式中,不是使用使用末端执行器运动矢量隐式地关注对象的深度CNN,而是使用显式的关注机制来提高语义抓取模型提取相对于对象位置不变的视觉特征的表示的能力。这样的关注机制是软关键点关注,其中,通过
Figure BDA0002314727220000081
在空间范围内对卷积层的输出动作进行归一化。然后,将每个通道的空间softmax用作权重,以对网格fc=(∑ii·scij,∑jj·scij)进行空间平均,从而得出该通道中显著视觉特征的预期屏幕坐标。在分类(或其他(多个)语义特征确定)之前,将这些特征归一化为均值0和标准差1,因为类别身份应该相对于空间特征的位置及其尺度(scale)不变。
由于软关键点关注以坐标形式返回关注特征的低维表示,因此与不利用软关键点关注相比,语义抓取模型的背侧和腹侧分支可以包括更少的全连接层。尽管软关键点关注不一定会比简单地使用深度CNN带来实质上更好的性能,但它可以减少模型中的参数数量(从而减小模型的大小)和/或加速训练(从而导致消耗训练中更少的计算资源)。
现在转到附图,图1A示出了示例环境,其中,可以由机器人(例如,机器人180A、180B和/或其他机器人)执行抓取尝试,与抓取尝试相关联的数据可以用于生成抓取训练示例数据库117的抓取训练示例,和/或抓取训练示例可以用于训练语义抓取模型124的各种网络125、126和/或127。
如本文中更详细地描述的,抓取训练示例数据库117的抓取训练示例可以包括语义抓取训练示例,语义抓取训练示例包括识别在训练示例的对应抓取尝试中抓取的对象的(多个)语义特征(例如,类别)的训练示例输出。抓取训练示例数据库117的抓取训练示例还可以包括非语义抓取训练示例,非语义抓取训练示例不包括识别在训练示例的对应抓取尝试中抓取的对象的(多个)语义特征(例如,类别)的训练示例输出训练示例输出。在图1A中还示出了附加语义训练示例数据库119,并且附加语义训练示例数据库119包括也可用于训练语义抓取模型124的语义网络127a和/或联合网络126的语义训练示例。如本文中更详细描述的,语义训练示例可以是非抓取训练示例,因为它们不是基于抓取尝试而生成的。
在图1A中示出了示例机器人180A和180B。这里的机器人180A和180B是具有多个自由度的“机器人手臂”,以使得能够沿着多个潜在路径中的任一个来回移动抓取末端执行器182A和182B,以将抓取末端执行器182A和182B放置在期望的位置。例如,参考图2,示出了机器人180A沿着路径201来回移动其末端执行器的示例。图2包括机器人180A的假想和非假想图像,示出了机器人180A及其末端执行器沿路径201来回移动时所产生的一组姿势中的两个不同姿势。再次参考图1A,机器人180A和180B分别进一步控制其对应的抓取末端执行器182A、182B的两个相对的“爪”,以在至少一个打开位置和一个闭合位置(和/或可选地多个“部分闭合”位置)之间致动爪。如下面进一步所述的,可以使用具有任何合适的末端执行器的任何其他合适的机器人。
在图1A中还示出了示例视觉组件184A和184B。在图1A中,视觉组件184A相对于机器人180A的基座或其他静止参考点以固定姿势安装。视觉组件184B也相对于机器人180B的基座或其他静止参考点以固定姿势安装。如图1A所示,视觉组件184A相对于机器人180A的姿势不同于视觉组件184B相对于机器人180B的姿势。如本文所述,在一些实施方式中,这可以有利于生成各种训练示例,这些训练示例可以用于训练各种神经网络以产生对相机校准具有鲁棒性和/或独立于相机校准的对应输出。视觉组件184A和184B分别包括一个或多个传感器,并且可以利用来自传感器的输出来生成与传感器视线中的(多个)对象的形状、颜色、深度和/或其他特征有关的图像。例如,视觉组件184A和184B可以是专题相机、立体相机和/或激光扫描仪。激光扫描仪包括发射光的一个或多个激光器和收集与发射的光的反射有关的数据的一个或多个传感器。例如,激光扫描仪可以是飞行时间激光扫描仪或基于三角测量的激光扫描仪,并且可以包括位置敏感检测器(position sensitive detector,PSD)或其他光学位置传感器。
视觉组件184A具有机器人180A的工作空间的至少一部分的视野,例如,包括示例对象191A的工作空间的一部分。尽管在图1A中未示出对象191A的(多个)搁置表面,那些对象可以搁置在桌子、托盘和/或其他(多个)表面上。对象191A包括刮铲、订书机和铅笔。然而,本文描述的方法可以利用任何其他合适的对象。在其他实施方式中,如本文所述,在机器人180A的全部或部分抓取尝试期间,可以提供更多对象、更少对象、附加对象和/或替代对象。例如,在一些实施方式中,可以在机器人180A的一些抓取尝试期间提供具有一个或多个相同特征的对象(例如,所有对象均具有第一分类),可以在机器人180A的一些其他抓取尝试期间等提供具有一个或多个相同的不同特征的对象(例如,所有对象均具有第二分类)。
视觉组件184B具有机器人180B的工作空间的至少一部分的视野,例如,包括示例对象191B的工作空间的一部分。尽管在图1A中未示出对象191B的(多个)搁置表面,它们可以搁置在桌子、托盘和/或其他表面上。对象191B包括铅笔、订书机和眼镜,或任何其他合适的对象。在其他实施方式中,如本文所述,在机器人180B的全部或部分抓取尝试期间,可以提供更多对象、更少对象、附加对象和/或替代对象。例如,在一些实施方式中,可以在机器人180B的一些抓取尝试期间提供具有一个或多个相同特征的对象(例如,所有对象均具有第一分类),可以在机器人180B的一些其他抓取尝试期间等提供具有一个或多个相同的不同特征的对象(例如,所有对象均具有第二分类)。
尽管在图1A中示出了特定的机器人180A和180B,但是可以利用附加的和/或替代的机器人,包括类似于机器人180A和180B的附加的机器人手臂、具有其他机器人手臂形式的机器人、具有人形形式的机器人、具有动物形式的机器人、经由一个或多个轮子移动的机器人(例如,自平衡机器人)、潜水机器人、无人飞行器(unmanned aerial vehicle,UAV)等等。此外,尽管在图1A中示出了特定的抓取末端执行器,但是可以利用附加的和/或替代的末端执行器,诸如替代的冲击式抓取末端执行器(例如,具有抓取“板”的那些、具有更多或更少“手指”/“手爪”的那些)、“侵入式”抓取末端执行器、“限制式”抓取末端执行器、或“接触式”抓取末端执行器、或非抓取末端执行器。另外,尽管在图1A中示出了视觉组件184A和184B的特定安装,但是可以利用附加的和/或替代的安装。例如,在一些实施方式中,视觉部件可以直接安装到机器人上,诸如安装在机器人的不可致动组件上或机器人的可致动组件上(例如,安装在末端执行器上或安装在靠近末端执行器的组件上)。而且,例如,在一些实施方式中,视觉组件可以被安装在与其相关联的机器人分开的非静止结构上和/或可以以非静止方式被安装在与其相关联的机器人分开的结构上。
可以利用机器人180A、180B和/或其他机器人来执行大量的抓取尝试,并且训练示例生成系统110可以利用与抓取尝试相关联的数据来生成抓取训练示例数据库117的抓取训练示例。在一些实施方式中,训练示例生成系统110的全部或方面可以在机器人180A和/或机器人180B(例如,经由机器人180A和180B的一个或多个处理器)上实施。例如,机器人180A和180B可以分别包括训练示例生成系统110的实例。在一些实施方式中,训练示例生成系统110的全部或方面可以在与机器人180A和180B分开但与之进行网络通信的一个或多个计算机系统上实施。
机器人180A、180B和/或其他机器人的每次抓取尝试由T个单独的时间步骤或实例组成。在每个时间步骤,存储由执行抓取尝试的机器人的视觉传感器捕获的当前图像
Figure BDA0002314727220000111
还存储末端执行器的当前姿势并且机器人选择下一步沿其移动夹具的路径(平移的和/或旋转的)。在最后的时间步骤T,机器人致动(例如,闭合)夹具并存储附加数据和/或执行一个或多个附加动作,以使得能够评估抓取的成功。训练示例生成系统110的抓取成功引擎116评估抓取的成功,生成抓取成功标签(sli)和/或(多个)抓取对象标签(oli),其中,(多个)抓取对象标签指示所抓取的对象(如果实际抓取了任何对象)的(多个)语义特征。
每次抓取尝试都会产生T个抓取训练示例,表示为
Figure BDA0002314727220000113
Figure BDA0002314727220000114
也就是说,每个抓取训练示例至少包括在时间步骤
Figure BDA0002314727220000115
处观察到的图像,从该时间步骤处的姿势到最后到达的姿势(抓取尝试的最终姿势)的末端执行器运动矢量
Figure BDA0002314727220000116
和抓取成功标签(sli)。语义抓取训练示例还包括抓取尝试的(多个)抓取对象标签(oli)。每个末端执行器运动矢量可以由训练示例生成系统110的末端执行器运动矢量引擎114确定。例如,末端执行器运动矢量引擎114可以确定抓取尝试的当前姿势和最终姿势之间的变换,并将该变换用作末端执行器运动矢量。训练示例生成系统110将多个机器人的多次抓取尝试的抓取训练示例存储在抓取训练示例数据库117中。
由与机器人相关联的(多个)传感器生成的数据和/或从生成的数据导出的数据可以被存储在靠近机器人和/或远离机器人的一个或多个非暂时性计算机可读介质中。在一些实施方式中,当前图像可以包括多个通道,诸如红色通道、蓝色通道、绿色通道和/或深度通道。图像的每个通道定义图像的多个像素中的每个像素的值,诸如,图像的每个像素的值为0到255。在一些实施方式中,每个训练示例可以包括当前图像和对应的抓取尝试的附加图像,其中,附加图像不包括抓取末端执行器或包括处于不同姿势(例如,与当前图像的姿势不重叠的姿势)的末端执行器。例如,可以在任何先前的抓取尝试之后,但是在抓取尝试的末端执行器移动开始之前并且当抓取末端执行器移出视觉传感器的视野时,捕获附加图像。当前姿势和从当前姿势到抓取尝试的最终姿势的末端执行器运动矢量可以表示在任务空间、联合空间或另一个空间中。例如,末端执行器运动矢量可以由任务空间中的五个值表示:定义三维(three-dimensional,3D)平移矢量的三个值,以及表示围绕末端执行器的轴的末端执行器的方向上的变化的正弦-余弦编码的两个值。
在一些实施方式中,抓取成功标签是二元标签,诸如“0/成功”或“1/不成功”标签。在一些实施方式中,可以从两个以上的选项中选择抓取成功标签,诸如0、1以及0和1之间的一个或多个值。例如,“0”可以表示已确认的“不成功抓取”,“1”可以表示已确认的“成功抓取”,“0.25”可以表示“最可能不成功的抓取”,而“0.75”可以表示“最可能成功的抓取”。
在一些实施方式中,语义抓取训练示例的(多个)抓取对象标签分别指示在对应的抓取对象中是否存在对应的特征。例如,所抓取的对象的抓取对象标签可以指示该对象属于一个或多个对象类别中的哪一个。可以利用各种粒度的对象类别。所抓取的对象标签可以分别是二进制的(例如,特征存在或不存在)或从两个以上的选项中选择(例如,特征可能不存在、最可能不存在、可能存在、最可能存在)。如本文所述,抓取成功引擎116可以利用一种或多种技术来将抓取对象标签分配给抓取尝试。例如,抓取成功引擎116可以基于抓取尝试是来自全部具有标签(例如,当从全部都是“牙刷”的多个对象中抓取对象时,标签是“牙刷”)的对象的集合,将抓取对象标签分配给该抓取尝试。此外,例如,抓取成功引擎116可以捕获在抓取尝试中抓取的对象的图像(例如,在抓取末端执行器仍在抓取对象时,通过将抓取末端执行器移动到视觉传感器的前面),并利用所捕获的图像来确定抓取对象标签。例如,抓取成功引擎116可以将捕获的图像提供给一个或多个人类检查者的计算设备,并利用来自一个或多个人类检查者的输入(经由其相应的计算设备)来确定抓取对象标签。可替代地,可以以任何其他合适的方式确定抓取对象标签。
训练引擎120基于抓取训练示例数据库117的抓取训练示例来训练语义抓取模型124的网络125、126和127中的一个或多个。训练引擎120还可以基于附加的语义训练示例119来训练语义网络127和可选地联合网络126。在各种实施方式中,训练引擎120彼此独立地训练抓取网络125和语义网络127。换句话说,训练引擎120在训练期间利用基于通过抓取网络125生成的抓取预测而生成的损失来更新抓取网络125(以及可选地联合网络126)的参数,而不基于这样的损失来更新语义网络127。类似地,训练引擎120利用基于通过语义网络127生成的语义预测而生成的损失来更新语义网络127(以及可选地联合网络126)的参数,而不基于这样的损失来更新抓取网络125。此外,在那些实施方式的一些中,可以基于以下两者来训练联合网络126:基于通过抓取网络125生成的抓取预测而生成的抓取损失,以及基于通过语义网络127生成的语义预测而生成的语义损失。以这种方式,训练引擎120至少部分地“联合”训练联合网络126,因为它基于以下两者来更新联合网络126的参数:基于来自抓取网络125的输出生成的损失;以及基于来自语义网络127的输出生成的损失。
下面参考图3至图7提供执行抓取尝试、基于抓取尝试生成训练数据以及训练语义抓取模型124的实施方式的附加描述。
图1B示出了图1A的语义抓取模型124的网络125、126、127的一种实施方式,以及可应用于网络并使用网络生成的示例数据。在图1B的实施方式中,语义抓取模型被称为124B,以说明它是图1A的语义抓取模型124的一种实施方式。此外,语义抓取模型124B的网络被称为125B、126B和127B,以说明它们是图1A的网络125、126和127的网络125、126和127的实施方式。
在一些实施方式中,机器人的一个或多个处理器可以基于网络125B、126B和127B应用和/或生成图1B的数据。例如,一个或多个处理器可以在给定迭代(例如,控制周期)期间应用和/或生成图1B的数据,该给定迭代在(多个)其他迭代之前和/或之后,在该(多个)其他迭代中同样生成和/或应用对应的数据。此外,在给定迭代期间,可以考虑多个候选末端执行器运动矢量,并且基于其生成最能指示成功抓取的抓取成功度量而利用所考虑的候选末端执行器之一。例如,在给定迭代中可以利用优化技术采样多个候选末端执行器运动矢量,使用语义抓取模型124B处理那些末端执行器运动矢量中的每一个(以及相同的(多个)图像161C),并且在给定迭代中选择所采样的候选末端执行器运动矢量之一用于生成控制命令。
在图1B中,一个或多个图像161B作为输入被应用于联合网络126B,诸如当前图像和可选地附加图像(例如,捕获与当前图像相同的场景但是省略抓取末端执行器的图像)。末端执行器运动矢量162B也被应用于联合网络126B。在一些实施方式中,(多个)图像161B被应用于联合网络126B的初始层,并且末端执行器运动矢量162B被应用于联合网络126B的下游层。
联合网络126B是神经网络,诸如包括一个或多个卷积层(例如,在一些层之间穿插有池化层的多个卷积层)的CNN。通过使用联合网络126B的学习后/训练后的参数对所应用的(多个)图像和末端执行器运动矢量162B进行处理,使用联合网络126B生成联合输出。通过联合网络126B生成的联合输出被应用于抓取网络125B和语义网络127B两者。
通过使用抓取网络125B的学习后的参数对所应用的联合输出进行处理,使用抓取网络125B生成抓取成功度量177B。抓取网络125B是神经网络,诸如包括一个或多个卷积层(例如,在一些层之间穿插有池化层的多个卷积层)的CNN。抓取成功度量177B指示实施末端执行器运动矢量162B(例如,提供控制命令以使机器人末端执行器运行末端执行器运动)并且然后尝试抓取将导致成功抓取对象的预测可能性。
通过使用语义网络127B的学习后的参数对所应用的联合输出进行处理,通过语义网络127B生成一个或多个对象语义特征179B。语义网络127B是神经网络,诸如包括一个或多个卷积层(例如,在一些层之间穿插有池化层的多个卷积层)的CNN。(多个)对象语义特征179B指示如果实施末端执行器运动矢量162B然后尝试抓取,则将会被抓取到的对象的(多个)预测语义特征。例如,(多个)对象语义特征179B可以指示对象属于一个或多个类别中的哪一个,诸如“橡皮擦”、“剪刀”、“梳子”、“铲子”、“火炬”、“玩具”、“发刷”等类别,和/或其他更大或更小粒度的(多个)类别。例如,对于多个类别中的每一个,(多个)语义特征180B可以指示对象具有该类别的对应可能性。
机器人的一个或多个处理器可以基于抓取度量177B和(多个)对象语义特征179B来确定是否运行末端执行器运动矢量162B并尝试抓取。例如,可以提供一个或多个期望的对象语义特征(例如,经由用户界面输入),并且基于指示那些语义特征的(多个)对象语义特征179B并且基于抓取度量177B和/或满足一个或多个标准的在先迭代的抓取度量尝试抓取。下面参考图9和图10提供利用语义抓取模型的实施方式的附加描述。
图1C示出了图1A的语义抓取模型124的网络125、126、127的另一种实施方式,以及可应用于网络并通过网络生成的示例数据。在图1C的实施方式中,语义抓取模型被称为124C,以说明它是图1A的语义抓取模型124的另一种实施方式。此外,联合网络126B和语义网络127B在图1C中采用与图1B中相同的附图标记,以指示它们与图1B中的对应网络相同。然而,抓取网络125C被称为125C,以说明它是图1A的抓取网络125的另一种实施方式。如本文所述,联合网络126B和语义网络127B可以与图1B的抓取网络125B一起端到端地训练。然而,在图1C中,在推断时不利用抓取网络125B。相反,利用单独训练后的抓取网络125C。换句话说,尽管可以在训练期间利用抓取网络125B,但是在推断时,图1C的语义抓取模型124C包括取代抓取网络125B的单独训练后的抓取网络125C。
在一些实施方式中,机器人的一个或多个处理器可以基于网络125C、126B和127B应用和/或生成图1C的数据。例如,一个或多个处理器可以在给定迭代(例如,控制周期)中应用和/或生成图1C的数据,该给定迭代在(多个)其他迭代之前和/或之后,在(多个)其他迭代中同样地生成和/或应用对应的数据。此外,在给定迭代中,可以考虑多个候选末端执行器运动矢量,并且基于其生成最能指示成功抓取的抓取成功度量而利用所考虑的候选末端执行器之一。例如,在给定迭代中可以利用优化技术采样多个候选末端执行器运动矢量,使用语义抓取模型124C来处理那些末端执行器运动矢量中的每一个(以及相同的(多个)图像161C),并且选择所采样的候选末端执行器运动矢量之一用于在给定迭代中生成控制命令。
在图1C中,一个或多个图像161C作为输入被应用于抓取网络125C,诸如当前图像以及可选地附加图像(例如,捕获与当前图像相同的场景但是省略抓取末端执行器的图像)。末端执行器运动矢量162C也被应用于抓取网络125C。在一些实施方式中,(多个)图像161C被应用于抓取网络125C的初始层,并且末端执行器运动矢量162C被应用于抓取网络125C的下游层。抓取网络125C基于所应用的(多个)图像161C和末端执行器运动矢量162C生成抓取度量177C。
在图1C中,(多个)图像161C和末端执行器运动矢量162C也作为输入被应用于联合网络126B。在一些实施方式中,(多个)图像161C被应用于联合网络126B的初始层,并且末端执行器运动矢量162C被应用于联合网络126B的下游层。通过使用联合网络126B的学习后/训练后的参数对所应用的图像161C和末端执行器运动矢量162B进行处理,通过联合网络126B上生成联合输出。通过联合网络126B生成的联合输出被应用于语义网络127B。
通过使用语义网络127B的学习后的参数对所应用的联合输出进行处理,通过语义网络127B生成一个或多个语义特征179C。(多个)语义特征179C指示如果实施末端执行器运动矢量162C然后尝试抓取,则将会被抓取到的对象的(多个)预测语义特征。例如,(多个)语义特征179C可以指示对象属于一个或多个类别中的哪一个。
机器人的一个或多个处理器可以基于抓取量度177C和(多个)语义特征179C来确定是否运行末端执行器运动矢量162C并尝试抓取。例如,可以提供一个或多个期望的对象语义特征(例如,经由用户界面输入),并且基于指示那些语义特征的(多个)语义特征179C并且基于抓取度量177C和/或满足一个或多个标准的在先迭代的抓取度量尝试抓取。下面参考图9和图10提供利用语义抓取模型的实施方式的附加描述。
图3是示出了执行抓取尝试并存储与抓取尝试相关联的数据的示例方法300的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括机器人的一个或多个组件,诸如机器人180A、180B、1125和/或其他机器人的处理器和/或机器人控制系统。此外,尽管以特定顺序示出了方法300的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框352处,系统开始抓取尝试。在框354处,系统存储环境的图像,且该图像中不存在末端执行器。例如,系统可以将抓取末端执行器移出视觉传感器的视野(即,不遮挡环境的视图),并且在当抓取末端执行器处于视野之外的实例捕获图像。然后,可以存储图像并将其与抓取尝试相关联。
在框356处,系统确定并实施末端执行器移动。例如,系统可以生成一个或多个运动命令,以使控制末端执行器的姿势的一个或多个致动器致动,从而改变末端执行器的姿势。
在框356的一些实施方式和/或迭代中,(多个)运动命令在给定空间内可以是随机的,诸如末端执行器可到达的工作空间、末端执行器被限定在其中进行抓取尝试的受限空间和/或由控制末端执行器的姿势的(多个)致动器的位置和/或扭矩限制来定义的空间。本文所使用的随机可以包括真随机或伪随机。
在一些实施方式中,对于每次抓取尝试,在框356的第一次迭代中,末端执行器可以基于其在框354处被移出视野而“移出位置”。在那些实施方式中的一些中,在框356的第一次迭代之前,末端执行器可以随机地或以其他方式“移回位置”。例如,末端执行器可以移回设定的“开始位置”和/或移至给定空间内的随机选择的位置。
在框358处,系统存储:(1)捕获在抓取尝试的当前实例处的末端执行器和环境的图像,以及(2)在当前实例处的末端执行器的姿势。例如,系统可以存储由与机器人相关联的视觉传感器生成的当前图像,并将该图像与当前实例(例如,与时间戳)相关联。此外,例如,系统可以基于来自机器人的联合的一个或多个联合位置传感器(其位置影响机器人的姿势)的数据来确定末端执行器的当前姿势,并且系统可以存储该姿势。该系统可以确定末端执行器的姿势,并将其存储在任务空间、联合空间或另一个空间中。
在框360处,系统确定当前实例是否是抓取尝试的最终实例。在一些实施方式中,系统可以在框352、354、356或358处增加实例计数器,和/或随着时间的推移而增加时间计数器,并且基于比较计数器的值与阈值来确定当前实例是否为最终实例。例如,计数器可以是时间计数器,并且阈值可以是3秒、4秒、5秒和/或其他值。在一些实施方式中,阈值可以在方法300的一次或多次迭代之间变化。
如果系统在框360处确定当前实例不是抓取尝试的最终实例,则系统返回至框356,在框356处系统确定并实施另一末端执行器移动,然后前进至框358,在框358处系统存储图像以及当前实例的姿势。对于给定的抓取尝试,通过框356、358和360的多次迭代,末端执行器的姿势将由框356的多次迭代以及在那些实例中的每一个处存储的图像和姿势改变。在许多实施方式中,框356、358、360和/或其他框可以以相对较高的频率执行,从而为每次抓取尝试存储相对大量的数据。
如果系统在框360处确定当前实例是抓取尝试的最终实例,则系统前进至框362,在框362处系统致动末端执行器的夹具。例如,对于冲击式夹具末端执行器,系统可以使一个或多个板、手指和/或其他构件闭合。例如,系统可以使构件闭合,直到它们处于完全闭合的位置或者由与构件相关联的(多个)扭矩传感器测量的扭矩读数满足阈值。
在框364处,系统存储附加数据,并且可选地执行一个或多个附加动作,以使得能够确定框360的抓取成功和/或使得能够确定在框360处抓取的对象(如果有的话)的抓取对象特征。在一些实施方式中,被存储以使得能够确定抓取成功的附加数据是来自抓取末端执行器的位置读数、扭矩读数和/或其他读数。例如,在框362之后大于某个阈值(例如,1cm)的位置读数可以指示成功抓取(例如,可以指示抓取末端执行器正在抓取某个对象,因为它可以超过阈值地闭合)。在一些实施方式中,被存储以使得能够确定在框360处抓取的对象的抓取对象特征的附加数据指示在抓取尝试期间可供抓取的所有对象共享的一个或多个对象特征。例如,在抓取尝试中,在机器人的工作空间中只有画笔可以是可用的,并且可以存储指示“画笔”分类的对象特征。可以基于操作员提供的指示和/或感测到的指示(例如,工作空间中提供并由视觉传感器捕获的指示(多个)对象特征的机器可读代码)来确定在抓取尝试中所有对象共享的(多个)对象特征。
在一些实施方式中,在框364处,系统附加地和/或可选地:(1)将末端执行器保持在致动(例如,闭合)位置,并将末端执行器和可以由末端执行器抓取的任何对象移动到靠近视觉传感器的位置;(2)当末端执行器(和任何抓取对象)处于靠近视觉传感器的位置时,用视觉传感器捕获图像。在那些实施方式的一些中,如果首先基于其他数据确定抓取可能成功(例如,如果位置读数指示成功抓取),则系统可以仅移动末端执行器和/或捕获这样的图像。如本文所述,这样的捕获图像可以随后用于确定抓取尝试是否成功和/或确定由末端执行器抓取的对象的一个或多个抓取对象特征。例如,可以将捕获的图像提供给一个或多个人类检查者的计算设备,人类检查者可以利用他们的计算设备基于捕获的图像来指示抓取是否成功和/或指示在捕获的图像中正在抓取的对象的一个或多个抓取对象特征。可替代地,可以以任何其他合适的方式提供关于抓取是否成功的指示和/或关于在捕获的图像中正在抓取的对象的一个或多个抓取对象特征的指示。
在框366处,系统重置计数器(例如,实例计数器和/或时间计数器),并返回至框352以开始另一次抓取尝试。
在一些实施方式中,图3的方法300可以在多个机器人中的每一个上实施,可选地在方法300的相应迭代的一个或多个(例如,全部)中并行地操作。与仅有一个机器人操作方法300相比,这可以在给定的时间段内实现更多次的抓取尝试。此外,在多个机器人中的一个或多个机器人包括相关联的视觉组件,该相关联的视觉组件相对于机器人的姿势相比于与其他机器人相关联的一个或多个视觉组件的姿势是唯一的实施方式中,基于来自多个机器人的抓取尝试而生成的训练示例可以为基于那些训练示例而训练的神经网络中的视觉组件姿势提供鲁棒性。此外,在多个机器人的抓取末端执行器和/或其他硬件部件发生不同地变化和/或不同地磨损,和/或其中不同的机器人(例如,相同品牌和/或型号和/或(多个)不同品牌或型号)与不同的对象(例如,不同大小、不同重量、不同形状、不同透明度、不同材料)和/或在不同的环境(例如,不同表面、不同照明、不同环境障碍)中交互的实施方式中,基于来自多个机器人的抓取尝试而生成的训练示例可以为各种机器人和/或环境配置提供鲁棒性。
在一些实施方式中,在方法300的不同迭代中,给定机器人可到达并且可以对其进行抓取尝试的对象可以是不同的。例如,人类操作员和/或另一机器人可以在机器人的一次或多次抓取尝试之间向机器人的工作空间添加和/或移除对象。此外,例如,在成功抓取那些对象之后,机器人本身可以将一个或多个对象从其工作空间删除。这可以增加训练数据的多样性。在一些实施方式中,在方法300的不同迭代中,诸如照明、(多个)表面、障碍物等的环境因素可以附加地和/或可替代地不同,这也可以增加训练数据的多样性。
图4是示出基于与机器人的抓取尝试相关联的数据来生成抓取训练示例的示例方法400的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括机器人和/或另一计算机系统的一个或多个组件,诸如机器人180A、180B、1125的处理器和/或机器人控制系统,和/或训练示例生成系统110和/或可以可选地与机器人分开实施的其他系统的处理器。此外,尽管以特定顺序示出了方法400的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框452处,系统开始训练示例生成。在框454处,系统选择抓取尝试。例如,系统可以访问包括与多个存储的抓取尝试相关联的数据的数据库,并选择存储的抓取尝试之一。例如,所选抓取尝试可以是基于图3的方法300生成的抓取尝试。
在框456处,系统基于所选抓取尝试的存储数据,确定所选抓取尝试的抓取成功标签以及可选地(多个)抓取对象标签。例如,如关于方法300的框364所描述的,可以存储抓取尝试的附加数据,以使得能够确定抓取尝试的抓取成功标签和/或抓取对象标签。存储数据可以包括来自一个或多个传感器的数据,其中,该数据在抓取尝试期间和/或之后生成。
作为一个示例,数据可以是来自抓取末端执行器的位置读数、扭矩读数和/或其他读数。在这样的示例中,系统可以基于(多个)读数来确定抓取成功标签。例如,在读数是位置读数的情况下,如果读数大于某个阈值(例如,1cm),则系统可以确定“成功抓取”标签;如果读数小于某个阈值(例如,1cm),则系统可以确定“不成功抓取”标签。
作为另一示例,数据可以是末端执行器抓取在抓取尝试中抓取的对象的图像。例如,在末端执行器和可以由末端执行器抓取的任何对象移动到靠近视觉传感器的位置之后,图像可以由视觉传感器捕获。在这样的示例中,系统可以利用捕获的图像来确定抓取尝试是否成功和/或确定由末端执行器抓取的对象的一个或多个抓取对象特征。例如,该系统可以将捕获的图像提供给一个或多个人类检查者的计算设备,人类检查者可以利用他们的计算设备基于捕获的图像来指示抓取是否成功和/或指示在捕获的图像中正在抓取的对象的一个或多个抓取对象特征。可替代地,可以以任何其他合适的方式提供关于抓取是否成功的指示和/或关于在捕获的图像中正在抓取的对象的一个或多个抓取对象特征的指示。
作为可以确定的抓取对象标签的一个示例,抓取对象标签可以指示抓取对象是否具有一组分类中的一个或多个中的每一个。例如,抓取对象标签可以指示所抓取的对象具有组中的“笔”分类,但是不具有该组中的任何其他分类。
在框456的一些迭代中,系统仅确定抓取尝试的抓取成功标签。仅包括抓取成功标签并且省略(多个)对象标签(或包括(多个)对象标签的“空”值)的训练示例在本文中也称为非语义抓取训练示例。在框456的一些其他迭代中,系统附加地确定抓取尝试的(多个)抓取对象标签。包括抓取成功标签和对象标签的训练示例在本文中也称为语义抓取训练示例。在给定迭代中,系统是否确定抓取尝试的抓取成功标签和/或(多个)抓取对象标签可以基于各种因素。例如,在框456的一些迭代中,如果抓取尝试的抓取不成功,则仅确定抓取成功标签。此外,例如,在框456的一些迭代中,可能期望生成仅用于训练抓取网络(例如,单独的附加抓取网络,诸如图1C的抓取网络125C)的非语义抓取训练示例。此外,例如,在某些情况下,在给定迭代中,在确定是否还期望生成训练示例的(多个)抓取对象标签时,可以考虑计算和/或其他成本。
在框458处,系统选择抓取尝试的实例。例如,系统可以基于时间戳和/或与数据相关联的其他划分来选择与实例相关联的数据,该数据将该实例与抓取尝试的其他实例区分开。
在框460处,系统基于实例处的末端执行器的姿势和抓取尝试的最终实例处的末端执行器的姿势来生成该实例的末端执行器运动矢量。例如,系统可以确定当前姿势和抓取尝试的最终姿势之间的变换,并将该变换用作末端执行器运动矢量。当前姿势和从当前姿势到抓取尝试的最终姿势的末端执行器运动矢量可以在任务空间、联合空间或另一个空间中表示。例如,末端执行器运动矢量可以由任务空间中的五个值表示:定义三维(3D)平移矢量的三个值,以及表示围绕末端执行器的轴的末端执行器的方向变化的正弦-余弦编码的两个值。
在框462处,系统生成实例的抓取训练示例,该抓取训练示例包括:(1)该实例的存储的图像,(2)在框460为生成的该实例的末端执行器运动矢量,以及(3)在框456确定的抓取成功标签和/或(多个)抓取对象标签。在一些实施方式中,系统生成抓取训练示例,该抓取训练示例还包括抓取姿势的存储的附加图像,诸如至少部分地省略了末端执行器并且在抓取尝试之前捕获的图像。在那些实施方式的一些中,系统将实例的存储的图像和抓取尝试的存储的附加图像级联起来,以生成抓取训练示例的级联图像。级联图像既包括实例的存储的图像,也包括存储的附加图像。例如,在两个图像都包括X×Y像素和三个通道(例如,红色、蓝色、绿色)的情况下,级联图像可以包括X×Y像素和六个通道(每个图像三个)。如本文所述,当前图像、附加图像以及从当前姿势到训练示例的抓取尝试的最终姿势的矢量可以用作(多个)训练示例输入;并且抓取成功标签和/或(多个)抓取对象标签可以用作(多个)训练示例输出。
在一些实施方式中,在框462处,系统可以可选地处理(多个)图像。例如,系统可以可选地调整图像的大小以适合一个或多个网络的输入层的规定大小,从图像中移除一个或多个通道,和/或使(多个)深度通道的值归一化(在图像包含深度通道的实施方式中)。
在框464处,系统确定所选择的实例是否是抓取尝试的最终实例。如果系统确定所选择的实例不是抓取尝试的最终实例,则系统返回到框458并选择另一个实例。
如果系统确定所选择的实例是抓取尝试的最终实例,则系统前进到框466,并确定是否存在附加抓取尝试要处理。如果系统确定还存在附加抓取尝试要处理,则系统返回到框454并选择另一抓取尝试。在一些实施方式中,确定是否存在附加抓取尝试要处理可以包括确定是否有任何剩余的未处理抓取尝试。在一些实施方式中,确定是否存在附加抓取尝试要处理可以附加地和/或可选地包括确定是否已经生成阈值数量的训练示例和/或是否已经满足其他标准。
如果系统确定不存在附加抓取尝试要处理,则系统前进到框466,并且方法400结束。可以再次执行方法400的另一迭代。例如,可以响应于至少阈值数量的附加抓取尝试被执行而再次执行方法400。
尽管为了清楚起见,在本文以单独的附图示出了方法300和方法400,但是应当理解,方法400的一个或多个框可以由与执行方法300的一个或多个框相同的(多个)组件来执行。例如,方法300和方法400的一个或多个(例如,全部)框可以由机器人的(多个)处理器执行。此外,应当理解,方法400的一个或多个框可以与方法300的一个或多个框结合或在其之前或之后执行。
现在转到图5至图7,描述了训练语义抓取模型的网络的各种示例方法。为了便于说明,将相对于图1B的语义抓取模型124B及其组成组件125B、126B和127B来描述示例方法。
图5是示出基于语义抓取训练示例来训练语义抓取模型的网络的示例方法500的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括计算机系统的一个或多个组件,诸如训练引擎120的一个或多个处理器(例如,(多个)GPU和/或(多个)TPU)和/或在语义抓取模型的网络上操作的其他计算机系统。此外,尽管以特定顺序示出了方法500的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框552处,系统开始语义抓取训练。在框554处,系统选择语义抓取训练示例。例如,系统可以选择基于图4的方法400生成的语义抓取训练示例。
在框556处,系统将训练示例的实例的图像和所选择的训练示例的附加图像应用于联合网络的初始层。例如,系统可以将图像应用于图1B的联合网络126B的初始卷积层。如本文所述,附加图像可以至少部分地省略末端执行器。在一些实施方式中,系统将图像和附加图像级联,并将级联的图像应用于初始层。在一些其他实施方式中,图像和附加图像已经在训练示例中被级联。
在框558处,系统将所选择的训练示例的末端执行器运动矢量应用于联合网络的附加层。例如,系统可以将末端执行器运动矢量应用于联合网络126B的附加层,该附加层位于在框556处图像被应用到的初始层的下游。在一些实施方式中,为了将末端执行器运动矢量应用于附加层,系统使末端执行器运动矢量穿过一个或多个全连接层以生成末端执行器运动矢量输出,并将末端执行器运动矢量输出与来自联合网络126B的紧邻上游层的输出进行级联。紧邻上游层位于末端执行器运动矢量被应用到的附加层的紧邻上游,并且可以可选地位于在框556处图像被应用到的初始层的下游的一个或多个层。在一些实施方式中,初始层是卷积层,紧邻上游层是池化层,并且附加层是卷积层。
在框560处,系统基于所应用的图像和所应用的末端执行器运动矢量,通过联合网络生成联合输出。例如,系统可以基于联合网络126B的当前学习后的参数,通过图1B的联合网络126B生成联合输出。
在框562处,系统将在框560处生成的联合输出应用于抓取网络。例如,系统可以将联合输出应用于图1B的抓取网络125B。
在框564处,系统基于所应用的联合输出,通过抓取网络生成抓取成功预测。例如,系统可以基于抓取网络125B的当前学习后的参数,通过抓取网络125B生成抓取成功预测。
在框566处,系统基于框564的抓取成功预测并基于训练示例的抓取成功标签,在抓取网络上并且可选地在联合网络上执行反向传播。例如,系统可以基于抓取成功预测与训练示例的抓取成功标签的比较来产生损失,并通过抓取网络125B和通过联合网络126B反向传播该损失。例如,可以将损失应用于抓取网络125B,基于该损失来更新抓取网络125B的参数,并且还可以将计算出的剩余损失应用于联合网络126B,并且基于该剩余损失来更新联合网络126B的参数。在一些实施方式中,抓取成功预测是概率度量(例如,从0到1),抓取成功标签也是概率度量(例如,0或1),并且损失是二元损失(例如,基于抓取成功预测与抓取成功标签之间的差异的大小)。
在框572处,系统还将在框560处生成的联合输出应用于语义网络。例如,系统可以将联合输出应用于图1B的语义网络127B。
在框574处,系统基于所应用的联合输出通过语义网络生成(多个)对象语义特征预测。例如,系统可以基于语义网络127B的当前学习后的参数,通过语义网络127B生成(多个)对象语义特征预测。
在框576处,系统基于框574的(多个)抓取语义特征预测以及基于训练示例的(多个)抓取对象标签,在语义网络上并且可选地在联合网络上执行反向传播。例如,系统可以基于(多个)对象语义特征预测与训练示例的(多个)抓取对象标签的比较来生成损失,并通过语义网络127B和通过联合网络126B反向传播该损失。例如,可以将损失应用于语义网络127B,基于该损失来更新语义网络127B的参数,并且还可以将计算出的剩余损失应用于联合网络126B,并且可以基于该剩余损失来更新联合网络126B的参数。在一些实施方式中,(多个)对象语义特征预测是多个类别(和/或(多个)其他语义特征)中的每一个的概率度量,并且(多个)抓取对象标签也是类别中的每一个的概率度量(例如,0或1),并且损失是交叉熵损失(例如,基于抓取成功预测和抓取成功标签之间的差异的大小)。
应当注意,在框566处,系统不基于基于框564的抓取预测和基于训练示例的抓取成功标签而确定的“抓取”损失来更新语义网络。类似地,应当注意,在框576处,系统不基于基于框574的(多个)语义特征预测和(多个)抓取对象标签而确定的“语义”损失来更新抓取网络。以这种方式,可以端到端地训练语义网络和抓取网络,但是彼此独立地进行训练。此外,在许多实施方式中,基于基于“抓取”损失和“语义”损失两者而确定的损失来训练联合网络。
在框578处,系统确定是否存在附加语义抓取训练示例。如果系统确定存在附加语义抓取训练示例,则系统返回到框554,并选择另一个语义抓取训练示例。在一些实施方式中,确定是否存在附加语义抓取训练示例可以包括确定是否有尚未用于训练语义抓取模型的一个或多个网络的任何剩余语义抓取训练示例。在一些实施方式中,确定是否存在附加语义抓取训练示例可以附加地和/或可选地包括确定是否已经利用阈值数量的语义抓取训练示例和/或已经满足其他标准。
如果系统确定不存在附加语义抓取训练示例和/或已经满足某些其他标准,则系统前进到框580,在框580处,基于语义训练示例的语义抓取模型的训练可以结束(至少暂时结束)。应当注意,在附加地利用图6的方法和/或图7的方法(以下描述)来训练语义抓取模型的网络的实施方式中,可以在图6和/或图7的一个或多个迭代之前或之后执行图5的一个或多个迭代。作为一个示例,语义抓取模型可以经由图5的多次迭代来训练,然后经由图6和/或图7的多次迭代来训练,然后经由图5的多个附加迭代来训练。
图6是示出了基于非语义抓取训练示例来训练抓取模型和语义抓取模型的联合网络的示例方法600的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括计算机系统的一个或多个组件,诸如训练引擎120的一个或多个处理器(例如,(多个)GPU和/或(多个)TPU)和/或在语义抓取模型的网络上操作的其他计算机系统。此外,尽管以特定顺序示出了方法600的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框652处,系统开始非语义抓取训练。在框654处,系统选择非语义抓取训练示例。例如,系统可以选择基于图4的方法400生成的非语义抓取训练示例。如所描述的,非语义抓取训练示例在训练示例输出中可能缺少任何(多个)抓取对象标签(或包括任何(多个)抓取对象标签的“空”值)。
在框656处,系统将所选择的训练示例的图像和所选择的训练示例的附加图像应用于联合网络的初始层。例如,系统可以将图像应用于图1B的联合网络126B的初始卷积层。
在框658处,系统将所选择的训练示例的末端执行器运动矢量应用于联合网络的附加层。例如,在框656,系统可以将末端执行器运动矢量应用于联合网络126B的附加层,该附加层位于图像被应用到的初始层的下游。
在框660处,系统基于所应用的图像和所应用的末端执行器运动矢量,通过联合网络生成联合输出。例如,系统可以基于联合网络126B的当前学习后的参数,通过图1B的联合网络126B生成联合输出。
在框662处,系统将在框660处生成的联合输出应用于抓取网络。例如,系统可以将联合输出应用于图1B的抓取网络125B。
在框664处,系统基于所应用的联合输出,通过抓取网络生成抓取成功预测。例如,系统可以基于抓取网络125B的当前学习后的参数,通过抓取网络125B生成抓取成功预测。
在框666处,系统基于框664的抓取成功预测并基于训练示例的抓取成功标签,在抓取网络上并且可选地在联合网络上执行反向传播。例如,系统可以基于抓取成功预测与训练示例的抓取成功标签的比较来生成损失,并通过抓取网络125B和联合网络126B反向传播该损失。例如,可以将损失应用于抓取网络125B,基于该损失来更新抓取网络125B的参数,并且还可以将计算出的剩余损失应用于联合网络126B,并且可以基于该剩余损失来更新联合网络126B的参数。
注意,在方法600中,联合输出不应用于语义网络,并且不生成用于更新语义网络和/或联合网络的“语义”损失。这是由于非语义抓取训练示例在训练示例输出中缺少对象标签。
在框678处,系统确定是否存在附加非语义抓取训练示例。如果系统确定存在附加非语义抓取训练示例,则系统返回到框654并选择另一个非语义抓取训练示例。在一些实施方式中,确定是否存在附加非语义抓取训练示例可以包括确定是否存在尚未用于训练语义抓取模型的一个或多个网络的任何剩余非语义抓取训练示例。在一些实施方式中,确定是否存在附加非语义抓取训练示例可以附加地或可选地包括确定是否已经利用阈值数量的非语义抓取训练示例和/或是否已经满足其他标准。
如果系统确定不存在附加非语义抓取训练示例和/或已经满足一些其他标准,则系统前进到框680,在框680处,基于非语义抓取训练示例的语义抓取模型的训练可以结束(至少暂时结束)。
图7是示出了基于语义训练示例来训练语义模型和联合网络的示例方法的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括计算机系统的一个或多个组件,诸如训练引擎120的一个或多个处理器(例如,(多个)GPU和/或(多个)TPU)和/或在语义抓取模型操作的网络上操作的其他计算机系统。此外,尽管以特定顺序示出了方法700的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框752处,系统开始语义训练。在框754处,系统选择语义(非抓取)训练示例。如所描述的,语义训练示例可以分别与语义抓取训练示例具有相同的格式,除了它们省略抓取成功标签(或包含抓取成功标签的“空”值)。换句话说,它们不包括指示抓取是否成功的训练示例输出。在一些实施方式中,语义训练示例可以包括来自图像分类(或(多个)其他特征)数据库的训练示例形式的辅助数据,附带有随机、伪随机或其他方式生成的运动矢量作为附加训练示例输入(除了(多个)图像之外)。这样的训练示例的“抓取对象标签”可以是分配给数据库中的图像的分类(或(多个)其他特征)。
在框756处,系统将所选择的训练示例的图像和所选择的训练示例的附加图像应用于联合网络的初始层。例如,系统可以将图像应用于图1B的联合网络126B的初始卷积层。
在框758处,系统将所选择的训练示例的末端执行器运动矢量应用于联合网络的附加层。例如,系统可以将末端执行器运动矢量应用于联合网络126B的附加层,该附加层位于在框756处图像被应用到的初始层的下游。
在框760处,系统基于所应用的图像和所应用的末端执行器运动矢量,通过联合网络生成联合输出。例如,系统可以基于联合网络126B的当前学习后的参数,通过图1B的联合网络126B生成联合输出。
在框772处,系统将在框760生成的联合输出应用于语义网络。例如,系统可以将联合输出应用于图1B的语义网络127B。
在框774处,系统基于所应用的联合输出,通过语义网络生成(多个)对象语义特征预测。例如,系统可以基于语义网络127B的当前学习后的参数,通过语义网络127B生成(多个)抓取对象标签预测。
在框776处,系统基于框774的(多个)对象语义特征预测并且基于训练示例的(多个)抓取对象标签,在语义网络上并且可选地在联合网络上执行反向传播。例如,系统可以基于(多个)对象语义特征预测与训练示例的(多个)抓取对象标签的比较来生成损失,并通过语义网络127B和通过联合网络126B反向传播该损失。例如,可以将损失应用于语义网络127B,基于该损失来更新语义网络127B的参数,并且还可以将计算出的剩余损失应用于联合网络126B,并且可以基于该剩余损失来更新联合网络126B的参数。
注意,在方法700中,联合输出不应用到抓取网络,并且不产生用于更新抓取网络和/或联合网络的“抓取”损失。这是由于语义训练示例在训练示例输出中缺少抓取成功标签。
在框778处,系统确定是否存在附加语义训练示例。如果系统确定存在附加语义训练示例,则系统返回到框754并选择另一个语义训练示例。在一些实施方式中,确定是否存在附加语义训练示例可以包括确定是否存在尚未用于训练语义抓取模型的一个或多个网络的任何剩余语义训练示例。在一些实施方式中,确定是否存在附加语义训练示例可以附加地和/或可选地包括确定是否已经利用阈值数量的语义训练示例和/或已经满足其他标准。
如果系统确定不存在附加语义训练示例和/或已经满足某些其他标准,则系统前进到框780,在框780处,基于语义训练示例的语义抓取模型的训练可以结束(至少暂时结束)。
图8A示出了图1B的语义抓取模型的实施方式的示例架构。图1B的网络125B、126B和127B在图8A中被标记为附带“1”,以指示它们是图1B的实施方式的一个示例。图8A的联合网络126B1包括处理图像的卷积层和池化层,并且包括处理末端执行器运动矢量(在图8A中称为“动作”)的全连接层。来自图像处理的输出和来自动作处理的输出被级联(如“+”节点所指示的),并被应用于联合网络126B1的三个附加卷积层。来自这三个附加层的输出被应用于抓取网络125B1,并且被应用于语义网络127B1。抓取网络125B1和语义网络127B1分别包括池化层、(多个)卷积层和全连接层。抓取网络125B1基于联合输出的处理来生成抓取成功预测,如p(g|It,at)和“线性n-1”所指示的。语义网络127B1生成语义特征预测,如p(c|It,atg)和“线性n=16”所指示(在此,语义特征预测指示是否16个单独的类别(或(多个)其他特征)中的每一个是存在还是不存在。
图8B示出了图1B的语义抓取模型的实施方式的另一示例架构。图1B的网络125B、126B和127B在图8B中被标记为附带“2”,以指示它们是图1B的实施方式的另一示例。图8B的联合网络126B2类似于图8A的联合网络126B1。但是,它包括作为最后一层的空间关键点关注层。如本文所述,在一些实施方式中,空间关键点关注可以使下游网络能够具有更少的参数而不会显著影响学习。结果,语义网络127B2包括比图8A的语义网络127B1更少的层。此外,抓取网络125B2被示为不具有层,而是直接基于联合输出来确定抓取成功度量。但是,在其他实施方式中,抓取网络125B2可以包括一个或多个神经网络层,诸如一个或多个全连接层。
图8C示出了图1C的抓取网络125C的实施方式的示例架构。图8C的抓取网络125C对(多个)输入图像和末端执行器运动矢量(在图8C中表示为“动作”)进行操作,以生成抓取成功预测,如p(g|It,at)和“线性n-1”所指示的。如本文所述,抓取网络125C可以是独立训练的“附加”抓取网络。例如,抓取网络125C可以基于根据方法400生成的抓取训练示例来训练,并且可以在不参考任何抓取对象标签/语义特征的情况下进行训练。
一旦根据本文描述的技术训练了语义抓取模型,就可以将其用于伺服抓取末端执行器。参考图9至图10给出了两个示例。图9是利用诸如图1B的模型124B的双分支语义抓取模型来伺服抓取末端执行器的示例,并参考模型124B进行描述。图10是利用诸如图1C的模型124C的具有单独训练的附加抓取网络的语义抓取模型来伺服抓取末端执行器的示例,并参考模型124C进行描述。
图9是示出了利用语义抓取模型来伺服抓取末端执行器的示例方法900的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括机器人的一个或多个组件,诸如机器人180A、180B、1125和/或其他机器人的处理器(例如,CPU和/或GPU)和/或机器人控制系统。在实施方法900的一个或多个框时,系统可以使用训练后的语义抓取模型来操作,例如,该训练后的语义抓取模型可以本地存储在机器人处和/或可以存储在远离机器人的地方。此外,尽管以特定顺序示出了方法900的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框952处,系统生成候选末端执行器运动矢量。可以在任务空间、联合空间或其他空间中定义候选末端执行器运动矢量,取决于要在另外的框中使用的训练后的语义抓取模型的输入参数。
在一些实施方式中,系统生成在给定空间内随机的候选末端执行器运动矢量,诸如末端执行器可到达的工作空间、末端执行器被限定在其中进行抓取尝试的受限空间和/或由控制末端执行器姿势的(多个)致动器的位置和/或扭矩限制定义的空间。
在一些实施方式中,系统可以利用一种或多种技术来采样一组候选末端执行器运动矢量并从采样的组中选择子组。例如,系统可以利用优化技术,诸如交叉熵方法(cross-entropy method,CEM)。CEM是一种无导数优化算法,其在每次迭代中对一批N个值进行采样,将高斯分布拟合到这些样本中的M<N个样本,然后从该高斯分布中对新一批N进行采样。例如,系统可以利用CEM以及M=64和N=6的值,并执行CEM的三次迭代以确定最佳可用的(根据CEM)候选末端执行器运动矢量。在对一组候选末端执行器运动矢量进行采样的一些实施方式中,可以在方法900的迭代中(串行或并行)执行框952、954、956、958和960的多个循环。在每个循环,在框952处利用不同的所采样的候选末端执行器运动矢量(例如,使用优化技术来生成)。因此,在每一个循环处,在框960处生成不同的抓取成功度量,该抓取成功度量特定于该循环的所采样的候选末端执行器运动矢量。抓取成功度量可用于确定最佳可用的(来自所采样的)候选末端执行器运动矢量(例如,具有最能指示抓取成功的抓取成功度量的所采样的候选抓末端执行器运动矢量),并且该最佳可用的候选执行器运动矢量在框964、966和可选地970处利用。以这些和其他方式,可以在方法900的每次迭代中考虑多个候选末端执行器运动矢量。
在一些实施方案中,可以将一个或多个约束施加到可以在框952处生成的候选末端执行器运动矢量。例如,可以基于这些约束来约束由CEM或其他技术评估的候选末端执行器运动。约束的一个示例是计算机生成的和/或人类(或用户)输入的约束(例如,经由计算机系统的用户界面输入设备),其对可以尝试进行抓取的(多个)区域施加约束,对可以尝试进行抓取的(多个)对象特征等施加约束。例如,约束的其他示例包括基于机器人的工作空间、机器人的联合限制、机器人的扭矩限制的约束、由防撞系统提供的约束以及限制机器人的运动以防止与一个或多个对象碰撞的约束等。
在框954处,系统识别捕获末端执行器和一个或多个环境对象的图像。在一些实施方式中,系统还识别至少部分地省略末端执行器的附加图像,诸如当末端执行器至少部分地在视觉传感器的视线外时,由视觉传感器捕获的环境对象的附加图像。在一些实施方式中,系统将图像和附加图像级联以生成级联图像。在一些实施方式中,系统可选地执行(多个)图像和/或级联图像的处理。
在框956处,系统将图像和候选末端执行器运动矢量应用于训练后的联合网络。例如,系统可以将包括当前图像和附加图像的级联图像应用于图1B的训练后的联合网络126B的初始层。该系统还可以将候选末端执行器运动矢量应用于位于初始层下游的训练后的联合网络126B的附加层。在一些实施方式中,在将候选末端执行器运动矢量应用于附加层时,系统使末端执行器运动矢量穿过训练后的联合网络126B的全连接层,以生成末端执行器运动矢量输出,并将末端执行器运动矢量输出与训练后的联合网络126B的上游输出进行级联。上游输出是来自训练后的联合网络126B的紧邻上游层,该紧邻上游层位于附加层的紧邻上游,并且位于训练后的联合网络126B的初始层和一个或多个中间层的下游。
在框958处,系统使用联合网络以及所应用的当前图像和所应用的末端执行器运动矢量来生成联合输出。例如,系统可以使用训练后的联合网络126B的训练后的参数来处理所应用的当前图像和所应用的末端执行器运动矢量,以生成联合输出。
在框960处,系统基于在框958处生成的联合输出并基于训练后的抓取网络来生成抓取成功度量。例如,系统可以基于使用训练后的抓取网络125B的训练后的参数处理联合输出来生成抓取成功预测。
在框962处,系统生成指示(多个)对象语义特征的输出。系统基于在框958处生成的联合输出并且基于训练后的语义网络来生成输出。例如,系统可以基于使用训练后的语义网络127B的训练后的参数处理联合输出来生成(多个)语义特征。
在框964处,系统基于框960的抓取成功度量和由框962的输出指示的(多个)对象语义特征来生成末端执行器命令。通常,在框964处,系统生成末端执行器命令,该末端执行器命令寻求(通过方法900的一次或多次迭代)实现对具有期望对象语义特征的对象的成功抓取。例如,期望的对象语义特征可以基于提供给系统的用户界面输入和/或来自一个或多个单独的组件的输入。作为一个示例,如果框960的抓取成功度量满足指示成功抓取的阈值并且在框962的输出中指示的(多个)语义特征指示对象有可能具有期望的(多个)对象语义特征,则末端执行器命令可以生成与块952的末端执行器运动矢量相对应的末端执行器命令(然后可选地执行抓取)。
如上所述,在一些实施方式中,在方法900的一个或多个迭代中考虑多个候选末端执行器运动矢量,并且确定每个候选末端执行器运动矢量(全部基于相同的当前图像)的抓取成功度量(以及可选地(多个)语义特征)。在那些实施方式的一些中,在框964处,系统确定具有最能指示成功的所确定的抓取成功度量(并且可选地,具有符合期望的(多个)对象语义特征的(多个)所确定的对应对象语义特征)的末端执行器运动矢量,并生成与该末端执行器运动矢量相对应的末端执行器命令。
作为这些实施方式的一个示例,系统可以在框952处生成一个或多个附加候选末端执行器运动矢量,并在框960的附加迭代中(基于将来自联合网络的联合输出应用于抓取网络,其中,该联合输出是基于当前图像和附加候选末端执行器运动矢量)生成那些附加候选末端执行器运动矢量的抓取成功度量;并且在框962的附加迭代中(基于将联合输出应用于语义网络)生成那些附加候选末端执行器运动矢量的(多个)对象语义特征输出。附加迭代可以可选地由系统并行执行。在那些实施方式中的一些中,系统可以基于对所有生成的抓取成功度量和对应的(多个)对象语义特征输出的分析,在框964处生成末端执行器命令。例如,系统可以生成末端执行器命令以完全或基本符合候选末端执行器运动矢量,该候选末端执行器运动矢量具有:最能指示成功抓取的抓取成功度量;以及与期望的(多个)对象语义特征匹配的(多个)对应语义特征。此外,例如,系统可以基于将候选末端执行器运动矢量的抓取成功度量以及其语义特征与期望的对象语义特征匹配的概率应用于函数,生成末端执行器命令以完全或基本符合具有“最高”值的候选末端执行器运动矢量。系统的机器人的控制系统可以基于末端执行器运动矢量来生成(多个)运动命令,以致动机器人的一个或多个致动器以移动末端执行器。
在框964的一些迭代中,如果没有利用候选末端执行器运动矢量来生成新的运动命令,则系统基于当前抓取成功度量和(多个)当前语义特征来附加地和/或替代地生成末端执行器命令。例如,如果当前抓取成功度量与在框960处确定的抓取成功度量的一个或多个比较未能满足阈值,并且(多个)当前语义特征指示期望的对象语义特征,则末端执行器运动命令可以是使末端执行器尝试抓取的“抓取命令”(例如,闭合冲击式抓取末端执行器的手指)。例如,如果当前抓取成功度量除以在框960处确定的、对于候选末端执行器运动矢量的、最能指示成功抓取的抓取成功度量的结果大于或等于第一阈值(例如0.9),则末端执行器命令可以是抓取命令(依据原理,如果闭合夹具与移动夹具产生成功抓取的可能性差不多,则应尽早停止抓取)。此外,例如,如果结果小于或等于第二阈值(例如0.5),则末端执行器命令可以是运动命令(例如,将抓取末端执行器“向上”升至少X米)以实现轨迹校正(依据原理,抓取末端执行器很可能没有处于良好的布局中,并且需要相对较大的运动)。此外,例如,如果结果在第一阈值和第二阈值之间,则可以生成运动命令,该运动命令基本或完全符合候选末端执行器运动矢量,该候选末端执行器运动矢量具有在框960处确定的、最能指示成功抓取的抓取成功度,并且还包括与期望的(多个)对象语义特征相对应的(多个)对应语义特征。系统生成的末端执行器命令可以是一个或多个命令的单个组,也可以是一个或多个命令的组序列。
如果没有利用候选末端执行器运动矢量来生成新的运动命令,则抓取成功度量可以基于在方法900的先前迭代中利用的候选末端执行器运动矢量的度量和/或和基于在方法900的框的附加迭代中应用“空”运动矢量和图像(以及可选地附加图像)。
在框966处,系统确定末端执行器命令是否为抓取命令。如果系统在框966处确定末端执行器命令是抓取命令,则系统前进到框968并实施抓取命令。在一些实施方式中,系统可以可选地确定抓取命令是否导致成功抓取(例如,使用本文中描述的技术),并且如果不成功,则系统可以可选地调整末端执行器的姿势并返回到框952。即使在抓取成功的情况下,系统也可以在稍后的时间返回到框952以抓取另一个对象。
如果系统在框966处确定末端执行器命令不是抓取命令(例如,末端执行器命令是运动命令),则系统前进到框970并实施末端执行器命令,然后返回到框952,在框952处系统生成另一个候选末端执行器运动矢量。例如,在框970处,系统可以实施末端执行器运动命令,该末端执行器运动命令基本上或完全符合具有最能成功指示成功抓取的抓取成功度量,并且还包括符合期望的(多个)对象语义特征的(多个)语义特征的候选末端执行器运动矢量。
在许多实施方式中,可以以相对较高的频率执行方法900的框,从而使得能够对末端执行器命令进行迭代更新,并且使得能够沿着由语义抓取模型告知的轨迹对末端执行器进行伺服,以导致成功抓取具有期望的(多个)对象特征的对象的概率相对较高。
图10是示出了利用语义抓取模型来对抓取末端执行器进行伺服的示例方法1000的流程图。为了方便起见,结合执行这些操作的系统来描述流程图的操作。这种系统可以包括机器人的一个或多个组件,诸如机器人180A、180B、1125和/或其他机器人的处理器(例如,CPU和/或GPU)和/或机器人控制系统。在实施方法1000的一个或多个框时,系统可以在训练后的语义抓取模型上操作,例如,该训练后的语义抓取模型可以本地存储在机器人处和/或可以存储在远离机器人的地方。此外,尽管以特定顺序示出了方法900的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
在框1052处,系统生成候选末端执行器运动矢量。框1052可以与图9的框952共享一个或多个方面。
在框1054处,系统识别捕获末端执行器和一个或多个环境对象的图像。在一些实施方式中,系统还识别至少部分地省略末端执行器的附加图像。框1054可以与图9的框954共享一个或多个方面。
在框1056处,系统将图像和候选末端执行器运动矢量应用于训练后的联合网络。框1056可以与图9的框956共享一个或多个方面。
在框1058处,系统使用联合网络以及所应用的图像和所应用的末端执行器运动矢量来生成联合输出。框1058可以与图9的框958共享一个或多个方面。
在框1060处,系统生成指示(多个)对象语义特征的输出。系统基于在框1058处生成的联合输出并且基于训练后的语义网络来生成输出。框1060可以与图9的框962共享一个或多个方面。
在框1062处,系统将当前图像和候选末端执行器运动矢量应用于抓取网络。例如,系统可以将当前图像和候选末端执行器运动矢量应用于图1C的抓取网络125C。
在框1064处,系统使用抓取网络并基于所应用的图像和所应用的末端执行器运动矢量来生成抓取成功度量。
在框1066处,系统基于框1064的抓取成功度量和框1060的输出所指示的(多个)对象语义特征来生成末端执行器命令。框1066可以与图9的框964共享一个或多个方面。
在框1068处,系统确定末端执行器命令是否为抓取命令。如果系统在框1068处确定末端执行器命令是抓取命令,则系统前进到框1070并实施抓取命令。框1068可以与图9的框966共享一个或多个方面。框1070可以与图9的框968共享一个或多个方面。
如果系统在框1068处确定末端执行器命令不是抓取命令(例如,末端执行器命令是运动命令),则系统前进到框1072并实施末端执行器命令,然后返回到框1052,在框1052处,系统生成另一个候选末端执行器运动矢量。框1072可以与图9的框970共享一个或多个方面。
在一些实施方式中,在方法1000的迭代中对一组候选末端执行器运动矢量进行采样(例如,使用优化技术)。在那些实施方式的一些中,可以在方法1000的迭代中(串行地或并行地)执行框1052、1062和1064的多个循环。在每个循环中,在框1052处利用不同的所采样的候选末端执行器运动矢量(例如,使用优化技术生成的)。因此,在每个循环中,在框1064处生成不同的抓取成功度量,该抓取成功度量特定于该循环的所采样的候选末端执行器运动矢量。抓取成功度量可用于确定最佳可用的(来自所采样的)候选末端执行器运动矢量(例如,具有最能指示抓取成功的抓取成功度量的所采样的候选末端执行器运动矢量)以及在框1066(即,其抓握成功度量)、1068和可选地1072处利用的最佳可用的候选末端执行器运动矢量。以这些和其他方式,可以在方法1000的每次迭代中考虑多个候选末端执行器运动矢量。
图11示意性地描绘了机器人1125的示例架构。机器人1125包括机器人控制系统1160、一个或多个操作组件1125a-1125n以及一个或多个传感器1142a-1142m。例如,传感器1142a-1142m可以包括视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速计、陀螺仪、温度计、气压计等。尽管传感器1142a-m被描述为与机器人1125集成在一起,但这并不意味着是限制性的。在一些实施方式中,传感器1142a-m可以位于机器人1125的外部,例如,作为独立单元。
例如,操作组件1125a-1125n可以包括一个或多个末端执行器和/或一个或多个伺服电动机或其他致动器,以完成机器人的一个或多个组件的运动。例如,机器人1125可以具有多个自由度,并且每个致动器可以响应于控制命令而在一个或多个自由度内控制机器人1125的致动。如本文中所使用的,除了可能与致动器相关联的、以及将接收到的控制命令转换为用于驱动致动器的一个或多个信号的任何(多个)驱动器之外,术语致动器涵盖可创建运动的机械或电气设备(例如,电动机)。因此,向致动器提供控制命令可以包括向驱动器提供控制命令,其中该驱动器将控制命令转换为用于驱动电气或机械设备的适当信号,以便创建期望的运动。
机器人控制系统1160可以在诸如机器人1125的CPU、GPU和/或其他(多个)控制器的一个或多个处理器中实施。在一些实施方式中,机器人1125可以包括“脑盒(brainbox)”,脑盒可以包括控制系统1160的全部或方面。例如,脑盒可以向操作组件1125a-n提供数据的实时突发,且每个实时突发包括一个或多个控制命令的集合,这些命令尤其规定了一个或多个操作组件1125a-n中的每一个的运动参数(如果有的话)。在一些实施方式中,机器人控制系统1160可以执行本文描述的方法300、400、500和/或700的一个或多个方面。
如本文所述,在一些实施方式中,由控制系统1160在放置末端执行器以抓取对象时生成的控制命令的全部或方面可以基于基于语义抓取模型的利用而生成的末端执行器命令。例如,传感器1142a-m中的视觉传感器可以捕获当前图像和附加图像,并且机器人控制系统1160可以生成候选运动矢量。机器人控制系统1160可以将当前图像、附加图像和候选运动矢量提供给训练后的语义抓取模型,并利用基于应用而生成的抓取成功度量和(多个)对象语义特征来生成用于控制机器人末端执行器的运动和/或抓取的一个或多个末端执行器控制命令。尽管在图11中将控制系统1160示为机器人1125的集成部分,但在一些实施方式中,控制系统1160的全部或方面可以在与机器人1125分开但与之通信的组件中实施。例如,控制系统1160的全部或方面可以在与机器人1125进行有线和/或无线通信的一个或多个计算设备(诸如,计算设备1210)上实施。
图12是示例计算设备1210的框图,示例计算设备1210可以可选地用于执行本文所描述的技术的一个或多个方面。例如,在一些实施方式中,计算设备1210可用于提供期望的(多个)对象语义特征,以供机器人1125和/或其他机器人进行抓取。计算设备1210通常包括至少一个处理器1214,处理器1214经由总线子系统1212与多个外围设备通信。这些外围设备可以包括存储子系统1224(例如,存储子系统1224包括存储器子系统1225和文件存储子系统1226)、用户界面输出设备1220、用户界面输入设备1222以及网络接口子系统1216。输入和输出设备允许用户与计算设备1210交互。网络接口子系统1216提供到外部网络的接口,并且耦合到其他计算设备中的对应接口设备。
用户界面输入设备1222可以包括键盘、定点设备(诸如,鼠标、轨迹球、触摸板或图形输入板)、扫描仪、合并到显示器中的触摸屏、音频输入设备(诸如,语音识别系统、麦克风)和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备1210或通信网络上的所有可能类型的设备和方式。
用户界面输出设备1220可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(cathode ray tube,CRT)、诸如液晶显示器(liquid crystal display,LCD)的平板设备、投影设备或用于创建可视图像的一些其他机制。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括从计算设备1210向用户或另一机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统1224存储提供本文描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统1224可以包括执行图3、图4、图5、图6、图7、图9和/或图10的方法的所选择的方面的逻辑。
这些软件模块通常由处理器1214单独运行或与其他处理器组合运行。在存储子系统1224中使用的存储器1225可以包括多个存储器,包括用于在程序运行期间存储指令和数据的主随机存取存储器(random access memory,RAM)1230以及存储固定指令的只读存储器(read only memory,ROM)1232。文件存储子系统1226可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实施某些实施方式的功能的模块可以由文件存储子系统1226存储在存储子系统1224中,或者存储在(多个)处理器1214可访问的其他机器中。
总线子系统1212提供了一种用于使计算设备1210的各种组件和子系统按意图彼此通信的机制。尽管总线子系统1212被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备1210可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,出于说明一些实施方式的目的,图12中描绘的对计算设备1210的描述仅旨在作为指定示例。计算设备1210的许多其他配置可能具有比图12所示的计算设备更多或更少的组件。
虽然本文已经描述和示出了几个实施方式,但是可以利用用于执行本文描述的功能和/或获得本文描述的结果和/或一个或多个优点的各种其他装置和/或结构,并且这些变化和/或修改中的每一个都被认为在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置都是示例性的,并且实际的参数、尺寸、材料和/或配置将取决于这些教导被用于的一个或多个指定应用。本领域技术人员将认识到,或者能够仅仅使用常规实验来确定本文描述的指定实施方式的许多等同物。因此,应该理解的是,前述实施方式仅作为示例给出,并且在所附权利要求及其等同物的范围内,实施方式可以以不同于具体描述和要求保护的其他方式实践。本公开的实施方式针对本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果两个或多个这样的特征、系统、物品、材料、套件和/或方法不是相互矛盾的,则这两个或多个这样的特征、系统、物品、材料、套件和/或方法的任何组合都包括在本公开的范围内。

Claims (24)

1.一种由一个或多个处理器实施的方法,包括:
识别期望的对象语义特征;
生成定义运动的候选末端执行器运动矢量,以将机器人的抓取末端执行器从给定姿势移动到附加姿势;
识别由所述机器人的视觉组件捕获的图像,所述图像捕获所述抓取末端执行器和所述机器人的环境中的对象;
将所述图像和所述候选末端执行器运动矢量作为输入应用于训练后的联合神经网络;
基于将所述图像和所述末端执行器运动矢量应用于所述训练后的联合神经网络来生成联合输出,
其中,所述训练后的联合神经网络是基于以下内容进行训练的:
基于抓取预测而生成的抓取损失,所述抓取预测是基于使用所述联合神经网络生成的训练输出、通过抓取神经网络而生成的,以及
基于语义预测而生成的语义损失,所述语义预测是基于使用所述联合神经网络生成的训练输出、通过语义神经网络而生成的;
将所述联合输出应用于所述语义神经网络的训练后版本;
使用基于所述联合输出的所述语义神经网络的训练后版本生成语义神经网络输出,所述语义神经网络输出指示所述对象是否包括所述期望的对象语义特征;
生成抓取成功度量,生成所述抓取成功度量包括:
基于将所述联合输出应用于所述抓取神经网络的训练后版本来生成所述抓取成功度量,或者
基于将所述当前图像和所述末端执行器运动矢量应用于附加训练后的抓取神经网络来生成所述抓取成功度量;
基于所述抓取成功度量和指示所述对象是否包括所述期望的对象语义特征的所述语义模型输出来生成末端执行器命令;以及
将所述末端执行器命令提供给所述机器人的一个或多个致动器。
2.根据权利要求1所述的方法,其中,生成所述抓取成功度量包括:基于将所述联合输出应用于所述抓取神经网络的训练后版本来生成所述抓取成功度量。
3.根据权利要求1所述的方法,其中,生成所述抓取成功度量包括:基于将所述图像和所述末端执行器运动矢量应用于所述附加训练后的抓取神经网络来生成所述抓取成功度量。
4.根据权利要求3所述的方法,其中,所述附加训练后的抓取神经网络是独立于所述抓取神经网络、所述联合神经网络和所述语义神经网络进行训练的。
5.根据前述权利要求中任一项所述的方法,其中,在生成所述语义模型输出时,所述图像不直接作为输入应用于所述语义神经网络。
6.根据前述权利要求中任一项所述的方法,其中,在生成所述语义模型输出时,所述联合输出是应用于所述语义神经网络的唯一输入。
7.根据前述权利要求中任一项所述的方法,其中,在基于所述抓取损失来训练所述联合神经网络时,还基于所述抓取损失来训练所述抓取神经网络,而不基于所述抓取损失来训练所述语义神经网络,其中,所述抓取损失是基于通过所述抓取神经网络生成的所述抓取预测而生成的。
8.根据前述权利要求中任一项所述的方法,其中,在基于所述语义损失来训练所述联合神经网络时,还基于所述语义损失来训练所述语义神经网络,而不基于所述语义损失来训练所述抓取神经网络,其中,所述语义损失是基于通过所述语义神经网络生成的所述语义预测而生成的。
9.根据前述权利要求中任一项所述的方法,其中,所述期望的对象语义特征定义对象分类。
10.根据前述权利要求中任一项所述的方法,其中,对于多个对象分类中的每一个,所述语义模型输出指示所述对象具有所述对象分类中的对应一个的可能性。
11.根据前述权利要求中任一项所述的方法,还包括:
从用户界面输入设备接收用户界面输入;
其中,基于所述用户界面输入来识别所述期望的对象语义特征。
12.根据前述权利要求中任一项所述的方法,还包括:
在不应用所述运动的情况下确定所述对象的当前抓取成功度量;
其中,基于所述抓取成功度量生成所述末端执行器命令包括:基于对所述抓取成功度量与所述当前抓取成功度量的比较来生成所述末端执行器命令。
13.根据前述权利要求中任一项所述的方法,其中,所述末端执行器命令是末端执行器运动命令,并且其中,生成所述末端执行器运动命令包括:生成所述末端执行器运动命令以符合所述候选末端执行器运动矢量。
14.根据权利要求13所述的方法,其中,响应于以下操作生成所述末端执行器命令:
基于所述语义神经网络输出,确定所述对象包括所述期望的对象特征的可能性;以及
确定所述可能性满足一个或多个标准,以及确定所述抓取成功度量满足一个或多个标准。
15.根据权利要求13所述的方法,其中,响应于以下操作生成所述末端执行器命令:
基于所述语义神经网络输出,确定所述对象包括所述期望的对象特征的可能性;
生成根据所述可能性和所述抓取成功度量的函数的值;以及
确定所述值满足阈值。
16.一种由一个或多个处理器实施的方法,包括:
识别期望的对象语义特征;
生成定义运动的候选末端执行器运动矢量以将机器人的抓取末端执行器从给定姿势移动到附加姿势;
识别由所述机器人的视觉组件捕获的图像,所述图像捕获所述抓取末端执行器和所述机器人的环境中的对象;
将所述图像和所述候选末端执行器运动矢量作为输入应用于训练后的联合神经网络;
基于将所述图像和所述末端执行器运动矢量应用于所述训练后的联合神经网络来生成联合输出;
将所述联合输出应用于训练后的语义神经网络;
使用基于所述联合输出的所述训练后的语义神经网络来生成语义神经网络输出,所述语义神经网络输出指示所述对象是否包括所述期望的对象语义特征;
将所述联合输出应用于训练后的抓取神经网络;
使用基于所述联合输出所述训练后的抓取神经网络来生成抓取成功度量;
基于所述抓取成功度量和指示所述对象是否包括所述期望的对象语义特征的所述语义模型输出来生成末端执行器命令;以及
将所述末端执行器命令提供给所述机器人的一个或多个致动器。
17.根据权利要求16所述的方法,其中,在训练所述训练后的抓取神经网络的期间,基于通过所述抓取神经网络生成的抓取预测而生成的抓取损失被用于更新所述抓取神经网络和所述联合预测模型,而不被用于更新所述语义神经网络。
18.根据权利要求16或17所述的方法,其中,在训练所述训练后的语义神经网络期间,基于通过所述语义神经网络生成的语义预测而生成的抓取损失被用于更新所述语义神经网络和所述联合预测模型,而不被用于更新所述抓取神经网络。
19.一种系统,包括:
视觉组件,观察机器人的环境;
一个或多个非暂时性计算机可读介质,存储包括训练后的联合神经网络、训练后的语义神经网络和训练后的抓取神经网络的语义抓取模型;
至少一个处理器,被配置为:
识别期望的对象语义特征;
生成定义运动的候选末端执行器运动矢量以将机器人的抓取末端执行器从给定姿势移动到附加姿势;
识别由所述视觉组件捕获的图像,所述图像捕获所述抓取末端执行器和所述环境中的对象;
将所述图像和所述候选末端执行器运动矢量作为输入应用于所述训练后的联合神经网络;
基于将所述图像和所述末端执行器运动矢量应用于所述训练后的联合神经网络来生成联合输出;
将所述联合输出应用于所述训练后的语义神经网络;
使用基于所述联合输出的所述训练后的语义神经网络来生成语义神经网络输出,所述语义神经网络输出指示所述对象是否包括所述期望的对象语义特征;
将所述联合输出应用于所述训练后的抓取神经网络;
使用基于所述联合输出的所述训练后的抓取神经网络来生成抓取成功度量;
基于所述抓取成功度量和指示所述对象是否包括所述期望的对象语义特征的所述语义模型输出来生成末端执行器命令;以及
将所述末端执行器命令提供给所述机器人的一个或多个致动器。
20.一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储指令,所述指令在由至少一个处理器运行时,使所述至少一个处理器:
识别期望的对象语义特征;
生成定义运动的候选末端执行器运动矢量以将机器人的抓取末端执行器从给定姿势移动到附加姿势;
识别由所述机器人的视觉组件捕获的图像,所述图像捕获所述抓取末端执行器和所述机器人的环境中的对象;
将所述图像和所述候选末端执行器运动矢量作为输入应用于训练后的联合神经网络;
基于将所述图像和所述末端执行器运动矢量应用于所述训练后的联合神经网络来生成联合输出,
其中,所述训练后的联合神经网络是基于以下内容进行训练的:
基于抓取预测而生成的抓取损失,所述抓取预测是基于使用所述联合神经网络生成的训练输出、通过抓取神经网络生成的,以及
基于语义预测而生成的语义损失,所述语义预测是基于使用所述联合神经网络生成的训练输出、通过语义神经网络生成的;
将所述联合输出应用于所述语义神经网络的训练后版本;
使用基于所述联合输出的所述语义神经网络的训练后版本来生成语义神经网络输出,所述语义神经网络输出指示所述对象是否包括所述期望的对象语义特征;
生成抓取成功度量,其中,生成所述抓取成功度量的指令包括进行以下操作的指令:
基于将所述联合输出应用于所述抓取神经网络的训练后版本来生成所述抓取成功度量,或者
基于将所述当前图像和所述末端执行器运动矢量应用于附加训练后的抓取神经网络来生成所述抓取成功度量;
基于所述抓取成功度量和指示所述对象是否包括所述期望的对象语义特征的所述语义模型输出生成末端执行器命令;以及
将所述末端执行器命令提供给所述机器人的一个或多个致动器。
21.一种方法,包括:
由一个或多个处理器识别多个语义抓取训练示例,所述多个语义抓取训练示例是在机器人的多次抓取尝试期间基于来自一个或多个机器人的传感器输出而生成的,
所述语义抓取训练示例中的每一个包括训练示例输入,所述训练示例输入包括:
所述抓取尝试的对应抓取尝试的时间的对应实例的图像,所述图像捕获在所述时间的对应实例处的一个或多个环境对象和机器人末端执行器,
定义所述末端执行器的运动的末端执行器运动矢量,以从所述时间的对应实例处的所述末端执行器的时间姿势的实例移动到所述对应抓取尝试的所述末端执行器的最终姿势,以及
所述语义抓取训练示例中的每一个包括训练示例输出,所述训练示例输出包括:
至少一个抓取对象标签,指示所述对应抓取尝试所抓取的对象的语义特征,和
抓取成功标签,指示所述对应抓取尝试是否成功;以及
由所述一个或多个处理器基于所述语义抓取训练示例对语义抓取模型的神经网络进行训练,其中,基于所述训练示例中的给定语义抓取训练示例对所述语义抓取模型的神经网络进行训练包括:
将所述给定训练示例的图像和末端执行器运动矢量作为输入应用于联合神经网络;
基于所应用的输入和所述联合神经网络的当前参数,通过所述联合神经网络生成联合输出;
将所述联合输出应用于抓取神经网络和语义神经网络;
使用基于所述联合输出的抓取神经网络来生成预测的抓取成功度量;
使用基于所述联合输出的语义神经网络来生成预测的对象语义特征;
基于所述预测的抓取成功度量和所述给定训练示例的抓取成功标签,生成抓取损失;
基于所述预测的对象语义特征和所述给定训练示例的抓取对象标签,生成语义损失;
基于所述抓取损失更新所述联合神经网络,而不基于所述抓取损失更新所述语义神经网络;以及
基于所述语义损失更新所述联合神经网络,而不基于所述语义损失更新所述抓取神经网络。
22.计算机可运行指令,当所述计算机可运行指令由一个或多个处理器运行时,使所述一个或多个处理器执行根据权利要求1至18和21中任一项所述的方法。
23.一种系统,包括一个或多个计算机,所述一个或多个计算机包括一个或多个处理器,所述一个或多个处理器可操作来运行存储的指令以执行根据权利要求1至18和21中任一项所述的方法。
24.一种机器人,包括一个或多个处理器,所述一个或多个处理器可操作来运行存储的指令以执行根据权利要求1至18中任一项所述的方法。
CN201880039073.8A 2017-06-28 2018-06-28 用于语义机器人抓取的机器学习方法和装置 Active CN110785268B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762526211P 2017-06-28 2017-06-28
US62/526,211 2017-06-28
PCT/US2018/039947 WO2019006091A2 (en) 2017-06-28 2018-06-28 METHODS AND APPARATUS FOR MACHINE LEARNING FOR SEMANTIC ROBOTIC SEIZURE

Publications (2)

Publication Number Publication Date
CN110785268A true CN110785268A (zh) 2020-02-11
CN110785268B CN110785268B (zh) 2023-04-04

Family

ID=62976267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880039073.8A Active CN110785268B (zh) 2017-06-28 2018-06-28 用于语义机器人抓取的机器学习方法和装置

Country Status (4)

Country Link
US (1) US11717959B2 (zh)
EP (1) EP3606707A2 (zh)
CN (1) CN110785268B (zh)
WO (1) WO2019006091A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306060A (zh) * 2020-10-16 2021-02-02 连云港市第二人民医院(连云港市临床肿瘤研究所) 一种基于深度学习的训练步态控制方法
CN112509392A (zh) * 2020-12-16 2021-03-16 复旦大学 一种基于元学习的机器人行为示教方法
CN113524166A (zh) * 2021-01-08 2021-10-22 腾讯科技(深圳)有限公司 基于人工智能的机器人控制方法、装置及电子设备
CN114028156A (zh) * 2021-10-28 2022-02-11 深圳华鹊景医疗科技有限公司 康复训练方法、装置及康复机器人

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110088775B (zh) * 2016-11-04 2023-11-07 渊慧科技有限公司 使用加强学习的环境预测
US11325252B2 (en) 2018-09-15 2022-05-10 X Development Llc Action prediction networks for robotic grasping
US11241795B2 (en) * 2018-09-21 2022-02-08 Beijing Jingdong Shangke Information Technology Co., Ltd. Soft package, robot system for processing the same, and method thereof
US11292133B2 (en) * 2018-09-28 2022-04-05 Intel Corporation Methods and apparatus to train interdependent autonomous machines
US11724401B2 (en) * 2019-11-13 2023-08-15 Nvidia Corporation Grasp determination for an object in clutter
EP3904013B1 (en) * 2020-04-27 2022-07-20 C.R.F. Società Consortile per Azioni System for assisting an operator in a work station
EP4341050A1 (en) * 2021-06-25 2024-03-27 Siemens Corporation High-level sensor fusion and multi-criteria decision making for autonomous bin picking
JPWO2023027187A1 (zh) * 2021-08-27 2023-03-02
CN114029941B (zh) * 2021-09-22 2023-04-07 中国科学院自动化研究所 一种机器人抓取方法、装置、电子设备及计算机介质
CN114529191A (zh) * 2022-02-16 2022-05-24 支付宝(杭州)信息技术有限公司 用于风险识别的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380846A (zh) * 2000-03-31 2002-11-20 索尼公司 机器人设备、控制机器人设备动作的方法、以及外力检测设备和方法
US20140277718A1 (en) * 2013-03-15 2014-09-18 Eugene Izhikevich Adaptive predictor apparatus and methods
US20160096270A1 (en) * 2014-10-02 2016-04-07 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
CN106272427A (zh) * 2016-09-12 2017-01-04 安徽理工大学 一种工业机器人智能拾取系统
CN106575504A (zh) * 2014-04-17 2017-04-19 软银机器人欧洲公司 在机器人上执行软件应用
CN106874914A (zh) * 2017-01-12 2017-06-20 华南理工大学 一种基于深度卷积神经网络的工业机械臂视觉控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6608890B2 (ja) * 2017-09-12 2019-11-20 ファナック株式会社 機械学習装置、ロボットシステム及び機械学習方法
JP6695843B2 (ja) * 2017-09-25 2020-05-20 ファナック株式会社 装置、及びロボットシステム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380846A (zh) * 2000-03-31 2002-11-20 索尼公司 机器人设备、控制机器人设备动作的方法、以及外力检测设备和方法
US20140277718A1 (en) * 2013-03-15 2014-09-18 Eugene Izhikevich Adaptive predictor apparatus and methods
CN106575504A (zh) * 2014-04-17 2017-04-19 软银机器人欧洲公司 在机器人上执行软件应用
US20160096270A1 (en) * 2014-10-02 2016-04-07 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US20160096272A1 (en) * 2014-10-02 2016-04-07 Brain Corporation Apparatus and methods for training of robots
CN106272427A (zh) * 2016-09-12 2017-01-04 安徽理工大学 一种工业机器人智能拾取系统
CN106874914A (zh) * 2017-01-12 2017-06-20 华南理工大学 一种基于深度卷积神经网络的工业机械臂视觉控制方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306060A (zh) * 2020-10-16 2021-02-02 连云港市第二人民医院(连云港市临床肿瘤研究所) 一种基于深度学习的训练步态控制方法
CN112306060B (zh) * 2020-10-16 2021-06-25 连云港市第二人民医院(连云港市临床肿瘤研究所) 一种基于深度学习的训练步态控制方法
CN112509392A (zh) * 2020-12-16 2021-03-16 复旦大学 一种基于元学习的机器人行为示教方法
CN113524166A (zh) * 2021-01-08 2021-10-22 腾讯科技(深圳)有限公司 基于人工智能的机器人控制方法、装置及电子设备
CN114028156A (zh) * 2021-10-28 2022-02-11 深圳华鹊景医疗科技有限公司 康复训练方法、装置及康复机器人

Also Published As

Publication number Publication date
EP3606707A2 (en) 2020-02-12
CN110785268B (zh) 2023-04-04
WO2019006091A2 (en) 2019-01-03
US20200338722A1 (en) 2020-10-29
US11717959B2 (en) 2023-08-08
WO2019006091A3 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
CN110785268B (zh) 用于语义机器人抓取的机器学习方法和装置
CN108885715B (zh) 用于机器人抓取的深度机器学习方法和装置
CN111230871B (zh) 用于机器人抓握的深度机器学习方法和装置
US11325252B2 (en) Action prediction networks for robotic grasping
US11559885B2 (en) Method and system for grasping an object
CN110769985A (zh) 使用循环神经网络的机器人末端执行器的视点不变的视觉伺服
US11580724B2 (en) Virtual teach and repeat mobile manipulation system
CN114423574A (zh) 确定针对机器人任务的环境调节的动作序列
Ku et al. An aspect representation for object manipulation based on convolutional neural networks
Tang Research on Visual Localization and Gripping Technology of Robotic Arm Based on Deep Learning
CN117444961A (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
GR01 Patent grant
GR01 Patent grant