CN114206558A - 基于来自远程客户端设备的输入的高效机器人控制 - Google Patents

基于来自远程客户端设备的输入的高效机器人控制 Download PDF

Info

Publication number
CN114206558A
CN114206558A CN202080053232.7A CN202080053232A CN114206558A CN 114206558 A CN114206558 A CN 114206558A CN 202080053232 A CN202080053232 A CN 202080053232A CN 114206558 A CN114206558 A CN 114206558A
Authority
CN
China
Prior art keywords
robot
visual
remote client
client device
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
Application number
CN202080053232.7A
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 CN114206558A publication Critical patent/CN114206558A/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/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/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • 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/1612Programme controls characterised by the hand, wrist, grip control
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36422During teaching shut off, disable motor to move arm easy
    • 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)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

在控制环境中的机器人时利用来自远程客户端设备的用户接口输入。实现方式涉及基于由用户接口输入的示例所定义的对象操纵参数来生成训练实例,并且训练机器学习模型来预测对象操纵参数。那些实现方式可以随后利用经训练的机器学习模型来减少在执行给定组的机器人操纵时请求来自远程客户端设备的输入的实例的数量,和/或减少在执行给定组的机器人操作时来自远程客户端设备的输入的程度。实现方式附加地或替换地涉及通过利用在要由机器人操纵的对象被传输到机器人可以达到并且操作该对象的机器人工作空间之前捕获该对象的视觉数据来减少机器人的空闲时间。

Description

基于来自远程客户端设备的输入的高效机器人控制
背景技术
在工业或商业设置中,机器人通常被预编程以重复执行特定任务。例如,机器人可以被预编程以重复地将紧固件施加到装配线中的特定装配部件。而且,例如,机器人可以被预编程以重复地抓取特定装配部件并且将其从固定的第一位置移动到固定的第二位置。在抓取对象时,机器人可以使用抓取末端执行器,诸如“冲击”末端执行器(例如,使用“爪子”或其他手指向对象的区域施加力)、“侵入”末端执行器(例如,使用钉、针等物理地穿透对象)、“收缩”末端执行器(例如,使用吸力或真空来拾取对象)和/或一个或多个“接触”末端执行器(例如,使用表面张力、冷冻或粘合剂来拾取对象)。
这样的方法在其中对受约束的部件组重复地执行受约束的动作的环境中可以很好地工作。然而,在机器人被分派执行各种各样的动作和/或在可选地包括机器人尚未被预编程的新部件的不同组的部件上执行动作的任务的环境中,这样的方法可能失败。此外,这样的方法在对机器人进行预编程时需要显著的工程努力(以及计算资源的相关联的使用)。此外,为了在环境中容纳机器人,这样的方法可能需要对工业或商业环境进行显著的重新配置。
另外,提出了在循环方法中的一些人,其中人重复地提供相同类型的引导以辅助机器人执行任务。然而,这样的方法可能遭受各种缺点。例如,一些方法可能导致机器人在请求和/或等待人引导时空闲,这导致机器人的低效操作。此外,例如,一些方法总是请求人引导和/或相同类型的引导。这限制了机器人操作更有效地操作的能力。
发明内容
本文所公开的实现方式涉及在控制环境中的机器人时利用来自远程客户端设备的用户接口输入。在远程客户端设备处提供的用户接口输入的实例(直接地或间接地)指示机器人在操纵至少一个对象时要使用的一个或多个对象操纵参数。例如,由用户接口输入的实例指示的对象操纵参数可以包括以下中的一个或多个:抓取姿势;放置姿势;在遍历到抓取姿势时要遇到的路点序列;(在抓取对象之后)在朝向放置姿势遍历时要遇到的路点序列;在遍历到操纵姿势(例如,抓取姿势或其他操纵姿势)和/或从该操纵姿势遍历时的完整路径或迹线(即,具有速度、加速度、加加速度和/或其他参数的路径);和/或其它对象操纵参数,诸如但不限于在本文另外详细描述的那些。
实例的用户接口输入参考包括至少一个对象的对象表示的视觉表示来提供。视觉表示还可以可选地包括其他环境对象的环境表示(例如,工作表面、其中要放置至少一个对象的容器)和/或机器人的全部或部分的机器人表示。视觉表示可以例如在由远程客户端设备控制的独立显示屏上或者在由远程客户端设备控制的虚拟现实(VR)头戴式设备上被渲染。例如,可以经由鼠标、触摸屏、VR手控制器和/或VR手套来提供用户接口输入。本文提供了示例视觉表示以及它们如何被渲染的附加描述,包括以减少网络流量和/或减少在渲染视觉表示时的延迟的方式生成视觉表示的实现方式的描述。
本文公开的一些实现方式涉及基于由用户接口输入的实例定义的对象操纵参数来生成训练实例。这些实现方式还涉及基于训练实例来训练机器学习模型,以供经训练的机器学习模型在预测对象操纵参数中使用。在这些实现方式中的一些中,响应于确定基于对应的对象操纵参数而尝试的操纵的成功测量满足阈值,训练实例可以被生成和/或标记为肯定训练实例。成功测量可以基于来自一个或多个传感器的传感器数据来生成,并且可以以取决于正在执行的操纵的方式来生成。作为一个示例,如果操纵是利用冲击末端执行器的抓取,则成功测量可以指示抓取是否成功。成功测量可以基于例如以下中的一个或多个:来自冲击末端执行器的传感器的传感器数据(例如,使用基于来自位置传感器的数据确定的手指的位置和/或由扭矩传感器指示的扭矩来确定冲击末端执行器是否正在抓取对象);来自机器人的视觉传感器的视觉数据(例如,确定冲击末端执行器是否正抓取对象和/或对象是否已从其先前位置移动)、环境中的重量传感器(例如,确定对象是否从一个位置被提升和/或放置在另一位置)等。作为另一个示例,如果操纵包括抓取对象和随后将对象放置在容器中,则放置操纵的成功测量可以指示对象是否被成功地放置在容器中和/或容器中的放置符合期望放置的程度。作为又一示例,如果操纵包括两个对象的接合,则放置操纵的成功测量可以指示对象是否被成功地接合在一起和/或它们的接合的准确度。
基于所生成的训练实例来训练机器学习模型的实现方式还涉及随后利用经训练的机器学习模型。利用经训练的机器学习模型减少了在执行给定组的机器人操纵时请求来自远程客户端设备的输入的实例的数量(从而减少了网络流量)和/或减少了在执行给定组的机器人操作时来自远程客户端设备的输入的程度(从而在远程客户端设备处提供高效资源利用)。这些实现方式可以通过减少机器人在等待用户接口输入时处于空闲的实例和/或持续时间来使得环境中的机器人能够更高效地操作。这些实现方式可以另外促进远程客户端设备的操作者执行控制、监督和/或监视一个或多个机器人的操作的技术任务,并且可以使得操作者能够在给定时间段内提供针对更大量的操纵和/或针对更大量的机器人的输入。
作为一个特定示例,假设在给定环境中新部署一个或多个机器人以执行操纵,每个操纵包括从传送带抓取对应的对象并将该对象放置在N个可用容器(例如,装运箱)中的适当一个容器中。首先,可以针对每个操纵请求用户接口输入,以确定包括以下各项中的任何一个、任何组合或全部的对象操纵参数:在遍历到用于抓取对象的抓取姿势时要遇到的路点序列;抓取姿势;在朝向N个可用容器中的适当一个容器遍历时要遇到的路点序列;以及用于将对象放置在容器中的放置姿势。那些确定的操纵参数可以用于在执行操纵时控制机器人。
随着时间的推移,可以基于对应的视觉数据(和/或其他传感器数据)、对象操纵参数中的一个或多个并且可选地基于成功测量,针对一个或多个机器学习模型中的每一个生成训练实例。在预测一个或多个对应的操纵参数时,机器学习模型中的每一个可以被训练用于处理视觉数据和/或其他传感器数据。此外,可以基于训练实例来训练机器学习模型。例如,假设机器学习模型被训练用于处理视觉数据以生成用于N个抓取姿势中的每一个的(例如,成功的对象操纵例如抓取的)对应概率。对于包括成功抓取的操纵(如基于抓取的成功测量所确定),可以基于对应视觉数据和由用户接口输入定义的对应抓取姿势来生成肯定训练实例。
然后,经训练的机器学习模型可以至少选择性地被用于预测一个或多个对应的对象操纵参数,所述对象操纵参数然后至少选择性地被用于控制机器人。例如,所预测的对象操纵参数可以被自动地使用(而不提示确认性用户接口输入)和/或可以在呈现所预测的对象操纵参数的指示(例如,作为视觉表示的一部分)并且作为响应接收确认性用户接口输入之后被使用。以这些和其它方式,可以确定和使用对象操纵参数,而不需要用户接口输入(例如,当它被自动使用时)和/或具有减少数量的用户接口输入(例如,当提供确认性用户接口输入代替用于定义对象操纵参数的更耗时的完全输入时)。这可以减少确定对象操纵参数所需的持续时间,使得机器人和/或远程操作者能够更有效地操作。
在一些实现方式中,在确定一个或多个条件被满足之后,在预测至少选择性地利用的对象操纵参数时仅利用经训练的机器学习模型。一个或多个条件可以包括例如经训练的机器学习模型的训练和/或验证的至少阈值量。对经训练的机器学习模型的验证可以包括将使用机器学习模型生成的预测与基于用户接口输入的地面实况对象操纵参数(可选地针对机器学习模型尚未在其上被训练的视觉数据(和/或其他传感器数据)的实例)进行比较。在各个实现方式中,并且如本文所描述的,经训练的机器学习模型可以甚至在其被主动地用于预测至少选择性地在机器人的操作时被利用的对象操纵参数之后继续被训练。例如,附加训练实例可以基于所预测的和利用的对象操纵参数来生成,并且基于所确定的成功测量而被标记为肯定或否定。此外,例如,可以基于所预测的对象操纵参数来生成附加训练实例,并且如果用户接口输入拒绝了所预测的对象操纵参数,则将附加训练实例标记为否定的。
作为一个特定示例,再次假定机器学习模型被训练用于处理视觉数据以生成N个抓取姿势中的每一个的对应概率。当使用经训练的机器学习模型处理视觉数据时,其导致超过第一阈值(例如,85%或其他阈值)的对应抓取姿势的概率,抓取姿势可以被自动地利用而无需提示进行确认性用户接口输入。如果没有抓取姿势超过第一阈值但抓取姿势的概率确实超过第二阈值(例如,50%或其他阈值),则可呈现那些抓取姿势中的一个或多个的指示以及视觉表示中的对象表示,并且仅在确认性输入指向抓取姿势时才利用该抓取姿势。如果没有抓取姿势超过第一阈值或第二阈值,则可以请求用户接口输入以用于确定抓取姿势,而不提供所预测的抓取姿势的任何指示。基于用户接口输入所确定的抓取姿势然后可用于生成训练实例,任选地还考虑抓取的成功测量。然后,训练实例可以用于进一步训练模型。注意,这样的训练实例是“硬否定”训练实例,其在高效地更新机器学习模型的参数以增加模型的准确性和/或鲁棒性方面可以是特别有益的。
因此,对于环境中的机器人的给定部署,用户接口输入的实例可以最初用于确定对象操纵参数,其用于在执行操纵时控制机器人。此外,训练实例可以基于使用用户接口输入的实例所确定的对象操纵参数并且基于对应的视觉数据和/或其他传感器数据并且可选地基于传感器数据所确定的成功测量来生成。训练实例可以用于训练机器学习模型以用于预测对象操纵参数。响应于满足一个或多个条件,经训练的机器学习模型然后可以被“联机”,并且被用于生成所预测的对象操纵参数。所预测的对象操纵参数至少选择性地自动用于控制机器人,并且/或者所预测的对象操纵参数的对应指示被渲染在远程客户端设备上,并且如果作为响应接收到确认性用户接口输入则被利用。此外,即使在被联机之后,经训练的机器学习模型也可以被继续训练,从而增加其准确性和效率,由此增加其中预测可以被自动地用于控制机器人和/或被渲染为用于确认性批准的建议的实例的数量。
以这些和其他方式,机器人可以被部署在新环境中和/或用于新任务,并且被立即使用,而不需要在部署之前大量使用工程和/或计算资源。例如,最初在部署时利用的对象操纵参数可以大量地(或甚至排他地)基于来自远程设备的用户接口输入。然而,随着时间的推移,来自远程设备的用户接口输入可以被用训练机器学习模型,其被联机以减少在操作环境中的机器人时所需的用户接口输入的数量和/或程度。这使得机器人能够在环境中更有效地操作,并且针对给定数量或机器人的操纵减少到远程设备的网络流量的数量。此外,这使得远程客户端设备的操作者能够辅助控制更大量的机器人操纵。
本文所公开的一些实现方式附加地或替换地涉及用于基于来自远程操作者的用户接口输入来确定用于操纵给定对象的对象操纵参数的特定技术。这些实现方式中的一些涉及减轻(例如,减少或消除)机器人在等待提供用户接口输入时的空闲时间的技术。减少机器人的空闲时间增加了机器人操作的整体效率。
一些实现方式追求通过利用视觉数据来减缓机器人的空闲时间,该视觉数据在要由机器人操纵的对象被传输到机器人可以到达并操纵该对象的机器人工作空间之前捕获该对象。例如,视觉部件(例如,单视和/或立体视觉相机、激光雷达部件和/或其他视觉部件)可以具有与机器人工作空间不同的环境的第一区域的视场。当对象在被传输到机器人工作空间之前处于第一区域中时,来自视觉部件的视觉数据可以捕获该对象的特征。例如,第一区域可以是将对象从输送机***的一部分传输到机器人工作空间的该部分。在第一区域中捕获对象的视觉数据可以用于生成包括对象的至少对象表示的视觉表示,该对象表示是基于在视觉数据中捕获的对象的对象特征来生成的。
在完成将对象传输到机器人工作空间之前(例如,当对象被输送机***输送时,但是在其到达机器人工作空间之前),视觉表示可以被传送到远程客户端设备。此外,可以在完成将对象传输到机器人工作空间之前从远程客户端设备接收数据,其中数据基于当在远程客户端设备处被渲染时指向视觉表示的用户接口输入来生成。
所接收的数据直接或间接地指示用于在机器人工作空间中操纵对象的一个或多个对象操纵参数。因此,可以基于数据确定对象操纵参数,并且可以可选地在完成将对象传输到机器人工作空间之前确定对象操纵参数。然后,所确定的对象操纵参数可以用于控制机器人,以使机器人在对象被传输到机器人工作空间之后当对象处于机器人工作空间内时操纵对象。由于在完成将对象传输到机器人工作空间之前至少传送视觉表示并且接收响应数据,所以一旦对象在机器人工作空间内,机器人就可以基于根据数据所确定的操纵参数来快速地操纵对象。例如,机器人可以基于来自其自身视觉部件的视觉数据确定对象何时处于机器人工作空间内,并且响应于这样的确定根据对象操纵参数进行操作。机器人可以可选地等待对象处于与对象操纵参数针对其被定义的姿势相对应的姿势,或者可以将对象操纵参数变换成机器人工作空间中的对象的新检测到的姿势(例如,当它与对象操纵参数针对其被定义的姿势不同时)。如果机器人工作空间本身包括输送对象的输送机部分,则该输送机部分可以可选地在机器人操纵对象时暂时停止。在其它实现方式中,可以使用输送机或其它输送装置(例如,空气管、单独的运输机器人、通过人)将对象传输到机器人工作空间,并且机器人工作空间本身可以不包括输送机部分。
可选地,在已使经训练的机器学习模型联机以用于预测对象操纵参数的情况下,来自第一区域的视觉数据可以用于预测对象操纵参数。这使得能够在完成将对象传输到机器人工作空间之前预测对象操纵参数。所预测的对象操纵参数可以自动地用作对象操纵参数中的一些,和/或所预测的对象操纵参数的指示可以与视觉表示一起被提供,并且如果所接收的数据指示对所预测的对象操纵参数的确认,则所预测的对象操纵参数中的一个或多个被利用。
在一些实现方式中,第一区域中的视觉部件的姿势和机器人视觉部件的姿势是已知的,使得能够确定第一区域中的视觉部件的参考坐标系与机器人视觉部件的机器人坐标系之间的变换。使用这种变换使得远程客户端设备处的输入能够直接在机器人坐标系中被定义,或者最初在第一坐标系中被定义然后被变换到机器人坐标系。
在一些实现方式中,被传送到远程客户端设备的视觉表示包括对象的对象表示以及可选地包括(第一区域中的动态的)其他附近动态对象的一个或多个对象表示,但是省略第一区域的静态的其他部分。在这些实现方式的一些中,在远程客户端设备处仅渲染对象的表示以及可选地渲染附近的动态对象。在一些其它实现方式中,机器人和/或机器人工作空间的全部或部分也在远程客户端设备处渲染(尽管未在捕获第一区域的视觉数据中捕获)。例如,远程客户端设备可以执行机器人模拟器,或者与执行机器人模拟器的附加设备通信。机器人模拟器可以模拟机器人的全部或部分和/或机器人工作空间的全部或部分,并且可以连同机器人模拟和/或机器人工作空间模拟一起渲染对象的模拟。可以使用上述变换来确定对象相对于机器人模拟和/或机器人工作空间模拟的姿势。这可以使人类操作者能够提供操纵机器人模拟以定义对象操纵参数的用户接口输入。例如,为了定义抓取姿势,人类操作者可以提供调整机器人模拟直到其处于期望姿势的用户接口输入,然后提供进一步的用户接口输入以将该期望姿势定义为抓取姿势。
模拟机器人和/或机器人工作空间的实现方式使得能够将较小数据大小的视觉表示从环境传送到远程客户端设备。这可能是那些仅定义动态对象、没有定义机器人工作空间的静态特征和/或没有定义机器人的特征的传输的结果。除了节省网络资源之外,这可以减缓在远程设备处渲染视觉表示时的延迟,因为较小数据大小可以更快地被传送到远程客户端设备和/或在远程客户端设备处更快地渲染。延迟的这种减缓同样可以减缓机器人的空闲时间。此外,注意,即使在基于机器人视觉数据(代替来自不同区域的视觉数据)生成对象表示的实现方式中,模拟机器人和/或机器人工作空间仍然可以使得能够传送较小数据大小的视觉表示-并且减缓机器人的空闲时间。
一些实现方式附加地或替换地追求通过生成要在客户端设备处渲染的视觉表示的对象表示来减缓机器人的空闲时间,该对象表示以比完整表示低的准确度渲染对象,但是具有比完整表示小的数据大小。例如,对象可以由一个或多个边界框和/或近似对象的表面的其他边界形状来表示。例如,对象可以由多个连接的边界框来定义,每个边界框可以由中心点、高度尺寸和宽度尺寸来定义—其包括比定义对应于对象的表面的每个像素或体素的颜色、纹理和/或深度的表示明显更少的数据。除了节省网络资源之外,较不精确的对象表示可以减缓在远程设备处渲染视觉表示的延迟,因为较小数据大小可以在远程客户端设备处更快地传送和/或在远程客户端设备处更快地渲染。此外,较不准确的对象表示可以模糊或移除来自对象的潜在敏感的数据,或者模糊对象本身,从而防止远程设备的操作者查明数据和/或对象。
尽管本文参考包括抓取和/或放置对象的操纵描述了一些示例,但是应当理解,本文描述的技术可以用于对对象的各种机器人操纵。例如,技术可以用于包括推动和/或拉取对象以将其移动到不同位置和/或使其与另一对象配对的操纵。此外,例如,技术可以用于包括抓取第一对象、抓取第二对象、将第一和第二对象耦合在一起、以及将耦合的对象放置在特定位置的操纵。作为又一示例,技术可以用于包括利用末端执行器对对象进行操作的操纵,该末端执行器包括蚀刻工具、螺丝刀工具、切割工具和/或其他工具。
以上描述是作为本公开的一些实现方式的概述来提供。下面更详细地描述这些实现方式的进一步描述和其它实现方式。
其他实现方式可以包括存储由一个或多个处理器(例如中央处理单元(CPU)、图形处理单元(GPU)和/或张量处理单元(TPU))可执行的指令的暂时性或非暂时性计算机可读存储介质,以执行诸如上文和/或本文其他地方描述的一种或多种方法的方法。其他实现方式还可以包括一个或多个计算机和/或一个或多个机器人的***,其包括一个或多个处理器,其可操作以执行存储的指令来执行诸如上文和/或本文其他地方描述的一种或多种方法的方法。
应当理解,本文更详细描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1A示出了其中可以实施本文所述的实现方式的示例环境。
图1B示出了根据本文所描述的各个实现方式的图1A的部件可以如何交互的示例。
图2A、2B、2C、2D、2E和2F各自示出在远程客户端设备处渲染包括要由机器人操纵的对象的对象表示的视觉表示的示例以及可以被提供来定义和/或确认用于由机器人操纵对象的对象操纵参数的用户接口输入的示例。
图3是示出了使机器人根据对象操纵参数来操纵对象的示例方法的流程图,该对象操纵参数基于在远程客户端设备处响应于包括对象的对象表示的视觉表示而生成的数据来确定。
图4是示出基于机器人对象操纵尝试生成训练实例并且在训练预测模型时使用训练实例的示例方法的流程图。
图5是示出在确定由机器人在操纵对象时使用的对象操纵参数时选择性地利用经训练的预测模型的示例方法的流程图。
图6是示出训练预测模型、验证预测模型、部署预测模型以及可选地进一步训练所部署的预测模型的示例方法的流程图。
图7示意性地描绘了机器人的示例架构。
图8示意性地描绘了计算机***的示例架构。
具体实施方式
图1A示出了其中可以实施本文所述的实现方式的示例环境。图1A包括第一机器人170A和相关联的机器人视觉部件174A、第二机器人170B和相关联的机器人视觉部件174B、以及附加视觉部件194。附加视觉部件194可以是例如单目视觉相机(例如,生成2D RGB图像)、立体视觉相机(例如,生成2.5D RGB图像)、激光扫描仪(例如,生成2.5D“点云”),并且可以可操作地连接到本文公开的一个或多个***(例如,***110)。可选地,可以提供多个附加视觉部件,并且如本文所述利用来自每个视觉部件的视觉数据。机器人视觉部件174A和174B可以是例如单目视觉相机、立体视觉相机、激光扫描仪和/或其它视觉部件,并且来自它们的视觉数据可以被提供给本文所述的相应机器人170A和170B并被其利用。虽然在图1A中被示出为与机器人170A和170B相邻,但是在其他实现方式中,机器人视觉部件174A和174B可以替代地直接耦合到机器人170A和170B(例如,附着在末端执行器172A和172B附近)。
机器人170A和170B、机器人视觉部件174A和174B以及附加视觉部件194都部署在诸如制造设施、封装设施或其他环境之类的环境中。尽管环境可以包括附加机器人和/或附加视觉部件,但是为了简单起见,在图1中仅示出了机器人170A和170B以及附加视觉部件194。
机器人170A和170B每个都是具有多个自由度的“机器人臂”,以使得相应的抓取末端执行器172A、172B能够沿着多个潜在路径中的任何路径遍历,以将抓取末端执行器定位在期望位置。机器人170A和170B中的每一个进一步控制其相应的抓取末端执行器172A、172B的两个相对的“爪子”在至少打开位置和闭合位置(和/或任选的多个“部分闭合”位置)之间使爪子致动。尽管在图1A中示出了特定机器人170A和170B,但是可以利用附加机器人和/或替代机器人,包括类似于机器人170A和170B的附加机器人臂、具有其他机器人臂形式的机器人、具有人形形式的机器人、具有动物形式的机器人、经由一个或多个轮子移动的机器人、无人飞行器(“UAV”)等。而且,尽管图1A中示出了特定抓取末端执行器172A和172B,但是可以利用附加末端执行器和/或替代末端执行器(或者甚至没有末端执行器),诸如替代冲击抓取末端执行器(例如,具有抓取“板”的那些,具有更多或更少“手指”/“爪子”的那些)、“浸入”抓取末端执行器、“收缩”抓取末端执行器、或“接触”抓取末端执行器、或非抓取末端执行器(例如,焊接工具、切割工具等)。例如,具有多个吸盘的收缩末端执行器可用于拾取和/或放置多个对象(例如,可以通过使用多个吸盘而同时拾取和放置四个对象)。
机器人170A可以访问机器人工作空间101A,在图1A中,该工作空间包括在输送机***的输送机部分103A上的太阳镜192A,并且还包括容器193A。机器人170A可以利用如本文所述确定的对象操纵参数来抓取太阳镜192A并且将它们适当地放置在容器193A中。其它对象可在不同时间在机器人工作空间101A中的输送机部分103A上,不同容器也可以在不同时间在输送机部分上(例如,容器可由单独***放置或在单独的输送机***上)。例如,当输送机***移动时,其它对象将被传输到机器人工作空间101A中并且可以在机器人工作空间170A中时由机器人170A操纵。机器人170A同样可以利用相应的对象操纵参数来拾取和放置这样的对象,和/或对这样的对象执行其他操纵。
机器人170B可以访问机器人工作空间101B,在图1A中,该工作空间包括在输送机***的输送机部分103B上的订书机192B,并且还包括容器193B。机器人170B可以利用如这里所述确定的对象操纵参数来抓取钉书机192B并将其适当地放置在容器193B中。其它对象可在不同时间在机器人工作空间101B中的输送机部分103B上,不同容器也可在不同时间在输送机部分上。机器人170B同样可以利用相应的对象操纵参数来拾取和放置这样的对象,和/或对这样的对象执行其他操纵。
附加视觉部件194具有不同于机器人工作空间101A和不同于机器人工作空间101B的环境的区域101C的视场。在图1A中,该区域包括输送机***的输送机部分103C,还包括抹刀192C。区域101C可以在机器人工作空间101A和/或机器人工作空间101B的“上游”,因为待操纵的对象在被传输到机器人工作空间101A或机器人工作空间101B之前首先通过区域101。例如,输送机***可以首先使对象通过区域101C,然后通过输送机***将这些对象按照路径发送到机器人工作空间101A或机器人工作空间101B。例如,在图1A中,抹刀192C在区域101C中,但是还没有被传输到机器人工作空间101A或机器人工作空间101B。
如本文详细描述的,在各个实现方式中,附加视觉部件194可以捕获能够捕获抹刀192C的特征的视觉数据。此外,***110(下面描述)可以利用视觉数据来确定对象操纵参数,以使机器人170A或机器人170B能够操纵(例如,拾取和放置)抹刀192C。例如,***110可以至少部分地基于来自远程客户端设备130的针对视觉表示的用户接口输入来确定对象操纵参数,该视觉表示至少部分地基于由附加视觉部件194捕获的视觉数据(例如,至少部分地基于捕获抹刀192C的特征的视觉数据的对象特征)来生成。在抹刀192C处于机器人工作空间101A或机器人工作空间101B中之前(即,在完成将抹刀传输到机器人工作空间101A、101B中的任一个之前),通过利用位于机器人工作空间101A和101B的“上游”的附加视觉部件194,可以将视觉表示提供给远程客户端设备130、用户接口输入在远程客户端设备130处被提供和/或对象操纵参数基于与用户接口输入相对应的数据来确定。以这些和其它方式,机器人170A和170B可以更有效地操作,因为可以快速地确定用于操纵对象的对象操纵参数,可选地甚至在对象到达机器人工作空间101A和101B之前。
图1A的示例环境还包括***110、远程客户端设备130、训练数据引擎143、训练数据数据库152、训练引擎145和一个或多个机器学习模型165(这里也称为“预测模型”)。
***110可以由一个或多个计算设备实施。一个或多个计算设备可以位于具有机器人170A和170B的环境中,和/或可以位于远程服务器场中。***110包括一个或多个预测引擎112、视觉表示引擎114和操纵参数引擎116。***110可以执行图3的方法300和/或图5的方法500的一个或多个(例如,全部)操作,这两者都在下面详细描述。
远程客户端设备130可以可选地在环境内,但是在各个实现方式中,位于可以远离环境若干英里的不同结构中。远程客户端设备130包括显示引擎132、输入引擎134和输入设备136。注意,在各个实现方式中,多个远程客户端设备130在任何给定时间都可由***110访问。在这些实现方式中,给定远程客户端设备130可以基于各种考虑在给定时间被选择,所述考虑诸如给定远程客户端设备130在其队列中是否具有任何未决请求、其队列中未决请求的数量、和/或用于寻址其队列中未决请求的预期持续时间。
***110的预测引擎112可以从视觉部件194、174A和/或174B接收视觉数据,并且可选地接收其他传感器数据。预测引擎112可各自利用机器学习模型165中的对应一个来处理视觉数据和/或其他传感器数据,以生成用于操纵由视觉数据捕获的对象的一个或多个所预测的对象操纵参数。例如,预测引擎112中的一个可以处理来自附加视觉部件194的视觉数据,并使用机器学习模型165中的对应一个来生成用于抓取抹刀192C的所预测的抓取姿势。此外,例如,预测引擎112中的一个可以附加地或替换地处理来自附加视觉部件194的视觉数据,并使用机器学习模型165中的对应一个来生成用于放置抹刀192C的预测放置姿势。此外,例如,预测引擎112中的一个可附加地或替换地处理来自附加视觉部件194的视觉数据并且使用机器学习模型165中的对应一个来生成在遍历到用于抹刀的抓取姿势时要遇到的预测路点。如本文所述,联机的并且由***110使用的预测引擎112和对应的机器学习模型165(如果有的话)可以随时间变化并且可以取决于(例如,由训练引擎145)对机器学习模型的充分训练和/或验证。
由预测引擎112针对给定对象操纵生成的预测对象操纵参数(如果有的话)可以***纵参数引擎116自动用作操纵参数,可以在利用之前首先被呈现以供视觉表示引擎114确认,或者可以被丢弃而不被利用。例如,预测引擎112中的一个可以生成所预测的对象操纵参数和用于所预测的对象操纵参数的置信度测量。如果置信度测量满足第一阈值,则该预测引擎可以指定所预测的对象操纵参数将由操纵参数引擎116使用而无需提示以便确认。如果置信度测量未能满足第一阈值但满足第二阈值,则该预测引擎可以指定要由视觉表示引擎114将预测对象操纵参数的指示包括在视觉表示中,并且仅在接收到针对该指示的确定性用户接口输入时才被利用。如果置信度测量未能满足第一阈值和第二阈值,则该预测引擎可以指定所预测的对象操纵参数未被利用并且视觉表示引擎114提示以便定义对应的对象操纵参数。
视觉表示引擎114从视觉部件194、174A和/或174B接收视觉数据,并且生成视觉表示以传送到远程客户端设备130,以供由远程客户端设备130的显示引擎132渲染。到远程客户端设备130的传输可以经由一个或多个网络(未示出),诸如因特网或其他广域网(WAN)。
由视觉表示引擎114生成的视觉表示包括由视觉数据所捕获的至少一个对象的对象表示。例如,视觉表示可以包括在来自附加视觉部件194的视觉数据中捕获的抹刀192的对象表示。例如,视觉表示可以包括作为抹刀192的二维(2D)图像的对象表示。抹刀192的2D图像的示例在下面将更详细地描述的图2D和2E中示出。而且,例如,视觉表示可以包括作为抹刀192的三维(3D)表示的对象表示。例如,抹刀192的3D表示可以定义抹刀的表面上的一个或多个点的位置(例如,x、y、z位置),并且可以可选地包括每个位置的一个或多个颜色值。抹刀192的3D表示的示例在下面将更详细地描述的图2A、2B和2C中示出。视觉表示还可以可选地包括来自预测引擎112的预测对象操纵参数(如果有的话)的指示。在下面将更详细地描述的图2E中示出了来自预测引擎112的预测对象操纵参数的示例。视觉表示还可以可选地包括其他环境对象的环境表示(例如,工作表面、其中要放置至少一个对象的容器)和/或机器人的全部或部分的机器人表示。
在一些实现方式中,由视觉表示引擎114生成并且被传送到远程客户端设备130的视觉表示包括对象的对象表示以及可任选地其他附近动态对象的一个或多个对象表示,但省略静态的其他部分。在这些实现方式的一些中,在远程客户端设备130处仅渲染对象和可选地附近的动态对象。在一些实现方式中,机器人和/或机器人工作空间的全部或部分也在远程客户端设备130处被渲染,尽管没有在被传送到远程客户端设备130的视觉数据中被捕获。例如,远程客户端设备的显示引擎132可以包括机器人模拟器。机器人模拟器可以模拟机器人的全部或部分和/或机器人工作空间的全部或部分,并且可以连同机器人模拟和/或机器人工作空间模拟一起渲染对象的模拟。机器人模拟器可以用于模拟包括对应对象的环境,模拟在模拟环境中操作的机器人的全部或部分(例如,至少机器人的末端执行器),并且可选地响应于所模拟的机器人动作来模拟在模拟机器人与模拟环境对象之间的交互。可以利用各种模拟器,诸如模拟碰撞检测、柔软和刚性身体动力学等的物理引擎。这种模拟器的一个非限制性示例是BULLET物理引擎。
作为一个特定示例,客户端设备的显示引擎132可以接收仅包括要操纵的对象的3D对象表示的视觉表示。显示引擎132可以将3D对象表示放置在模拟机器人工作空间中和/或相对于模拟机器人放置3D对象表示。例如,显示引擎132的机器人模拟器可以具有机器人工作空间的视觉表示和/或预加载的机器人的视觉表示,并且可以相对于那些对象放置3D对象表示。当对象表示基于来自附加视觉部件194的视觉数据时,对象相对于机器人模拟和/或机器人工作空间模拟的姿势可以可选地使用附加视觉部件194的姿势和机器人视觉部件174A、174B中的相应一个的姿势之间的变换来确定。模拟机器人可以被设置为默认状态(例如,开始状态),或者机器人的当前状态(例如,关节的当前位置)可以可选地提供有用于在当前状态中渲染模拟机器人的视觉表示。模拟机器人和/或机器人工作空间的实现方式使得能够将较小数据大小的视觉表示从***110传送到远程客户端设备130。
在一些实现方式中,视觉表示引擎114生成要在客户端设备处渲染的视觉表示的对象表示,该对象表示以比完整表示低的准确度来渲染对象,但是具有比完整表示小的数据大小。例如,视觉表示引擎114可以生成包括一个或多个边界框和/或近似对象的表面的其他边界形状的对象表示。例如,视觉表示引擎114可以生成由多个连接的边界框组成的对象表示,每个边界框可以由中心点、高度尺寸和宽度尺寸来定义。在下面将更详细描述的图2F中示出了一个非限制性的示例。较不详细的对象表示可以是更简明的数据,从而节省网络资源。此外,较不详细的对象表示可以减缓在远程设备处渲染视觉表示的延迟和/或可以模糊或移除来自对象的潜在敏感数据,或模糊对象本身。
远程客户端设备130的操作者利用远程客户端设备130的一个或多个输入设备136与由显示引擎132提供的视觉表示交互。输入设备136可以包括例如鼠标、触摸屏、VR手控制器和/或VR手套。输入设备136可以形成远程客户端设备的组成部分(例如,触摸屏),或者可以是使用有线和/或无线协议与远程设备130耦合的***设备。
远程客户端设备130的输入引擎134处理经由输入设备136所提供的用户接口输入,以生成(直接或间接)指示要在对象操纵中使用的一个或多个对象操纵参数的数据。例如,由用户接口输入的实例的输入引擎134所生成的数据指示的对象操纵参数可以包括:抓取姿势;放置姿势;在遍历到抓取姿势时要遇到的路点序列;(在抓取对象之后)在朝向放置姿势遍历时要遇到的路点序列;在遍历到操纵姿势(例如,抓取姿势或其他操纵姿势)和/或从操纵姿势(例如,抓取姿势或其他操纵姿势)遍历时的完整路径或迹线(即,具有速度、加速度、加加速度和/或其他参数的路径);和/或其它对象操纵参数。实例的用户接口输入由远程客户端设备130的操作者参考由显示引擎132所渲染的视觉表示来提供。例如,用户接口输入的实例可以指示在利用多个部件部分的部分的装配期间利用的完整迹线。
操纵参数引擎116基于由输入引擎134提供的数据来确定操纵参数。在一些实现方式中,数据直接定义对象操纵参数,并且操纵参数引擎116通过利用由数据定义的对象操纵参数来确定对象操纵参数。在其他实现方式中,操纵参数引擎116在确定对象操纵参数时变换和/或以其他方式处理数据。
操纵参数引擎116将所确定的对象操纵参数和/或基于对象操纵参数所生成的命令传送到机器人170A或170B。在一些实现方式中,操纵参数引擎116传送对象操纵参数和/或基于对象操纵参数的高级命令。在那些实现方式中,对应机器人的控制***将对象操纵参数和/或高级命令变换成对应低级动作,诸如向机器人的致动器发出的控制命令。在其他实现方式中,对象操纵参数可以自身定义低级动作(例如,当经由用户接口输入定义完整迹线时)和/或可以基于对象操纵参数生成低级动作,并且操纵参数引擎116将低级动作传送到对应机器人以用于基于低级动作的控制。
训练数据引擎143生成训练实例并将训练实例存储在训练数据数据库152中。训练实例中的每一个针对机器学习模型165中的对应一个来生成,并且基于实例的对应操纵参数、该实例的视觉数据和/或其他数据、以及可选地该实例的成功的测量(在本文中也被称为“成功测量”)来生成。
作为一个示例,训练数据引擎143可以从操纵参数引擎116接收在执行操纵时控制机器人170A、170B之一中利用的操纵参数。操纵参数可以是基于来自远程客户端设备130的用户接口输入生成的、由预测引擎112之一预测的并且基于来自远程客户端设备的用户接口输入确认的、或者由预测引擎112之一预测的并且自动利用的操纵参数。训练数据引擎143还可以接收该实例的视觉数据,诸如捕获在操纵中***纵的对象的视觉数据。视觉数据可以来自附加视觉部件194,或者来自机器人视觉部件174A或174B之一。注意,在一些实现方式中,由训练数据引擎143在生成训练实例时利用的视觉数据可以不同于在生成对象操纵参数时利用的视觉数据。例如,对象操纵参数可以基于用户接口输入来定义,该用户接口输入指向基于来自附加视觉部件194的视觉数据生成的对象表示,但是来自机器人视觉部件174A的(捕获对象的)视觉数据可以用于生成训练实例。
训练数据引擎143可以可选地进一步基于视觉数据和/或来自其他传感器104的数据来确定(作为整体,和/或针对对象操纵参数的部分的)操纵的成功测量。其它传感器104可以包括例如环境中的重量传感器、机器人的非视觉传感器(例如,扭矩传感器、位置传感器)和/或其它传感器。训练数据引擎143然后可以基于视觉数据、对象操纵参数和可选的成功测量来生成训练实例。例如,训练实例可以包括视觉数据和对象操纵参数(例如,其表示)作为训练实例输入,并且包括成功测量作为训练实例输出。作为另一示例,训练实例可以包括视觉数据作为训练实例输入、包括对象操纵参数作为训练实例输出,并且可以基于成功测量被标记为肯定或否定的训练实例。作为又一示例,训练实例可以包括作为训练实例输入的视觉数据,并且包括对应于对象操纵参数并且基于成功测量所确定的值作为训练实例输出。
训练引擎145利用训练数据数据数据库152的对应训练实例来训练机器学习模型165。然后,经训练的机器学习模型可以至少选择性地由预测引擎112之一用于预测一个或多个对应对象操纵参数,所述对象操纵参数然后至少选择性地被用于控制机器人。在一些实现方式中,在训练引擎145确定满足一个或多个条件之后,仅在预测至少选择性地利用的对象操纵参数时利用经训练的机器学习模型。一个或多个条件可以包括例如如本文所述的经训练的机器学习模型的训练和/或验证的至少阈值量。在一些实现方式中,训练数据引擎143和训练引擎145可以实施本文详细描述的图4的方法400的一个或多个方面。
现在转向图1B,该图1B示出了根据本文描述的各个实现方式的图1A的部件如何能够彼此交互的示例。在图1B中,来自附加视觉部件194的视觉数据被提供给预测引擎112和视觉表示引擎114。例如,视觉数据可捕获图1A中所示出的抹刀192。预测引擎112可以基于使用一个或多个机器学习模型165处理视觉数据来生成所预测的对象操纵参数113。视觉表示引擎114生成至少包括对象的对象表示的视觉表示115,其中对象表示基于视觉数据的对象特征。在一些实现方式中,视觉表示115还可以包括所预测的对象操纵参数113的指示(例如,当对应置信度测量指示需要确认时)。附加地或替换地,并且如虚线箭头所指示的,所预测的对象操纵参数113可以直接地被提供给操纵参数引擎116,而无需在视觉表示115中包括其指示或请求确认(例如,当对应置信度测量指示不需要确认时)。
视觉表示115被传送到显示引擎132,其渲染视觉表示,可选地连同其他模拟表示(例如,模拟机器人和/或模拟工作空间)。输入数据135由输入引擎134响应于在一个或多个输入设备136处提供的并且指向视觉表示的一个或多个用户接口输入来生成。输入数据135直接或间接地指示一个或多个附加对象操纵参数和/或对视觉表示115中所指示的任何所预测的对象操纵参数的确认。
操纵参数引擎116利用输入数据以及可选地任何直接提供的所预测的对象操纵参数113来生成被提供给机器人170A以用于实施的对象操纵参数117。例如,机器人170A可以生成基于对象操纵参数117的控制命令,并且可以响应于确定对象已经进入机器人170A的机器人工作空间和/或处于机器人工作空间内的特定姿势而实施它们。例如,机器人170A可以基于来自机器人视觉部件174A的机器人视觉数据来做出这样的确定。
训练数据引擎143可以基于所实施的操纵参数117来生成训练实例144。每个训练实例144可以包括基于来自附加视觉部件194和/或来自机器人视觉部件174的视觉数据的训练实例输入。每个训练实例144还可以基于操纵参数117中的对应一个(例如,训练实例输入或输出可以基于操纵参数)。每个训练实例144还可以基于由训练数据引擎确定的相应成功测量、基于来自视觉部件174A和/或194的视觉数据、和/或基于来自其它传感器104的数据。训练实例144被存储在训练数据数据数据库152中,以供训练引擎145(图1)在训练一个或多个机器学习模型165时利用。
现在转向图2A、2B、2C、2D、2E和2F,这些图中的每一个示出了可以在远程客户端设备130(图1A)或其它远程客户端设备处渲染的视觉表示的示例。每个视觉表示包括要由机器人操纵的对象的对象表示,并且示出了可以被提供以定义和/或确认用于由机器人操纵对象的对象操纵参数的用户接口输入的示例。
图2A示出了包括具有图1A的机器人之一的机器人模拟270A的模拟环境的视觉表示。此外,在模拟环境中示出了图1A的抹刀192C的对象表示292A。如本文所述,可以基于捕获抹刀192C并用于生成对象表示292A的视觉数据,可选地考虑到机器人参考坐标系的变换,来确定对象表示292A的姿势。图2A的视觉表示可以例如经由VR头戴式设备来渲染。
操作者(例如,经由VR控制器)已经提供用户接口输入以定义机器人的末端执行器从开始姿势(未图示)到所示出的抓取姿势的路径289A1。操作者可例如致动第一虚拟按钮(例如,虚拟按钮282A1)或硬件按钮以开始定义路径289A1,且致动第二虚拟或硬件按钮以定义路径289A1的结束,其也构成抓取姿势。尽管未示出,但是注意到模拟机器人270A可以在定义迹线289A1期间“移动”,以向操作者提供路径289A1的视觉反馈,因为其将由机器人270A实施。
图2A还示出了虚拟按钮282A2,其可由操作者选择以使用预定义路径,该预定义路径在被定义用于用户接口输入的先前实例之后由操作者“保存”。选择虚拟按钮282A2可以将预定义路径连同用户修改预定义路径以使其适应特定对象的选项粘贴到虚拟环境中。图2A中还示出了虚拟按钮282A3,其可以由操作者选择以将路径289A1定义为可以在以后被选择为“预定义路径”的路径。使操作者能够保存并重用某些路径可以减少重新定义该路径或作为预定义路径的轻微变化的路径所需的用户接口输入的数量。另外,这可以使得能够更快速地定义当前实例的路径,这可以减缓机器人在等待对象操纵参数的定义时的空闲时间和/或可以增加操作者的生产率。
图2B示出了包括具有图1A的机器人之一的机器人模拟270B的模拟环境的视觉表示。此外,在模拟环境中示出了图1A的抹刀192C的对象表示292B。操作者(例如,经由VR控制器)已经提供了用户接口输入以定义路点289B1和289B2(代替完整路径)以及抓取姿势289B3,其中在遍历到抓取姿势289B3时遇到路点,并且在抓取抹刀192C时利用抓取姿势289B3。操作者可以例如以用于定义路点289B1和289B2的第一方式致动(例如VR控制器的)第一硬件按钮,并且可以以用于定义抓取姿势289B3的第二方式致动第一硬件按钮(或致动第二硬件按钮)。尽管未示出,但是注意到,模拟机器人270B可以在定义路点289B1、289B2和/或抓取姿势289B3期间“移动”,以向操作者提供视觉反馈。尽管在图2B中未示出,但是还可以提供虚拟按钮,以用于保存路点289B1和289B2,和/或重新使用(并且可能适应)预定义路点。
图2C示出了包括具有图1A的机器人之一的机器人模拟270C的模拟环境的视觉表示。此外,在模拟环境中示出了图1A的抹刀192C的对象表示292C。操作者(例如,经由VR控制器)已经提供用户接口输入以仅定义抓取姿势289C1。操作者可以例如致动(例如VR控制器的)第一硬件按钮以定义抓取姿势289C1。尽管未示出,但是注意到模拟机器人270C可以在定义抓取姿势289C1期间“移动”以向操作者提供视觉反馈。在一些实现方式中,可以提供类似于图2A和/或2B的视觉表示,直到训练了使得能够预测可至少选择性地自动实施(无需确认)的路径或路点的机器学习模型为止,并且可以随后提供类似于图2C的视觉表示以用于经由用户接口输入仅定义抓取姿势。可选地,图2C还可以可视地指示预测路径和/或预测路点,并且提示以确认预测路点或路径,或者重新定义预测路点或路径(如果没有确认)。
图2D示出了包括图1A的抹刀192C的对象表示292D的视觉表示,即抹刀的2D图像(例如,RGB图像)。视觉表示可以例如在远程客户端设备的触摸屏上被渲染。通过指示282D提示客户端设备的操作者在触摸屏上轻扫以定义对跖抓取。作为响应,操作者在289D1触摸该触摸屏并轻扫到289D2,此时操作者释放他/她的触摸。结果,对跖抓取被定义有在289D1处的第一点和在289D2处的第二点。点289D1和289D2可以使用例如2D图像和相应的2.5D或3D视觉数据之间的映射从2D点变换到3D点。
图2E示出了包括图1A的抹刀192C的对象表示292E的视觉表示,即抹刀的2D图像(例如,RGB图像)。视觉表示还包括所预测的对跖抓取的指示288E。视觉表示可以例如在远程客户端设备的屏幕上被渲染。通过指示282E1提示客户端设备的操作者确认指示288E的所预测的对跖抓取,或者(通过指示282E2)定义替换抓取。如果操作者同意指示288E的所预测的对跖抓取,则他/她可以简单地点击/敲击指示282E1。如果操作者不同意指示288E的所预测的对跖抓取,则他/她可以点击/敲击指示282E2并且改变指示288E(例如,将其向上/向下拖动、改变宽度等)或从头定义新对跖抓取。
图2F示出了包括图1A的抹刀192C的对象表示292F的可视表示,其包括近似抹刀192A的表面的三个连接的边界框(虚线)。如本文所述,对象表示292F可以比图2D和2E的表示更为数据有效的,和/或可以防止潜在敏感数据被客户端设备的操作者查看。视觉表示可以例如在远程客户端设备的触摸屏上被渲染。通过指示282DF提示客户端设备的操作者在触摸屏上轻扫以定义对跖抓取。作为响应,操作者在289F1触摸该触摸屏,并轻扫到289FD2,此时操作者释放他/她的触摸。结果,对跖抓取被定义有在289F1处的第一点和在289F2处的第二点。
在图2A至2F中示出了视觉表示和与视觉表示的交互的各种示例。然而,要理解,可以在本文所公开的各个实现方式中利用附加视觉表示和/或交互和/或替换视觉表示和/或交互。
现在转向图3,图3示出了使机器人根据基于在远程客户端设备处响应于包括对象的对象表示的视觉表示而生成的数据所确定的对象操纵参数来操纵对象的示例方法300。为了方便起见,方法300的一些操作参考执行这些操作的***来描述。该***可以包括各种计算机***和/或机器人的各种部件,例如图1A和1B中描绘的一个或多个部件。此外,虽然以特定顺序示出了方法300的操作,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框352处,***从一个或多个视觉部件接收捕获一个或多个对象的对象特征的视觉数据。在方法300的一些实现方式或迭代中,视觉部件是观察对应机器人的机器人工作空间的机器人视觉部件,并且当对象在机器人工作空间中时视觉数据捕获对象特征。在一些其它实现方式或迭代中,视觉部件在环境的与所述环境的机器人工作空间不同的第一区域中,且视觉数据在对象处于第一区域中时且在完成将对象传输到机器人工作空间之前捕获对象特征。在这些实现方式的一些中,框354、356、358、360、362和/或364中的一个或多个可以在完成将对象传输到机器人工作空间之前得以完成。
在可选框354处,***基于视觉数据和预测模型来生成一个或多个所预测的对象操纵参数。例如,***可以使用已被训练并被联机的对应预测模型来处理视觉数据和/或其他传感器数据,以生成所预测的抓取姿势,并且任选地生成用于所预测的抓取姿势的(例如,成功的对象操纵的)预测概率。作为另一示例,***可以附加地或替代地使用已经被训练并且被联机的对应预测模型来处理视觉数据和/或其他传感器数据,以生成要被抓取的对象的预测分类,并且可选地生成预测分类的预测概率(例如,预测分类正确的概率)。预测分类可以用于确定对象的预测放置位置(例如,在多个可用容器中的对应于预测分类的特定容器中)。预测分类的预测概率可以可选地用作对应的预测放置位置(例如,与预测分类具有定义关系的位置)的概率。
在可选框356处,***确定是否:(a)需要除了框354的预测操纵参数之外的多个对象操纵参数,以便操纵对象;和/或(b)所预测的对象操纵参数中的一个或多个是否需要由远程用户接口输入来确认(例如,由于对应的预测概率未能满足阈值)。
如果在框356确定为“否”,则***直接前进到框360,并使机器人根据对象操纵参数操纵对象,在这种情况下,该对象操纵参数对应于框354的所预测的对象操纵参数。
如果在框356确定为“是”,则***前进到可选框358或框360。
框354和356被示出为可选的(如虚线所示),因为它们在各个实现方式中可能不被用在方法300中和/或因为它们在其他实现方式中仅可在一些迭代中被利用。例如,在一些其他实现方式中,框354可以仅在至少一个预测模型已经被训练并且被联机时才被实施,这可以视如本文所述的一个或多个条件的满足而定。
在可选框358处,***从多个客户端设备中选择远程客户端设备。***可以基于各种考虑来选择远程客户端设备。例如,***可以响应于确定远程客户端设备当前在其队列中没有对对象操纵参数的任何请求来选择远程客户端设备。此外,例如,***可以响应于确定针对远程客户端设备的未决请求的数量和/或未决请求的预期持续时间小于其他候选远程客户端设备的未决请求的数量和/或预期持续时间(例如,可用于在部署方法300中所利用的机器人的环境中利用的那些),附加地或替代地选择远程客户端设备。作为又一个示例,***可以基于远程客户端设备的操作者的熟练测量来选择远程客户端设备。熟练测量可以基于针对操纵的过去成功测量,该过去成功测量基于以来自操作者的用户接口输入为基础所确定的对象操纵参数,并且熟练测量可以是全局熟练测量或者特定于一个或者多个特定操纵(例如,用于抓取并且放置操纵的第一熟练测量、用于抓取两个对象并且将它们联结在一起的操纵的第二熟练测量等)。
在框360,***向远程客户端设备(例如,在框358处选择的那个)传送基于框352的视觉数据的视觉表示。视觉表示至少包括基于框352的视觉数据的对象特征的对象表示。在一些实现方式中,对象表示包括比框352的视觉数据的对象特征少的数据。例如,对象表示可以定义各自近似对象的对应区域的边界形状,而不为视觉数据中的边界形状所包含的各个像素或体素定义颜色和/或其他值。例如,视觉数据中的64个像素或体素的值可以被7个值替换:3个,其定义边界框的中心的x、y、z坐标;2个,其共同定义边界框的定向;以及两个,其定义边界框的宽度和高度。
在一些实现方式中,在框360处传送的视觉表示缺少机器人的任何表示和/或缺少机器人的机器人工作空间中的一个或多个静态对象和/或其他对象的任何表示。在这些实现方式中的一些中,客户端设备渲染所传送的视觉表示连同机器人的模拟和/或机器人工作空间的全部或部分的模拟。例如,远程客户端设备可以执行对机器人和机器人工作空间进行模拟的机器人模拟器,并且可以在机器人模拟器内并且连同模拟的机器人和机器人工作空间一起渲染对象表示。注意,这可以通过消除随着视觉表示到远程客户端设备的每次传输而传送机器人和/或机器人工作空间的表示的需要来节省网络资源。还应注意,即使在与机器人工作空间不同的第一区域中捕获框352的视觉数据时,也可以渲染模拟机器人和/或模拟机器人工作空间,并且利用其适当地渲染对象表示。
可选地,框360包括子框360A,其中***基于视觉数据并且基于框354的所预测的操纵参数(如果有的话)来生成视觉表示。例如,如果在框354处生成所预测的抓取姿势,则所预测的抓取姿势的指示可任选地被包括在视觉表示中。例如,所预测的抓取姿势的指示可以是以所预测的抓取姿势渲染的机器人末端执行器的表示连同对象表示。远程客户端设备的操作者可确认所预测的抓取姿势,或建议替代抓取姿势(例如,通过调整机器人末端执行器的表示)。作为另一示例,如果在框354处生成所预测的一系列路点,则可以可选地将这些路点的指示包括在视觉表示中。例如,路点的指示可以是与对象表示和/或机器人模拟一起渲染的路点的圆圈或其他标记。
在框362,***从远程客户端设备接收基于指向在框360传送的视觉表示的用户接口输入所生成的数据。用户接口输入可以包括(直接或间接)定义对象操纵参数的那些和/或确认所预测的对象操纵参数的那些。
在框364处,***基于在框362处接收到的数据来确定用于由机器人操纵对象的对象操纵参数。如果数据指示对那些所预测的对象操纵参数的确认,则对象操纵参数可以包括基于在视觉表示中指示的所预测的对象操纵参数(如果有)的那些。对象操纵参数可以附加地或替换地包括基于用户接口输入而独立于任何所预测的对象操纵参数定义的那些。
在一些实现方式中,在远程客户端设备处生成的数据直接定义对象操纵参数,并且可以直接用作对象操纵参数。在一些其他实现方式中,数据间接定义对象操纵参数,并且在确定对象操纵参数时被进一步处理。作为一个非限制性示例,框364可以可选地包括其中***将姿势和/或点变换到机器人的机器人坐标系的子框364A。例如,由在框362处接收的数据定义的姿势、点(例如,路点)和/或其他特征可以相对于与机器人坐标系不同的给定坐标系来定义,然后被变换到机器人坐标系。例如,给定坐标系可以是框352的与机器人的机器人视觉部件不同的视觉部件的第一坐标系。
在框360,***根据对象操纵参数使机器人操纵对象。对象操纵参数可以包括基于所预测的对象操纵参数的那些和/或基于用户接口输入独立于任何所预测的对象操纵参数而定义的那些。在一些实现方式中,***向机器人提供对象操纵参数和/或基于对象操纵参数的高级命令。在那些实现方式中,机器人的控制***将对象操纵参数和/或高级命令变换成对应的低级动作,诸如向机器人的致动器发出的控制命令。例如,机器人可以包括控制器,该控制器将高级命令转换成更具体控制命令以提供给机器人的一个或多个致动器。控制命令可以包括在相应实例处发出给机器人的致动器的一个或多个速度控制命令,以控制机器人的移动。例如,在控制机器人的移动时,可以向控制机器人的末端执行器的移动的每个致动器发出速度控制命令。在其他实现方式中,对象操纵参数可以自身定义低级动作(例如,当经由用户接口输入定义完整迹线时),和/或低级动作可以基于对象操纵参数来生成,并且将低级动作提供给机器人以用于基于低级动作的控制。
在视觉部件处于与环境的机器人工作空间不同的环境的第一区域中的实现方式中,框360可以包括进一步响应于确定对象处于机器人工作空间内而使机器人操纵对象。在那些实现方式的一些中,机器人可以基于来自机器人的视觉部件的机器人视觉数据来确定对象在机器人工作空间内。在一些附加或替换实现方式中,可以基于来自对象的输送装置的指示对象在工作空间内的数据来确定对象在工作空间内。例如,当输送装置包括输送机***时,可以基于输送机***的操作数据来确定机器人工作空间内的对象的到达时间。
在框360之后,***然后返回到框352。注意,在各个实现方式中,方法300的多个迭代可以针对给定环境并行运行,从而使得能够在针对先前对象完成方法300之前(例如,至少在完成框360之前)生成、传送新对象的视觉表示、接收对应数据和/或确定对应对象操纵参数。例如,方法300的多次迭代可以并行运行,每次迭代针对环境的不同机器人。此外,例如,方法300的多次迭代可以针对给定机器人并行运行,使得能够在多个不同对象到达给定机器人的机器人工作空间并且由给定机器人操纵之前,针对这些对象中的每一个确定对象操纵参数。
现在转向图4,图4示出了基于机器人对象操纵尝试生成训练实例并且在训练预测模型时使用训练实例的示例方法400。为了方便起见,方法400的一些操作参考执行这些操作的***来描述。该***可以包括各种计算机***和/或机器人的各个部件,例如图1A和1B中描绘的一个或多个部件。此外,虽然以特定顺序示出了方法400的操作,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框2处,***识别:(1)通过机器人在对象操纵尝试中利用的对象操纵参数;以及(2)与对象操纵尝试相关联的视觉数据。例如,对象操纵参数可以包括基于用户接口输入定义的抓取姿势和放置姿势,该用户接口输入指向基于来自第一区域的视觉数据所生成的视觉表示,并且视觉数据可以为来自与所述第一区域不同的机器人工作空间的机器人视觉数据。
在可选框4处,***基于来自传感器的传感器数据来生成对象操纵尝试的成功测量。在一些实现方式中,***为整个对象操纵尝试生成单个成功测量。例如,对于拾取和放置操纵,***可以确定基于对象是否被成功放置和/或放置的准确性的单个成功测量。在一些其他实现方式中,***生成用于对象操纵尝试的多个成功测量,其中每个成功测量对应于对象操纵参数的对应子集。例如,对于拾取和放置操纵,***可以确定拾取操纵的第一成功测量(例如,基于是否成功地抓取对象)以及放置操纵的第二成功测量(例如,基于是否成功地放置对象和/或放置的准确性)。成功测量可以基于的传感器可以包括例如机器人的位置传感器、机器人的扭矩传感器、来自机器人的视觉部件的机器人视觉数据、环境中的重量传感器和/或其他机器人和/或环境传感器。
在框6,***基于对象操纵参数、视觉数据以及可选地成功测量来生成训练实例。如从框6到框2的箭头所指示,***可以继续执行框2、4和6的迭代,以基于附加对象操纵尝试来生成附加训练实例。
作为框6的示例,假设拾取和放置操纵具有抓取姿势和放置姿势操纵参数。第一训练实例可以基于视觉数据和抓取姿势并且基于成功测量(例如,抓取的成功测量或拾取和放置的总体成功测量)来生成。例如,第一训练实例可以用于近似值函数的抓取预测模型,并且用于处理视觉数据和抓取姿势,并且使用抓取姿势并且鉴于视觉数据来预测抓取对象的成功概率。在这种实例中,训练实例输入将包括视觉数据和抓取姿势(例如,x、y和z位置以及定向的表示),并且训练实例输出将包括成功测量(例如,如果成功测量指示失败的抓取,则为“0”,并且如果成功测量指示成功的抓取,则为“1”)。此外,例如,第一训练实例可以改为用于处理视觉数据(也不处理抓取姿势)并且生成用于N个抓取姿势中的每一个的对应概率的预测模型。在这种实例中,训练实例输入将包括视觉数据,并且训练实例输出将包括,如果成功测量指示成功的抓取,则对应于抓取姿势的输出值为“1”,并且任选地所有其他值为“0”。第二训练实例可以基于视觉数据和放置姿势并且基于成功测量(例如,抓取的成功测量或拾取和放置的总体成功测量)来生成。例如,第二训练实例可以用于放置预测模型,该放置预测模型近似值函数并且用于处理视觉数据和放置姿势,并且鉴于视觉数据当使用抓取姿势时预测对象的放置成功的概率。在这种实例中,训练实例输入将包括视觉数据和放置姿势(例如,x、y和z位置以及定向的表示),并且训练实例输出将包括成功测量(例如,如果成功测量指示不成功的放置,则为“0”,如果成功测量指示成功的放置,则为“1”,如果成功测量指示成功但不完全准确的放置,则为“0.7”等)。
作为框456的另一示例,假设操纵具有包括基于用户接口输入所定义的路点序列的操纵参数。可以基于视觉数据和路点序列来生成训练实例。例如,训练实例可以是针对路点预测模型,该路点预测模型近似值函数并且用于处理视觉数据和路点序列,并且鉴于视觉数据预测路点序列的概率(例如,路点序列是适当的概率)。在这样的实例中,训练实例输入将包括视觉数据和路点序列的表示(例如,使用递归神经网络模型或变换器网络生成的序列的嵌入),并且训练实例输出基于已经基于用户接口输入被定义的序列,将包括“1”(或其他“正”值)。
在框458,***使用所生成的训练实例来更新预测模型的参数。在框456中生成不同预测模型的不同训练实例的情况下,在框458的每次迭代中可以利用对应预测模型的适当训练实例。例如,框458的一些迭代可以使用第一类型的训练实例来训练第一预测模型,其他迭代可以使用第二类型的训练实例来训练第二预测模型等等。此外,框458、460和462的多个迭代可以可选地并行操作,每个迭代专用于训练对应预测模型。
在框460,***确定是否需要更多训练。在一些实现方式中,这可以基于是否已经发生了阈值量的训练、是否已经发生了阈值持续时间的训练、和/或是否已经观察到预测模型的一个或多个性能特性(例如,在使用预测模型时,高概率预测和/或在至少X%的操纵中的成功操纵)。在一些实现方式中,预测模型的训练可以至少在周期性的基础上无限地继续。
如果框460的判定为“是”,则***在框462等待另一训练实例的可用性,并且基于可用训练实例返回到框458。如果框460的判定为“是”,则***前进到框464并且结束预测模型的训练(尽管其他预测模型的训练可以继续)。经训练的预测模型可以在方法300或方法500中加以利用,并且可任选地在利用期间继续被训练。
现在转向图5,图5示出了选择性地利用经训练的预测模型来确定对象操纵参数以供机器人在操纵对象时使用的示例方法500。方法500示出了方法300的一些实现方式。为了方便起见,方法500的一些操作参考执行这些操作的***来描述。该***可以包括各种计算机***和/或机器人的各种部件,例如图1A和1B中描绘的一个或多个部件。此外,虽然以特定顺序示出了方法500的操作,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框552,***从一个或多个视觉部件接收捕获一个或多个对象的对象特征的视觉数据。在方法500的一些实现方式或迭代中,视觉部件是观察对应机器人的机器人工作空间的机器人视觉部件,并且当对象在机器人工作空间中时视觉数据捕获对象特征。在一些其它实现方式或迭代中,视觉部件在与环境的机器人工作空间不同的环境的第一区域中,并且在对象处于第一区域中时且在完成将对象传输到机器人工作空间之前视觉数据捕获对象特征。在这些实现方式中的一些中,在框572之前的一个或多个框可以在完成将对象传输到机器人工作空间之前得以完成。
在框554,***选择多个对象操纵参数中的一个或多个对象操纵参数,所述多个对象操纵参数需要被求解以用于由机器人操作对象。
在框556,***针对所选择的对象操纵参数确定用于对象操纵参数的经训练的模型是否已经如本文所述被联机。如果否,则***前进到框558,并且提示由远程客户端设备处的用户接口输入来指定对象操纵参数。例如,***可以基于框552的视觉数据来生成视觉表示,将视觉表示传送到客户端设备,并且基于框558使得在客户端设备处渲染提示,以用于经由指向视觉表示的用户接口输入来定义对象操纵参数。然后,在框570,可以将响应于框558处的提示而接收到的用户接口输入所定义的任何对象操纵参数用作所选择的对象操纵参数。
如果在框556***针对所选择的对象操纵参数确定用于对象操纵参数的经训练的模型已经被联机,则***前进到框560。
在框560处,***基于框552的视觉数据和预测模型来生成所预测的对象操纵参数和对应置信度测量。例如,***可以选择与对象操纵参数相对应的预测模型,并且使用预测模型来处理视觉数据和/或其他数据,以生成所预测的对象操纵参数和对应的置信度测量。
***随后前进到框562并且确定针对所预测的对象操纵参数的置信度测量是否满足一个或多个阈值(例如,90%或其他阈值)。如果否,则***前进到框564,并且提示确认远程客户端设备处的所预测的对象操纵参数和/或提示由远程客户端设备处的用户接口输入来指定对应对象操纵参数。例如,***可以生成包括所预测的对象操纵参数中的一个或多个的指示的视觉表示,将视觉表示传送到客户端设备,并且基于框564,使得在客户端设备处渲染提示。该提示可以请求客户端设备操作者经由用户接口输入来确认所预测的对象操纵参数,或者经由用户接口输入来定义相应的替代对象操纵参数。此外,例如,***可以附加地或替代地提示要由远程客户端设备处的用户接口输入来指定的对象操纵参数中的一个或多个,而不呈现确认所预测的对象操纵参数的选项。在一些实现方式中,如果在框562中给定所预测的对象操纵参数的置信度测量不满足阈值但满足附加较低阈值(例如,65%或其他阈值),则***可以导致对给定所预测的对象操纵参数的确认的提示。在那些实现方式中,如果给定所预测得对象操纵参数的置信度测量不满足附加下限阈值,则***可以提示定义对应的对象操纵参数,可选地不提供给定所预测的对象操纵参数的任何指示。然后,在框570,由响应于框564接收的用户接口输入定义的任何对象操纵参数可以用作所选择的对象操纵参数的全部或部分。
如果***在框562确定置信度测量满足阈值,则***前进到框566并且使用所预测的对象操纵参数而不提示确认所预测的对象操纵参数。
在框568,***然后确定是否存在需要被求解以用于通过机器人操纵对象的多个对象操纵参数。如果是,则***返回到框554,并且选择附加对象操纵参数。如果否,则***前进到框572。应注意,在方法500的其中框556或框562的判定对于框556或框562的一个以上迭代为“否”的实例中,客户端设备处的提示可以是针对所有对象操纵参数定义和/或确认的请求针对在框556或框562处作出“否”判定的对象操纵参数的单个提示。换句话说,对于N次迭代中的每一次,将不必存在N个单独的提示。相反,可以可选地存在包含N次迭代中的每一次的请求的单个提示。
在框572,***根据对象操纵参数使机器人操纵对象。对象操纵参数可以包括来自框566的一次或多次迭代和/或来自框570的一次或多次迭代的那些对象操纵参数。例如,对象操纵参数可以包括基于所预测的对象操纵参数(具有或不具有确认)的那些和/或基于用户接口输入独立于任何所预测的对象操纵参数而定义的那些。
然后,***返回到框552。注意,在各个实现方式中,方法500的多个迭代可以针对给定环境并行运行,从而使得能够在针对先前对象完成方法500之前(例如,至少在完成框572之前)生成、传送新对象的视觉表示、接收对应数据和/或确定对应对象操纵参数。
现在转向图6,图6示出了训练预测模型、验证预测模型、部署预测模型、以及可任选地进一步训练所部署的预测模型的示例方法600。为了方便起见,方法600的一些操作参考执行这些操作的***来描述。该***可以包括各种计算机***和/或机器人的各种部件,例如图1A和1B中描绘的一个或多个部件。此外,虽然以特定顺序示出了方法600的操作,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框652,***基于来自操作者引导的对象操纵尝试的数据来训练预测模型。例如,***可以基于在方法400的框452、454和456中生成的训练实例来训练预测模型。
在框654,***确定是否已经满足一个或多个条件。如果否,则***返回到框652。如果是,则***前进到框656。在框654处考虑的条件可以包括例如在框652中的训练时已经使用的训练实例的阈值数量和/或在框652处的训练的阈值持续时间。
在框656,***尝试基于将使用预测模型所生成的预测与操作者引导的地面实况进行比较来验证预测模型。例如,***可以将利用模型做出的所预测的对象操纵参数与基于用户接口输入(即,操作者引导的地面实况)定义的对应对象操纵参数进行比较。***可以基于比较来确定用于预测的误差测量。操作者引导的地面实况可以可选地基于所确定的成功测量来验证。换句话说,仅当对应的成功测量指示对应的操纵的总体成功和/或用于操纵的与所定义的对象操纵参数相对应的部分的成功时,操作者引导的地面实况才可以被认为是地面实况。
在框658,***确定验证是否成功。如果不是,则***返回到框652,并且可选地调整框654的条件(例如,以要求更大程度的训练)。在确定验证是否成功时,可以利用各种度量。例如,***可以基于框656的比较来确定成功验证是预测的至少阈值百分比小于阈值误差测量。
如果在框658的判定是验证成功,则***前进到框660。在框660,***部署预测模型以用于所生成的建议的和/或自动实施的预测。例如,预测模型可以被部署以用于方法300和/或方法500中。
在可选框662处,***还基于在部署期间对建议的操作者反馈和/或基于在部署期间基于传感器的成功测量来训练预测模型。
图7示意性地描绘了机器人725的示例架构。机器人725包括机器人控制***76 0、一个或多个操作部件740a-740n以及一个或多个传感器742a-742m。传感器742a-742m可包括例如视觉部件、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计和气压计等。虽然传感器742a-742m被描绘为与机器人725集成在一起,但这并不意味着限制。在一些实现方式中,传感器742a-742m可以例如作为独立单元位于机器人725的外部。
操作部件740a-740n可包括例如一个或多个末端执行器和/或一个或多个伺服电机或其他致动器,以实现机器人的一个或多个部件的移动。例如,机器人725可以具有多个自由度,并且每个致动器可以响应于控制命令在一个或多个自由度内控制机器人725的致动。如本文所使用的,除了可与致动器相关联并且将所接收的控制命令转换成用于驱动致动器的一个或多个信号的任何驱动器之外,术语致动器还包括建立运动的机械或电气设备(例如,电机)。因此,向致动器提供控制命令可以包括向驱动器提供控制命令,该驱动器将控制命令转换成适当的信号以驱动电气或机械设备以建立期望的运动。
机器人控制***76 0可以在诸如机器人725的CPU、GPU和/或其他控制器的一个或多个处理器中实施。在一些实现方式中,机器人725可以包括“脑盒(brain box)”,这可以包括控制***76 0的全部或方面。例如,脑盒可以向操作部件740a-740n提供数据的实时突发,其中,每个实时突发包括一组一个或多个控制命令,所述命令除其他之外,指示一个或多个操作部件740a-740n中的每一个的运动参数(如果有的话)。在一些实现方式中,机器人控制***76 0可以执行本文描述的一个或多个方法的一个或多个方面。
如本文所述,在一些实现方式中,由控制***76 0生成的控制命令的全部或方面可以基于根据本文所述的技术所生成的对象操作参数来生成。尽管图7中将控制***76 0示出为机器人725的组成部分,但是在一些实现方式中,控制***76 0的全部或方面可以在与机器人725分离但与其通信的部件中实施。例如,控制***76 0的全部或方面可以在与机器人725进行有线和/或无线通信的一个或多个计算设备(例如,计算设备810)上实施。
图8是可任选地用于执行本文描述的技术的一个或多个方面的示例计算设备810的框图。例如,在一些实现方式中,计算设备810可以用于执行模拟器120、模拟差分引擎130、真实片段***110、模拟训练数据***140和/或训练引擎145。计算设备810通常包括至少一个处理器814,其经由总线子***812与多个***设备通信。这些***设备可以包括:存储子***824,包括例如存储器子***825和文件存储子***826;用户接口输出设备820;用户接口输入设备822;和网络接口子***816。输入和输出设备允许用户与计算设备810交互。网络接口子***816提供到外部网络的接口并且耦合到其他计算设备中的对应的接口设备。
用户接口输入设备822可以包括键盘;诸如鼠标、跟踪球、触摸板或图形输入板的指示设备;扫描仪;结合到显示器中的触摸屏;诸如语音识别***的音频输入设备;麦克风和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入计算设备810或通信网络上的所有可能类型的设备和方式。
用户接口输出设备820可以包括显示子***、打印机、传真机或诸如音频输出设备的非可视显示器。显示子***可包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于生成可见图像的一些其他机构。显示子***还可以例如通过音频输出设备提供非可视显示。通常,术语“输出设备”的使用旨在包括将信息从计算设备810输出到用户或另一机器或计算设备的所有可能类型的设备以及方式。
存储子***824存储编程和数据构造,其提供本文描述的一些或所有模块的功能。例如,存储子***824可以包括执行本文所述的一个或多个方法的所选方面的逻辑。
这些软件模块通常由处理器814单独或与其他处理器组合执行。存储子***824中使用的存储器825可以包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830和其中存储固定指令的只读存储器(ROM)832。文件存储子***826可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实现某些实现方式的功能的模块可以由文件存储子***826存储在存储子***824中,或者存储在处理器814可访问的其他机器中。
总线子***812提供用于使计算设备810的各种部件和子***按预期彼此通信的机制。虽然总线子***812被示意性地示为单条总线,但是总线子***的替代实现方式可以使用多条总线。
计算设备810可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理***或计算设备。由于计算机和网络的不断变化的性质,图8中描绘的计算设备810的描述仅旨在作为用于说明一些实现方式的目的的特定示例。计算设备810的许多其他配置可能具有比图8中描绘的计算设备更多或更少的部件。
在一些实现方式中,提供一种方法,包括从环境的第一区域中的一个或多个视觉部件接收在第一时间捕获所述第一区域的特征的视觉数据。所捕获的特征包括在所述第一时间位于所述第一区域中的对象的对象特征。所述方法还包括:在完成将所述对象从所述第一区域传输到所述环境的未被所述视觉数据捕获的不同机器人工作空间之前,经由一个或多个网络向远程客户端设备传送基于所述视觉数据生成的视觉表示;以及经由所述一个或多个网络从所述远程客户端设备接收基于一个或多个用户接口输入生成的数据。所述视觉表示包括基于所述对象特征生成的对象表示。所述用户接口输入在所述远程客户端设备处并且在所述远程客户端设备处被渲染时指向所述视觉表示。所述方法还包括基于所述数据来确定用于由在所述机器人工作空间中操作的机器人操纵所述对象的一个或多个对象操纵参数。所述方法还包括响应于检测到所述对象在所述机器人工作空间内根据所述一个或多个对象操纵参数使所述机器人操纵所述对象。在将所述对象从所述第一区域传输到所述机器人工作空间之后并且在所述第一时间之后的第二时间,所述对象在所述机器人工作空间内。
本文所公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,确定所述一个或多个对象操纵参数也在完成将所述对象从所述第一区域传输到所述机器人工作空间之前。
在一些实现方式中,所述一个或多个对象操纵参数包括用于抓取所述对象的抓取姿势。在那些实现方式中,在所述传输之后响应于检测到所述对象在所述机器人工作空间内根据所述一个或多个对象操纵参数使所述机器人操纵所述对象包括使所述机器人的末端执行器遍历到所述抓取姿势,并且在遍历到所述抓取姿势之后尝试对所述对象的抓取。
在一些实现方式中,所述数据定义相对于第一参考坐标系的一个或多个姿势和/或一个或多个点。在那些实现方式中的一些中,生成所述一个或多个对象操纵参数包括将所述一个或多个姿势和/或所述一个或多个点变换到与所述参考坐标系不同的机器人坐标系;以及在生成所述对象操纵参数时使用经变换的姿势和/或点。
在一些实现方式中,所述方法还包括:在使所述机器人操纵所述对象之后,基于来自一个或多个附加传感器的附加传感器数据来确定所述操纵的成功测量;基于所述成功测量满足阈值来生成肯定训练实例;以及基于所述肯定训练实例来训练机器学习模型。在那些实现方式中的一些版本中,所述一个或多个附加传感器包括:机器人视觉部件、所述机器人的扭矩传感器和所述环境中的重量传感器。在那些实现方式中的一些附加或替换版本中,生成所述肯定训练实例包括:基于所述视觉数据或基于来自所述机器人的一个或多个机器人视觉部件的机器人视觉数据来生成所述肯定训练实例的训练实例输入;和/或基于所述对象操纵参数来生成所述肯定训练实例的训练实例输出。在那些附加或替换版本中的一些中,所述方法还包括:在基于所述肯定训练实例来训练所述机器学习模型之后,使用所述机器学习模型来处理捕获附加对象的附加视觉数据;基于所述处理来生成用于所述附加对象的一个或多个所预测的对象操纵参数;以及根据所述一个或多个所预测的对象操纵参数使所述机器人操纵所述附加对象。附加地,所述方法还可以可选地包括:向所述远程客户端设备或附加远程客户端设备传送所预测的对象操纵参数的视觉指示;从所述远程客户端设备或所述附加远程客户端设备接收响应于所预测的对象操纵参数的视觉指示的呈现肯定性的用户接口输入被接收的指示。根据所述一个或多个所预测的对象操纵参数使所述机器人操纵所述附加对象可以响应于接收到肯定性的用户接口输入被接收的指示。可选地,所述方法还包括基于所述处理来生成用于所述一个或多个所预测的对象操纵参数的置信度测量。传送所预测的对象操纵参数的视觉指示可以响应于所述置信度测量未能满足阈值置信度测量。附加地或者可替换地,所述方法还可以可选地包括:在基于所述肯定训练实例来训练所述机器学习模型之后,使用所述机器学习模型来处理捕获附加对象的附加视觉数据;基于所述处理来生成用于所述附加对象的一个或多个所预测的对象操纵参数;向所述远程客户端设备或附加远程客户端设备传送所预测的对象操纵参数的视觉指示;从所述远程客户端设备或所述附加远程客户端设备接收经由响应于所预测的对象操纵参数的视觉指示的呈现而接收的用户接口输入来定义的替代对象操纵参数的指示;以及响应于接收到所述替代对象操纵参数,根据所述一个或多个替代对象操纵参数使所述机器人操纵所述附加对象。所述方法还可以可选地包括使用具有基于所述替代对象操纵参数的经标记的输出的训练实例来进一步训练所述机器学习模型。
在一些实现方式中,所述方法还包括:在所述机器人操纵所述对象之前,从所述第一区域中的一个或多个视觉部件接收在第三时间捕获所述第一区域的特征的视觉数据,所述第三时间在所述第一时间之后但在所述第二时间之前,其中所述视觉数据包括在所述第三时间位于所述第一区域中的新对象的新对象特征;向所述远程客户端设备传送基于所述新视觉数据生成的新视觉表示,所述新视觉表示包括基于所述新对象特征生成的新对象表示;从所述远程客户端设备接收在所述远程客户端设备处基于一个或多个新用户接口输入生成的新数据,所述一个或多个新用户接口输入在所述远程客户端设备处被渲染时指向所述新视觉表示;以及基于所述数据来确定用于由在所述机器人工作空间中操作的机器人操纵所述新对象的一个或多个新对象操纵参数。在那些实现方式中的一些中,所述方法还包括:在所述机器人操纵所述对象之后,响应于所述机器人经由所述一个或多个机器人视觉部件检测到所述新对象在所述机器人工作空间内,根据所述一个或多个新对象操纵参数,使所述机器人操纵所述新对象。在传输所述新对象之后并且在所述第二时间之后的第四时间,所述新对象在所述机器人工作空间内。
在一些实现方式中,将所述对象从所述第一区域传输到所述机器人工作空间是经由一个或多个输送机。
在一些实现方式中,所述方法还包括针对多个远程客户端设备中的每一个,访问对应的队列数据,所述对应的队列数据定义未完成的机器人操纵助理请求的数量和/或持续时间。在那些实现方式中的一些中,所述方法还包括从所述多个远程客户端设备中基于用于远程客户端设备的对应的查询数据来选择该远程客户端设备。将所述视觉表示传送到所述远程客户端设备可以响应于选择所述远程客户端设备。
在一些实现方式中,所述对象表示是所述对象的渲染,其中,所述渲染基于所述对象特征来生成并且省略所述对象的在所述视觉数据中可见的一个或多个特征。
在一些实现方式中,由所述机器人基于来自所述机器人的一个或多个机器人视觉部件的机器人视觉数据来检测所述对象在所述机器人工作空间中。
在一些实现方式中,提供一种方法,包括从环境中的一个或多个视觉部件接收捕获所述环境的特征的视觉数据,所述环境的特征包括位于所述环境中的对象的对象特征。所述方法还包括基于使用机器学习模型处理所述视觉数据来生成:用于所述对象的所预测的对象操纵参数,以及用于所预测的对象操纵参数的置信度测量。所述方法还包括确定用于所预测的对象操纵参数的置信度测量是否满足阈值置信度测量。所述方法还包括:响应于确定所述置信度测量未能满足所述阈值置信度测量,经由一个或多个网络向远程客户端设备传送:(1)基于所述对象特征生成的对象的对象表示和(2)所预测的对象操纵参数的视觉指示;以及经由所述一个或多个网络从所述远程客户端设备接收基于一个或多个用户接口输入生成的数据。所述用户接口输入在所述远程客户端设备处并且响应于在所述远程客户端设备处渲染所述对象表示和所述视觉指示。所述方法还包括基于所述数据来确定利用所述对象操纵参数或替代对象操纵参数。所述方法还包括根据所确定的对象操纵参数或所述替代对象操纵参数使机器人操纵所述对象。所述方法还包括:响应于确定所述置信度测量满足所述阈值置信度测量,根据所述对象操纵参数使所述机器人操纵所述对象,而在根据所述对象操纵参数来操纵所述对象之前不将所述视觉指示传送到任何远程客户端设备以用于确认。
本文所公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,所述视觉部件在所述环境的第一区域中,并且确定用于所预测的对象操纵参数的置信度测量是否满足所述阈值置信度测量在将所述对象传输到所述机器人的不同机器人工作空间之前发生。

Claims (21)

1.一种方法,包括:
从环境的第一区域中的一个或多个视觉部件接收在第一时间捕获所述第一区域的特征的视觉数据,所述第一区域的特征包括在所述第一时间位于所述第一区域中的对象的对象特征;
在完成将所述对象从所述第一区域传输到所述环境的未被所述视觉数据捕获的不同机器人工作空间之前:
经由一个或多个网络向远程客户端设备传送基于所述视觉数据生成的视觉表示,所述视觉表示包括基于所述对象特征生成的对象表示,以及
经由所述一个或多个网络从所述远程客户端设备接收基于在所述远程客户端设备处的一个或多个用户接口输入生成的数据,所述一个或多个用户接口输入在所述视觉表示被渲染在所述远程客户端设备处时指向所述视觉表示;
基于所述数据确定用于由在所述机器人工作空间中操作的机器人操纵所述对象的一个或多个对象操纵参数;以及
响应于检测到所述对象在所述机器人工作空间内根据所述一个或多个对象操纵参数使所述机器人操纵所述对象,其中,在将所述对象从所述第一区域传输到所述机器人工作空间之后并且在所述第一时间之后的第二时间,所述对象在所述机器人工作空间内。
2.根据权利要求1所述的方法,其中,确定所述一个或多个对象操纵参数也在完成将所述对象从所述第一区域传输到所述机器人工作空间之前。
3.根据权利要求1或权利要求2所述的方法,其中所述一个或多个对象操纵参数包括用于抓取所述对象的抓取姿势,并且其中在所述传输之后响应于检测到所述对象在所述机器人工作空间内根据所述一个或多个对象操纵参数使所述机器人操纵所述对象包括:
使所述机器人的末端执行器遍历到所述抓取姿势,并且在遍历到所述抓取姿势之后尝试对所述对象的抓取。
4.根据前述权利要求中的任一项所述的方法,其中,所述数据定义相对于第一参考坐标系的一个或多个姿势和/或一个或多个点,并且其中,生成所述一个或多个对象操纵参数包括:
将所述一个或多个姿势和/或所述一个或多个点变换到与所述参考坐标系不同的机器人坐标系;以及
在生成所述对象操纵参数时使用经变换的姿势和/或点。
5.根据前述权利要求中的任一项所述的方法,还包括:
在使所述机器人操纵所述对象之后:
基于来自一个或多个附加传感器的附加传感器数据来确定所述操纵的成功测量;
基于所述成功测量满足阈值来生成肯定训练实例;以及
基于所述肯定训练实例来训练机器学习模型。
6.根据权利要求5所述的方法,其中,所述一个或多个附加传感器包括以下中的一个或多个:机器人视觉部件、所述机器人的扭矩传感器和所述环境中的重量传感器。
7.根据权利要求5或权利要求6所述的方法,其中,生成所述肯定训练实例包括基于所述视觉数据或基于来自所述机器人的一个或多个机器人视觉部件的机器人视觉数据来生成所述肯定训练实例的训练实例输入。
8.根据权利要求7所述的方法,其中,生成所述肯定训练实例包括基于所述对象操纵参数来生成所述肯定训练实例的训练实例输出。
9.根据权利要求8所述的方法,还包括:
在基于所述肯定训练实例来训练所述机器学习模型之后,还包括:
使用所述机器学习模型来处理捕获附加对象的附加视觉数据;
基于所述处理来生成用于所述附加对象的一个或多个所预测的对象操纵参数;以及
根据所述一个或多个所预测的对象操纵参数使所述机器人操纵所述附加对象。
10.根据权利要求9所述的方法,还包括:
向所述远程客户端设备或附加远程客户端设备传送所预测的对象操纵参数的视觉指示;
从所述远程客户端设备或所述附加远程客户端设备接收响应于所预测的对象操纵参数的所述视觉指示的呈现而接收肯定性的用户接口输入的指示;
其中,根据所述一个或多个所预测的对象操纵参数使所述机器人操纵所述附加对象是响应于接收到肯定性的用户接口输入被接收的指示。
11.根据权利要求10所述的方法,还包括:
基于所述处理来生成用于所述一个或多个所预测的对象操纵参数的置信度测量;
其中,传送所预测的对象操纵参数的所述视觉指示是响应于所述置信度测量未能满足阈值置信度测量。
12.根据权利要求8所述的方法,还包括:
在基于所述肯定训练实例来训练所述机器学习模型之后,还包括:
使用所述机器学习模型来处理捕获附加对象的附加视觉数据;
基于所述处理来生成用于所述附加对象的一个或多个所预测的对象操纵参数;
向所述远程客户端设备或附加远程客户端设备传送所预测的对象操纵参数的视觉指示;
从所述远程客户端设备或所述附加远程客户端设备接收经由响应于所预测的对象操纵参数的视觉指示的呈现而接收的用户接口输入来定义的替代对象操纵参数的指示;以及
响应于接收到所述替代对象操纵参数,根据所述一个或多个替代对象操纵参数使所述机器人操纵所述附加对象。
13.根据权利要求12所述的方法,还包括:
使用具有基于所述替代对象操纵参数的经标记的输出的训练实例来进一步训练所述机器学习模型。
14.根据权利要求1所述的方法,还包括在所述机器人操纵所述对象之前:
从所述第一区域中的所述一个或多个视觉部件接收在第三时间捕获所述第一区域的特征的视觉数据,所述第三时间在所述第一时间之后但在所述第二时间之前,其中所述视觉数据包括在所述第三时间位于所述第一区域中的新对象的新对象特征;
向所述远程客户端设备传送基于所述新视觉数据生成的新视觉表示,所述新视觉表示包括基于所述新对象特征生成的新对象表示;
从所述远程客户端设备接收在所述远程客户端设备处基于一个或多个新用户接口输入生成的新数据,所述一个或多个新用户接口输入在所述新视觉表示被渲染在所述远程客户端设备处时指向所述新视觉表示;以及
基于所述数据确定用于由在所述机器人工作空间中操作的机器人操纵所述新对象的一个或多个新对象操纵参数。
15.根据权利要求14所述的方法,还包括在所述机器人操纵所述对象之后:
响应于所述机器人经由所述一个或多个机器人视觉部件检测到所述新对象在所述机器人工作空间内,根据所述一个或多个新对象操纵参数,使所述机器人操纵所述新对象,其中,在传输所述新对象之后并且在所述第二时间之后的第四时间,所述新对象在所述机器人工作空间内。
16.根据前述权利要求中的任一项所述的方法,其中,将所述对象从所述第一区域传输到所述机器人工作空间是经由一个或多个输送机。
17.根据前述权利要求中的任一项所述的方法,还包括:
针对多个远程客户端设备中的每一个,访问对应的队列数据,所述对应的队列数据定义未完成的机器人操纵助理请求的数量和/或持续时间;以及
基于用于远程客户端设备的对应的查询数据从所述多个远程客户端设备中选择远程客户端设备;
其中,将所述视觉表示传送到所述远程客户端设备是响应于选择所述远程客户端设备。
18.根据前述权利要求中的任一项所述的方法,其中,所述对象表示是所述对象的渲染,其中,所述渲染基于所述对象特征来生成并且省略所述对象的在所述视觉数据中可见的一个或多个特征。
19.根据前述权利要求中的任一项所述的方法,其中,由所述机器人基于来自所述机器人的一个或多个机器人视觉部件的机器人视觉数据来检测所述对象在所述机器人工作空间中。
20.一种方法,包括:
从环境中的一个或多个视觉部件接收捕获所述环境的特征的视觉数据,所述环境的特征包括位于所述环境中的对象的对象特征;
基于使用机器学习模型处理所述视觉数据来生成:
用于所述对象的所预测的对象操纵参数,以及
用于所预测的对象操纵参数的置信度测量;
确定用于所预测的对象操纵参数的所述置信度测量是否满足阈值置信度测量;
响应于确定所述置信度测量未能满足所述阈值置信度测量:
经由一个或多个网络向远程客户端设备传送基于所述对象特征生成的对象的对象表示和所预测的对象操纵参数的视觉指示,
经由所述一个或多个网络从所述远程客户端设备接收响应于在所述远程客户端设备处渲染所述对象表示和所述视觉指示而基于在所述远程客户端设备处的一个或多个用户接口输入生成的数据,
基于所述数据确定利用所述对象操纵参数或替代对象操纵参数,以及
根据所确定的对象操纵参数或所述替代对象操纵参数使机器人操纵所述对象;以及
响应于确定所述置信度测量满足所述阈值置信度测量:
根据所述对象操纵参数使所述机器人操纵所述对象,而在根据所述对象操纵参数来操纵所述对象之前不将所述视觉指示传送到任何远程客户端设备以用于确认。
21.根据权利要求20所述的方法,其中,所述视觉部件在所述环境的第一区域中,并且其中,确定用于所预测的对象操纵参数的所述置信度测量是否满足所述阈值置信度测量在将所述对象传输到所述机器人的不同机器人工作空间之前发生。
CN202080053232.7A 2019-07-26 2020-07-24 基于来自远程客户端设备的输入的高效机器人控制 Pending CN114206558A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/523,655 2019-07-26
US16/523,655 US11213953B2 (en) 2019-07-26 2019-07-26 Efficient robot control based on inputs from remote client devices
PCT/US2020/043502 WO2021021630A1 (en) 2019-07-26 2020-07-24 Efficient robot control based on inputs from remote client devices

Publications (1)

Publication Number Publication Date
CN114206558A true CN114206558A (zh) 2022-03-18

Family

ID=72047116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080053232.7A Pending CN114206558A (zh) 2019-07-26 2020-07-24 基于来自远程客户端设备的输入的高效机器人控制

Country Status (5)

Country Link
US (3) US11213953B2 (zh)
EP (1) EP3983857A1 (zh)
JP (2) JP7338034B2 (zh)
CN (1) CN114206558A (zh)
WO (1) WO2021021630A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544594B2 (en) * 2019-04-11 2023-01-03 Sunghee Woo Electronic device comprising user interface for providing user-participating-type AI training service, and server and method for providing user-participating-type AI training service using the electronic device
US11213953B2 (en) 2019-07-26 2022-01-04 Google Llc Efficient robot control based on inputs from remote client devices
US11203116B2 (en) * 2019-08-02 2021-12-21 Teradyne, Inc. System and method for predicting robotic tasks with deep learning
KR20190098936A (ko) * 2019-08-05 2019-08-23 엘지전자 주식회사 쿠킹 로봇 시스템 및 그 제어 방법
JP7339806B2 (ja) * 2019-08-05 2023-09-06 川崎重工業株式会社 制御システム、ロボットシステム及び制御方法
JP2021091055A (ja) * 2019-12-12 2021-06-17 株式会社キーエンス 測定装置
US11587302B2 (en) * 2019-12-17 2023-02-21 X Development Llc Shared dense network with robot task-specific heads
US11530052B1 (en) 2020-02-17 2022-12-20 Amazon Technologies, Inc. Systems and methods for automated ground handling of aerial vehicles
US11597092B1 (en) * 2020-03-26 2023-03-07 Amazon Technologies, Ine. End-of-arm tool with a load cell
US11826908B2 (en) * 2020-04-27 2023-11-28 Scalable Robotics Inc. Process agnostic robot teaching using 3D scans
US11534924B1 (en) 2020-07-21 2022-12-27 Amazon Technologies, Inc. Systems and methods for generating models for automated handling of vehicles
US11534915B1 (en) 2020-08-05 2022-12-27 Amazon Technologies, Inc. Determining vehicle integrity based on observed behavior during predetermined manipulations
MX2023010348A (es) * 2021-03-04 2023-11-17 Tutor Intelligence Inc Sistema robotico.
US11772272B2 (en) * 2021-03-16 2023-10-03 Google Llc System(s) and method(s) of using imitation learning in training and refining robotic control policies
US11478927B1 (en) * 2021-04-01 2022-10-25 Giant.Ai, Inc. Hybrid computing architectures with specialized processors to encode/decode latent representations for controlling dynamic mechanical systems
WO2022221318A1 (en) * 2021-04-12 2022-10-20 Plus One Robotics, Inc. Dynamic machine learning systems and methods for identifying pick objects based on incomplete data sets
US11822710B2 (en) 2021-09-08 2023-11-21 Acumino Wearable robot data collection system with human-machine operation interface
CN113927596B (zh) * 2021-10-07 2023-08-01 西北工业大学 一种基于宽度神经学习的时变输出约束机器人遥操作有限时间控制方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090306825A1 (en) * 2008-04-21 2009-12-10 Ying Li Manipulation system and method
US20130346348A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
CN105563484A (zh) * 2015-12-08 2016-05-11 深圳前海达闼云端智能科技有限公司 一种云机器人***、机器人和机器人云平台
US9802317B1 (en) * 2015-04-24 2017-10-31 X Development Llc Methods and systems for remote perception assistance to facilitate robotic object manipulation
CN107891425A (zh) * 2017-11-21 2018-04-10 北方民族大学 智能双臂安全协作人机共融型机器人***的控制方法
CN108885715A (zh) * 2016-03-03 2018-11-23 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
US20190130560A1 (en) * 2017-11-02 2019-05-02 AMP Robotics Corporation Systems and methods for optical material characterization of waste materials using machine learning

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7251591A (en) 1990-01-29 1991-08-21 Technistar Corporation Automated assembly and packaging system
JP3187999B2 (ja) * 1992-12-22 2001-07-16 三洋電機株式会社 産業用ロボット
JP2005111607A (ja) 2003-10-07 2005-04-28 Fanuc Ltd ロボット物流トラッキング装置
JP5479312B2 (ja) 2010-12-07 2014-04-23 本田技研工業株式会社 ワークの特定部位認識方法及びその装置
JP5316563B2 (ja) * 2011-02-15 2013-10-16 オムロン株式会社 画像処理装置および画像処理システム
JP5810562B2 (ja) 2011-03-15 2015-11-11 オムロン株式会社 画像処理システムに向けられたユーザ支援装置、そのプログラムおよび画像処理装置
JP2012230041A (ja) 2011-04-27 2012-11-22 Seiko Epson Corp 位置検出方法、位置検出装置、ロボットシステム
JP5824173B1 (ja) 2014-02-28 2015-11-25 ファナック株式会社 ロボットを用いて物品を整列させる物品整列装置及び物品整列方法、並びに物品整列装置を備えた物品移送システム
US9486921B1 (en) * 2015-03-26 2016-11-08 Google Inc. Methods and systems for distributing remote assistance to facilitate robotic object manipulation
JP6724499B2 (ja) 2016-04-05 2020-07-15 株式会社リコー 物体把持装置及び把持制御プログラム
JP6834232B2 (ja) 2016-08-09 2021-02-24 オムロン株式会社 情報処理システム、情報処理装置、ワークの位置特定方法、およびワークの位置特定プログラム
US10131051B1 (en) * 2016-08-12 2018-11-20 Amazon Technologies, Inc. Anticipation-based robotic object grasping
US11833684B2 (en) * 2017-02-25 2023-12-05 Diligent Robotics, Inc. Systems, apparatus, and methods for robotic learning and execution of skills
CA2977077C (en) * 2017-06-16 2019-10-15 Robotiq Inc. Robotic arm camera system and method
JP2019016294A (ja) 2017-07-10 2019-01-31 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及びシステム
US12005566B2 (en) * 2017-10-18 2024-06-11 Congruens Group, Llc On-demand robotic food assembly equipment, and related systems and methods
US10766137B1 (en) * 2017-11-03 2020-09-08 Amazon Technologies, Inc. Artificial intelligence system for modeling and evaluating robotic success at task performance
US10843333B2 (en) * 2018-03-05 2020-11-24 Berkshire Grey, Inc. Systems and methods for processing objects, including automated re-circulating processing stations
US11584016B2 (en) * 2018-04-24 2023-02-21 Fanuc Corporation Robot controller and system
US10824142B2 (en) * 2018-05-01 2020-11-03 Dexterity, Inc. Autonomous robot with on demand teleoperation
US11213953B2 (en) 2019-07-26 2022-01-04 Google Llc Efficient robot control based on inputs from remote client devices
US11318499B2 (en) * 2019-12-19 2022-05-03 Nimble Robotics, Inc. Robotic system having shuttle

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090306825A1 (en) * 2008-04-21 2009-12-10 Ying Li Manipulation system and method
US20130346348A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9802317B1 (en) * 2015-04-24 2017-10-31 X Development Llc Methods and systems for remote perception assistance to facilitate robotic object manipulation
CN105563484A (zh) * 2015-12-08 2016-05-11 深圳前海达闼云端智能科技有限公司 一种云机器人***、机器人和机器人云平台
CN108885715A (zh) * 2016-03-03 2018-11-23 谷歌有限责任公司 用于机器人抓取的深度机器学习方法和装置
US20190130560A1 (en) * 2017-11-02 2019-05-02 AMP Robotics Corporation Systems and methods for optical material characterization of waste materials using machine learning
CN107891425A (zh) * 2017-11-21 2018-04-10 北方民族大学 智能双臂安全协作人机共融型机器人***的控制方法

Also Published As

Publication number Publication date
US20220152833A1 (en) 2022-05-19
EP3983857A1 (en) 2022-04-20
US20210023711A1 (en) 2021-01-28
US11724398B2 (en) 2023-08-15
US11213953B2 (en) 2022-01-04
JP7338034B2 (ja) 2023-09-04
US20230398690A1 (en) 2023-12-14
WO2021021630A1 (en) 2021-02-04
JP7512491B2 (ja) 2024-07-08
JP2023164459A (ja) 2023-11-10
JP2022544005A (ja) 2022-10-17

Similar Documents

Publication Publication Date Title
JP7512491B2 (ja) リモートクライアントデバイスからの入力に基づく効率的なロボットの制御
EP3621773B1 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US11780083B2 (en) Determining and utilizing corrections to robot actions
JP6921151B2 (ja) ロボットの把持のための深層機械学習方法および装置
US20210390371A1 (en) Update of local features model based on correction to robot action
CN114728412B (zh) 使用视觉数据的机器人的运动路径的优化
US11823048B1 (en) Generating simulated training examples for training of machine learning model used for robot control
US20240033907A1 (en) Pixelwise predictions for grasp generation
CN114516060A (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