CN117863185A - 以高保真度模拟和高速低保真度模拟进行训练 - Google Patents
以高保真度模拟和高速低保真度模拟进行训练 Download PDFInfo
- Publication number
- CN117863185A CN117863185A CN202410125997.7A CN202410125997A CN117863185A CN 117863185 A CN117863185 A CN 117863185A CN 202410125997 A CN202410125997 A CN 202410125997A CN 117863185 A CN117863185 A CN 117863185A
- Authority
- CN
- China
- Prior art keywords
- robot
- training
- training data
- simulation
- fidelity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 370
- 238000004088 simulation Methods 0.000 title claims abstract description 307
- 238000011217 control strategy Methods 0.000 claims abstract description 140
- 238000000034 method Methods 0.000 claims description 50
- 230000009471 action Effects 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 12
- 238000009877 rendering Methods 0.000 claims description 12
- 230000002787 reinforcement Effects 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 230000006872 improvement Effects 0.000 claims description 6
- 239000012780 transparent material Substances 0.000 claims description 3
- 239000012636 effector Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 239000000463 material Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003137 locomotive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 238000003466 welding 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/1602—Programme controls characterised by the control system, structure, architecture
-
- 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/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/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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- 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/1679—Programme controls characterised by the tasks executed
-
- 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/40499—Reinforcement learning algorithm
-
- 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/40515—Integration of simulation and planning
-
- 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/40518—Motion and task planning
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
提供了用于训练用于控制机器人的机器人控制策略的实施方式。在第一训练阶段期间,使用第一组训练数据训练机器人控制策略,第一组训练数据包括(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据,其中第二保真度大于第一保真度。当满足用于开始第二训练阶段的一个或多个标准时,使用第二组训练数据进一步训练机器人控制策略,所述第二组训练数据还包括基于机器人在第一保真度模拟和第二保真度模拟中的模拟操作生成的训练数据,所述第一保真度模拟和第二保真度模拟之间的比率低于第一组训练数据中的比率。
Description
背景技术
训练机器人控制策略以使机器人能够自主地导航通过环境,包括与在那些环境中感知的对象交互(例如,触摸、接合、操作、躲避等)。这些机器人控制策略通常采用机器学习模型的形式,诸如强化学习策略。训练机器人控制策略可能是昂贵且耗时的。虽然可以使用模仿学习(IL)来引导机器人控制策略,但是仍然需要经由机器人活动的无数训练情节来进一步训练机器人控制策略。
通过在至少部分训练期间在模拟环境中模拟机器人的行为,可以稍微减轻训练机器人控制策略所需的资源。然而,在训练期间准确地模拟机器人在模拟环境中的行为仍然可能需要大量资源。例如,准确地模拟环境可能涉及几个计算量很大的组件,诸如物理模拟、在环境中渲染详细资源等。因此,在模拟环境中模拟机器人可能消耗大量计算资源,从而增加训练机器人控制策略所需的时间和/或计算能力。由于训练通常涉及在模拟环境中模拟机器人的非常大量的迭代,因此训练机器人控制策略所需的资源(例如,训练所花费的时间)可以显著扩展。
发明内容
本文描述了用于使用高速、低保真度模拟和高保真度模拟训练机器人控制策略的实施方式。机器人控制策略最初可以用从低保真度模拟生成的比从高保真度模拟生成的更大量的训练数据来训练,使得可以学习通用策略。随着机器人控制策略的学习减慢(或满足其他标准),可以在离散步骤中增加基于高保真模拟生成的训练数据的比率,使得可以学习更精细的细节。例如,最初,机器人控制策略可以被训练成其中基于低保真度模拟生成100%的训练数据。当确定机器人控制策略的训练已经减慢时,训练可以转变,使得机器人控制策略被训练成其中95%的训练数据基于低保真度模拟生成并且5%的训练数据基于高保真度模拟生成。该过程可以重复,直到机器人控制策略被训练成其中基于高保真模拟生成多达100%的训练数据。在一些实施方式中,训练可以进一步转变为涉及真实世界训练数据,例如,以离散步骤增加的量,类似于关于基于高保真模拟生成的训练数据所描述的。
本文描述的技术产生各种技术优点和益处。例如,与以较高保真度模拟环境相比,以较低保真度模拟物理或真实世界环境消耗较少的计算资源(例如,计算时间、消耗的能量、计算能力等)。模拟的保真度可以指示模拟真实世界的准确程度,其中较低的保真度意味着较低的准确度。这样,通过使用用于训练机器人控制策略的低保真度模拟来生成至少一些训练数据,可以节省计算资源(例如,与完全利用基于高保真度模拟生成的训练数据来训练机器人控制策略相比)。另外,由于可以更快地训练机器人控制策略,因此可以减少用于开发机器人的工程周期时间。此外,由于还利用基于高保真模拟生成的训练数据(或者甚至利用基于真实世界环境/操作生成的训练数据)来训练机器人控制策略,因此训练的机器人控制策略的性能基本上不会受到不利影响。
另外,虽然理论上可以基于保真度级别递增的多个模拟(例如,而不仅仅是高保真度模拟和低保真度模拟)来生成训练数据,但是这样做不能实现各种潜在的益处。例如,可以基于各种不同的参数来确定给定模拟的保真度。因此,确定哪些参数在训练期间影响机器人控制策略的学习,并且因此确定哪些参数应该被修改以在进一步训练期间改变模拟的保真度可能并不是微不足道的。利用两个(或更多个)离散保真度级别进行模拟(例如,最快和最准确),并且在训练期间以相同的方式处理基于两个离散保真度级别生成的训练数据,需要较少的配置编码并简化机器人控制策略的训练。
机器人控制策略通常被配置用于选择要由与物理或真实世界环境交互的机器人执行的动作,以执行机器人任务,诸如开门、拾取对象并将其放下等。特别地,机器人控制策略可以被配置为接收观察(即,表征环境状态的数据)作为输入,并且处理观察以生成指示由机器人响应于观察而执行的可能动作的概率分布的输出。然后,机器人可以处理动作(例如,利用机器人控制栈)以实现动作。
如本文所讨论的,模拟可以用于训练阶段,使得基于模拟环境生成提供给机器人控制策略的观察,并且模拟在由模拟机器人执行的动作之前、期间和之后的环境状态。因此,可以基于所选择的动作是否导致给定机器人任务的执行(例如,基于所得到的模拟状态)来训练机器人控制策略。例如,可以在大量迭代上使用强化学习(RL)来训练机器人控制策略,使用高保真度模拟和低保真度模拟,使得当机器人控制策略选择导致执行给定机器人任务的动作时,使用奖励来训练机器人控制策略。
如本文所讨论的,可以使用基于高保真度模拟和低保真度模拟生成的训练数据来训练机器人控制策略。基于低保真度模拟生成的训练数据与基于高保真度模拟生成的训练数据的比例(或比率)最初可以被重加权以有利于低保真度模拟(例如,100%低保真度模拟、0%高保真度模拟)。当满足一个或多个标准时,训练可以转换到第二阶段(例如,第二批训练示例),使得基于高保真模拟生成的训练数据的比例可以较少地加权以有利于低保真模拟(例如,95%低保真模拟、5%高保真模拟)。该过程可以重复,直到例如完全基于高保真模拟生成训练数据。
在训练的每个阶段(例如,一批训练示例)期间,训练数据的相对比例(或比率)可以通过针对每个训练实例基于根据给定阶段的预定概率分布(例如,95%低保真度模拟、5%高保真度模拟)随机选择是使用高保真度模拟还是低保真度模拟来生成训练数据来施加。例如,遵循上述示例,在第二阶段中,概率分布可以使得低保真度模拟将在95%的时间被选择,并且高保真度模拟将在100%的时间被选择。
用于在阶段之间转换的标准可以包括例如确定机器人控制策略的学习在当前阶段期间已经减慢。例如,假设使用强化学习(RL)来训练机器人控制策略,则当奖励函数随时间的斜率从先前平均值向下偏离至少阈值量时,可以确定转换到训练的下一阶段。
模拟的保真度可以指示所述模拟模拟真实世界的准确程度。换句话说,相对于低保真度模拟,高保真度模拟可以更准确地模拟真实世界。例如,相对于高保真度模拟,可以以较低分辨率渲染低保真度模拟,使得由模拟机器人捕获的传感器数据(例如,模拟环境的图像)具有较低分辨率。在一些实施方式中,可以以比机器人的传感器的预期分辨率更低的分辨率渲染低保真度模拟。这样,传感器数据可以被升级以匹配机器人的传感器的预期分辨率。作为另一示例,低保真度模拟的资产可以用比高保真度模拟更简单的几何形状(例如,具有更少多边形的资产)来渲染;可以简化或绕过阴影、透明度、明暗和/或反射的渲染等。
附加地或替代地,低保真度模拟可以包括相对粗略的物理模拟。例如,可以绕过软体动力学的模拟。附加地或替代地,可以以比高保真模拟低的频率对低保真度模拟进行采样,使得被确定的模拟环境的状态之间的时间间隔对于低保真度模拟比对于高保真模拟更大。在一些实施方式中,在渲染模拟之前,可以基于修改(例如,简化)来自高保真度模拟的资产来生成低保真度模拟。在一些附加或替代性实施方式中,可以基于修改提供低保真度模拟的模拟器的一个或多个参数(例如,物理质量、渲染质量、采样频率等)来生成低保真度模拟。
在各种实施方式中,一种方法可以使用一个或多个处理器来实施,并且可以包括:在训练用于控制机器人的机器人控制策略的第一阶段期间:基于第一组训练数据训练机器人控制策略,其中第一组训练数据包括(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据,其中第二保真度大于第一保真度;以及确定满足用于开始训练机器人控制策略的第二阶段的一个或多个标准;在训练所述机器人控制策略的所述第二阶段期间:基于第二组训练数据训练所述机器人控制策略,其中所述第二组训练数据包括(i)基于所述机器人在所述第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据,其中,在所述第二组训练数据中,基于所述机器人在所述第一保真度模拟中的模拟操作而生成的训练数据与基于所述机器人在所述第二保真度模拟中的模拟操作而生成的训练数据的比率低于在所述第一组训练数据中的比率。
在各种实施方式中,该方法可以包括在训练机器人控制策略之后,使机器人控制策略被部署在控制机器人中。在各种实施方式中,可以在多个训练阶段训练机器人控制策略,其中在每个后续训练阶段期间,利用一组训练数据训练机器人控制策略,该组训练数据具有比在先前训练阶段中更低的基于在第一保真度模拟中的机器人的模拟操作生成的训练数据与基于在第二保真度模拟中的机器人的模拟操作生成的训练数据的比率。
在各种实施方式中,用于开始训练机器人控制策略的第二阶段的一个或多个标准可以包括确定来自利用第一组训练数据的训练的机器人控制策略的改进已经偏离到阈值以下。
在各种实施方式中,该方法可以包括:在训练机器人控制策略的第三阶段期间:基于第三组训练数据训练机器人控制策略,其中第三组训练数据包括(i)基于使用机器人控制策略的机器人的真实世界操作生成的训练数据,以及(ii)基于在第二保真度模拟中机器人的模拟操作生成的训练数据。
在各种实施方式中,该方法可以包括:对于第一组训练数据的每个训练情节:基于对应于第一组训练数据的预定义比率的概率分布来选择第二保真度模拟或第一保真度模拟;基于具有第二保真度模拟或第一保真度模拟中的所选择的一个的机器人的模拟操作来生成用于训练情节的训练数据,并且对于第二组训练数据中的每个训练情节:基于与第二组训练数据的预定比率相对应的概率分布来选择第二保真度模拟或第一保真度模拟;以及基于所述机器人在所述第二保真度模拟或所述第一保真度模拟中的所选择的一个保真度模拟中的模拟操作来生成用于所述情节的训练数据。
在各种实施方式中,生成训练数据可以包括基于机器人控制策略使机器人执行一个或多个动作,以便进一步完成任务。在各种实施方式中,训练机器人控制策略可以包括基于根据一个或多个动作是否导致促进任务完成而确定的奖励或惩罚来执行强化学习以训练机器人控制策略。
在各种实施方式中,训练数据可以包括以下中的一个或多个:由机器人的一个或多个传感器捕获的传感器数据,以及指示机器人和/或环境的状态的状态信息。在各种实施方式中,可基于修改第二保真度模拟的一或多个资产而产生第一保真度模拟。
在各种实施方式中,可以基于修改被配置为渲染环境的模拟的渲染器和/或被配置为模拟环境的模拟的模拟器的一个或多个参数来生成第一保真度模拟。
在各种实施方式中,第一保真度模拟可以以比第二保真度模拟低的分辨率渲染。基于第一保真度模拟生成训练数据可以包括:以第一保真度模拟的低分辨率捕获传感器数据;以及将传感器数据升级到机器人控制策略预期的分辨率。
在各种实施方式中,可以利用比第二保真度模拟粗糙的物理模拟来模拟第一保真度模拟,和/或以比第二保真度模拟低的频率对第一保真度模拟进行采样。在各种实施方式中,所述产生所述第一保真度模拟可包含绕过以下各项中的一或多者的渲染:明暗、阴影、透明材料和反射。
其他实施方式可以包括存储指令的非暂时性计算机可读存储介质,所述指令可由处理器执行以执行诸如上述方法中的一个或多个的方法。又一实施方式可以包括控制系统,该控制系统包括存储器和一个或多个处理器,该一个或多个处理器可操作以执行存储在存储器中的指令,以实现一个或多个模块或引擎,该一个或多个模块或引擎单独地或共同地执行诸如上述方法中的一个或多个的方法。
应当理解,前述概念和本文更详细描述的附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1A示意性地描绘了根据各种实施方式的可以采用所公开的技术的示例环境。
图1B描绘了根据各种实施方式的示例机器人。
图2示意性地描绘了根据各种实施方式的训练模仿机器人控制栈模型的示例。
图3示意性地描绘了根据各种实施方式的训练机器人控制策略的示例。
图4A描绘了用于实践本公开的选定方面的训练机器人控制策略的示例方法。
图4B描绘了生成用于训练图4A中的机器人控制策略的第一和第二组训练数据的示例方法。
图5示意性地描绘了计算机系统的示例架构。
具体实施方式
图1A是可以根据各种实施方式实践本公开的所选方面的示例环境100的示意图。如图1A所示,环境100可以包括机器人10和用于训练机器人10的一个或多个机器人控制策略(例如,机器学习模型)的模拟系统13。模拟系统13可以经由一个或多个网络15与机器人10通信,或者访问机器人控制策略12和/或一个或多个数据库11。一个或多个网络130可以包括例如一个或多个有线或无线局域网(“LAN”,包括Wi-Fi LAN、网状网络、蓝牙、近场通信等)或广域网(“WAN”,包括互联网)。机器人10可以采取各种形式,包括但不限于远程临场机器人(例如,可以简单到配备有显示器和相机的轮式车辆)、机器人臂、诸如“机器人狗”的多踏板机器人、水上机器人、轮式设备、潜水车辆、无人驾驶飞行器(“UAV”)等。图1B中描绘了移动机器人臂的一个非限制性示例。
在各种实施方式中,机器人10可以包括逻辑102,其中逻辑102可以采取各种形式,诸如实时控制器、一个或多个处理器、一个或多个现场可编程门阵列(“FPGA”)、一个或多个专用集成电路(“ASIC”)等。在一些实施方式中,逻辑102可以与存储器103可操作地耦合,其中存储器103可以采取各种形式,诸如随机存取存储器(“RAM”)、动态RAM(“DRAM”)、只读存储器(“ROM”)、磁阻RAM(“MRAM”)、电阻RAM(“RRAM”)、NAND闪存等。在一些实施方式中,存储器103可以存储一个或多个训练的机器人控制策略。在一些实施方式中,逻辑102和存储器103可以被包括在机器人10的机器人控制器中,或者可以形成机器人10的机器人控制器。
在一些实施方式中,逻辑102可以经由一个或多个总线110与一个或多个关节104-1至104-n、一个或多个末端执行器106和/或一个或多个传感器108-1至108-m可操作地耦合(注意,“m”和“n”分别是大于或等于1的正整数)。一个或多个关节104-1至104-n可以采用致动器、电机(例如,伺服电机)、轴、齿轮系、泵(例如,空气或液体)、活塞、驱动器、螺旋桨、襟翼、转子或产生和/或经历推进、旋转和/或运动的其他组件的形式。在一些实施方式中,一个或多个关节104-1至104-n可以是可独立控制的。在一些其他实施方式中,一个或多个关节104-1至104-n或其一部分可以是同时可控的。在一些情况下,机器人10具有的关节越多,机器人10可以具有的移动自由度越多。
一个或多个末端执行器106可以采取可以由机器人10操作以便完成各种任务的各种工具的形式。例如,机器人10可以配备有第一末端执行器,该第一末端执行器采用具有两个相对的“手指”或“手指”的爪的形式,其中这种爪是一种类型的“夹持器”,称为“冲击式”夹持器。爪还可以是其他类型的夹持器,包括但不限于:“侵入式”夹持器,其例如使用销、针等物理地穿透对象,“收缩式”夹持器,其例如使用吸力或真空来拾取对象,或者“接触式”夹持器,其例如通过表面张力、冷冻或粘附来拾取对象。代替夹持器,第一末端执行器或来自一个或多个末端执行器106的其他末端执行器可以是其他类型,包括但不限于:钻头、刷子、力-扭矩传感器、切割工具、去毛刺工具、焊炬、容器、托盘等。
在一些实施方式中,末端执行器106中的一个或多个可以是可移除的,并且各种类型的模块化末端执行器可以安装到机器人10上,这取决于环境。在机器人10是不能配备有末端执行器的远程临场机器人的一些实施方式中,机器人10可以包括用于呈现控制机器人10的用户的视觉表示的(一个或多个)显示器,并且可选地还可以包括促进机器人10像用户一样“起作用”的(一个或多个)扬声器和/或(一个或多个)麦克风。
一个或多个传感器108-1至108-m可以采用各种形式,包括但不限于3D激光扫描仪(例如,光检测和测距或“LIDAR”)或被配置为提供深度测量的其他3D视觉传感器(例如,用于执行立体视觉测距的立体相机)、二维相机(例如,RGB、红外)、光传感器(例如,被动红外)、力传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器(也称为“距离传感器”)、深度传感器、扭矩传感器、条形码读取器、射频识别(“RFID”)读取器、雷达、测距仪、加速度计、陀螺仪、指南针、位置坐标传感器(例如,全球定位系统或“GPS”)、速度计、边缘检测器、盖革计数器等。虽然传感器108-1至1081-m被描绘为与机器人10集成,但这并不意味着限制。
在一些实施方式中,模拟系统13可以包括一个或多个计算设备以执行本公开的一个或多个方面。在图5中示意性地描绘了这种计算设备的示例。在一些实施方式中,模拟系统13可以包括形成通常被称为“云”基础设施或简称为“云”的基础设施的一部分的一个或多个服务器。
各种模块或引擎可以作为模拟系统13的一部分实现为软件、硬件或两者的任何组合。例如,参考图1A,模拟系统13可以包括模拟引擎136,模拟引擎136使用虚拟机器人(例如,具有对应于物理传感器108-1至108-m中的一个或多个的一个或多个虚拟传感器)来模拟机器人10,和/或使用虚拟机器人101的对应虚拟环境来模拟机器人10的物理环境。可替代地或另外地,模拟系统13可以包括显示器132,经由显示器132渲染/显示图形用户界面(“GUI”)135。在这种情况下,用户可以与GUI 135交互以触发和/或控制模拟系统13的各方面,例如,以控制配置虚拟机器人和虚拟环境的模拟引擎136。
在各种实施方式中,虚拟环境可以包括可以由与机器人10的物理传感器108-1至108-m中的一个或多个相对应的一个或多个虚拟传感器观察到的一个或多个虚拟对象。例如,模拟引擎136可以被配置为模拟包括多个虚拟对象的3D环境,其中多个虚拟对象可以包括例如机器人10要避开和/或穿过的障碍物,机器人10要拾取、放置或以其他方式操纵的物品,和/或其操作可以或不能被模拟的其他机器人。注意,虚拟环境可以但不一定需要可视地呈现(例如,在显示器132上)。在许多情况下,可以配置虚拟环境(在本文中也称为“模拟环境”),而不在显示器上提供任何视觉表示作为输出。
在一些实施方式中,基于使用例如指示真实世界姿势或模拟姿势的信息确定的姿势信息,模拟引擎136可以进行模拟以在模拟环境中提供对应的虚拟传感器。模拟引擎136还可以被配置为提供从在模拟空间中配置的虚拟传感器中的至少一个的视角生成的传感器数据。作为示例,假设虚拟视觉传感器指向虚拟环境中的特定虚拟对象。模拟引擎136可以生成和/或提供模拟视觉传感器数据,该模拟视觉传感器数据描绘了从虚拟环境中的虚拟视觉传感器的视角看起来的特定虚拟对象。
替代地或附加地,模拟系统13可以包括模拟框架134,其中模拟框架134可以被配置为模拟机器人10的一个或多个特定组件的操作。例如,模拟框架134可以处理涉及控制机器人10的电机控制器的低级命令。低级命令可以例如包括要发送到电机控制器的信号,其中该信号可以使电机控制器执行特定操作(例如,顺时针旋转10度)。基于低级命令和/或信号,模拟框架134可以模拟电机控制器的操作。在各种实施方式中,使用模拟框架134对机器人10的(一个或多个)组件的模拟可以考虑相应组件的现实生活约束。例如,在上述电机控制器的情况下,模拟框架134可以考虑电机控制器被配置为控制的相应电机的最大转速。限制可以是例如被模拟的特定组件的物理限制,或者可以是例如出于安全原因的强制限制。
在各种实施方式中,模拟引擎136可以被配置为基于使用模拟框架134对机器人10的特定组件的模拟来模拟机器人10的物理移动。例如,对于机器人10的给定组件,模拟引擎136可以基于给定组件在第一时间的初始位置来确定给定组件在第一时间之后的第二时间在空间中的位置。可选地,可以以特定间隔(例如,每0.1秒、每1秒等)确定机器人10的给定组件(或其他组件)的位置。在一些实施方式中,可以基于与机器人10的物理环境相关联的建模物理参数(例如,重力、摩擦、空气阻力、拉伸强度等)来确定给定组件在第二时间的位置。模拟引擎136可以包括用于该目的的物理渲染引擎(未示出)。例如,还可以基于机器人10是否与上述虚拟对象交互来模拟虚拟环境中的一个或多个虚拟对象的位置和特性。
可替代地或另外地,模拟系统13可以包括已经被适当且充分地训练的模仿机器人控制栈模型138。模仿机器人控制栈模型138可用于模仿机器人10的机器人控制栈。机器人控制栈可以例如在机器人10的真实世界操作期间由机器人10的前述机器人控制器执行,以响应于高级命令(例如,将末端执行器移动到X、Y、Z),生成低级命令(例如,控制关节1移动A度,控制关节2移动B度等)以实现高级命令。高级命令可以由机器人10基于例如由机器人控制策略输出的一个或多个动作来确定,该机器人控制策略也可以由机器人控制器执行。类似地,在模拟期间,可以应用模仿机器人控制栈模型138来处理高级命令(和/或状态数据)以生成低级命令。然后,模拟框架134可以使用低级命令来模拟机器人10的一个或多个组件的行为。在一些实施方式中,可以训练模仿机器人控制栈138,使得其可以用于模仿模拟框架134的输出(例如,指示机器人10的一个或多个组件的模拟操作的参数)和/或模拟引擎136或其一部分的输出(例如,每个组件在第二时间的位置信息)。
在一些实施方式中,模仿机器人控制栈模型138可以用于模拟可以应用于训练机器人控制策略12的操作,其中在被充分训练之后,机器人控制策略12可以被部署到机器人10以控制机器人10的操作。在一些实施方式中,模仿机器人控制栈模型138的模拟操作可以存储在一个或多个数据库11中。作为非限制性示例,一个或多个数据库11可以包括存储由模仿机器人控制栈模型138进行的具有第一保真度级别的模拟的第一数据库,以及存储第二保真度级别的模拟的第二数据库。
图1B描绘了机器臂形式的机器人10的非限制性示例。如图1B所示,机器人10可以包括末端执行器106和多个关节(例如,第一关节104-1、第二关节104-2、第三关节104-3、第四关节104-4、第五关节104-5和第六关节104-6)。末端执行器106可以是夹持爪的形式,并且可移除地附接到机器人10的第六关节104-6。在该非限制性示例中,指示了六个关节104-1至104-6。然而,这并不意味着限制,并且机器人可以具有任何数量的关节。在一些实施方式中,机器人10可以是移动的,例如,通过包括带轮底座165或其他机车机构。机器人10虽然在图1B中以特定的选定配置(即,特定的“姿势”)被描绘,但是可以具有彼此不同的多个姿势。在一些实施方式中,机器人10可以具有一个或多个传感器(未示出,其可以包括但不限于:视觉传感器、运动传感器、接近传感器、热传感器等)。
图2示意性地描绘了训练模仿机器人控制栈模型240的示例。图2中的模仿机器人控制栈模型240可以共享各种特性和/或对应于图1A所示的模仿机器人控制栈模型138。模仿机器人控制栈模型240的训练可以涉及将模仿机器人控制栈模型240的行为与指示机器人控制栈230的行为的多个训练示例进行比较。训练示例可以通过观察机器人控制栈230的行为来生成,其中机器人控制栈230可以是例如被配置为在真实世界机器人(诸如机器人10或其他适用的机器人)上使用的完整或部分机器人控制栈。
如图2所示,指示机器人(例如,机器人10)的当前状态和包含机器人的环境的状态信息210以及与状态信息210相关联的高级命令220可以作为一对输入数据提供给机器人控制栈230。状态信息210可以基于例如传感器数据和/或机器人状态和环境的先验知识。例如,状态信息210可以指示机器人的当前姿势。作为附加的非限制性示例,状态信息可以包括描绘机器人的环境的2D或3D图像,可以指示机器人是否靠近障碍物(例如,使得机器人可以与诸如墙壁的障碍物接触),或者可以指示机器人当前是否与对象交互(例如,握住一张纸)。在一些实施方式中,状态信息210可以基于机器人10的先前真实世界操作生成、基于机器人10的模拟操作生成、由另一计算设备生成(例如,利用用户输入)等。类似地,高级命令220可以基于机器人10的先前真实世界操作生成、基于机器人10的模拟操作生成、由另一计算设备生成(例如,利用用户输入)等。
基于处理状态信息210和高级命令220,机器人控制栈230可以提供一个或多个低级命令231作为输出数据。可以提供低级命令231以由机器人10实现高级命令220。低级命令231可以在机器人10的真实世界操作和/或机器人10的模拟操作期间生成。
输入数据对(即,状态信息210和高级命令220)和对应的输出数据(即,低级命令231)可以用于形成训练示例。训练示例可以存储在数据库中以供稍后使用,或者可以直接用于评估模仿机器人控制栈模型240的性能,如下所述。如上所述,训练示例可以基于机器人10的真实世界操作和/或机器人10的模拟操作。
在一些实施方式中,模拟系统13可以使用例如基于机器人10的当前状态和对应于当前状态的环境生成的低级命令231来预测指示机器人10的下一状态和对应于下一状态的环境的信息。在一些其他实施方式中,在机器人10的先前真实世界操作期间,可以例如基于传感器数据接收指示下一状态(和/或相关联的环境)的信息。这样,代替低级命令231或除了低级命令231之外,训练示例可以包括指示机器人10的下一状态(和/或相关联的环境)的信息。
在各种实施方式中,除了上述输入数据对之外,还可以获取附加的输入数据对(例如,使用一个或多个传感器),其中每对附加输入数据对可以包括:(1)指示机器人的相应状态的状态信息和与机器人的相应状态相关联的环境,以及(2)对应的高级命令。可以使用机器人控制栈230来处理上述输入数据对和附加输入数据对中的每一对,以输出一个或多个对应的低级命令作为对应的输出数据。在这些实施方式中,可以生成多个训练示例,每个训练示例包括:输入数据对(即,状态信息和对应的高级命令)和对应的输出数据(即,一个或多个对应的低级命令)。可选地,在这些实施方式中,代替对应的输出数据或除了对应的输出数据之外,多个训练示例可以各自包括指示机器人的下一状态的传感器数据(例如,由一个或多个真实世界传感器收集的),该下一状态是立即从机器人的相应状态转换的,和/或指示当机器人处于下一状态时机器人的环境的传感器数据(例如,由一个或多个真实世界传感器收集的)。
在一些实施方式中,可以从存储的多个训练示例中选择多个训练示例,以训练模仿机器人控制栈模型240。多个训练示例可以包括从机器人10的真实世界操作、机器人10的模拟操作或其组合生成的训练示例。尽管通常参考从机器人10的操作生成训练示例,但是应当理解,训练示例可以附加地或替代地从其他真实和/或模拟机器人(包括例如不同模型的机器人)中检索。
类似于机器人控制栈230,模仿机器人控制栈模型240可以基于处理状态信息210和高级命令220来生成一个或多个预测或推断的低级命令241。状态信息210和高级命令220可以例如从特定训练示例中检索。模仿机器人控制栈模型240可以是以任何合适的方式训练的任何合适架构的机器学习模型。例如,模仿机器人控制栈模型240可以是使用监督、无监督和/或强化学习训练的神经网络。当模仿机器人控制栈模型240被充分训练时,由模仿机器人控制栈模型240输出的一个或多个预测或推断的低级命令241应当近似于由机器人控制栈230响应于相同的输入状态信息210和高级命令220输出的一个或多个低级命令231(也可以被称为“基本事实”低级命令)。在模仿机器人控制栈模型240的训练期间,一个或多个预测的低级命令241与一个或多个“基本事实(ground truth)”低级命令231之间的任何差异可以用作误差(例如,惩罚)以训练模仿机器人控制栈模型240,例如,使用诸如随机梯度下降和/或反向传播的技术。
在一些实施方式中,由模仿机器人控制栈模型240输出的一个或多个低级命令241可以用于生成指示机器人10和环境的下一状态的信息。例如,如图2所示,模拟系统13可以使用一个或多个低级命令241来预测指示机器人10和环境的下一状态的信息。预测指示机器人10和环境的下一状态的信息可以包括例如基于一个或多个低级命令241模拟机器人10的操作,以及对环境产生的影响(例如,如果对象已经移动)。以这种方式,可以执行与包括指示下一状态的信息(例如,真实世界传感器数据)的训练示例的比较。
在一些实施方式中,可以训练模仿机器人控制栈模型240以近似指示下一状态的信息。在这些实施方式中,模仿机器人控制栈模型240可以直接提供指示下一状态的信息,而不是提供可以由模拟系统13使用以提供指示下一状态的信息的一个或多个低级命令241。以这种方式,不需要执行模拟系统13的各个方面,这节省了时间和计算资源。
可以在评估阶段250中基于训练示例与模仿机器人控制栈模型240的对应行为的比较来评估模仿控制栈模型240的性能。例如,给定相同的状态信息210和高级命令220,模拟机器人控制栈模型240的输出(例如,预测的低级命令241、指示由模拟系统13基于预测的低级命令241生成的下一状态的信息、指示由模拟机器人控制栈模型240基于预测的低级命令241直接预测的下一状态的信息等)。并且可以比较来自机器人控制栈的输出(例如,低级命令231、指示由模拟系统13基于低级命令231生成的下一状态的信息、指示通过使用机器人控制栈模型230处理低级命令231直接生成的下一状态的信息等)。特别地,可以确定相应的输出是否在相似性的阈值水平内。类似地,可以确定相应的输出是否大于差值的阈值水平。然后可以使用这种比较的结果来训练模仿机器人控制栈模型240,其中如前所述,训练技术可以包括随机梯度下降、反向传播等。
在一些实施方式中,可以使用强化学习来训练模仿机器人控制栈模型240。这样,当模仿机器人控制栈模型240的输出在对应训练示例的输出数据的阈值相似性内时(即,具有相同的输入数据),可以确定奖励用作训练模仿机器人控制栈模型240的反馈。在其他实施方式中,可以基于模仿机器人控制栈240的输出与相应训练示例(即,具有相同的输入数据)的输出之间的误差或差值来训练模仿机器人控制栈240,例如,使用诸如随机梯度下降、反向传播等技术。在一些实施方式中,训练的类型可以取决于模仿机器人控制栈240将在其中操作的上下文,例如,专门针对导航训练的栈与专门针对机器人臂控制训练的栈。
在一些实施方式中,机器人10可以包括由机器人控制栈230控制的多个组件(例如,如图1B所示)。在这种情况下,可以训练模仿机器人控制栈模型240以预测用于根据高级命令220控制机器人10的多个组件的子集的一个或多个低级命令241。例如,被选择用于训练模仿机器人控制栈模型240的训练示例可以排他地(或主要地)与机器人10的多个组件的子集相关。作为示例,训练示例可以排他地(或主要地)与机器人10经由带轮底座165的运动相关,并且因此可以关于带轮底座165训练模仿机器人控制栈模型240。
附加地或替代地,可以训练模仿机器人控制栈模型240以输出关于组件子集的一个或多个低级命令241,并且模仿机器人控制栈模型240的行为的评估250可以与组件子集相关。在一些实施方式中,可以存在多个模仿机器人控制栈模型240,每个模仿机器人控制栈模型240被训练为提供相应的低级命令241以控制多个组件的对应子集。在一些实施方式中,可以存在单个接口,其允许多个模仿机器人控制栈模型240用于控制机器人10的多个组件的操作。以这种方式,由于特定的模仿机器人控制栈模型240仅涉及机器人10的组件的对应子集,因此训练可以需要更少的资源。另外,根据机器人10被模拟的特定应用,可能不需要模拟机器人10的所有组件。这样,提供可以用于模拟机器人10关于相关组件的操作的模拟机器人控制栈模型240可以简化模拟,从而消耗更少的资源。
在如上所述被训练之后,可以应用模仿机器人控制栈240(或其他适当训练的模仿机器人控制栈)来模拟机器人的(一个或多个)操作。基于模拟操作,可以为机器人10训练机器人控制策略。图3示意性地描绘了根据各种实施方式的训练机器人控制策略330的示例。
参考图3,在训练期间,机器人控制策略330可以处理:由机器人(例如,图1B中的机器人10)执行的任务310;以及对应的状态信息320,以确定一个或多个动作340,以便完成任务310。任务310可以基于例如来自用户的用户输入。作为非限制性示例,任务310可以是或可以包括行进到特定位置、开门、拾取对象等。类似于图2中的状态信息210,状态信息320可以基于模拟传感器数据或真实世界传感器数据,其指示机器人10的对应状态(模拟或真实世界)和包含处于对应状态的机器人10的环境(模拟或真实世界)。
在各种实施方式中,机器人控制策略330可以是或可以包括例如机器学习模型(例如,神经网络)。这样,机器人控制策略330(例如,神经网络)可以用于处理作为输入的任务310和状态信息320,以生成机器人10的动作空间上的概率分布作为输出。基于输出(即,生成的概率分布),可以选择来自动作空间的动作作为由机器人(例如,机器人10)执行以完成任务310的上述一个或多个动作340(也可以称为“下一个动作”)。在一些实施方式中,可以模拟由机器人控制策略330输出的一个或多个动作340,以例如使用上述模拟系统13来确定机器人10和环境的下一状态350。例如,一个或多个动作340可以用于确定一个或多个高级命令220,其可以被馈送到机器人控制栈230中和/或使用经训练的模仿机器人控制栈模型240来处理,以预测下一状态350。
在一些实施方式中,可以使用强化学习来训练机器人控制策略330。在这些实施方式中,如果确定由机器人控制栈230和/或经训练的模仿机器人控制栈模型138基于一个或多个动作340预测的下一状态350使得任务310的完成在评估阶段360进行,则可以为该进展授予对应的奖励。如果确定由机器人控制栈230和/或经训练的模仿机器人控制栈模型138基于一个或多个动作340预测的下一状态350使得任务310的完成在评估阶段360处没有进展,则可以为没有进展分配对应的惩罚。这样的确定可以例如由评估器模型执行,该评估器模型被训练为基于任务310的完成是否被认为是进行的来确定训练机器人控制策略330的反馈。
在各种实施方式中,机器人控制策略330的训练可以涉及使用训练的模仿机器人控制栈模型138来确定下一状态350,而不使用机器人控制栈230或模拟系统13。如上所述,使用经训练的模仿机器人控制栈模型138的处理可以比使用机器人控制栈230和/或模拟系统13的等效处理需要更少的资源(例如,时间、计算资源等)。这样,以这种方式,可以以相对低的成本训练机器人控制策略330。在被训练之后,机器人控制策略330可以被部署在控制诸如机器人10的机器人中。
在各种实施方式中,可以使用分成两组的训练数据来训练机器人控制策略330,其中每个组包括基于两个不同保真度级别中的对应保真度级别的模拟而生成的训练数据。两个不同的保真度级别可以包括例如(1)第一保真度模拟(例如,高速、低保真度模拟),以及(2)第二保真度模拟(例如,高保真度模拟),其中第二保真度大于第一保真度。
模拟的保真度可以指示模拟模拟真实世界的准确程度。换句话说,相对于高速、低保真度模拟,高保真度模拟可以更准确地模拟真实世界。例如,相对于高保真模拟,可以以较低的分辨率渲染低保真模拟,使得由模拟机器人捕获的传感器数据(例如,模拟环境的图像)具有较低的分辨率。在一些实施方式中,可以以比机器人的传感器的预期分辨率更低的分辨率渲染低保真度模拟。这样,传感器数据可以被放大以匹配机器人的传感器的预期分辨率。作为另一示例,低保真度模拟的资产可以用比高保真度模拟更简单的几何形状(例如,具有更少多边形的资产)来渲染;可以简化或绕过阴影、透明度、明暗和/或反射的渲染;等。
附加地或替代地,低保真度模拟可以包括相对较粗略的物理模拟。例如,可以绕过软体动力学的模拟。附加地或替代地,可以以比高保真模拟低的频率对低保真度模拟进行采样,使得被确定的模拟环境的状态之间的时间间隔对于低保真度模拟比对于高保真模拟更大。在一些实施方式中,在渲染模拟之前,可以基于修改(例如,简化)来自高保真度模拟的资产来生成低保真度模拟。在一些附加或替代实施方式中,可以基于修改提供低保真度模拟的模拟器的一个或多个参数(例如,物理质量、渲染质量、采样频率等)来生成低保真度模拟。
因此,在一些实施方式中,基于修改第二保真度模拟的一或多个资产而产生第一保真度模拟。在一些实施方式中,基于修改被配置为渲染环境的模拟的渲染器和/或被配置为模拟环境的模拟的模拟器的一个或多个参数来生成第一保真度模拟。在一些实施方式中,以比第二保真度模拟低的分辨率渲染第一保真度模拟,并且基于第一保真度模拟生成训练数据可以包括:以第一保真度模拟的较低分辨率捕获传感器数据;以及将传感器数据升级到机器人控制策略预期的分辨率。在一些实施方式中,利用比第二保真度模拟粗糙的物理模拟来模拟第一保真度模拟,和/或利用比第二保真度模拟低的频率对第一保真度模拟进行采样。在一些实施方式中,生成第一保真度模拟可以包括绕过以下中的一个或多个的渲染:明暗、阴影、透明材料和反射。
用于机器人(例如,机器人10)的机器人控制策略330的训练可以被划分为多个训练阶段。多个训练阶段可以包括例如第一训练阶段(可以简称为“第一阶段”)和第二训练阶段(可以简称为“第二阶段”)。在第一阶段期间,可以在没有中断的情况下基于第一组(例如,一批)训练数据来训练机器人控制策略330,以生成通用策略。第一组训练数据可以包括:(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据。在这样的第一组训练数据中,基于机器人在第一保真度模拟中的模拟操作生成的训练数据和基于机器人在第二保真度模拟中的模拟操作生成的训练数据可以具有第一比率(相对高的比率,例如1:3),并且可以一起混洗以形成离散的一批训练数据。
可以使用第一组训练数据来训练机器人控制策略330,直到满足开始第二阶段的一个或多个标准。在一些实施方式中,用于开始训练机器人控制策略330的第二阶段的一个或多个标准可以包括确定来自利用第一组训练数据的训练的机器人控制策略330的改进已经偏离到第一阈值以下。例如,一个或多个标准可以包括确定机器人控制策略的学习在当前阶段期间已经减慢。在这种情况下,假设使用RL训练机器人控制策略,则可以响应于奖励函数随时间的斜率从先前平均值向下偏离至少阈值量而开始第二阶段训练。
在第二阶段期间,可以基于第二组训练数据训练机器人控制策略330以生成更精细的策略。第二组训练数据可以包括:(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据。基于所述机器人在所述第一保真度模拟中的模拟操作生成的所述训练数据和基于所述机器人在所述第二保真度模拟中的模拟操作生成的所述训练数据可以一起混洗成离散的一批训练数据,所述离散的一批训练数据具有第一保真度训练数据与第二保真度训练数据的第二比率(相对低的比率,例如1:7)。第二比率低于上述第一比率。
可选地,在一些实施方式中,多个训练阶段还可以包括第三训练阶段(“第三阶段”)。当满足用于开始第三阶段的一个或多个标准时,可以使用第三组训练数据来训练机器人控制策略330。用于开始训练机器人控制策略330的第二阶段的一个或多个标准可以包括确定来自利用第二组训练数据的训练的机器人控制策略330的改进已经偏离到小于第一阈值的第二阈值以下。在第三阶段期间,可以基于第三组训练数据来训练机器人控制策略330。第三组训练数据可以包括以第三比率(例如,1:9)混洗在一起成为离散批次的:(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据。第三比率可以低于第二比率。
在一些实施方式中,第一组训练数据可以包括第一多个训练情节(例如,场景),每个训练情节包括基于对应的保真度模拟(第一保真度模拟或第二保真度模拟)生成的训练数据。可以在第一阶段期间使用第一多个训练情节来训练机器人控制策略330。对于第一多个训练情节中的每一个,可以基于第一组训练数据中的第一保真度训练数据与第二保真度训练数据的预定义比率来随机选择第一保真度模拟或第二保真度模拟。可以基于具有所选择的第二保真度模拟或第一保真度模拟的机器人的模拟操作来生成用于相应训练情节的训练数据。
类似地,第二组训练数据可以包括第二多个训练情节,每个训练情节包括基于对应的保真度模拟(第一保真度模拟或第二保真度模拟)生成的训练数据。可以在第二阶段期间使用第二多个训练情节来训练机器人控制策略330。对于第二多个训练情节中的每一个,可以基于第二组训练数据中第一保真度训练数据与第二保真度训练数据的预定义比率来选择第一保真度模拟或第二保真度模拟,并且可以基于具有所选择的第二保真度模拟或第一保真度模拟的机器人的模拟操作来生成相应训练情节的训练数据。
在一些实施方式中,生成训练数据包括基于机器人控制策略使机器人执行一个或多个动作,以便进一步完成任务。在一些实施方式中,训练机器人控制策略包括基于根据一个或多个动作是否导致促进任务的完成而确定的奖励或惩罚来执行强化学习以训练机器人控制策略。
在一些实施方式中,训练数据包括以下中的一个或多个:由机器人的一个或多个传感器捕获的传感器数据,以及指示机器人和/或环境的状态的状态信息。
图4A描绘了用于实践本公开的选定方面的训练机器人控制策略的示例方法,并且图4B描绘了用于训练图4A中的机器人控制策略的训练数据。为了方便起见,参考执行操作的系统来描述图4A中的流程图的操作。该系统可以包括各种计算机系统的各种组件。例如,一些操作可以在机器人10处执行,而其他操作可以由模拟系统13的一个或多个组件执行。此外,虽然以特定顺序示出了方法400的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
参考图4A,在框401处,系统可以在第一训练阶段期间基于第一组或第一批训练数据训练用于控制机器人的机器人控制策略。第一组训练数据可以包括,一起混洗成离散批次的:(i)基于第一保真度模拟中机器人的模拟操作生成的训练数据(例如,从图4B中的第一数据库D1检索,其包括基于第一保真度的模拟操作生成的训练数据41),以及(ii)基于第二保真度模拟中机器人的模拟操作生成的训练数据(例如,从图4B中的第二数据库D2检索的,其包括基于第二保真度的模拟操作生成的训练数据43)。第二保真度可以大于第一保真度。在第一组训练数据中,基于所述机器人在所述第一保真度模拟中的模拟操作生成的所述训练数据和基于所述机器人在所述第二保真度模拟中的模拟操作生成的所述训练数据可以具有等于R1的第一比率。
在一些实施方式中,参考图4B,第一组训练数据(“第1组训练数据”)可以包括以比率R1从训练数据41和训练数据43混洗在一起的第一多个训练情节,以训练机器人控制策略。第一多个训练情节中的每个训练情节可以包括基于第一保真度模拟和第二保真度模拟中的一个生成的训练数据。作为仅用于说明目的的非限制性示例,第一多个训练情节可以包括:可以基于第一保真度模拟生成第一训练情节41-1,可以基于第一保真度模拟生成第二训练情节41-2,...,并且可以基于第二保真度模拟生成第n训练情节43-1。在该示例中,第一训练情节41-1、第二训练情节41-2、…和第n训练情节43-1可以被混洗以形成单批训练数据来训练机器人控制策略,而不中断。
在框403处,系统可以确定是否满足开始第二训练阶段的一个或多个标准。在一些实施方式中,用于开始训练机器人控制策略的第二阶段的一个或多个标准包括确定来自利用第一组训练数据的训练的机器人控制策略的改进已经偏离到阈值以下。
在框405处,响应于确定满足用于开始第二训练阶段的一个或多个标准,系统基于第二组训练数据来训练机器人控制策略。第二组训练数据可以包括一起混洗成离散的一批训练数据的:(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据(例如,图4B中的训练数据41),以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据(例如,图4B中的训练数据43)。第二组训练数据中的训练数据41和训练数据43可以具有等于R2的第一比率,其中R2小于R1。
在一些实施方式中,第二组训练数据(“第2组训练数据”)可以包括以第二比率R2从训练数据41和训练数据43混洗在一起的第二多个训练情节,进一步以更精细的方式训练机器人控制策略。第二多个训练情节中的每个训练情节可以包括基于第一保真度模拟和第二保真度模拟中的一个生成的训练数据。作为非限制性示例,参考图4B,第二多个训练情节可以包括:可以基于第一保真度模拟生成第一训练情节41-f,可以基于第二保真度模拟生成第二训练情节43-2,...,并且可以基于第二保真度模拟生成第n训练情节43-p。
可选地,在框407处,系统可以基于附加训练数据组进一步训练机器人控制策略,其中每个附加组可以包括(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据(例如,图4B中的检索训练数据41),以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据(例如,图4B中的训练数据43)。然而,来自(一个或多个)附加训练数据组的每两个不同的训练数据组可以具有基于第一保真度模拟中的机器人的模拟操作生成的训练数据与基于第一保真度模拟中的机器人的模拟操作生成的训练数据之间的不同比率。
例如,系统可以进一步确定是否满足开始第三训练阶段的一个或多个标准。在这种情况下,用于开始训练机器人控制策略的第二阶段的一个或多个标准包括确定来自利用第一组训练数据的训练的机器人控制策略的改进已经偏离到阈值以下。响应于确定满足用于开始第三训练阶段的一个或多个标准,系统基于第三组训练数据来训练机器人控制策略。第三组训练数据可以包括混洗在一起的离散批次的:(i)基于机器人在第一保真度模拟中的模拟操作生成的训练数据(例如,图4B中的训练数据41),以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的训练数据(例如,图4B中的训练数据43)。第三组训练数据中的训练数据41和训练数据43可以具有等于R3的第三比率,其中R3<R2<R1。
可选地,系统可以使经训练的机器人控制策略部署在控制机器人中。在一些实施方式中,机器人可包含多个组件。例如,机器人的多个组件可以包括:一个或多个关节、一个或多个末端执行器和/或一个或多个传感器。在部署到机器人之后,可以应用训练的机器人控制策略来控制机器人的多个组件中的一个或多个。
图5是示例计算机系统510的框图。计算机系统510通常包括至少一个处理器514,其经由总线子系统512与多个外围设备通信。这些外围设备可以包括存储子系统524(包括例如存储器子系统525和文件存储子系统526)、用户接口输出设备520、用户接口输入设备522和网络接口子系统516。输入和输出设备允许用户与计算机系统510交互。网络接口子系统516提供到外部网络的接口,并且耦合到其他计算机系统中的对应接口设备。
用户接口输入设备522可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板之类的定点设备、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统、麦克风之类的音频输入设备和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算机系统510中或通信网络上的所有可能类型的设备和方式。
用户接口输出设备520可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括从计算机系统510向用户或另一机器或计算机系统输出信息的所有可能类型的设备和方式。
存储子系统524存储提供本文描述的一些或所有模块的功能的程序和数据结构。例如,存储子系统524可以包括执行方法400的选定方面和/或实现机器人10或模拟系统13的一个或多个方面的逻辑。存储子系统524中使用的存储器525可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)530和存储固定指令的只读存储器(ROM)532。文件存储子系统526可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、CD-ROM驱动器、光盘驱动器或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统526存储在存储子系统524中,或者存储在处理器514可访问的其他机器中。
总线子系统512提供用于使计算机系统510的各种组件和子系统按预期彼此通信的机制。尽管总线子系统512被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算机系统510可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器场(server farm)、智能电话、智能手表、智能眼镜、机顶盒、平板计算机、膝上型计算机或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图5中描绘的计算机系统510的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算机系统510的许多其他配置可能具有比图5中描绘的计算机系统更多或更少的组件。
虽然本文已经描述和示出了若干实施方式,但是可以利用用于执行功能和/或获得本文描述的结果和/或一个或多个优点的各种其他装置和/或结构,并且这些变化和/或修改中的每一个被认为是在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的一个或多个具体应用。本领域技术人员仅使用常规实验就将认识到或能够确定本文所述的具体实施方式的许多等同物。因此,应当理解,前述实施方式仅作为示例呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体描述和要求保护的方式来实践实施方式。本公开的实施方式涉及本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这样的特征、系统、制品、材料、套件和/或方法不相互矛盾,则两个或更多个这样的特征、系统、制品、材料、套件和/或方法的任何组合包括在本公开的范围内。
Claims (20)
1.一种使用一个或多个处理器实现的方法,包括:
在训练用于控制机器人的机器人控制策略的第一阶段期间:
基于第一组训练数据来训练所述机器人控制策略,其中所述第一组训练数据包括(i)基于所述机器人在第一保真度模拟中的模拟操作而生成的训练数据,以及(ii)基于所述机器人在第二保真度模拟中的模拟操作而生成的训练数据,其中所述第二保真度大于所述第一保真度;以及
确定满足用于开始训练机器人控制策略的第二阶段的一个或多个标准;
在训练机器人控制策略的第二阶段期间:
基于第二组训练数据训练所述机器人控制策略,其中所述第二组训练数据包括(i)基于所述机器人在所述第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据,其中,在所述第二组训练数据中,基于所述机器人在所述第一保真度模拟中的模拟操作而生成的训练数据与基于所述机器人在所述第二保真度模拟中的模拟操作而生成的训练数据的比率低于在所述第一组训练数据中的比率。
2.根据权利要求1所述的方法,还包括:在训练所述机器人控制策略之后,使所述机器人控制策略被部署在控制机器人中。
3.根据权利要求1所述的方法,其中,在多个训练阶段训练所述机器人控制策略,其中,在每个后续训练阶段期间,利用一组训练数据训练所述机器人控制策略,所述一组训练数据具有比在先前训练阶段中更低的基于所述机器人在所述第一保真度模拟中的模拟操作生成的训练数据与基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据的比率。
4.根据权利要求1所述的方法,其中,用于开始训练所述机器人控制策略的所述第二阶段的所述一个或多个标准包括确定来自利用所述第一组训练数据的训练的所述机器人控制策略的改进已经偏离到阈值以下。
5.根据权利要求1所述的方法,还包括:
在训练所述机器人控制策略的第三阶段期间:
基于第三组训练数据训练所述机器人控制策略,其中所述第三组训练数据包括:(i)基于使用所述机器人控制策略的机器人的真实世界操作生成的训练数据,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据。
6.根据权利要求1所述的方法,还包括:
对于所述第一组训练数据的每个训练情节:
基于对应于所述第一组训练数据的预定义比率的概率分布来选择所述第二保真度模拟或所述第一保真度模拟;
基于具有所述第二保真度模拟或所述第一保真度模拟中的所选择的一个的所述机器人的模拟操作,生成用于所述训练情节的训练数据,以及
对于所述第二组训练数据的每个训练情节:
基于对应于所述第二组训练数据的预定义比率的概率分布来选择所述第二保真度模拟或所述第一保真度模拟;以及
基于所述机器人在所述第二保真度模拟或所述第一保真度模拟中的所选择的一个保真度模拟中的模拟操作来生成用于所述情节的训练数据。
7.根据权利要求1所述的方法,其中,生成所述训练数据包括使得所述机器人基于所述机器人控制策略执行一个或多个动作,以便进一步完成任务。
8.根据权利要求7所述的方法,其中训练所述机器人控制策略包括基于根据所述一个或多个动作是否导致促进所述任务的完成而确定的奖励或惩罚来执行强化学习以训练所述机器人控制策略。
9.根据权利要求1所述的方法,其中,所述训练数据包括以下中的一个或多个:由所述机器人的一个或多个传感器捕获的传感器数据,以及指示所述机器人和/或所述环境的状态的状态信息。
10.根据权利要求1所述的方法,其中基于修改所述第二保真度模拟的一或多个资产而产生所述第一保真度模拟。
11.根据权利要求1所述的方法,其中,基于修改被配置为渲染所述环境的模拟的渲染器和/或被配置为模拟所述环境的模拟的模拟器的一个或多个参数来生成所述第一保真度模拟。
12.根据权利要求1所述的方法,其中,所述第一保真度模拟以比所述第二保真度模拟低的分辨率渲染,并且基于所述第一保真度模拟生成训练数据包括:
以所述第一保真度模拟的所述低分辨率捕获传感器数据;以及
将所述传感器数据升级到所述机器人控制策略所预期的分辨率。
13.根据权利要求1所述的方法,其中,利用比所述第二保真度模拟粗糙的物理模拟来模拟所述第一保真度模拟,和/或利用比所述第二保真度模拟低的频率对所述第一保真度模拟进行采样。
14.根据权利要求1所述的方法,其中,所述生成所述第一保真度模拟包括绕过以下中的一个或多个的渲染:明暗、阴影、透明材料和反射。
15.一种系统,包括一个或多个处理器和存储指令的存储器,所述指令响应于由所述一个或多个处理器执行而使所述一个或多个处理器:
在训练用于控制机器人的机器人控制策略的第一阶段期间:
基于第一组训练数据来训练所述机器人控制策略,其中所述第一组训练数据包括(i)基于所述机器人在第一保真度模拟中的模拟操作而生成的训练数据,以及(ii)基于所述机器人在第二保真度模拟中的模拟操作而生成的训练数据,其中所述第二保真度大于所述第一保真度;
确定满足用于开始训练机器人控制策略的第二阶段的一个或多个标准;以及
在训练机器人控制策略的第二阶段期间:
基于第二组训练数据训练所述机器人控制策略,其中所述第二组训练数据包括(i)基于所述机器人在所述第一保真度模拟中的模拟操作生成的训练数据,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据,其中,在所述第二组训练数据中,基于所述机器人在所述第一保真度模拟中的模拟操作而生成的训练数据与基于所述机器人在所述第二保真度模拟中的模拟操作而生成的训练数据的比率低于在所述第一组训练数据中的比率。
16.根据权利要求15所述的系统,其中,所述指令还使得所述一个或多个处理器:
确定满足用于开始训练机器人控制策略的第三阶段的一个或多个标准;以及
在训练机器人控制策略的第三阶段期间:
基于第三组训练数据训练所述机器人控制策略,其中所述第三组训练数据包括(i)基于使用所述机器人控制策略的机器人的真实世界操作生成的训练数据,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的训练数据,其中在所述第三组训练数据中基于所述机器人在所述第一保真度模拟中的模拟操作而生成的训练数据与基于所述机器人在所述第二保真度模拟中的模拟操作而生成的训练数据的比率低于在所述第二组训练数据中的比率。
17.根据权利要求15所述的系统,其中基于修改所述第二保真度模拟的一或多个资产而产生所述第一保真度模拟。
18.根据权利要求15所述的系统,其中所述第一保真度模拟是基于修改经配置以渲染所述环境的所述模拟的渲染器和/或经配置以模拟所述环境的所述模拟的模拟器的一或多个参数而产生。
19.根据权利要求15所述的系统,其中,基于所述第一组训练数据训练所述机器人控制策略包括:
使用强化学习来训练所述机器人控制策略。
20.一种使用一个或多个处理器实现的方法,所述方法包括:
基于第一组训练情节训练机器人控制策略,其中第一组训练情节包括(i)基于机器人在第一保真度模拟中的模拟操作生成的第一数量的训练情节,以及(ii)基于机器人在第二保真度模拟中的模拟操作生成的第二数量的训练情节,其中第二保真度大于第一保真度,并且其中第一数量和第二数量之间的比例是第一比率;
确定是否使用第二组训练情节训练来训练机器人控制策略;以及
响应于确定使用第二组训练情节训练机器人控制策略:
基于所述第二组训练情节训练所述机器人控制策略,其中所述第二组训练情节包括(i)基于所述机器人在所述第一保真度模拟中的模拟操作生成的第三数量的训练情节,以及(ii)基于所述机器人在所述第二保真度模拟中的模拟操作生成的第四数量的训练情节,其中所述第三数量和所述第四数量之间的比率低于所述第一比率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/104,001 | 2023-01-31 | ||
US18/104,001 US20240253215A1 (en) | 2023-01-31 | 2023-01-31 | Training with high fidelity simulations and high speed low fidelity simulations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117863185A true CN117863185A (zh) | 2024-04-12 |
Family
ID=89771986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410125997.7A Pending CN117863185A (zh) | 2023-01-31 | 2024-01-30 | 以高保真度模拟和高速低保真度模拟进行训练 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240253215A1 (zh) |
EP (1) | EP4410499A1 (zh) |
CN (1) | CN117863185A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10828775B2 (en) * | 2017-09-26 | 2020-11-10 | Siemens Aktiengesellschaft | Method and system for automatic robot control policy generation via CAD-based deep inverse reinforcement learning |
US11461519B2 (en) * | 2019-06-24 | 2022-10-04 | Nanyang Technological University | Machine learning techniques for estimating mechanical properties of materials |
US11562174B2 (en) * | 2020-05-15 | 2023-01-24 | Microsoft Technology Licensing, Llc | Multi-fidelity simulated data for machine learning |
-
2023
- 2023-01-31 US US18/104,001 patent/US20240253215A1/en active Pending
-
2024
- 2024-01-30 EP EP24154840.3A patent/EP4410499A1/en active Pending
- 2024-01-30 CN CN202410125997.7A patent/CN117863185A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240253215A1 (en) | 2024-08-01 |
EP4410499A1 (en) | 2024-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11724398B2 (en) | Efficient robot control based on inputs from remote client devices | |
US20240131695A1 (en) | Deep reinforcement learning for robotic manipulation | |
US20240017405A1 (en) | Viewpoint invariant visual servoing of robot end effector using recurrent neural network | |
JP6586532B2 (ja) | ロボットの把持のための深層機械学習方法および装置 | |
US10303180B1 (en) | Generating and utilizing non-uniform volume measures for voxels in robotics applications | |
CN112135716B (zh) | 数据高效的分层强化学习 | |
CN112136141A (zh) | 基于自由形式自然语言输入控制机器人 | |
US12079308B1 (en) | Mitigating reality gap through modification of simulated state data of robotic simulator | |
US20240033904A1 (en) | Simulating multiple robots in virtual environments | |
CN112512755A (zh) | 使用从2.5d视觉数据预测的域不变3d表示的机器人操纵 | |
US20230381970A1 (en) | System(s) and method(s) of using imitation learning in training and refining robotic control policies | |
CA3203956A1 (en) | Pixelwise predictions for grasp generation | |
US20240190004A1 (en) | Simulation driven robotic control of real robot(s) | |
US20220288782A1 (en) | Controlling multiple simulated robots with a single robot controller | |
EP4410499A1 (en) | Training with high fidelity simulations and high speed low fidelity simulations | |
US11938638B2 (en) | Simulation driven robotic control of real robot(s) | |
US11654550B1 (en) | Single iteration, multiple permutation robot simulation | |
US11845190B1 (en) | Injecting noise into robot simulation | |
Jalil et al. | Goal-seeking Navigation based on Multi-Agent Reinforcement Learning Approach |
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 |