CN117295589A - 在训练和细化机器人控制策略中使用模仿学习的系统和方法 - Google Patents
在训练和细化机器人控制策略中使用模仿学习的系统和方法 Download PDFInfo
- Publication number
- CN117295589A CN117295589A CN202280033988.4A CN202280033988A CN117295589A CN 117295589 A CN117295589 A CN 117295589A CN 202280033988 A CN202280033988 A CN 202280033988A CN 117295589 A CN117295589 A CN 117295589A
- Authority
- CN
- China
- Prior art keywords
- robot
- task
- control strategy
- actions
- robotic
- 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
Links
- 238000011217 control strategy Methods 0.000 title claims abstract description 233
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000012549 training Methods 0.000 title abstract description 126
- 238000007670 refining Methods 0.000 title abstract description 14
- 230000009471 action Effects 0.000 claims abstract description 241
- 230000000007 visual effect Effects 0.000 claims description 176
- 238000012545 processing Methods 0.000 claims description 52
- 239000012636 effector Substances 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 31
- 230000000977 initiatory effect Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 23
- 238000004088 simulation Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 4
- 238000010801 machine learning Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/06—Control stands, e.g. consoles, switchboards
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33002—Artificial intelligence AI, expert, knowledge, rule based system KBS
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39244—Generic motion control operations, primitive skills each for special task
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39376—Hierarchical, learning, recognition and skill level and adaptation servo level
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39438—Direct programming at the console
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39451—Augmented reality for robot programming
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40102—Tasks are classified in types of unit motions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40153—Teleassistance, operator assists, controls autonomous robot
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40391—Human to robot skill transfer
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
本文描述的实现方式涉及使用模仿学习技术来训练和细化机器人控制策略。机器人控制策略可以基于各种机器人任务的人演示来初始训练。此外,机器人控制策略可以基于在机器人执行机器人任务时的人为干预来细化。在一些实现方式中,机器人控制策略可以确定机器人是否将在机器人任务的执行中故障,并且提示人为干预机器人任务的执行。在附加的或替代的实现方式中,动作序列的表示可以在视觉上显现以呈现给人,并且人可以主动干预机器人任务的执行。
Description
背景技术
已经提出了各种技术来使机器人能够执行各种真实世界任务。例如,一些技术采用模仿学习(imitation learning)来训练用于控制机器人执行这些任务的机器人控制策略。在模仿学习中,这些机器人控制策略最初可以基于来自这些任务的多个人演示的数据来训练。例如,人可以物理上操纵给定的机器人或其末端执行器(end effector),以使给定的机器人或末端执行器的参考点穿越特定轨迹,并且该特定的穿越的轨迹此后可通过使用基于人的物理操纵训练的机器人控制策略来重复。此外,例如,人可以使用一种或多种遥操作技术来控制给定的机器人或其末端执行器执行给定的任务,并且给定的任务此后可通过使用基于一种或多种遥操作技术训练的机器人控制策略来重复。
尽管给定的机器人利用基于这些任务的多个人演示训练的机器人控制策略,但是给定的机器人仍然可能无法执行这些任务。例如,机器人控制策略可能不够鲁棒以在各种情况下实现机器人任务的无故障执行。因此,可能需要基于人反馈来细化经训练的机器人控制策略。一种用于细化经训练的机器人控制策略的技术是数据集聚合(datasetaggregation,DAgger)。在DAgger中,给定的机器人可以使用给定的机器人控制策略来执行给定的任务,并且人可以被随机提示进行干预以评估任务的执行。这允许人提供关于给定的机器人对给定任务的执行的反馈。然而,这可能导致人在给定的机器人正确地执行任务时被提示进行干预,且人在给定的机器人未正确地执行任务(即,故障)时未被提示进行干预。此外,DAgger中的人反馈通常被联合到所定义的用于细化给定的机器人控制策略的奖励函数中,防止非专家人能够细化给定的机器人控制策略。
发明内容
本文描述的实现方式涉及使用模仿学习技术训练机器人控制策略。如本文所使用的,机器人控制策略是指(一个或多个)机器学习(ML)模型和在控制机器人时利用使用ML模型生成的输出的系统。给定的机器人控制策略可以被训练为在每次迭代时,基于处理在机器人任务的执行期间捕获给定的机器人的环境的视觉数据实例(instance of visiondata)来生成动作序列。在一些实现方式中,给定的机器人控制策略可以附加地或替代地在生成动作序列时处理状态数据(例如,环境状态数据和/或机器人状态数据)、力值和/或其他传感器数据。动作序列可以包括要由给定的机器人执行以推进机器人任务的下一个动作和被预测为跟随该下一个动作的预测动作序列。因此,在每次迭代时,可以生成下一个动作,并且下一个动作可以由给定的机器人实现。此外,在每次迭代时,还可以生成被预测为跟随该下一个动作的预测动作序列。注意,预测动作序列中包括的预测动作中的一个或多个实际上仅在它们是对应的后续迭代中预测的下一个动作的情况下才被执行。然而,如本文所述,预测被预测为跟随下一个动作的预测动作序列可以实现各种益处。这样的益处包括例如更高效地训练给定的机器人控制策略,给定的机器人控制策略更准确和/或鲁棒,和/或在视觉上显现(render)对应的表示时利用动作序列中包括的预测动作,以在细化给定的机器人控制策略时呈现给用户(例如,以使用户能够确定是否进行干预)。
在一些实现方式中,给定的机器人控制策略可以被进一步训练为确定给定的机器人是否将在机器人任务的执行中故障,并且可以响应于确定给定的机器人将在机器人任务的执行中故障,使得请求人(或用户)干预机器人任务的执行的提示被呈现给用户。如本文所述,在那些实现方式中的一些实现方式中,机器人控制策略可以具有多个不同的控制头部(control head)。控制头部中的一些用于基于使用机器人控制策略处理视觉数据实例来生成用于控制机器人(或其部分)的相应组件的对应值集。控制头部之一(也被称为故障头部(failure head))可以处理相同的视觉数据实例,以预测机器人是否已经或将在机器人任务的执行中故障,并且提示可以基于使用该故障头部生成的输出来生成并被呈现给用户。在附加的或替代的实现方式中,用户可以基于经视觉上显现而被呈现给用户的下一个动作和预测动作序列的表示来主动干预机器人任务的执行。因此,以这些和其他方式训练和细化给定的机器人控制策略可以实现各种益处。这样的益处包括,例如,当不需要人为干预来校正各种机器人任务的执行时,减少请求人为干预的发生,并且还当需要人为干预来校正各种机器人任务的执行时,减少不请求人为干预的发生。
本文描述的实现方式附加地或替代地涉及利用机器人控制策略的ML模型的一个或多个架构。例如,ML模型架构可以包括一个或多个输入层、多个中间层和多个不同的控制头部。在机器人任务的执行期间捕获给定的机器人的环境的视觉数据实例可以作为输入被提供给一个或多个输入层,并且视觉数据实例的中间表示(例如,编码、嵌入等)可以跨多个中间层生成。视觉数据实例的中间表示可以作为输入被提供给多个不同的控制头部中的每一个,以针对动作序列中包括的每个动作生成用于控制机器人的相应组件的对应值集。用于控制机器人的相应组件的对应值集可以是例如描述相应组件的平移位移(例如,对围绕相应组件的轴线的取向上改变的正弦-余弦编码)的向量、较低级控制命令(例如,控制机器人的对应致动器、机器人的组件的单独关节角度等的单独扭矩命令)、用于机器人的组件的二进制值(例如,指示机器人夹持器是应该打开还是关闭)、用于机器人的组件的其他值(例如,指示机器人夹持器应该打开或关闭的程度)、机器人的组件的速度和/或加速度(例如,机器人臂移动、机器人基座移动等)和/或可以用于控制机器人的其他值。
例如,第一控制头部可以用于生成反映机器人末端执行器的平移位移(例如,二维或三维)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第二控制头部可以用于生成反映机器人末端执行器的取向的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第三控制头部可以用于生成反映机器人末端执行器的致动状态(或机器人末端执行器的致动状态的程度)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第四控制头部可以用于生成反映机器人基座速度的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人基座相关联;第五控制头部可以用于生成反映机器人头部的取向(例如,平移和/或倾斜)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人头部的取向相关联;和/或其他控制头部用于控制机器人的其他组件。尽管上面描述了与机器人的特定组件相关联的特定控制头部,但是应当理解,这是为了示例的目的,并不意味着限制,并且机器人控制策略利用的控制头部可以是执行机器人任务的机器人组件的函数。例如,如果机器人不包括机器人基座(例如,固定的机器人臂),则可以不利用与机器人基座相关联的控制头部。此外,例如,如果机器人包括机器人腿而不是机器人基座,则可以利用与一个或多个机器人腿相关联的控制头部来代替用于机器人基座的控制头部。此外,尽管上面针对控制机器人的不同组件描述了特定的控制头部,但是应当理解,这是为了示例的目的,并不意味着限制。例如,第一控制头部可以与控制机器人的第一组件的第一部分(例如,机器人末端执行器的取向)相关联,并且不同的第二控制头部可以与控制机器人的第一组件的第二部分(例如,机器人末端执行器的致动状态)相关联。此外,尽管上面针对控制机器人的不同组件描述了特定的控制头部,但是应当理解,这是为了示例的目的,并不意味着限制。例如,第一控制头部可以与控制机器人的第一组件的第一部分(例如,机器人末端执行器的取向)相关联,并且不同的第二控制头部可以与控制机器人的第一组件的第二部分(例如,机器人末端执行器的致动状态)相关联。
在各种实现方式中,视觉数据实例的中间表示可以作为输入被提供给附加控制头部(也被称为故障头部),以生成与机器人任务本身的执行相关联的对应值集,而不是如上所述地在控制机器人的相应组件时利用对应值集。与机器人任务的执行相关联的对应值集可以指示例如机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的执行。换句话说,机器人控制策略可以利用该对应值集来确定是否提示用户干预机器人任务的执行。与机器人任务的执行相关联的对应值集可以是例如值的向量,其可以是指示机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的互斥二进制值;与机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的执行相关联的概率和/或与机器人任务的执行相对应的其他值。附加地或替代地,使用与控制机器人的相应组件相关联的上述控制头部生成的动作序列可以作为输入被提供给该附加控制头部。
以上描述仅作为本文公开的一些实现方式的概述而提供。在本文中(包括在具体实施方式、权利要求和附图中)更详细地描述这些和其他实现方式。
应当理解,前述构思和本文更详细描述的附加构思的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1示出了其中可以实现本文公开的实现方式的示例环境。
图2A描绘了根据本文公开的实现方式的机器人控制策略的表示。
图2B描绘了根据本文公开的实现方式的机器人控制策略的各种更新控制头部的表示。
图3A、图3B和图3C描绘了根据本文公开的实现方式的用于训练和细化机器人控制策略的平台的图形用户界面的各种非限制性示例。
图4是示出根据本文公开的实现方式的基于人演示生成训练实例并基于人演示引导(bootstrap)机器人控制策略的示例方法的流程图。
图5是示出根据本文公开的实现方式的基于人为干预机器人任务的执行来细化机器人控制策略的示例方法的流程图。
图6是示出根据本文公开的实现方式的在自主控制机器人时利用机器人控制策略的示例方法的流程图。
图7示意性地描绘了机器人的示例架构。
图8示意性地描绘了计算机系统的示例架构。
具体实施方式
图1示出了其中可以实现本文公开的实现方式的示例环境。示例环境包括机器人110、计算设备120、计算设备130、用户输入系统140、训练系统150和机器人系统160。图1的这些组件中的一个或多个可以通过一个或多个网络195(诸如局域网(LAN)广域网(WAN)和/或任何其他通信网络)通信地耦合。计算设备120、130中的每一个可以包括各种输入设备和输出设备。例如,计算设备120采取可以用于渲染本文描述的各种图形用户界面的虚拟或增强真实头戴式耳机的形式。此外,计算设备120可以利用控制器121作为输入设备、或者经由计算设备120的各种传感器简单地跟踪计算设备120的用户的眼睛和/或手部移动以控制机器人110。作为另一示例,计算设备130可以包括显示器和各种输入设备,诸如键盘和鼠标。尽管在图1中描绘了特定组件,但是应当理解,这是为了示例的目的,并不意味着限制。此外,尽管图1的各种组件在图1中被描绘为分离的,但是应当理解,这是为了示例的目的,并不意味着限制。例如,计算设备120、130中的一个或多个可以实现用户输入系统140、训练系统150和/或机器人系统的一个或多个方面。此外,例如,用户输入系统140、训练系统150和/或机器人系统的一个或多个方面可以由通过网络195中的一个或多个与计算设备120、130中的一个或多个通信的远程系统(例如,服务器)来实现。
用户可以利用计算设备120、130、用户输入系统140、训练系统和机器人系统160来训练用于在各种机器人任务的执行时控制机器人110的机器人控制策略。机器人控制策略可以对应于存储在机器学习(ML)模型数据库164A中的一个或多个ML模型以及在控制机器人(诸如机器人系统160和/或其各种引擎)时利用使用ML模型生成的输出的系统。如本文所述,本文描述的技术涉及使用模仿学习技术来训练和细化机器人控制策略。特别地,机器人控制策略可以基于被存储在演示数据数据库152A中且基于各种机器人任务的人演示的演示数据来初始训练。此外,并且在初始训练之后,机器人控制策略可以基于在机器人110对各种机器人任务的执行期间接收到的人为干预来细化。此外,并且在细化之后,可以部署机器人控制策略以用于在未来机器人任务期间控制机器人110。
图1所示的机器人110是特定的真实世界移动机器人。然而,附加的和/或替代的机器人(诸如在一个或多个方面与图1所示的机器人110不同的附加机器人)可以与本文公开的技术一起使用。例如,在本文描述的技术中,代替机器人110或除了机器人110之外,可以利用固定的机器人臂、移动远程临场(telepresence)机器人、移动叉车机器人、无人飞行器(“UAV”)和/或人形机器人。此外,机器人110可以包括由机器人的处理器和/或由远离机器人110但与机器人110通信的一个或多个处理器实现的一个或多个引擎。
机器人110包括一个或多个视觉组件111,其可以生成与在视觉组件111的视线内的对象的形状、颜色、深度和/或其它特征相关的视觉数据实例(例如,图像、点云)。由视觉组件中的一个或多个生成的视觉数据实例可以形成状态数据(例如,环境状态数据和/或机器人状态数据)中的一些或全部。机器人110还可以包括位置传感器、扭矩传感器和/或可以生成数据的其他传感器,并且这样的数据或从其他传感器导出的数据可以形成状态数据(如果有的话)中的一些或全部。附加地或替代地,可以生成视觉数据实例的一个或多个视觉组件190可以位于机器人110的外部。
视觉组件111、190中的一个或多个可以是例如单目相机、立体相机(有源或无源)和/或光检测和测距(LIDAR)组件。LIDAR组件可以生成作为3D点云的视觉数据,其中3D点云的点中的每一个定义表面的点在3D空间中的位置。单目相机可以包括单个传感器(例如,电荷耦合设备(CCD)),并且基于由传感器感测到的物理属性生成图像,每个图像包括定义颜色值和/或灰度值的多个数据点。例如,单目相机可以生成包括红色、蓝色和/或绿色通道的图像。立体相机可以包括两个或更多个传感器,每个传感器在不同的有利位置(vantagepoint)处,并且可以可选地包括投影仪(例如,红外投影仪)。在那些实现方式中的一些实现方式中,立体相机基于由两个传感器感测到的特性(例如,基于从投影仪捕获到的投影)生成图像,每个图像包括定义深度值和颜色值和/或灰度值的多个数据点。例如,立体相机可以生成包括深度通道和红色、蓝色和/或绿色通道的图像。
机器人110还包括基座113,其具有设置在其相对侧上用于机器人110移动的轮子117A、117B。基座113可以包括例如用于驱动机器人110的轮子117A、117B达到机器人110移动的期望方向、速度和/或加速度的一个或多个马达。
机器人110还包括一个或多个处理器,其例如:向致动器和/或机器人110的其它操作组件(例如,如本文所述的机器人控制策略引擎166)提供控制命令。提供给致动器和/或其他操作组件的控制命令可以形成被包括在回合(episode)数据162中的动作数据(如果有的话)的一部分。
机器人110还包括具有末端执行器115的机器人臂114,末端执行器115采用具有两个相对的“指状物(finger)”或“手指(digits)”的夹持器的形式。可以利用附加的和/或替代的末端执行器、或者甚至不使用末端执行器。例如,可以使用利用替代的指状物/手指布置的、利用吸盘(例如,代替指状物/手指)的、利用磁体(例如,代替指状物/手指)等的替代的抓取末端执行器。此外,例如,可以利用非抓取末端执行器,诸如包括钻头、撞击工具等的末端执行器。
如上所述,机器人控制策略可以基于各种机器人任务的人演示来初始训练。当执行了人演示时,演示数据可以经由用户输入系统140生成,并且可以被存储在演示数据数据库152A中。演示数据可以包括例如由视觉组件112、190中的一个或多个在给定机器人任务的给定人演示的执行期间生成的视觉数据实例、与在给定机器人任务的给定人演示期间捕获到的视觉数据实例相对应的机器人110和/或环境的状态数据、与在给定的人演示期间捕获到的视觉数据实例相对应的用于控制机器人110的相应组件的对应值集。例如,用户输入引擎142可以检测用户输入以控制机器人110,并且干预引擎144可以生成用于控制机器人110的相应组件的对应值集。用于控制机器人110的相应组件的对应值集可以是例如描述相应组件的平移位移和/或旋转(例如,对围绕相应组件的轴线的取向上改变的正弦-余弦编码)的向量、较低级控制命令(例如,控制机器人110的对应致动器、机器人的组件的单独关节角度等的单独扭矩命令)、用于机器人的组件的二进制值(例如,指示机器人夹持器是应该打开还是关闭)、用于机器人110的组件的其他值(例如,指示机器人夹持器115应该打开或关闭的程度)、机器人110的组件的速度和/或加速度(例如,机器人臂移动、机器人基座移动等)和/或可以用于控制机器人110的其他值。
在一些实现方式中,人(或用户)可以利用计算设备120、130(或其输入设备)中的一个或多个来控制机器人110执行机器人任务的人演示。例如,用户可以利用与计算设备120相关联的控制器121来控制机器人110、利用与计算设备130相关联的输入设备来控制机器人、或者利用与机器人110通信的任何计算设备的任何其他输入设备来控制机器人,并且演示数据可以基于由视觉组件112、190中的一个或多个捕获到的视觉数据实例并且基于用户控制机器人110来生成。在附加的或替代的实现方式中,用户可以物理上操纵机器人110或其一个或多个组件(例如,基座113、机器人臂114、末端执行器115和/或其他组件)。例如,用户可以物理上操纵机器人臂114,并且演示数据可以基于由视觉组件112、190中的一个或多个捕获到的视觉数据实例并且基于对机器人110的物理操纵来生成。用户可以重复此过程以生成用于各种机器人任务的执行的演示数据。
在一些实现方式中,人演示可以使用机器人110在真实世界环境中执行。例如,在图1所示的环境中,用户可以通过使机器人110朝向桌子191行进来控制机器人110执行运动任务,并且通过使机器人110拿起杯子192来控制机器人110执行抓取任务。在附加的或替代的实现方式中,人演示可以经由机器人模拟器164使用机器人110的模拟实例在模拟环境中执行。例如,在人演示使用机器人110的模拟实例在模拟环境中被执行的实现方式中,模拟(sim)配置引擎162可以访问对象模型数据库162A,以获得桌子191的模拟实例和杯子192的模拟实例。此外,用户可以通过使机器人110的模拟实例朝向桌子191的模拟实例行进来控制机器人110的模拟实例执行模拟运动任务,并且通过使机器人110的模拟实例拿起杯子192的模拟实例来控制机器人110的模拟实例执行模拟抓取任务。
在一些实现方式中,机器人模拟器164可以由一个或多个计算机系统实现,并且可以用于(例如,使用模拟配置引擎162)模拟包括对应环境对象的各种环境,模拟机器人110在图1所示的模拟环境和/或其它环境中操作的实例,模拟机器人响应于各种模拟机器人动作以推进各种机器人任务的虚拟实现方式的响应,并且模拟机器人和环境对象之间响应于模拟机器人动作的交互。可以利用各种模拟器,诸如模拟碰撞检测、柔体和刚体动力学等的物理引擎。因此,本文描述的各种机器人任务的人演示和/或执行可以包括由机器人110执行的、由另外的真实世界机器人执行的和/或由机器人110和/或其他机器人的模拟实例经由机器人模拟器164执行的那些。
训练实例引擎152可以利用存储在演示数据数据库152A中的演示数据来生成用于引导机器人控制策略的多个训练实例。值得注意的是,多个训练实例可以基于单个人演示或多个人演示来生成(例如,如参考图4描述的)。多个训练实例中的每一个包括训练实例输入和对应的训练实例输出。训练实例输入可以包括例如视觉数据实例、当视觉数据实例被捕获到时的状态数据(例如,机器人110的机器人状态数据和/或环境状态数据)、当视觉数据实例被捕获到时的机器人110的各种组件的力值和/或当视觉数据实例被捕获到时生成的其他传感器数据。训练实例输出可以包括例如与视觉数据实例(以及可选地在该视觉数据实例之后的后续视觉数据实例)相关联的、用于机器人的相应组件的基准真值(groundtruth)对应值集。例如,训练实例输入可以包括捕获(例如,基于机器人臂的人控制)执行对象操纵任务的机器人臂的视觉数据实例,并且训练实例输出可以包括用于机器人臂和机器人末端执行器的与机器人在对象操纵任务的执行时利用的值相对应的基准真值对应值集。
在一些实现方式中,训练实例输出可以包括用于机器人110的相应组件的用于实现基于视觉数据实例的动作的对应值集,并且还可以包括与跟随该基于视觉数据实例的动作的下一个动作相关联的附加对应值集。换句话说,训练实例输出可以包括与机器人在人演示期间执行的动作序列相关联的对应值集。通过不仅包括与训练输入中包括的视觉数据实例相对应的动作的对应值集,而且还包括跟随该动作的一个或多个接下来的动作的对应值集,机器人控制策略可以被训练为生成动作序列。如本文所述,在推断时(例如,在本文描述的自主模式下),机器人控制策略可以仅生成下一个动作(而不是跟随该动作的一个或多个接下来的动作)。然而,通过训练机器人控制策略生成一个或多个接下来的动作,由机器人110生成的用于实现的动作可以考虑机器人任务作为整体来生成,而不是被看作离散的动作。例如,假设机器人任务是抓取任务,并且机器人夹持器115需要在环境中向左朝向待抓取的对象移动。在此示例中,使用机器人控制策略生成的动作可以包括将机器人夹持器115向左移动,即使其可能不会立即影响抓取任务的执行。例如,机器人夹持器115可以向前移动并且仍然完成任务。然而,生成使机器人夹持器115向左而不是向前或向右移动的动作是机器人110在推进机器人任务中实现的最佳动作。此外,这可以减轻机器人110的剧烈运动,并且在机器人110的相应组件的运动学运动方面带来更平滑的机器人任务执行。以这些和其他方式,机器人控制策略可以根据基于人演示生成的演示数据来引导。
在一些实现方式中,多个训练实例中的一个或多个可以被标记。标记可以指示多个训练实例中给定的训练实例是肯定(positive)训练实例还是否定(negative)训练实例。例如,包括用户正确地执行给定机器人任务的训练实例可以被标记为肯定训练实例,而包括用户未正确地执行给定机器人任务的训练实例可以被标记为否定训练实例。例如,如果演示数据对应于用户正确地抓取对象,则训练实例可以被标记为肯定训练实例。然而,如果演示数据对应于用户未正确地抓取对象、撞到对象等,则训练实例可以被标记为否定训练实例。通过以这些和其他方式使用标记的训练实例,机器人控制策略可以以更高效的方式被训练,并且还得到具有更高精度和/或查全率的经训练的机器人控制策略。例如,在各种实现方式中,基于标记的训练实例训练的机器人控制策略可以预测机器人将何时在机器人任务的执行中故障。
训练引擎154可以利用由训练实例引擎152生成的多个训练实例来引导机器人控制策略。如本文所使用的,机器人控制策略是指(例如,存储在ML模型数据库中的)机器学习(ML)模型和在控制机器人110时利用使用ML模型生成的输出的系统。训练引擎152可以训练给定的机器人控制策略,以基于针对给定的训练实例输入处理视觉数据(以及可选地本文描述的其他数据)实例来生成动作序列。动作序列可以包括由机器人110执行以推进机器人任务的下一个动作和被预测为跟随下一个动作的预测动作序列。在一些实现方式中,训练引擎152还可以在生成动作序列时利用给定的训练实例输入的状态数据,但是应当理解,本文描述的动作序列可以仅基于视觉数据实例来生成。此外,尽管本文针对生成动作序列描述了技术,但是应当理解,这是为了示例的目的,并不意味着限制。例如,本文描述的技术可以用于生成下一个动作,而不生成被预测为跟随下一个动作的预测动作的任何序列。
表示机器人控制策略的ML模型可以包括一个或多个输入层、多个中间层和多个不同的控制头部。例如,并且简要地参考图2A,训练引擎154可以使视觉数据实例201A(以及可选地对应的状态数据实例201B)可以作为输入被提供给一个或多个输入层211,并且一个或多个中间层212可以处理视觉数据实例201A以生成视觉数据实例的中间表示202(例如,嵌入、编码等)。在一些实现方式中,在将视觉数据实例201A和/或状态数据实例201B提供给中间层212中的一个或多个之前,输入层211中的一个或多个可以对视觉数据实例201A和/或状态数据实例201B执行一个或多个数据处理功能(例如,级联和/或其他功能)。
此外,视觉数据实例的中间表示202可以作为输入被提供给多个不同的控制头部213。在一些实现方式中,多个不同的控制头部213中的每一个可以用于生成用于控制机器人110的相应组件的对应值集。例如,第一控制头部2131可以用于生成反映机器人夹持器114针对动作序列中包括的一个或多个动作的平移位移(例如,二维或三维)的对应第一值集2031;第二控制头部2132可以用于生成反映机器人夹持器115针对动作序列中包括的一个或多个动作的取向的对应第二值集2032;第三控制头部2133可以用于生成反映机器人夹持器115针对动作序列中包括的一个或多个动作的致动状态(或机器人末端执行器的致动状态的程度)的对应第三值集2033;第四控制头部2034可以用于生成反映机器人基座113(或单独的轮子117A、117B)针对动作序列中包括的一个或多个动作的速度和/或加速度的对应的第四值集2034;以此类推,第N控制头部213N用于生成对应的第N值集203N,其中N是正整数。尽管上面描述了与机器人110的特定组件相关联的特定控制头部,但是应当理解,这是为了示例的目的,并不意味着限制,并且机器人控制策略利用的多个控制头部213可以是执行机器人任务的机器人110的组件的函数。例如,如果机器人不包括机器人基座113(例如,固定的机器人臂),则可以不利用与机器人基座113相关联的给定的控制头部。此外,例如,如果机器人包括机器人腿而不是机器人基座113,则可以利用与一个或多个机器人腿相关联的控制头部来代替用于机器人基座113的控制头部。此外,尽管上面针对控制设备的不同组件描述了特定的控制头部,但是应当理解,这是为了示例的目的,并不意味着限制。例如,第一控制头部可以与控制机器人的第一组件的第一部分相关联(例如,上面针对机器人夹持器115的取向描述的第二控制头部2132),并且不同的第二控制头部可以与控制机器人的第一组件的第二部分相关联(例如,上面针对机器人夹持器115的致动状态描述的第三控制头部2133)。
在各种实现方式中,视觉数据实例的中间表示202可以作为输入被提供给附加控制头部(也被称为故障头部),以生成与机器人任务本身的执行相关联的对应值集,而不是如上所述地在控制机器人110的相应组件时利用对应值集。与机器人任务的执行相关联的对应值集可以指示例如机器人110是否将继续机器人任务的执行、机器人110是否将在机器人任务的执行中故障和/或机器人110是否已经完成机器人任务的执行。换句话说,机器人控制策略可以利用该对应值集来确定是否提示用户干预机器人任务的执行。与机器人任务的执行相关联的对应值集可以是例如值的向量,其可以是指示机器人110是否将继续机器人任务的执行、机器人110是否将在机器人任务的执行中故障和/或机器人110是否已经完成机器人任务的互斥二进制值;与机器人110是否将继续机器人任务的执行、机器人110是否将在机器人任务的执行中故障和/或机器人110是否已经完成机器人任务的执行相关联的概率和/或与机器人任务的执行相对应的其他值。例如,使用该故障头部生成的对应值集可以包括[fail(故障),continue(继续),complete(完成)]的值的向量,其中向量的每个值是指示机器人任务的执行的二进制值。作为另一示例,使用该故障头部生成的对应值集可以包括[fail/continue(故障/继续),complete(完成)]的值的向量,其中“fail/continue”值是与机器人110是否将故障相关联的概率,并且“complete”值是与机器人110是否已经完成机器人任务的执行相关联的二进制值。
在一些实现方式中,更新引擎156可以生成一个或多个损失(loss),并利用这些损失中的一个或多个来更新控制头部213。在那些实现方式中的一些实现方式中,损失中的一个或多个(例如,全部)可以利用与在生成其他损失时利用的损失函数中的一个或多个(例如,全部)不同的损失函数来生成。作为一个特定示例,用于更新机器人控制策略的第一控制头部的第一损失可以基于针对下一个动作和/或针对多个附加预测动作中的一个或多个附加预测动作、将对应第一值集与对应替代第一值集进行比较来生成,用于更新机器人控制策略的第二控制头部的第二损失可以基于针对下一个动作和/或针对多个附加预测动作中的一个或多个附加预测动作、将对应第二值集与对应替代第二值集进行比较来生成,以此类推,对于用于控制机器人的各种组件的每个控制头部也都是如此。在此示例中,第一损失函数可以用于生成第一损失,并且不同的第二损失函数可以用于生成第二损失。此外,相应的损失可以用于更新相应的控制头部。
例如,并且简要地参考图2B,更新引擎156可以:基于对于给定的训练实例将对应第一值集2031与相应的基准真值对应第一值集2041进行比较,生成一个或多个第一损失1561;基于对于给定的训练实例将对应第二值集2032与相应的对应第二值集2042进行比较,生成一个或多个第二损失;基于对于给定的训练实例将对应第三值集2033与相应的基准真值对应第三值集2043进行比较,生成一个或多个第三损失;基于对于给定的训练实例将对应的第四值集2033与相应的基准真值对应第四值集2044进行比较,生成一个或多个第四损失;以此类推,对于一个或多个第N损失156N也是如此。更新引擎156随后可以利用相应的损失来更新相应的控制头部213。值得注意的是,各种损失函数可以用于为控制头部中的每一个生成一个或多个损失。例如,第一损失中的一个或多个可以使用均方误差损失函数来生成,第二损失中的一个或多个可以使用均方误差损失函数和/或四元数范数(quaternionnorm)损失函数来生成,第三损失中的一个或多个可以使用对数损失函数来生成,等等。训练引擎154可以针对多个附加训练实例重复此过程。尽管在图2B中仅将一个或多个第一损失1561和一个或多个第N损失156N描绘为用于更新它们相应的控制头部,但是应当理解,这是为了清楚起见,并不意味着限制。
在一些实现方式中,并且返回参考图1,评估引擎158可以评估机器人控制策略,并且确定是否从引导模式(例如,如上所述基于多个训练实例训练机器人控制策略)转换到半自主模式,以进一步细化机器人控制策略。当一个或多个条件被满足时,评估引擎158可以确定是否从引导模式转换到半自主模式。一个或多个条件可以包括例如基于至少阈值量的训练实例的训练的发生、基于训练实例进行了阈值持续时间的训练和/或本文描述的其他条件。
在半自主模式下,RCP引擎166可以利用经训练的机器人控制策略来控制机器人110执行各种机器人任务。在一些实现方式中,机器人110可以响应于接收到启动机器人任务的执行的用户输入而启动机器人任务的执行。例如,用户可以在计算设备120、130中的一个或机器人110本身处提供启动机器人任务的执行的用户输入。在一些实现方式中,RCP引擎166可以利用机器人控制策略通过处理视觉数据实例来控制机器人执行机器人任务,以生成要执行的一个或多个动作,并且机器人110可以自主地执行这些动作中的一个或多个。在那些实现方式的一些版本中,当RCP引擎166确定机器人110在机器人任务的执行中故障和/或机器人110被预测为在机器人任务的执行中故障时,用户可以被提示干预机器人任务的执行。
例如,假设机器人110正在执行打开上锁的门的机器人任务,该机器人任务要求机器人110使用机器人基座113穿越到上锁的门的路径,经由耦合到机器人臂114的机器人夹持器115操纵门把手,并且穿越另一路径以将门推或拉到打开位置。在此示例中,RCP引擎166可以使用机器人控制策略处理由视觉组件112中的一个或多个生成的视觉数据实例,以生成用于第一次迭代的动作序列。该动作序列可以包括初始动作和被预测为跟随初始动作的多个预测动作。此外,这些动作中的每一个可以与用于控制机器人110的相应组件的对应值集相关联。值得注意的是,动作序列的表示可以被提供为经由计算设备120、130之一的图形用户界面被呈现给人(例如,参考图3B和图3C描述的)。假设RCP引擎166基于使用故障头部处理视觉数据实例(并且可选地以及动作序列)来确定机器人110在机器人任务的执行时不会故障,则机器人可以利用对应值集来执行初始动作,以推进打开上锁的门的机器人任务。此外,RCP引擎166可以使用机器人控制策略处理由视觉组件112中的一个或多个生成的附加视觉数据实例,以生成用于第二次迭代的附加动作序列。该附加动作序列可以包括下一个动作和被预测为跟随该下一个动作的多个附加预测动作。附加动作序列的附加表示可以被提供为经由计算设备120、130之一的图形用户界面被呈现给人(例如,参考图3B和图3C描述的)。RCP引擎166可以继续直到机器人任务的执行完成为止。
然而,在RCP引擎166使用机器人控制策略、基于对视觉数据实例的处理确定机器人将在机器人任务的执行中故障或者用户主动干预机器人任务的执行的实现方式中,用户可以在打开上锁的门的机器人任务的执行中被提示进行干预。该提示可以使用干预引擎144来生成。在此示例中,用户可以响应于接收到提示而经由计算设备120、130之一(例如,控制器121)的输入设备提供用户输入以控制机器人110。在一些实现方式中,并且基于用户输入,干预引擎144可以生成用于控制机器人110的相应组件的替代对应值集。更新引擎156可以利用这些替代对应值集来控制机器人110的各种组件,可以用于生成用于更新机器人控制策略的一个或多个损失(例如,以参考图2B描述的相同或相似的方式)。例如,假设用户在机器人任务的执行中被提示进行干预。在此示例中,跨不同控制头部生成的对应值集可以与由干预引擎144基于用户输入生成的替代对应值集进行比较。比较可以用于生成一个或多个损失,并且机器人控制策略(或ML模型)可以基于损失中的一个或多个来更新。在一些实现方式中,对应的损失可以针对多个控制头部中的每一个确定,并且对应的损失用于更新对应的控制头部。在人为干预机器人任务的执行的实现方式中,诸如当用户认为机器人将在不停止打开门的情况下继续穿越通过门的路径时,一个或多个损失可以以相同或相似的方式生成并且用于更新控制头部。
在一些实现方式中,评估引擎158可以评估细化的机器人控制策略并确定是否从半自主模式转换到自主模式以验证机器人控制策略。当一个或多个条件被满足时,评估引擎158可以确定是否从半自主模式转换到自主模式。一个或多个条件可以包括例如机器人控制策略的收敛(例如,零损失或在零损失的阈值范围内)、确定机器人控制策略比当前正在利用的机器人控制策略的实例(如果有的话)(例如,在精度和/或查全率方面)执行得更好、基于至少阈值量的人为干预的细化的发生和/或在半自主模式下进行了阈值持续时间的细化。
在自主模式下,RCP引擎166还可以利用经训练的机器人控制策略来控制机器人110执行各种机器人任务。然而,与半自主模式相反,用户可以在机器人任务的执行中被提示进行干预。相反,机器人110能够借助于使用本文描述的技术训练和细化的机器人控制策略来减轻各种机器人任务的执行中的故障和/或从各种机器人任务的执行中的故障进行恢复。例如,如果RCP引擎166确定要执行的下一个动作将导致机器人110与障碍物碰撞,则RCP引擎166可以避免执行下一个动作,并且在后续迭代中实现要由机器人110执行的不同的下一个动作。
通过使用本文描述的技术,可以实现各种技术优点。作为一个非限制性示例,通过在确定机器人110将在机器人任务的执行中故障时提示用户干预机器人任务的执行,机器人控制策略被训练为学习如何执行机器人任务以及如何从机器人任务的执行中的故障恢复,而不是简单地被训练为学习如何执行机器人任务。因此,与其他已知技术相比,当机器人控制策略经训练时,可以较不频繁地提示用户进行干预,从而节省计算资源、网络资源和/或机器人资源。作为另一非限制性示例,通过使人能够基于机器人可以执行的动作的视觉表示进行干预,可以避免与机器人110的环境中的各种障碍物的碰撞。因此,可以完全减轻或避免对这些障碍物和机器人的任何潜在损坏。作为另一非限制性示例,通过使用本文描述的架构,专用于机器人110的相应组件(或相应组件的部分)的控制头部中的每一个可以基于特定于那些控制头部的一个或多个损失来细化。因此,机器人控制策略可以以更快且更高效的方式并且基于更少的用户人演示来训练。
现在转到图3A-图3C,描绘了用于训练和细化机器人控制策略的平台的图形用户界面300的各种非限制性示例。用户可以与平台交互以训练和细化机器人控制策略。平台可以至少部分地由计算设备(例如,图1的计算设备120、130中的一个或多个、服务器和/或其他计算设备)实现,并且可以包括例如图形用户界面300、输入设备和/或输出设备。例如,平台可以使用户能够创建或选择机器人控制策略,并且最初基于存储在一个或多个数据库(例如,图1的演示数据数据库152A)中的人演示和/或当用户在人演示模式352B1下与机器人交互时生成的人演示来引导机器人控制策略(例如,参考图3A描述的)。此外,平台可以使用户能够将对机器人的控制从人演示模式352B1转换到半自主模式352B2,以进一步细化机器人控制策略(例如,参考图3B描述的)。此外,平台可以使用户能够将对机器人的控制从半自主模式352B2转换到自主模式352B3,以进一步评估机器人控制策略(例如,参考图3C描述的)。在一些实现方式中,用户可以通过选择被提供在平台的图形用户界面300处显示的对应图形元素来在各种模式352B之间转换。在附加的或替代的实现方式中,平台可以基于评估机器人控制策略的执行,在这些模式352B之间自动转换。
在一些实现方式中,并且具体参考图3A,人演示模式352B1可以用于基于人演示引导机器人控制策略。例如,人演示器可以使用遥操作来控制机器人,在动觉上操纵机器人,和/或利用其他技术来演示机器人应该如何执行任务。训练实例320可以基于人演示来生成,并且训练实例中的每一个可以包括训练实例输入322A和训练实例输出323A。训练实例输入321A可以包括例如视觉数据实例和/或当视觉数据实例被捕获到时的状态数据实例(例如,环境状态数据和/或机器人状态数据),如图3A中描绘的各种训练实例输入321A1、321A2、321A3和321A4所指示的(以及可选地,如本文描述的其他数据,诸如当视觉数据实例被捕获到时机器人的各种组件的力值)。训练实例输出322A可以包括例如与人演示相关联的、用于机器人的相应组件的对应值集,如图3A中描绘的各种训练实例输出322A1、322A2、322A3和322A4所示。值得注意的是,训练实例输出322A中包括的对应值集可以包括在视觉数据实例被捕获到之后由机器人执行的多个动作的对应值集。在一些实现方式中,训练实例320中的每一个可以与如图3A中描绘的各种机器人任务323A1、323A2、323A3和323A4所指示的特定机器人任务323A相关联。例如,训练实例输入321A1可以包括捕获执行对象操纵任务(例如,如323A1所指示的抓取任务)的机器人臂的视觉数据实例,并且训练实例输出321A1可以包括用于机器人臂和机器人末端执行器(例如,机器人夹持器)的至少对应值集,其对应于机器人在执行对象操纵任务时使用的值。
平台可以指示用户执行各种任务以指引用户在人演示模式352B1下训练机器人控制策略。例如,平台可以在352B1A处提供用户应该执行各种机器人任务的人演示的指示。此外,平台可以包括在352B1B处执行的人演示的日志。在此示例中,平台指示已经执行了58个对象操纵任务的人演示,已经执行了47个运动任务的人演示,已经执行了15个组合任务的人演示,并且已经执行了12个其他任务的人演示。图3A中所示的训练实例320可以基于这些人演示来生成。
在一些实现方式中,训练实例320可以基于一个或多个标准来分类(sort)。一个或多个标准可以包括例如与给定的训练实例相关联的机器人任务的类型(例如,抓取任务、运动任务等)、训练实例输出的类型(例如,与特定机器人组件相关联的对应值集)、训练实例的类型(例如,肯定或否定)和/或其他标准。例如,响应于选择对训练实例分类图形元素382,平台可以使训练实例320基于标准中的一个或多个被分类。对训练实例分类图形元素382在被选择时可以可选地使具有用于对训练实例进行分类的各种标准的下拉菜单在图形用户界面300处在视觉上显现。
在一些实现方式中,训练实例320中的一个或多个可以包括一个或多个错误。一个或多个错误可以包括例如错误标记的训练实例(例如,肯定训练实例或否定训练实例)、训练实例输入321A的视觉数据和/或状态缺失、训练实例输出322A的对应值集缺失和/或其他错误。在这些实现方式中,用户可以查看包括错误的训练实例320,并且可以使一个或多个动作被执行以校正错误中的一个或多个。例如,响应于选择训练实例错误图形元素383,平台可以使包括一个或多个错误的训练实例320被呈现给用户。然后,用户可以重新标记这些训练实例中的一个或多个,丢弃这些训练实例中的一个或多个,和/或执行任何其他动作以解决错误中的一个或多个。
在一些实现方式中,平台可以基于训练实例320使机器人控制策略被自动训练(例如,如参考图4描述的)。在附加的或替代的实现方式中,平台可以响应于在平台处检测到的用户输入而使机器人控制策略被训练。例如,响应于选择训练图形元素384,平台可以使机器人控制策略基于训练实例320被训练。以这些和这些方式,机器人控制策略可以基于人演示来引导。
在一些实现方式中,并且具体参考图3B,半自主模式352B2可以用于基于在机器人控制策略的引导之后的半自主机器人任务330的执行期间接收到的人为干预来细化机器人控制策略。当处于半自主模式352B2时,机器人控制策略可以基于在机器人任务的执行期间接收到的人为干预的数量来评估。换句话说,机器人可以基于机器人在没有人为干预的情况下执行得有多好来评估。
例如,如352B2A所指示的,假设用户提供“去拿起杯子”的输入。在此示例中,机器人可以利用经训练的机器人控制策略来生成动作序列,以穿越朝向桌子191的路径并拿起杯子192。在一些实现方式中,图形用户界面380可以附加地或替代地用于在机器人执行机器人任务时在视觉上显现动作序列的表示,如331、332、333、334、335和336所指示的。在那些实现方式的一些版本中,经由图形用户界面380在视觉上显现的动作序列的表示包括覆盖在视觉数据实例中捕获的机器人的环境330A的对应路点(waypoint)的序列(例如,如图3B描绘的)。对应路点中的每一个可以响应于动作序列中包括的给定动作被机器人实现而与机器人的一个或多个组件相关联。在图3B的示例中,路点序列可以对应于用于执行抓取任务的机器人夹持器。尽管图3B中描绘的动作序列是机器人抓持器的路点,但是应当理解,这是为了示例的目的,并不意味着限制。在附加的或替代的实现方式中,经由图形用户界面380在视觉上显现的动作序列的表示包括覆盖在视觉数据实例中捕获的机器人的环境330A的机器人的对应状态的序列。机器人的对应状态中的每一个可以响应于动作序列中包括的给定动作被机器人执行而对应于机器人的给定状态。在各种实现方式中,动作中的每一个的表示可以是可选择的,使得当被选择时,用于机器人的各种组件的对应值集可以在视觉上显现以呈现给用户。例如,假设用户选择路点331。响应于用户选择路点331,可以呈现机器人的一个或多个值从而呈现给用户,如331A所指示的。
在一些实现方式中,机器人控制策略可以(例如,使用参考图1、图2A和图2B描述的机器人控制策略的故障头部)确定机器人在机器人任务的执行中故障和/或被预测为在机器人任务的执行中故障。在那些实现方式中,平台可以生成提示337,并且可以经由图形用户界面380提供该提示以呈现给用户。提示337可以请求用户干预机器人任务的执行。例如,用户可以利用输入设备(例如,图1的控制器121)来控制机器人并校正执行机器人任务时的一个或多个动作。一个或多个损失可以基于用户干预机器人任务的执行来生成(例如,如参考图1、图2A和图2B描述的),并且这些损失中的一个或多个随后可以用于细化机器人控制策略。在这些实现方式中的一些实现方式中,用户可以无视提示337,如337A所指示的。在提示337被无视的实现方式中,故障头部随后可以被更新以在使用机器人控制策略处理相似的视觉数据实例时和/或在使用机器人控制策略生成相似的动作时减少提示用户的发生。
在附加的或替代的实现方式中,用户可以基于视觉上显现以呈现给用户的动作序列的表示来主动干预机器人任务的执行。例如,路点335和336指示机器人夹持器未被预测为基于动作抓取杯子192。相反,看起来机器人将撞到桌子191中并到达杯子192上方以执行抓取任务、或者去到桌子191的远侧以执行抓取任务。因此,用户可以主动利用输入设备(例如,图1的控制器121)来控制机器人并校正执行机器人任务时的一个或多个动作。一个或多个损失可以基于用户干预机器人任务的执行来生成(例如,如参考图1、图2A和图2B描述的),并且这些损失中的一个或多个随后可以用于细化机器人控制策略。
在对机器人任务执行的任何人为干预之后,机器人控制策略可以从人获得对机器人的控制。然而,如果在机器人任务的执行期间,机器人控制策略确定机器人再次故障或被预测为再次故障,则平台可以生成附加提示,并且该附加提示经由图形用户界面380被呈现给用户。可以重复此过程,直到机器人完成机器人任务的执行为止。
在各种实现方式中,可以提供与在半自主模式352B2下的机器人任务的执行相关的一个或多个度量以呈现给用户。例如,这些度量中的一个或多个可以与如352B2B所指示的在半自主模式352B2下的当前机器人任务的执行、如352B2C所指示的在半自主模式352B2下执行的历史机器人任务的执行和/或其他度量相关联。在各种实现方式中,平台可以做出对应当在半自主模式352B2下执行的特定任务的推荐,如352B2D所指示的。
在一些实现方式中,并且在半自主机器人任务330的执行之后,机器人控制策略可以根据基于干预生成的一个或多个损失来自动更新。在这些实现方式的一些版本中,阈值量的半自主机器人任务可以在使机器人控制策略被细化之前被执行。在附加的或替代的实现方式中,机器人控制策略可以响应于接收到用户输入来细化。例如,响应于选择细化策略图形元素385,机器人控制策略可以基于在半自主机器人任务330的执行期间生成的损失中的一个或多个来细化。
在一些实现方式中,并且具体参考图3C,自主模式352B3可以用于在半自主模式352B2下细化机器人控制策略之后评估机器人控制策略的执行。在自主模式352B3下,可以不提示用户干预自主机器人任务340的执行。机器人可以利用机器人控制策略在环境340A中自主地执行各种机器人任务,并且机器人控制策略可以基于机器人是否完成机器人任务和/或机器人执行机器人任务的效率来评估。例如,假设用户提供“去拿起杯子”的输入,如352B3A所指示的。在此示例中,机器人可以利用细化的机器人控制策略来生成动作序列,以推进穿越朝向桌子191的路径并拿起杯子192。值得注意的是,在推断的各种实现方式中,机器人控制策略可以仅生成下一个动作,而不是上面参考半自主模式352B2描述的动作序列。然而,为了示例起见,在图3C中描绘了路点341、342、343、344和345,并且示出了基于在半自主模式352B2下细化的机器人控制策略,机器人任务的性能已经得到改善(例如,如由更少的路点和指示机器人夹持器将正确地抓取杯子192的路点345所指示的)。
类似于半自主模式352B2,在各种实现方式中,可以提供与自主模式352B3下的机器人任务的执行相关的一个或多个度量以呈现给用户。例如,这些度量中的一个或多个可以与如352B3B所指示的自主模式352B3下的当前机器人任务的执行和/或其他度量相关联。在各种实现方式中,平台可以基于机器人控制策略在执行自主机器人任务340时的执行来做出推荐。例如,如352B3C所指示的,平台可以建议在半自主模式352B2下进一步细化机器人控制策略。
尽管针对特定机器人任务描述了图3A-图3C,但是应该理解,这是为了示例的目的,并不意味着限制。例如,可以执行其他机器人任务(诸如打开门、分拣各种对象、打开推拉门、打开上锁的门、导航和避障任务和/或可以由机器人在真实或模拟环境中执行的任何其他任务)以进一步细化机器人策略。
现在转到图4,描绘了示出基于人演示生成训练实例并基于人演示引导机器人控制策略的示例方法400的流程图。换句话说,方法400描述了用于训练机器人控制策略的引导模式。为了方便起见,参考执行操作的系统来描述方法400的操作。该系统可以包括一个或多个处理器,诸如用户输入系统140和/或训练系统150的处理器。此外,虽然以特定次序示出了方法400的操作,但这并不意味着限制。一个或多个操作可以被重新排序、省略或添加。
在框452处,系统获得基于机器人任务的人演示生成的机器人的演示数据。演示数据可以基于使用模拟机器人在模拟环境中和/或使用模拟机器人的实例在真实世界环境中执行的人演示来生成。
在框454处,系统基于演示数据生成多个训练实例。训练实例中的每一个可以包括训练实例输入和训练实例输出。训练实例输入可以包括例如并且如子框454A所指示的视觉数据实例和/或与视觉数据实例相关联的状态数据。训练实例输出可以包括例如并且如子框454B所指示的当视觉数据实例被捕获时,用于机器人的相应组件的一个或多个对应的基准真值值集。本文描述了(例如,利用图1的训练实例引擎152)生成多个训练实例。
在框456处,系统确定是否生成多个附加训练实例。系统可以基于例如可用于训练机器人控制策略的训练实例的数量、与特定机器人任务相关联的训练实例的数量和/或其他标准来确定是否生成多个附加训练实例。如果在框456的迭代处,系统确定生成多个附加训练实例,则系统返回到框452以获得机器人的附加演示数据,并在454的附加迭代处基于附加演示数据生成多个附加训练实例。如果在框456的迭代处,系统确定不生成多个附加训练实例,则系统进行到框458。
在框458处,系统基于多个训练实例训练机器人控制策略。本文详细描述了(例如,利用图1的训练引擎154)训练机器人控制策略。
在框460,系统确定一个或多个条件是否被满足。一个或多个条件可以包括例如基于至少阈值量的训练实例的训练的发生、基于训练实例进行了阈值持续时间的训练和/或本文描述的其他条件。如果在框460的迭代处,系统确定一个或多个条件未被满足,则系统返回到框452并重复框452-458的操作。如果在框460的迭代处,系统确定条件中的一个或多个被满足,则系统进行到框462。
在框462处,系统使机器人在半自主模式下利用机器人控制策略来细化机器人控制策略。本文详细描述了半自主模式(例如,参考图1和图3B)。
现在转到图5,描绘了示出基于人为干预机器人任务的执行来细化机器人控制策略的示例方法500的流程图。换句话说,方法500描述了用于细化经训练的机器人控制策略的半自主模式。为了方便起见,参考执行操作的系统来描述方法500的操作。该系统可以包括一个或多个处理器,诸如图1的用户输入系统140、训练系统150和/或机器人系统160的处理器。此外,虽然以特定次序示出了方法500的操作,但这并不意味着限制。一个或多个操作可以被重新排序、省略或添加。
在框552处,系统使机器人启动机器人任务的执行。系统可以使机器人响应于在一个或多个计算设备处接收到启动机器人任务的执行的用户输入而启动机器人任务的执行。
在框554处,系统从一个或多个视觉组件接收捕获机器人的环境的视觉数据实例。视觉组件可以是机器人的组件和/或机器人外部的组件。
在框556处,系统使用机器人控制策略处理视觉数据实例以生成动作序列,该动作序列包括初始动作和被预测为跟随初始动作的多个预测动作。在一些实现方式中,并且如子框556A所指示的,系统使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示。此外,并且如子框556B所指示的,系统使用机器人控制策略的多个不同的控制头部处理视觉数据实例的中间表示,以生成用于机器人的相应组件的对应值集。在一些实现方式中,系统可以仅在特定模式下(诸如在本文(例如,参考图1、图3B和图3C)描述的半自主模式下)生成动作序列。在附加的或替代的实现方式中,系统可以仅生成初始动作。
在框558处,系统使动作序列的表示被呈现给用户。在一些实现方式中,系统可以仅使动作序列的表示在特定模式下(诸如在本文(例如,参考图1和图3A-图3C)描述的引导模式、半自主模式和/或自主模式下)被呈现给用户。
在框560处,系统确定机器人是否已经在机器人任务的执行中故障或被预测为在机器人任务的执行中故障。系统可以(例如,使用参考图1、图2A和图2B描述的故障头部)基于使用机器人控制策略生成的输出来确定机器人是否已经在机器人任务的执行中故障或被预测为在机器人任务的执行中故障。
如果在框560的迭代处,系统确定机器人已经在机器人任务的执行中故障或被预测为在机器人任务的执行中故障,则系统进行到框562。在框562处,系统使机器人实现初始动作。例如,系统可以利用用于机器人的相应组件的对应值集来致动机器人的相应组件执行初始动作。然后,系统可以返回到框554以从视觉组件中的一个或多个接收捕获机器人的环境的附加视觉数据实例,并重复方法500的剩余操作,直到机器人任务的执行完成为止。
如果在框560的迭代处,系统确定机器人不在机器人任务的执行中故障,并且没有被预测为在机器人任务的执行中故障,则系统进行到框564。在框564处,系统使请求人为干预机器人任务执行的提示被呈现给用户。提示可以在视觉上和/或听觉上显现,以经由机器人或计算设备被呈现给用户。
在框566处,系统接收干预机器人任务执行的用户输入。用户输入可以控制机器人并从机器人任务执行的故障中恢复和/或防止机器人任务执行中的故障。在一些实现方式中,用户可以响应于提示,经由与机器人通信的一个或多个计算设备提供输入。在附加的或替代的实现方式中,用户可以主动干预机器人任务的执行,而无需显现任何提示以呈现给用户。
在框568处,系统基于用户输入和/或基于实现初始动作生成一个或多个损失。在一些实现方式中,诸如当接收到用户输入时,在框556处使用机器人控制策略生成用于机器人的相应组件的对应值集,损失中的一个或多个可以基于将用于机器人的相应组件的对应值集与用于机器人的相应组件的对应替代值集进行比较来生成。在附加的或替代的实现方式中,当机器人在框562处实现初始动作时,系统可以将用于机器人的相应组件的对应值集与来自同一机器人任务(如果有的话)的一个或多个人演示的对应演示值集进行比较。本文详细描述了以这种方式生成损失中的一个或多个(例如,参考图1和图2)。
在框570处,系统基于损失中的一个或多个来更新机器人控制策略。在一些实现方式中,在框568处生成的损失中一个或多个与特定控制头部相关联,并且对应的特定控制头部可以基于相关联的一个或多个损失来更新。然后,系统可以返回到框554以从视觉组件中的一个或多个接收捕获机器人的环境的附加视觉数据实例,并重复方法500的剩余操作,直到机器人任务的执行完成为止。在一些实现方式中,系统可以使机器人启动附加机器人任务的执行。在那些实现方式的一些版本中,系统可以继续执行附加机器人任务,直到一个或多个条件被满足为止。一个或多个条件可以包括例如机器人控制策略的收敛(例如,零损失或在零损失的阈值范围内)、确定机器人控制策略比当前正在利用的机器人控制策略的实例(如果有的话)(例如,在精度和/或查全率方面)执行得更好、基于至少阈值量的人为干预的细化的发生和/或在半自主模式下进行了阈值持续时间的细化。
现在转到图6,描绘了示出在自主控制机器人时利用机器人控制策略的示例方法600的流程图。换句话说,方法600描述了利用细化的机器人控制策略的自主模式。为了方便起见,参考执行操作的系统来描述方法600的操作。该系统可以包括一个或多个处理器,诸如图1的机器人系统160的处理器。此外,虽然以特定次序示出了方法600的操作,但这并不意味着限制。一个或多个操作可以被重新排序、省略或添加。
在框652处,系统使机器人启动机器人任务的执行。在框654处,系统从一个或多个视觉组件接收捕获机器人的环境的视觉数据实例。在框656处,系统使用机器人控制策略处理视觉数据实例以生成动作序列,该动作序列包括初始动作和被预测为跟随初始动作的多个预测动作。系统可以分别以参考图5的框552-556描述的相同或相似的方式执行框652-656的操作。在框658处,系统使机器人实现初始动作。系统可以以参考图5的框562描述的相同或相似的方式实现初始动作。
在框660处,系统确定机器人是否已经完成机器人任务的执行。系统可以(例如,使用参考图1、图2A和图2B描述的故障头部)基于使用机器人控制策略生成的输出来确定机器人是否已经完成机器人任务的执行。如果在框660的迭代处,系统确定机器人尚未完成机器人任务的执行,则系统返回到框654。然后,系统可以返回到框754以从视觉组件中的一个或多个接收捕获机器人的环境的附加视觉数据实例,并重复框654-660的剩余操作,直到机器人任务的执行完成为止。如果在框660的迭代处,系统确定机器人已经完成机器人任务的执行,则系统进行到框662。
在框662处,系统确定一个或多个条件是否被满足。一个或多个条件可以包括,例如,确定机器人控制策略比当前正在利用的机器人控制策略的实例(如果有的话)(例如,在精度和/或查全率方面)执行得更好、在未在机器人任务的执行中故障情况下实现了阈值量的机器人自主执行和/或本文描述的其他条件。如果在框662的迭代处,系统确定一个或多个条件未被满足,则系统进行到框664。在框664处,系统使机器人在半自主模式下利用机器人控制策略来细化机器人控制策略。换句话说,系统可以在自主模式下测试机器人控制策略,但是确定机器人控制策略需要被进一步细化并返回到半自主模式(例如,参考图5描述的)。如果在框662的迭代处,系统确定条件中的一个或多个被满足,则系统进行到框666。
在框666处,系统使机器人在未来机器人任务的执行中利用机器人控制策略。在一些实现方式中,机器人控制策略可以被训练、细化和用于特定机器人任务(或给定机器人任务的特定方面)。例如,系统可以训练和细化用于抓取任务的第一机器人控制策略、用于运动任务的第二机器人控制策略等。在此示例中,第一机器人控制策略和第二机器人控制策略可以用于它们各自的机器人任务的执行、或者两者都用于组合任务(例如,打开上锁的门)的执行。在其他实现方式中,单个机器人控制策略可以被训练、细化和用于多个机器人任务(或给定机器人任务的多个方面)。例如,在此示例中,系统可以训练和细化用于抓取任务、运动任务等的机器人控制策略。
现在转到图7,示意性地描绘了机器人720的示例架构。机器人720包括机器人控制系统760、一个或多个操作组件740a-740n以及一个或多个传感器742a-742m。传感器742a-742m可以包括例如视觉传感器、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等。虽然传感器742a-742m被描绘为与机器人720集成,但这并不意味着限制。在一些实现方式中,传感器742a-742m可以位于机器人720外部,例如作为独立单元。
操作组件740a-740n可以包括例如一个或多个末端执行器和/或一个或多个伺服马达或其它致动器,用于实施机器人的一个或多个组件的移动。例如,机器人720可以具有多个自由度,并且致动器中的每一个可以响应于控制命令在一个或多个自由度内控制机器人720的致动。如本文所使用的,术语致动器除了包含可以与致动器相关联并且将接收到的控制命令转换成用于驱动致动器的一个或多个信号的任意驱动器之外,还包含产生运动的机械或电气设备(例如,马达)。因此,向致动器提供控制命令可以包括向驱动器提供将控制命令转换成用于驱动电气或机械设备以产生期望运动的适当信号的控制命令。
机器人控制系统760可以在一个或多个处理器(诸如CPU、GPU和/或机器人720的其它控制器)中实现。在一些实现方式中,机器人720可以包括“脑盒”,其可以包括控制系统760的全部或方面。例如,脑盒可以向操作组件740a-740n提供数据实时突发,实时突发中的每一个包括一个或多个控制命令的集合,其特别指示一个或多个操作组件740a-740n中的每一个的运动参数(如果有的话)。在一些实现方式中,机器人控制系统760可以用于实现本文描述的动作,无论它们是基于根据本文公开的技术的工程化策略选择的动作,还是使用至少部分地基于根据本文公开的技术生成的RL兼容数据训练的RL策略模型选择的动作。
尽管控制系统760在图7中被示为机器人720的集成部分,但是在一些实现方式中,控制系统760的全部或方面可以在与机器人720分离但与机器人720通信的组件中实现。例如,控制系统760的全部或方面可以在与机器人720有线和/或无线通信的一个或多个计算设备(诸如计算设备810)上实现。
现在转到图8,描绘了可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备810的框图。计算设备810通常包括至少一个处理器814,其经由总线子系统812与多个外围设备通信。这些外围设备可以包括存储子系统824(包括例如存储器子系统825和文件存储子系统826)、用户接口输出设备820、用户接口输入设备822和网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口,并且耦合到其他计算设备中对应的接口设备。
用户接口输入设备822可以包括键盘、诸如鼠标、轨迹球、触摸板或数位板的定点设备、扫描仪、结合到显示器中的触摸屏、诸如语音辨识系统、麦克风的音频输入设备和/或其它类型的输入设备。一般地,对术语“输入设备”的使用旨在包括将信息输入到计算设备810中或通信网络上的所有可能类型的设备和方式。
用户接口输出设备820可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可视图像的一些其他机械装置。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。一般地,对术语“输出设备”的使用旨在包括将信息从计算设备810输出到用户或另一机器或计算设备的所有可能类型的设备和方式。
存储子系统824存储提供本文描述的模块中的一些或所有的功能的编程和数据结构。例如,存储子系统824可以包括用于执行图4的方法、图5的方法和/或图6的方法的所选方面的逻辑。
这些软件模块一般由处理器814单独执行或与其它处理器组合执行。存储子系统824中使用的存储器825可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机访问存储器(RAM)830和其中存储固定指令的只读存储器(ROM)832。文件存储子系统826可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动、软盘驱动以及相关联的可移动介质、CD-ROM驱动、光驱或可移动介质盒。实现某些实现的功能的模块可以由文件存储子系统826存储在存储子系统824中、或者存储在可由处理器814访问的其他机器中。
总线子系统812提供用于使计算设备810的各种组件和子系统按预期彼此通信的机制。尽管总线子系统812被示意性地示为单条总线,但是总线子系统的替代实现方式可以使用多条总线。
计算设备810可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其它数据处理系统或计算设备。由于计算机和网络不断改变的性质,对图8中描绘的计算设备810的描述仅旨在作为用于示出一些实现方式的目的的特定示例。计算设备810的多种其他配置是可能的,多种其他配置具有比图8中描绘的计算设备更多或更少的组件。
在一些实现方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,该视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;使用机器人控制策略处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列,该动作序列包括要由机器人执行以推进机器人任务的初始动作和被预测为跟随该初始动作的多个预测动作;基于使用机器人控制策略处理视觉数据实例,确定机器人是否将在机器人任务的执行中故障;以及响应于确定机器人将在机器人任务的执行中故障:使提示经由计算设备或机器人的接口显现,该提示请求计算设备的用户干预机器人任务的执行;基于该提示,从计算设备的用户接收干预机器人任务的执行的用户输入,该用户输入是经由计算设备或附加计算设备的输入设备被接收的;以及使机器人控制策略基于该用户输入被更新。
本文公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,该方法还可以包括:响应于确定机器人不在机器人动作的执行中故障,使机器人执行初始动作。该方法还可以包括,直到机器人完成机器人任务的执行为止:从机器人的视觉组件中的一个或多个接收捕获机器人的环境的附加视觉数据实例,该附加视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;使用机器人控制策略处理附加视觉数据实例以生成要由机器人在机器人任务期间执行的附加动作序列,该附加动作序列包括要由机器人执行以推进机器人任务的下一个动作和被预测为跟随该下一个动作的附加多个预测动作;以及基于使用机器人控制策略处理附加视觉数据实例,确定机器人是否将在机器人任务的执行中故障。
在这些实现方式的一些版本中,动作序列中包括的每个动作可以包括用于机器人的第一组件的对应第一值集,并且动作序列中包括的每个动作还可以包括用于机器人的第二组件的对应第二值集。
在这些实现方式的一些进一步的版本中,使机器人执行初始动作可以包括:使机器人利用对应第一值集来致动机器人的第一组件,以及使机器人利用对应第二值集来致动机器人的第二组件。在这些实现方式的更进一步的版本中,机器人的第一组件可以是以下中的一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。在这些实现方式的再进一步的版本中,机器人的第二组件可以是以下中的另外一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。
在这些实现方式的一些附加的或可替代的其它版本中,使机器人控制策略基于该用户输入被更新可以在确定机器人已经完成机器人任务的执行之后。
在一些实现方式中,使用机器人控制策略处理视觉数据实例以生成动作序列可以包括:使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第一组件的对应第一值集;以及使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第二组件的对应第二值集。在那些实现方式的一些版本中,该方法还可以包括,响应于接收到干预机器人任务的执行的用户输入:基于该用户输入,针对动作序列中包括的一个或多个动作,生成机器人应当在机器人任务的执行中利用的用于机器人的第一组件的对应替代第一值集和用于机器人的第二组件的对应替代第二值集;基于将对应第一值集与对应替代第一值集进行比较来生成第一损失;以及基于将对应第二值集与对应替代第二值集进行比较来生成第二损失。使机器人控制策略被更新可以基于第一损失和第二损失。在那些实现方式的一些进一步的版本中,第一损失可以使用第一损失函数来生成,并且第二损失可以使用不同的第二损失函数来生成。
在一些实现方式中,处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列可以包括:使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示。动作序列可以基于视觉数据实例的中间表示来生成。
在这些实现方式的一些版本中,确定机器人是否将在机器人任务的执行中故障可以包括:使用机器人控制策略的控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的一个或多个动作生成与机器人任务的执行相关联的一个或多个对应值集;以及基于该对应值集确定机器人将在机器人任务的执行中故障。
在那些实现方式的一些进一步的版本中,确定机器人将在机器人任务的执行中故障可以基于与初始动作相关联的对应值集中的一个或多个。在那些进一步的实现方式的附加的或替代的版本中,确定机器人将在机器人任务的执行中故障可以基于与跟随初始动作的多个预测动作中的一个或多个相关联的对应值集中的一个或多个。在那些进一步的实现方式的附加的或替代的版本中,与机器人任务的执行相关联的对应值集可以包括与以下中的一个或多个相关联的对应值:机器人是否将在机器人任务的执行中故障、机器人是否将继续机器人任务的执行、或者机器人是否已经完成机器人任务的执行。
在一些实现方式中,机器人可以是模拟机器人,机器人的环境可以是模拟机器人的模拟环境,并且机器人任务可以由模拟机器人在模拟环境中执行。
在一些实现方式中,机器人可以是真实机器人,机器人的环境可以是真实机器人的真实世界环境,并且机器人任务可以由真实机器人在真实世界环境中执行。
在一些实现方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,图像数据是在机器人对机器人任务的执行期间被捕获到的;使用机器人控制策略处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列,该动作序列包括要由机器人执行以推进机器人任务的初始动作和跟随该初始动作的多个预测动作;在机器人任务的执行期间,使动作序列的表示经由计算设备的图形用户界面在视觉上显现;基于该动作序列的表示,从计算设备的用户接收干预机器人任务的执行的用户输入,该用户输入是经由计算设备或附加计算设备被接收的;以及使得机器人控制策略基于该用户输入被更新。
本文公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示可以包括覆盖在视觉数据实例中捕获的机器人的环境的对应路点的序列,该对应路点中的每一个响应于动作序列中包括的给定动作被机器人执行而与机器人的一个或多个组件相关联。
在一些实现方式中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示可以包括覆盖在视觉数据实例中捕获的机器人的环境的机器人的对应状态的序列,该机器人的对应状态中的每一个响应于动作序列中包括的给定动作被机器人执行而对应于机器人的给定状态。
在一些实现方式中,使用机器人控制策略处理视觉数据实例以生成动作序列可以包括:使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第一组件的对应第一值集;以及使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第二组件的对应第二值集。
在这些实现方式的一些版本中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示可以包括动作序列中包括的每个动作的对应表示。在这些实现方式的一些其他版本中,动作序列中包括的每个动作的对应表示可以是可选择的,并且当被选择时,使用于第一组件的对应第一值集或用于第二组件的对应第二值集中的一个或多个经由计算设备的图形用户界面在视觉上显现。
在这些实现方式的一些版本中,该方法还可以包括,响应于接收到干预机器人任务的执行的用户输入:基于该用户输入,针对动作序列中包括的一个或多个动作,生成机器人应当在机器人任务的执行中利用的用于机器人的第一组件的对应替代第一值集和用于机器人的第二组件的对应替代第二值集;基于将对应第一值集与对应替代第一值集进行比较来生成第一损失;以及基于将对应第二值集与对应替代第二值集进行比较来生成第二损失。使机器人控制策略被更新可以基于第一损失和第二损失。
在一些实现方式中,该方法还可以包括:在机器人任务的执行之后,从计算设备的用户接收与在机器人任务的执行期间生成的数据相关联的附加用户输入。使机器人控制策略被更新可以进一步基于该附加用户输入。在那些实现方式的一些版本中,附加用户输入可以重新标记在机器人任务的执行期间生成的数据,并且在机器人任务的执行期间生成的数据可以使用机器人控制策略生成或者可以基于用户输入生成。
在一些实现方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,该视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对要由机器人执行以推进机器人任务的动作,生成用于机器人的组件的第一控制部分的对应第一值集;使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对该动作生成用于机器人的该组件的第二控制部分的对应第二值集;从计算设备的用户接收干预机器人任务的执行的用户输入,该用户输入是经由计算设备或附加计算设备被接收的;以及使机器人控制策略基于该用户输入被更新。
本文公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,使机器人控制策略基于该用户输入被更新可以包括:基于该用户输入并且针对该动作,生成机器人应当在机器人任务的执行中利用的对应替代第一值集和对应替代第二值集;基于将对应第一值集与对应替代第一值集进行比较并使用第一损失函数来生成第一损失;以及基于将对应第二值集与对应替代第二值集进行比较并使用第二损失函数来生成第二损失。使机器人控制策略被更新可以基于第一损失和第二损失。
在这些实现方式的一些版本中,使机器人控制策略基于第一损失和第二损失被更新可以包括:基于第一损失更新机器人控制策略的第一控制头部;以及基于第二损失更新机器人控制策略的第二控制头部。
在这些实现方式的一些版本中,该方法还可以包括:使用机器人控制策略的第三控制头部处理视觉数据实例的中间表示,以针对该动作生成用于机器人的附加组件的对应第三值集。在那些实现方式的一些版本中,使机器人控制策略基于该用户输入被更新还可以包括:基于该用户输入并且针对该动作,生成对应替代第三值集;以及基于将对应第三值集与对应替代第三值集进行比较来生成第三损失。使机器人控制策略被更新可以进一步基于第三损失。在那些实现方式的一些进一步的版本中,使机器人控制策略基于第三损失被更新可以包括基于第三损失更新机器人控制策略的第三控制头部。
在一些实现方式中,机器人的第一组件可以是以下中的一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。在这些实现方式的一些版本中,第一控制部分可以是第一组件的位置改变,并且第二控制部分可以是第一组件的取向改变。
在一些实现方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,该视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对要由机器人执行以推进机器人任务的动作,生成用于机器人的组件的第一控制部分的对应第一值集;使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对该动作生成用于机器人的该组件的第二控制部分的对应第二值集;以及使机器人执行该动作。使机器人执行该动作可以包括:使机器人在控制机器人的该组件时利用对应第一值集和对应第二值集。
本文公开的技术的这些和其它实现方式可以包括以下特征中的一个或多个。
在一些实现方式中,该方法还可以包括:使用机器人控制策略的第三控制头部处理视觉数据实例的中间表示,以针对该动作生成用于机器人的附加组件的至少一个控制部分的对应第三值集。使机器人执行该动作还可以包括:使机器人利用对应第三值集来控制机器人的第三组件。
各种实现方式可以包括存储可由一个或多个处理器(例如,中央处理单元、图形处理单元和/或张量处理单元)执行的指令的非暂时性计算机可读存储介质,以执行诸如本文描述的方法中的一个或多个的方法。其他实现方式可以包括一个或多个计算机和/或一个或多个机器人的系统,该系统包括一个或多个处理器,该一个或多个处理器可操作以执行存储的指令,从而执行诸如本文描述的方法中的一个或多个的方法。
Claims (36)
1.一种使用一个或多个处理器实现的方法,所述方法包括:
从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,所述视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;
使用机器人控制策略处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列,所述动作序列包括要由机器人执行以推进机器人任务的初始动作和被预测为跟随所述初始动作的多个预测动作;
基于使用机器人控制策略处理视觉数据实例,确定机器人是否将在机器人任务的执行中故障;以及
响应于确定机器人将在机器人任务的执行中故障:
使提示经由计算设备或机器人的界面显现,所述提示请求计算设备的用户干预机器人任务的执行;
基于所述提示,从计算设备的用户接收干预机器人任务的执行的用户输入,所述用户输入是经由计算设备或附加计算设备的输入设备被接收的;以及
使机器人控制策略基于所述用户输入被更新。
2.根据权利要求1所述的方法,还包括:
响应于确定机器人不在机器人动作的执行中故障,使机器人执行初始动作;以及
直到机器人完成机器人任务的执行为止:
从机器人的视觉组件中的一个或多个接收捕获机器人的环境的附加视觉数据实例,所述附加视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;
使用机器人控制策略处理附加视觉数据实例以生成要由机器人在机器人任务期间执行的附加动作序列,所述附加动作序列包括要由机器人执行以推进机器人任务的下一个动作和被预测为跟随所述下一个动作的附加多个预测动作;以及
基于使用机器人控制策略处理附加视觉数据实例,确定机器人是否将在机器人任务的执行中故障。
3.根据权利要求2所述的方法,其中,所述动作序列中包括的每个动作包括用于机器人的第一组件的对应第一值集,并且其中,所述动作序列中包括的每个动作还包括用于机器人的第二组件的对应第二值集。
4.根据权利要求3所述的方法,其中,使机器人执行初始动作包括:
使机器人利用对应第一值集来致动机器人的第一组件;以及
使机器人利用对应第二值集来致动机器人的第二组件。
5.根据权利要求4所述的方法,其中,所述机器人的第一组件是以下中的一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。
6.根据权利要求5所述的方法,其中,所述机器人的第二组件是以下中的另外一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。
7.根据权利要求2至6中任一项所述的方法,其中,使机器人控制策略基于所述用户输入被更新在确定机器人已经完成机器人任务的执行之后。
8.根据前述权利要求中任一项所述的方法,其中,使用机器人控制策略处理视觉数据实例以生成动作序列包括:
使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;
使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第一组件的对应第一值集;以及
使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第二组件的对应第二值集。
9.根据权利要求8所述的方法,还包括:
响应于接收到干预机器人任务的执行的用户输入:
基于所述用户输入,针对动作序列中包括的一个或多个动作,生成机器人应当在机器人任务的执行中利用的用于机器人的第一组件的对应替代第一值集和用于机器人的第二组件的对应替代第二值集;
基于将对应第一值集与对应替代第一值集进行比较,生成第一损失;
基于将对应第二值集与对应替代第二值集进行比较,生成第二损失;并且
其中,使机器人控制策略被更新是基于第一损失和第二损失的。
10.根据权利要求9所述的方法,其中,第一损失是使用第一损失函数生成的,并且其中,第二损失是使用不同的第二损失函数生成的。
11.根据前述权利要求中任一项所述的方法,其中,处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列包括:
使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示,
其中,所述动作序列是基于视觉数据实例的中间表示生成的。
12.根据权利要求11所述的方法,其中,确定机器人是否将在机器人任务的执行中故障包括:
使用机器人控制策略的控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的一个或多个动作生成与机器人任务的执行相关联的一个或多个对应值集;以及
基于所述对应值集确定机器人将在机器人任务的执行中故障。
13.根据权利要求12所述的方法,其中,确定机器人将在机器人任务的执行中故障是基于与初始动作相关联的对应值集中的一个或多个的。
14.根据权利要求12或13所述的方法,其中,确定机器人将在机器人任务的执行中故障是基于与跟随初始动作的多个预测动作中的一个或多个相关联的对应值集中的一个或多个的。
15.根据权利要求12至14中任一项所述的方法,其中,与机器人任务的执行相关联的对应值集包括与以下中的一个或多个相关联的对应值:机器人是否将在机器人任务的执行中故障、机器人是否将继续机器人任务的执行、或者机器人是否已经完成机器人任务的执行。
16.根据前述权利要求中任一项所述的方法,其中,所述机器人是模拟机器人,其中,所述机器人的环境是模拟机器人的模拟环境,并且其中,所述机器人任务由模拟机器人在模拟环境中执行。
17.根据前述权利要求中任一项所述的方法,其中,所述机器人是真实机器人,其中,所述机器人的环境是真实机器人的真实世界环境,并且其中,所述机器人任务由真实机器人在真实世界环境中执行。
18.一种使用一个或多个处理器实现的方法,所述方法包括:
从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,图像数据是在机器人对机器人任务的执行期间被捕获到的;
使用机器人控制策略处理视觉数据实例以生成要由机器人在机器人任务期间执行的动作序列,所述动作序列包括要由机器人执行以推进机器人任务的初始动作和跟随所述初始动作的多个预测动作;
在机器人任务的执行期间,使动作序列的表示经由计算设备的图形用户界面在视觉上显现;
基于动作序列的表示,从计算设备的用户接收干预机器人任务的执行的用户输入,所述用户输入是经由计算设备或附加计算设备被接收的;以及
使机器人控制策略基于所述用户输入被更新。
19.根据权利要求18所述的方法,其中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示包括覆盖在视觉数据实例中捕获的机器人的环境的对应路点的序列,所述对应路点中的每一个响应于动作序列中包括的给定动作被机器人执行而与机器人的一个或多个组件相关联。
20.根据权利要求18所述的方法,其中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示包括覆盖在视觉数据实例中捕获的机器人的环境的机器人的对应状态的序列,所述机器人的对应状态中的每一个响应于动作序列中包括的给定动作被机器人执行而对应于机器人的给定状态。
21.根据权利要求18至20中任一项所述的方法,其中,使用机器人控制策略处理视觉数据实例以生成动作序列包括:
使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;
使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第一组件的对应第一值集;以及
使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对动作序列中包括的每个动作生成用于机器人的第二组件的对应第二值集。
22.根据权利要求21所述的方法,其中,经由计算设备的图形用户界面在视觉上显现的动作序列的表示包括动作序列中包括的每个动作的对应表示。
23.根据权利要求22所述的方法,其中,所述动作序列中包括的每个动作的对应表示是可选择的,并且当被选择时,使用于第一组件的对应第一值集或用于第二组件的对应第二值集中的一个或多个经由计算设备的图形用户界面在视觉上显现。
24.根据权利要求21所述的方法,还包括:
响应于接收到干预机器人任务的执行的用户输入:
基于所述用户输入,针对动作序列中包括的一个或多个动作,生成机器人应当在机器人任务的执行中利用的用于机器人的第一组件的对应替代第一值集和用于机器人的第二组件的对应替代第二值集;
基于将对应第一值集与对应替代第一值集进行比较,生成第一损失;
基于将对应第二值集与对应替代第二值集进行比较,生成第二损失;并且
其中,使机器人控制策略被更新是基于第一损失和第二损失的。
25.根据权利要求18至24中任一项所述的方法,还包括:
在机器人任务的执行之后,从计算设备的用户接收与在机器人任务的执行期间生成的数据相关联的附加用户输入;并且
其中,使机器人控制策略被更新还基于所述附加用户输入。
26.根据权利要求25所述的方法,其中,所述附加用户输入重新标记在机器人任务的执行期间生成的数据,并且其中,在机器人任务的执行期间生成的所述数据是使用所述机器人控制策略生成的或基于所述用户输入生成的。
27.一种使用一个或多个处理器实现的方法,所述方法包括:
从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,所述视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;
使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;
使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对要由机器人执行以推进机器人任务的动作,生成用于机器人的组件的第一控制部分的对应第一值集;
使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对所述动作,生成用于机器人的所述组件的第二控制部分的对应第二值集;
从计算设备的用户接收干预机器人任务的执行的用户输入,所述用户输入是经由计算设备或附加计算设备被接收的;以及
使机器人控制策略基于所述用户输入被更新。
28.根据权利要求27所述的方法,其中,使机器人控制策略基于所述用户输入被更新包括:
基于所述用户输入并且针对所述动作,生成机器人应当在机器人任务的执行中利用的对应替代第一值集和对应替代第二值集;
基于将对应第一值集与对应替代第一值集进行比较并使用第一损失函数,生成第一损失;
基于将对应第二值集与对应替代第二值集进行比较并使用第二损失函数,生成第二损失;并且
其中,使机器人控制策略被更新是基于第一损失和第二损失的。
29.根据权利要求28所述的方法,其中,使机器人控制策略基于第一损失和第二损失被更新包括:
基于第一损失更新机器人控制策略的第一控制头部;以及
基于第二损失更新机器人控制策略的第二控制头部。
30.根据权利要求27至29中任一项所述的方法,还包括:
使用机器人控制策略的第三控制头部处理视觉数据实例的中间表示,以针对所述动作,生成用于机器人的附加组件的对应第三值集。
31.根据权利要求30所述的方法,其中,使机器人控制策略基于所述用户输入被更新还包括:
基于所述用户输入并且针对所述动作,生成对应替代第三值集;
基于将对应第三值集与对应替代第三值集进行比较,生成第三损失;并且
其中,使机器人控制策略被更新还基于第三损失。
32.根据权利要求31所述的方法,其中,使机器人控制策略基于第三损失被更新包括:
基于第三损失更新机器人控制策略的第三控制头部。
33.根据权利要求27至32中任一项所述的方法,其中,所述机器人的第一组件是以下中的一个:机器人臂、机器人末端执行器、机器人基座或机器人头部。
34.根据权利要求33所述的方法,其中,第一控制部分是第一组件的位置改变,并且其中,第二控制部分是第一组件的取向改变。
35.一种使用一个或多个处理器实现的方法,所述方法包括:
从机器人的一个或多个视觉组件接收捕获机器人的环境的视觉数据实例,所述视觉数据实例是在机器人对机器人任务的执行期间被捕获到的;
使用机器人控制策略的中间部分处理视觉数据实例以生成视觉数据实例的中间表示;
使用机器人控制策略的第一控制头部处理视觉数据实例的中间表示,以针对要由机器人执行以推进机器人任务的动作,生成用于机器人的组件的第一控制部分的对应第一值集;
使用机器人控制策略的第二控制头部处理视觉数据实例的中间表示,以针对所述动作生成用于机器人的所述组件的第二控制部分的对应第二值集;以及
使机器人执行所述动作,其中,使机器人执行所述动作包括:
使机器人利用对应第一值集和对应第二值集来控制机器人的所述组件。
36.根据权利要求35所述的方法,还包括:
使用机器人控制策略的第三控制头部处理视觉数据实例的中间表示,以针对所述动作生成用于机器人的附加组件的至少一个控制部分的对应第三值集,
其中,使机器人执行所述动作还包括:
使机器人利用对应第三值集来控制机器人的第三组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410774880.1A CN118528271A (zh) | 2021-03-16 | 2022-02-04 | 在训练机器人控制策略中使用模仿学习的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/203,296 US11772272B2 (en) | 2021-03-16 | 2021-03-16 | System(s) and method(s) of using imitation learning in training and refining robotic control policies |
US17/203,296 | 2021-03-16 | ||
PCT/US2022/015252 WO2022197386A1 (en) | 2021-03-16 | 2022-02-04 | System(s) and method(s) of using imitation learning in training and refining robotic control policies |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410774880.1A Division CN118528271A (zh) | 2021-03-16 | 2022-02-04 | 在训练机器人控制策略中使用模仿学习的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117295589A true CN117295589A (zh) | 2023-12-26 |
CN117295589B CN117295589B (zh) | 2024-06-25 |
Family
ID=80786650
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410774880.1A Pending CN118528271A (zh) | 2021-03-16 | 2022-02-04 | 在训练机器人控制策略中使用模仿学习的系统和方法 |
CN202280033988.4A Active CN117295589B (zh) | 2021-03-16 | 2022-02-04 | 在训练和细化机器人控制策略中使用模仿学习的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410774880.1A Pending CN118528271A (zh) | 2021-03-16 | 2022-02-04 | 在训练机器人控制策略中使用模仿学习的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11772272B2 (zh) |
EP (1) | EP4301557A1 (zh) |
CN (2) | CN118528271A (zh) |
WO (1) | WO2022197386A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN117336337A (zh) * | 2021-04-15 | 2024-01-02 | 本田技研工业株式会社 | 远程操作系统与方法以及存储介质 |
EP4102405A1 (en) * | 2021-06-10 | 2022-12-14 | Naver Corporation | Demonstration-conditioned reinforcement learning for few-shot imitation |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103203753A (zh) * | 2012-01-12 | 2013-07-17 | 三星电子株式会社 | 用于识别和处理异常情况的机器人和方法 |
CN104802174A (zh) * | 2013-10-10 | 2015-07-29 | 精工爱普生株式会社 | 机器人控制系统、机器人、程序以及机器人控制方法 |
US20180319015A1 (en) * | 2014-10-02 | 2018-11-08 | Brain Corporation | Apparatus and methods for hierarchical training of robots |
US20190152054A1 (en) * | 2017-11-20 | 2019-05-23 | Kabushiki Kaisha Yaskawa Denki | Gripping system with machine learning |
CN110769985A (zh) * | 2017-12-05 | 2020-02-07 | 谷歌有限责任公司 | 使用循环神经网络的机器人末端执行器的视点不变的视觉伺服 |
US20200086483A1 (en) * | 2018-09-15 | 2020-03-19 | X Development Llc | Action prediction networks for robotic grasping |
CN111300431A (zh) * | 2020-03-31 | 2020-06-19 | 山东大学 | 面向跨场景的机器人视觉模仿学习方法及系统 |
WO2020142498A1 (en) * | 2018-12-31 | 2020-07-09 | Abb Schweiz Ag | Robot having visual memory |
WO2020154542A1 (en) * | 2019-01-23 | 2020-07-30 | Google Llc | Efficient adaption of robot control policy for new task using meta-learning based on meta-imitation learning and meta-reinforcement learning |
US20210023711A1 (en) * | 2019-07-26 | 2021-01-28 | Google Llc | Efficient robot control based on inputs from remote client devices |
CN112313044A (zh) * | 2018-06-15 | 2021-02-02 | 谷歌有限责任公司 | 用于机器人操纵的深度强化学习 |
WO2021034303A1 (en) * | 2019-08-16 | 2021-02-25 | Third Wave Automation, Inc. | Continual proactive learning for autonomous robot agents |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11014231B2 (en) * | 2018-05-03 | 2021-05-25 | Fujitsu Limited | Robotic device task learning |
US20210125068A1 (en) * | 2019-10-28 | 2021-04-29 | MakinaRocks Co., Ltd. | Method for training neural network |
US11472025B2 (en) * | 2020-05-21 | 2022-10-18 | Intrinsic Innovation Llc | Robotic demonstration learning device |
WO2022086157A1 (ko) * | 2020-10-20 | 2022-04-28 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
US20220288787A1 (en) * | 2021-03-12 | 2022-09-15 | Dexterity, Inc. | Multi-pallet mixed-case robotic palletizer |
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 |
-
2021
- 2021-03-16 US US17/203,296 patent/US11772272B2/en active Active
-
2022
- 2022-02-04 EP EP22705328.7A patent/EP4301557A1/en active Pending
- 2022-02-04 WO PCT/US2022/015252 patent/WO2022197386A1/en active Application Filing
- 2022-02-04 CN CN202410774880.1A patent/CN118528271A/zh active Pending
- 2022-02-04 CN CN202280033988.4A patent/CN117295589B/zh active Active
-
2023
- 2023-08-11 US US18/233,251 patent/US20230381970A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103203753A (zh) * | 2012-01-12 | 2013-07-17 | 三星电子株式会社 | 用于识别和处理异常情况的机器人和方法 |
CN104802174A (zh) * | 2013-10-10 | 2015-07-29 | 精工爱普生株式会社 | 机器人控制系统、机器人、程序以及机器人控制方法 |
US20180319015A1 (en) * | 2014-10-02 | 2018-11-08 | Brain Corporation | Apparatus and methods for hierarchical training of robots |
US20190152054A1 (en) * | 2017-11-20 | 2019-05-23 | Kabushiki Kaisha Yaskawa Denki | Gripping system with machine learning |
US20200114506A1 (en) * | 2017-12-05 | 2020-04-16 | Google Llc | Viewpoint invariant visual servoing of robot end effector using recurrent neural network |
CN110769985A (zh) * | 2017-12-05 | 2020-02-07 | 谷歌有限责任公司 | 使用循环神经网络的机器人末端执行器的视点不变的视觉伺服 |
CN112313044A (zh) * | 2018-06-15 | 2021-02-02 | 谷歌有限责任公司 | 用于机器人操纵的深度强化学习 |
US20200086483A1 (en) * | 2018-09-15 | 2020-03-19 | X Development Llc | Action prediction networks for robotic grasping |
WO2020142498A1 (en) * | 2018-12-31 | 2020-07-09 | Abb Schweiz Ag | Robot having visual memory |
WO2020154542A1 (en) * | 2019-01-23 | 2020-07-30 | Google Llc | Efficient adaption of robot control policy for new task using meta-learning based on meta-imitation learning and meta-reinforcement learning |
US20210023711A1 (en) * | 2019-07-26 | 2021-01-28 | Google Llc | Efficient robot control based on inputs from remote client devices |
WO2021034303A1 (en) * | 2019-08-16 | 2021-02-25 | Third Wave Automation, Inc. | Continual proactive learning for autonomous robot agents |
CN111300431A (zh) * | 2020-03-31 | 2020-06-19 | 山东大学 | 面向跨场景的机器人视觉模仿学习方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4301557A1 (en) | 2024-01-10 |
US11772272B2 (en) | 2023-10-03 |
CN117295589B (zh) | 2024-06-25 |
US20220297303A1 (en) | 2022-09-22 |
WO2022197386A1 (en) | 2022-09-22 |
CN118528271A (zh) | 2024-08-23 |
US20230381970A1 (en) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6586532B2 (ja) | ロボットの把持のための深層機械学習方法および装置 | |
CN117295589B (zh) | 在训练和细化机器人控制策略中使用模仿学习的系统和方法 | |
EP3693138B1 (en) | Robotic grasping prediction using neural networks and geometry aware object representation | |
CN110769985B (zh) | 使用循环神经网络的机器人末端执行器的视点不变的视觉伺服 | |
JP6586243B2 (ja) | ロボットの把持のための深層機械学習方法および装置 | |
US11972339B2 (en) | Controlling a robot based on free-form natural language input | |
US11823048B1 (en) | Generating simulated training examples for training of machine learning model used for robot control | |
JP2013193202A (ja) | 人間援助型タスクデモンストレーションを使用してロボットを訓練するための方法およびシステム | |
CN114516060A (zh) | 用于控制机器人装置的设备和方法 | |
CN112135716A (zh) | 数据高效的分层强化学习 | |
WO2020069379A1 (en) | Training a deep neural network model to generate rich object-centric embeddings of robotic vision data | |
WO2020180697A1 (en) | Robotic manipulation using domain-invariant 3d representations predicted from 2.5d vision data | |
US12061481B2 (en) | Robot navigation using a high-level policy model and a trained low-level policy model | |
US20240100693A1 (en) | Using embeddings, generated using robot action models, in controlling robot to perform robotic task | |
US20220245503A1 (en) | Training a policy model for a robotic task, using reinforcement learning and utilizing data that is based on episodes, of the robotic task, guided by an engineered policy | |
US11921492B2 (en) | Transfer between tasks in different domains | |
US20240094736A1 (en) | Robot navigation in dependence on gesture(s) of human(s) in environment with robot | |
US11610153B1 (en) | Generating reinforcement learning data that is compatible with reinforcement learning for a robotic task | |
JP7581320B2 (ja) | ロボット装置からの視覚的出力を補強するシステム及び方法 | |
WO2024182721A1 (en) | Using scene understanding to generate context guidance in robotic task execution planning | |
WO2024059285A1 (en) | System(s) and method(s) of using behavioral cloning value approximation in training and refining robotic control policies | |
CN118809616A (zh) | 一种机器人的运动规划方法、装置、机器人及存储介质 | |
JP2022542241A (ja) | ロボット装置からの視覚的出力を補強するシステム及び方法 |
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 |