在训练和细化机器人控制策略中使用模仿学习的系统和方法与流程

文档序号:36521056发布日期:2023-12-29 18:53阅读:28来源:国知局
在训练和细化机器人控制策略中使用模仿学习的系统和方法与流程


背景技术:

1、已经提出了各种技术来使机器人能够执行各种真实世界任务。例如,一些技术采用模仿学习(imitation learning)来训练用于控制机器人执行这些任务的机器人控制策略。在模仿学习中,这些机器人控制策略最初可以基于来自这些任务的多个人演示的数据来训练。例如,人可以物理上操纵给定的机器人或其末端执行器(end effector),以使给定的机器人或末端执行器的参考点穿越特定轨迹,并且该特定的穿越的轨迹此后可通过使用基于人的物理操纵训练的机器人控制策略来重复。此外,例如,人可以使用一种或多种遥操作技术来控制给定的机器人或其末端执行器执行给定的任务,并且给定的任务此后可通过使用基于一种或多种遥操作技术训练的机器人控制策略来重复。

2、尽管给定的机器人利用基于这些任务的多个人演示训练的机器人控制策略,但是给定的机器人仍然可能无法执行这些任务。例如,机器人控制策略可能不够鲁棒以在各种情况下实现机器人任务的无故障执行。因此,可能需要基于人反馈来细化经训练的机器人控制策略。一种用于细化经训练的机器人控制策略的技术是数据集聚合(datasetaggregation,dagger)。在dagger中,给定的机器人可以使用给定的机器人控制策略来执行给定的任务,并且人可以被随机提示进行干预以评估任务的执行。这允许人提供关于给定的机器人对给定任务的执行的反馈。然而,这可能导致人在给定的机器人正确地执行任务时被提示进行干预,且人在给定的机器人未正确地执行任务(即,故障)时未被提示进行干预。此外,dagger中的人反馈通常被联合到所定义的用于细化给定的机器人控制策略的奖励函数中,防止非专家人能够细化给定的机器人控制策略。


技术实现思路

1、本文描述的实现方式涉及使用模仿学习技术训练机器人控制策略。如本文所使用的,机器人控制策略是指(一个或多个)机器学习(ml)模型和在控制机器人时利用使用ml模型生成的输出的系统。给定的机器人控制策略可以被训练为在每次迭代时,基于处理在机器人任务的执行期间捕获给定的机器人的环境的视觉数据实例(instance of visiondata)来生成动作序列。在一些实现方式中,给定的机器人控制策略可以附加地或替代地在生成动作序列时处理状态数据(例如,环境状态数据和/或机器人状态数据)、力值和/或其他传感器数据。动作序列可以包括要由给定的机器人执行以推进机器人任务的下一个动作和被预测为跟随该下一个动作的预测动作序列。因此,在每次迭代时,可以生成下一个动作,并且下一个动作可以由给定的机器人实现。此外,在每次迭代时,还可以生成被预测为跟随该下一个动作的预测动作序列。注意,预测动作序列中包括的预测动作中的一个或多个实际上仅在它们是对应的后续迭代中预测的下一个动作的情况下才被执行。然而,如本文所述,预测被预测为跟随下一个动作的预测动作序列可以实现各种益处。这样的益处包括例如更高效地训练给定的机器人控制策略,给定的机器人控制策略更准确和/或鲁棒,和/或在视觉上显现(render)对应的表示时利用动作序列中包括的预测动作,以在细化给定的机器人控制策略时呈现给用户(例如,以使用户能够确定是否进行干预)。

2、在一些实现方式中,给定的机器人控制策略可以被进一步训练为确定给定的机器人是否将在机器人任务的执行中故障,并且可以响应于确定给定的机器人将在机器人任务的执行中故障,使得请求人(或用户)干预机器人任务的执行的提示被呈现给用户。如本文所述,在那些实现方式中的一些实现方式中,机器人控制策略可以具有多个不同的控制头部(control head)。控制头部中的一些用于基于使用机器人控制策略处理视觉数据实例来生成用于控制机器人(或其部分)的相应组件的对应值集。控制头部之一(也被称为故障头部(failure head))可以处理相同的视觉数据实例,以预测机器人是否已经或将在机器人任务的执行中故障,并且提示可以基于使用该故障头部生成的输出来生成并被呈现给用户。在附加的或替代的实现方式中,用户可以基于经视觉上显现而被呈现给用户的下一个动作和预测动作序列的表示来主动干预机器人任务的执行。因此,以这些和其他方式训练和细化给定的机器人控制策略可以实现各种益处。这样的益处包括,例如,当不需要人为干预来校正各种机器人任务的执行时,减少请求人为干预的发生,并且还当需要人为干预来校正各种机器人任务的执行时,减少不请求人为干预的发生。

3、本文描述的实现方式附加地或替代地涉及利用机器人控制策略的ml模型的一个或多个架构。例如,ml模型架构可以包括一个或多个输入层、多个中间层和多个不同的控制头部。在机器人任务的执行期间捕获给定的机器人的环境的视觉数据实例可以作为输入被提供给一个或多个输入层,并且视觉数据实例的中间表示(例如,编码、嵌入等)可以跨多个中间层生成。视觉数据实例的中间表示可以作为输入被提供给多个不同的控制头部中的每一个,以针对动作序列中包括的每个动作生成用于控制机器人的相应组件的对应值集。用于控制机器人的相应组件的对应值集可以是例如描述相应组件的平移位移(例如,对围绕相应组件的轴线的取向上改变的正弦-余弦编码)的向量、较低级控制命令(例如,控制机器人的对应致动器、机器人的组件的单独关节角度等的单独扭矩命令)、用于机器人的组件的二进制值(例如,指示机器人夹持器是应该打开还是关闭)、用于机器人的组件的其他值(例如,指示机器人夹持器应该打开或关闭的程度)、机器人的组件的速度和/或加速度(例如,机器人臂移动、机器人基座移动等)和/或可以用于控制机器人的其他值。

4、例如,第一控制头部可以用于生成反映机器人末端执行器的平移位移(例如,二维或三维)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第二控制头部可以用于生成反映机器人末端执行器的取向的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第三控制头部可以用于生成反映机器人末端执行器的致动状态(或机器人末端执行器的致动状态的程度)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人末端执行器相关联;第四控制头部可以用于生成反映机器人基座速度的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人基座相关联;第五控制头部可以用于生成反映机器人头部的取向(例如,平移和/或倾斜)的对应值集,并且该对应值集可以与针对动作序列中包括的一个或多个动作控制机器人头部的取向相关联;和/或其他控制头部用于控制机器人的其他组件。尽管上面描述了与机器人的特定组件相关联的特定控制头部,但是应当理解,这是为了示例的目的,并不意味着限制,并且机器人控制策略利用的控制头部可以是执行机器人任务的机器人组件的函数。例如,如果机器人不包括机器人基座(例如,固定的机器人臂),则可以不利用与机器人基座相关联的控制头部。此外,例如,如果机器人包括机器人腿而不是机器人基座,则可以利用与一个或多个机器人腿相关联的控制头部来代替用于机器人基座的控制头部。此外,尽管上面针对控制机器人的不同组件描述了特定的控制头部,但是应当理解,这是为了示例的目的,并不意味着限制。例如,第一控制头部可以与控制机器人的第一组件的第一部分(例如,机器人末端执行器的取向)相关联,并且不同的第二控制头部可以与控制机器人的第一组件的第二部分(例如,机器人末端执行器的致动状态)相关联。此外,尽管上面针对控制机器人的不同组件描述了特定的控制头部,但是应当理解,这是为了示例的目的,并不意味着限制。例如,第一控制头部可以与控制机器人的第一组件的第一部分(例如,机器人末端执行器的取向)相关联,并且不同的第二控制头部可以与控制机器人的第一组件的第二部分(例如,机器人末端执行器的致动状态)相关联。

5、在各种实现方式中,视觉数据实例的中间表示可以作为输入被提供给附加控制头部(也被称为故障头部),以生成与机器人任务本身的执行相关联的对应值集,而不是如上所述地在控制机器人的相应组件时利用对应值集。与机器人任务的执行相关联的对应值集可以指示例如机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的执行。换句话说,机器人控制策略可以利用该对应值集来确定是否提示用户干预机器人任务的执行。与机器人任务的执行相关联的对应值集可以是例如值的向量,其可以是指示机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的互斥二进制值;与机器人是否将继续机器人任务的执行、机器人是否将在机器人任务的执行中故障和/或机器人是否已经完成机器人任务的执行相关联的概率和/或与机器人任务的执行相对应的其他值。附加地或替代地,使用与控制机器人的相应组件相关联的上述控制头部生成的动作序列可以作为输入被提供给该附加控制头部。

6、以上描述仅作为本文公开的一些实现方式的概述而提供。在本文中(包括在具体实施方式、权利要求和附图中)更详细地描述这些和其他实现方式。

7、应当理解,前述构思和本文更详细描述的附加构思的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1