首页 / 专利库 / 人工智能 / 人工智能 / 机器人技术 / 机器人 / 协作机器人 / 用于训练相互依赖的自主机器的方法和设备

用于训练相互依赖的自主机器的方法和设备

阅读:756发布:2020-05-14

专利汇可以提供用于训练相互依赖的自主机器的方法和设备专利检索,专利查询,专利分析的服务。并且公开了用于训练相互依赖的自主机器的方法和设备。示例方法包括:用 机器人 单元中的第一 协作机器人 执行协作任务的第一子任务的动作,同时第二协作机器人根据所述第二协作机器人的第一记录动作在机器人单元中操作,所述第二协作机器人的第一记录动作在训练与所述第二协作机器人相关联的第二机器人 控制器 以控制第二协作机器人执行协作任务的第二子任务时被记录,以及至少基于在所述第一子任务的动作由所述第一协作机器人执行且所述第二协作机器人根据所述第一记录动作操作时第一协作机器人与第二协作机器人的交互的感测,训练与所述第一协作机器人相关联的第一机器人控制器。,下面是用于训练相互依赖的自主机器的方法和设备专利的具体信息内容。

1.一种方法,包括:
机器人单元中的第一协作机器人执行协作任务的第一子任务的动作,同时第二协作机器人根据所述第二协作机器人的第一记录动作在机器人单元中操作,所述第二协作机器人的第一记录动作在训练与所述第二协作机器人相关联的第二机器人控制器以控制第二协作机器人执行协作任务的第二子任务时被记录;以及
至少基于在所述第一子任务的动作由所述第一协作机器人执行且所述第二协作机器人根据所述第一记录动作操作时第一协作机器人与第二协作机器人的交互的感测,训练与所述第一协作机器人相关联的第一机器人控制器。
2.如权利要求1所述的方法,进一步包括在所述第二协作机器人执行所述第二子任务以执行所述协作任务时用所述第一协作机器人执行所述第一子任务。
3.如权利要求2所述的方法,其特征在于,所述机器人单元的所述协作任务是在制造环境中的制造任务。
4.如权利要求2所述的方法,其特征在于,所述第一子任务不同于所述第二子任务,且其中所述第一子任务和所述第二子任务是相互依赖的。
5.如权利要求1所述的方法,进一步包括:至少基于在所述第二协作机器人执行所述第二协作机器人的第二记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人,所述第二协作机器人的所述第二记录动作在训练所述第二机器人控制器以控制所述第二协作机器人执行所述协作任务的第三子任务时被记录。
6.如权利要求1所述的方法,进一步包括:至少基于在所述第二协作机器人第二次执行所述第二协作机器人的所述第一记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人。
7.如权利要求1所述的方法,其特征在于,训练所述第二机器人控制器包括应用卷积神经网络的深度强化学习
8.如权利要求1所述的方法,其特征在于,所述第一协作机器人与所述第二协作机器人的交互的感测包括所述第一协作机器人的边界违反。
9.如权利要求8所述的方法,进一步包括处理相机的输出以标识所述边界违反。
10.如权利要求1所述的方法,其特征在于,所述第二机器人控制器的训练是基于以下中的至少一个:要执行的子任务、物理约束、为所述第二协作机器人限定的动作的奖励或动作的惩罚。
11.一种系统,包括:
单元监视器,用于记录与机器人单元的第一协作机器人相关联的第一机器人控制器被训练以在所述机器人单元中执行协作任务的第一子任务时所述第一协作机器人的第一动作;以及
第二机器人控制器,用于训练以至少基于所述第一协作机器人执行所记录的第一动作时所述第一协作机器人与第二协作机器人的交互的感测来控制所述第二协作机器人执行所述协作任务的第二子任务。
12.如权利要求11所述的系统,其特征在于,在制造环境中的制造任务包括所述第一子任务和所述第二子任务。
13.如权利要求11所述的系统,其特征在于,所述第一子任务不同于所述第二子任务,且其中所述第一子任务和所述第二子任务是协作任务的相互依赖的子任务。
14.如权利要求11所述的系统,其特征在于:
所述单元监视器用于记录所述第一机器人控制器被训练以执行第三子任务时所述第一协作机器人的第二动作;以及
所述第二机器人控制器用于训练以在第一协作机器人执行所记录的第一动作和所记录的第二动作时控制所述第二协作机器人执行所述第二子任务。
15.如权利要求14所述的系统,其特征在于,所述第二动作包括所述第一动作,并且所述第三子任务包括所述第一子任务。
16.如权利要求11所述的系统,进一步包括:
相机,用于捕获所述机器人单元的图像;以及
计算机视觉处理器,用于在所述第二协作机器人的边界违反时感测所述第一协作机器人与所述第二协作机器人的交互,
其中训练所述第一机器人控制器至少部分地是基于所述边界违反。
17.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括在被执行时使机器至少进行以下操作的指令:
用机器人单元中的第一协作机器人执行协作任务的第一子任务的动作,同时第二协作机器人根据所述第二协作机器人的第一记录动作在机器人单元中操作,所述第二协作机器人的第一记录动作在训练与所述第二协作机器人相关联的第二机器人控制器以控制第二协作机器人执行协作任务的第二子任务时被记录;以及
至少基于在所述第一子任务的动作由所述第一协作机器人执行且所述第二协作机器人根据所述第一记录动作操作时第一协作机器人与第二协作机器人的交互的感测,训练与所述第一协作机器人相关联的第一机器人控制器。
18.如权利要求17所述的非暂态计算机可读存储介质,包括进一步的指令,所述进一步的指令在被执行时使所述机器至少基于在所述第二协作机器人执行所述第二协作机器人的第二记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人,所述第二协作机器人的所述第二记录动作在训练所述第二机器人控制器以控制所述第二协作机器人执行所述协作任务的第三子任务时被记录。
19.如权利要求17所述的非暂态计算机可读存储介质,包括进一步的指令,所述进一步的指令在被执行时使所述机器至少基于在所述第二协作机器人第二次执行所述第二协作机器人的所述第一记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人。
20.如权利要求17所述的非暂态计算机可读存储介质,其特征在于,所述第一协作机器人与所述第二协作机器人的交互的感测包括所述第一协作机器人的边界违反。
21.一种设备,包括:
用于记录与机器人单元的第一协作机器人相关联的第一机器人控制器被训练以在所述机器人单元中执行协作任务的第一子任务时所述第一协作机器人的第一动作的装置;以及
用于基于包括在所述第一协作机器人执行所记录的第一动作时感测所述第一协作机器人与第二协作机器人的交互的训练来控制所述第二协作机器人执行所述协作任务的第二子任务的装置。
22.如权利要求21所述的设备,其特征在于,用于记录的所述装置用于记录所述第一机器人控制器被训练以执行第三子任务时所述第一协作机器人的第二动作。
23.如权利要求22所述的设备,其特征在于,用于控制的所述装置用于在所述第一协作机器人执行所记录的第一动作和所记录的第二动作时控制所述第二协作机器人执行所述第二子任务。
24.如权利要求21所述的设备,进一步包括用于捕获所述机器人单元的图像的装置。
25.如权利要求21所述的设备,进一步包括用于在所述第二协作机器人的边界违反时感测所述第一协作机器人与所述第二协作机器人的交互的装置,所述第一机器人控制器的训练至少部分地基于所述边界违反。

说明书全文

用于训练相互依赖的自主机器的方法和设备

技术领域

[0001] 本公开一般涉及自主机器,更具体地涉及用于训练相互依赖的自主机器的方法和设备。

背景技术

[0002] 自主机器(例如,机器人)越来越多地被部署(例如,使用、操作、安装等)成组(例如,单元等),协作以执行共享任务(例如,共同任务、协作任务等)。示例协作任务是将车组装到车身上。在示例中,一个机器人将铰链附接到由另一个机器人保持的门,而另一个机器人使用铰链将门附接到车身。机器人执行三个示例相互依赖的子任务(例如,动作、步骤、过程等):保持门、将铰链附接到门以及使用铰链将门附接到车身。附图说明
[0003] 图1图示出了根据本公开的教导构造并在示例使用环境中示出的示例机器人单元。
[0004] 图2是根据本公开的教导构造并在示例使用环境中示出的示例训练系统的框图
[0005] 图3是表示用于实现图2用于训练相互依赖的自主机器的示例训练系统的示例硬件逻辑或机器可读指令的流程图
[0006] 图4是表示用于训练相互依赖的自主机器的示例硬件逻辑或机器可读指令的流程图。
[0007] 图5图示出被构造用于执行图3和/或图4的示例机器可读指令以实现图2用于训练自主机器控制器的示例训练系统的示例处理器平台。
[0008] 有益的是,贯穿(多个)附图和所附书面说明书,相同的附图标记将用于表示相同或相似的部分。这些图并未按比例绘制。所呈现的各个附图中示出的连接线或连接器旨在表示各个元件之间的示例功能关系、实体耦合和/或逻辑耦合。

具体实施方式

[0009] 今天,在许多工业设定中,机器人被赋予了非常具体、不同的任务以执行。在这些环境中,与每个机器人相关联的机器人控制器通常由表征机器人的物理环境,收集用于训练、测试和部署将用于操作机器人的机器人控制器的数据集的人独立地训练。因为机器人独立地被训练,所以训练具有N个机器人的系统的复杂度至少为N阶。由于传统地训练一组机器人的复杂度,组中机器人的数量可能是有限的。
[0010] 为了使用多个协作机器人执行协作任务,机器人执行多个相互依赖的子任务(例如,互补的子任务、互相依赖的子任务等),并且每个机器人的功能影响该机器人正在协作的其他机器人。协作机器人彼此协同工作、协调一致以执行协作任务。然而,子任务的相互关联性以及与这些子任务相关联的极端情况同时进行是难以表征和训练的。因此,用于训练机器人的先前技术倾向于缺乏关于可能在一个或多个协作机器人的移动、操作等中发生的偏差的训练。这增加了机器人单元(例如,一组机器人)将失效(例如,停止按预期工作)并且需要人为干预以恢复在线的可能性。如果使用先前技术来训练机器人以适应这些附加因素,那么训练N个机器人所需的复杂度将远远超过N阶。复杂度的过度增长进一步限制了机器人单元的可扩展性。为了便于讨论,将参考协作任务(例如,诸如机器人单元执行的将车门组装到车身上的任务)、子任务(例如,各个机器人执行以共同将车门组装到车身的任务)以及动作(例如,机器人执行其子任务而执行的动作、移动、步骤等)。然而,可使用其他术语。
[0011] 现在将详细参考非限制性示例,其中一些示例在附图中示出,这些示例通过将自主机器配置用于在另一个自主机器上协作训练以解决自主机器之间的相互依赖性来克服至少上述缺陷
[0012] 图1图示出了协作机器人102、103、104、105、106和107形式的自主机器的示例机器人单元100(例如,组等),这些协作机器人协作执行诸如组装汽车108的一部分之类的协作任务。在一些示例中,协作机器人102-107执行子任务,通过执行相对应的相互依赖的操作来共同实现协作任务。由机器人102-107执行的子任务之间的示例相互依赖性包括但不限于运动的变化(例如,机器人每次可能不会完全相同地运动)、运动速度、运动时间(例如,机器人可能无法启动其子任务直到另一个机器人完成其子任务)、机器人尺寸、机器人形状、基于另一个机器人当前如何定位对机器人能够如何移动的限制等。如下文结合图2所述,可以训练与示例机器人102-107中的相应机器人相关联的机器人控制器112、113、114、115、116和117,以克服与训练机器人单元的先前技术相关联的挑战,该机器人单元通过任务之间的这种相互依赖性操作。即,本文公开的示例包括跨机器人控制器112-117的深度强化学习,使得机器人控制器112-117基于目标并基于其它机器人102-107中的一个或多个的动作自主地训练它们自己操作它们相对应的机器人。例如,可使用图4的示例程序训练机器人控制器112-117。机器学习引擎(例如,卷积神经网络)的深度强化学习是在训练具有可描述特性(诸如机器人学)的系统中有用的深度学习形式。如本文所使用的,无监督(例如,不使用已知目标输出)深度强化学习训练机器人控制器以控制机器人执行一系列动作,这些动作导致机器人执行受制于一个或多个物理和/或时间约束的指定子任务。机器学习引擎通过适配内部系数来训练。系数的绝对值越大,机器学习引擎的一个节点影响另一个节点越强。
随着机器学习引擎收敛,其相同输入的输出将随着时间的推移而变化越来越小的量。类似地,随着机器学习引擎收敛,其内部系数将随着输入重复而变化越来越小的量。以这种方式,机器人控制器112-117自学习机器人102-107之间的相互依赖性,从而允许机器人单元
100例如更快地执行共享任务、具有更少的错误、具有更少的故障、使用更少的占地面积、具有更低的训练复杂度、具有更短的训练时间等。
[0013] 在训练之后,机器人102-107可以执行互补的子任务,这些子任务在被执行时,执行协作任务。例如,第一机器人执行将铰链附接到门的第一互补子任务,并且第二机器人执行使用铰链将门附接到车身的第二互补子任务。第一子任务和第二子任务是相互依赖的和互补的子任务(例如,在没有另一个子任务的情况下不能执行一个子任务),一起表示将门组装到车身的协作任务。机器人执行将铰链附接到门上并使用铰链将门附接到车身的两个示例相互依赖的子任务(例如,动作、步骤、过程等)。在一些示例中,第一机器人和第二机器人是执行制造任务(例如,将车门组装到车身)的制造环境中的机器人单元的一部分。
[0014] 图2是根据本公开的教导构造的示例训练系统200的框图,该示例训练系统200可用于训练诸如图1的示例机器人单元100之类的机器人单元中的相互依赖性。图2示出了示例机器人单元100的部分,包括示例机器人102和示例机器人103。为了控制机器人102和机器人103,图2的示例机器人单元包括针对示例机器人102和示例机器人103中的相应的机器人的示例机器人控制器112和示例机器人控制器113。机器人控制器112、机器人控制器113可以与机器人102、机器人103分开实现,如图所示,和/或可以是机器人102、机器人103的一部分。
[0015] 在图2所图示的示例中,使用传统训练方法训练机器人控制器112以将机器人102控制为独立机器人。例如,可以训练机器人控制器112而不需要关于由机器人103要执行的子任务的信息。在训练机器人控制器112期间,记录由其相对应的机器人102执行的动作。在一些示例中,所记录的信息对应于在训练机器人控制器112时记录的机器人102的运动、变化等。
[0016] 在图2所图示的示例中,示例机器人控制器113被训练以学习其子任务以及其相对应的机器人103和机器人102之间的独立性。即,基于编程的目标、物理约束和表示参与协作任务的先前机器人的观察结果的传感器数据的分析来训练机器人控制器113。相应地,考虑到(例如,考虑、基于、在存在…的情况下等)机器人103与诸如机器人102之类的其他机器人的相互依赖性,机器人控制器113学习控制机器人103执行机器人103的子任务。在一些示例中,在训练机器人控制器113之后,在机器人103和机器人102两者都在执行其子任务的同时进一步(例如,附加地)训练机器人控制器113和机器人控制器112,从而允许机器人控制器113和机器人控制器112(进一步)学习它们的相互依赖性。虽然图2的示例包括训练机器人
102和机器人103之间的相互依赖性,但可以使用本公开的教导在任何数量的机器人之间训练相互依赖性。例如,机器人可以学习与多个其他机器人的相互依赖性,并且同样地,多个机器人可以学习与同一机器人的相互依赖性。
[0017] 在本公开中,参考了训练与机器人相关联的机器人控制器。另外,和/或替代地,在一些示例中,机器人控制器是机器人的一部分并且因此,人们可以替代地参考训练机器人。
[0018] 为了感测机器人103的位置信息,示例训练系统200包括任何数量和/或类型的传感器。示例传感器包括但不限于:相机214、运动传感器215、接近度传感器、接触传感器、传感器、声音传感器、导航和/或GPS传感器、加速度计、陀螺仪、惯性测量单元(IMU)传感器、温度传感器、光传感器等。
[0019] 为了训练机器人控制器112和机器人控制器113,图2的示例训练系统包括示例模型训练管理器216。在训练机器人控制器112、机器人控制器113期间,图2的示例模型训练管理器216将来自物理约束数据库218的其适用的物理和/或时间约束参数信息提供给被训练的机器人控制器112、机器人控制器113。示例物理约束参数包括:与正在训练的机器人控制器相关联的机器人的物理运动的边界、其他机器人的物理运动边界、人的物理边界、目标对象的物理边界、目标对象的位置边界、结构约束、物理定律、其他物理约束、限制、边界等。在一些示例中,机器人运动的物理约束参数是基于就到达而言什么是可行的,和/或被指定以确保特定机器人不会失去平衡、不会变得不可用或者不会对其环境(例如,对另一个机器人)造成伤害。在一些示例中,一些物理约束参数包括:基于时间的参数,使得物理约束在特定时间内被强制执行、有效或适用;机器人将要执行的特定动作序列和/或子任务;是同一协作任务的部分的一个或多个子任务。例如,抓握爪的物理约束参数基于一系列操作直到汽车门被另一个机器人牢固地固定到车身上才打开/释放而可以是时间限制的。物理约束参数的另一示例基于时间的参数可以是喷漆机器人在协作任务的时间线的一部分期间不喷射。图2的示例物理约束数据库218可以使用任何数量和/或类型的数据结构来实现,并且可以被存储在包括数据结构的任何数量和/或类型的非暂态计算机可读存储设备和/或存储盘上(诸如存储器、数字通用盘(DVD)、光盘(CD)、蓝光盘等)。
[0020] 在一些示例中,机器人控制器112、机器人控制器113包括计算机视觉处理器220,该计算机视觉处理器220标识机器人、对象等何时接近或已经违反限定的物理边界(例如,边界违反)。物理边界可以由人明确限定和/或在视频流上指示,随后可以用于通过摄像机214检测机器人(例如,机器人103)对边界的符合性并发送到机器人控制器113。例如,可以定位相机214以捕获机器人103的图像和/或视频,同时基于由相机214捕获的图像和/或视频,人针对机器人103绘制、限定等一个或多个边界。图2的示例计算机视觉处理器220使用机器视觉分析来分析机器人103的运动、位置等以便在训练期间符合边界。当机器人103接近违反和/或违反物理约束参数时,计算机视觉处理器220向与机器人103相关联的机器人控制器113发送消息,并且机器人控制器113相应地调整其训练和/或运动。在一些示例中,相机214和/或单元监视器222实现计算机视觉处理器220。在一些示例中,传感器(诸如相机
214)由机器人控制器112-117中的两个或多个机器人控制器共享,但是它们的输出可以由机器人控制器112、机器人控制器113和/或由不同的计算机视觉处理器220分开地和/或不同地处理。
[0021] 示例模型训练管理器216还从模型库224提供关于要由正在训练的机器人控制器112、机器人控制器113执行的子任务的目标信息。从模型库224提供的示例目标信息包括但不限于:要被执行的特定子任务、要被移动的对象、对象要被移动的顺序、被移动的对象的来往信息以及诸如不要压碎盒子、不要用对象和/或机器人击中人、影响的顺序(例如,先前的机器人必须在被训练的机器人可以拿起对象之前放下对象)、共同任务的方面(例如,由被训练的机器人保持的部分而另一个机器人将保持平)等之类的目标信息。例如,模型库限定机器人将用臂1从位置A拿起螺丝钉,用臂1将螺丝钉移动到位置B处铰链的孔中,用臂1将螺丝钉尖端插入孔中并且用臂2上的驱动器附件拧入螺丝钉。
[0022] 示例模型训练管理器216还将由机器人控制器112、机器人控制器113针对机器人102、103训练的模型存储在示例模型库224中。在一些示例中,机器人单元的模型作为一组模型一起存储。在一些示例中,针对机器人的模型、针对机器人单元的一组模型可以在实验室环境中训练并复制到制造环境。在一些示例中,可以将针对机器人的模型、针对机器人单元的一组模型等的多个复制品制成模化环境。图2的示例模型库224可以使用任何数量和/或类型的数据结构来实现,并且可以被存储在包括数据结构的任何数量和/或类型的非暂态计算机可读存储设备或存储盘上(诸如存储器、DVD、CD、蓝光盘等)。
[0023] 在所图示的示例中,使用深度强化学习自主地训练示例机器人控制器112和示例机器人控制器113的机器学习引擎210。这超出了要执行的子任务的初始定义以及物理和/或时间约束,机器人控制器113可以从人为控制或输入自主地自我训练自身。例如,训练机器人控制器以控制第一机器人将第一部分从位置A移动到位置B,将第一部分翻过来,并将第一部分保持在由第二机器人保持的第二部分的顶部,而第三机器人将第一部分焊接到第二部分而没有部分或第一机器人穿过任何指定边界(例如,在一个或多个物理约束参数中定义的)在训练期间,执行由被训练的机器人控制器112、机器人控制器113确定的动作,并且响应于(例如,源于、由……导致等)动作的状态改变信息被反馈到机器人控制器112、机器人控制器113。示例状态改变信息是该部分向左移动4英寸并且向前移动24英寸。机器人控制器112、机器人控制器113还接收表示所确定动作的成功和/或失败的奖励信息和/或惩罚信息。例如,如果违反了物理和/或时间约束参数,那么机器人控制器可以接收负值惩罚指示。机器人控制器112、机器人控制器113基于状态改变信息、奖励信息和/或惩罚信息来更新机器学习引擎210的系数。例如,如果奖励信息导致对机器学习引擎的改变(例如,卷积神经网络的系数)被强化(例如,变得更强),而惩罚信息导致对机器学习引擎的改变被减弱。因此,奖励动作更可能再次发生,而惩罚动作不太可能再次发生。在本文所公开的示例中,深度强化学习被扩展以学习相互依赖性。不在被训练的机器人控制器112、113重复其在训练期间执行的和/或在训练之后执行的动作,同时训练另一个机器人控制器112、113。因为先前训练的机器人控制器112、113在另一个机器人控制器112、113被训练时正在操作,所以被训练的机器人控制器112、113学习机器人103与机器人102的相互依赖性而无需单独的、特殊的等针对相互依赖性的训练。被训练的机器人控制器112、113学习在存在正在执行它们的子任务的其他机器人的情况下执行其子任务,因此在其学习执行其子任务时学习相互依赖性。例如,可使用图4的示例程序训练机器人控制器112、机器人控制器113。
[0024] 在一些示例中,机器人单元的机器人控制器依次等在链中进行训练。另外,和/或替代地,机器人单元的多个机器人控制器同时并行地(例如,同时、至少部分地重叠训练等)在同一时间进行训练以执行它们的子任务,以及学习它们的相互依赖性。无论同时训练多少机器人,都可以学习相互依赖性,而无需人必须附加地(例如,除了传统的机器人训练之外)训练每个机器人控制器的相互依赖性。这导致用于安装、配置、训练、测试等机器人和机器人所属的机器人单元所花费的时间、精力、完整性等的显著减少。
[0025] 尽管图2图示出实现训练系统200的示例方式,但是图2中示出的元件、过程和/或设备中的一个或多个能以任何其他方式被组合、拆分、重新布置、省略、消除和/或实现。此外,图2的示例机器人控制器112、示例机器人控制器113、示例机器学习引擎210、示例模型训练管理器216、示例计算机视觉处理器220、示例机器人单元监视器222和/或更一般地,示例训练系统200可以由硬件、软件固件和/或硬件、软件和/或固件的任意组合实现。因此,例如,示例机器人控制器112、示例机器人控制器113、示例机器学习引擎210、示例模型训练管理器216、示例计算机视觉处理器220、示例机器人单元监视器222和/或更一般地,示例训练系统200中的任何一个可以由一个或多个模拟或数字电路逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)图形处理单元(GPU)、(多个)数字信号处理器(DSP)、(多个)专用集成电路(ASIC)、(多个)可编程逻辑器件(PLD)、(多个)现场可编程门阵列(FPGA)和/或(多个)现场可编程逻辑器件(FPLD)实现。当阅读涵盖纯软件和/或固件实现的本专利的设备或系统权利要求中的任一个时,示例机器人控制器112、示例机器人控制器113、示例机器学习引擎210、示例模型训练管理器216、示例计算机视觉处理器220、示例机器人单元监视器222和/或更一般地,示例训练系统200中的至少一个由此被明确地限定为包括包含软件和/或固件的非暂态计算机可读存储设备或存储盘(诸如,存储器、DVD、CD、蓝光盘等)。更进一步地,除了图2中所图示的那些元件、过程和/或设备之外或者作为图2中所图示的那些元件、过程和/或设备的替代,图2的示例训练系统200还可包括一个或多个元件、过程和/或设备,和/或可包括所图示的元件、过程和/或设备中任一者或全部中的多于一个的元件、过程和/或设备。如本文使用的,短语“通信”包括其各种变体,包含直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接物理(例如,有线)通信和/或持续通信,而是附加地包括以周期性间隔、预定间隔、非周期性间隔、和/或一次性事件来进行的选择性通信。
[0026] 在图3中示出了表示用于实现图2的训练系统200的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是由诸如结合图5在下文中所讨论的示例处理器平台500中示出的处理器510执行的可执行程序或可执行程序的一部分。虽然程序能具体化在存储于诸如紧凑盘只读存储器(CD-ROM)、软盘、硬驱动器、CD、DVD、蓝光盘或与处理器510关联的存储器之类的非暂态计算机可读存储介质上的软件中,但是全部程序和/或其部分可替代地由除处理器510之外的设备执行,和/或具体化在固件或专用硬件中。此外,虽然参考图3所图示的流程图描述示例程序,但是可替代地使用实现示例训练系统200的许多其他方法。例如,可改变框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。另外,和/或替代地,任何或所有框可以由被构造成在不执行软件或固件的情况下执行相应的操作的一个或多个硬件电路(例如,分立的和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现。
[0027] 如上所提及的,可使用存储于非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图3的示例过程,非暂态计算机和/或机器可读介质例如:硬盘驱动器、闪存、只读存储器、CD-ROM、CD、DVD、高速缓存、随机存取存储器和/或其他任何在任何时长内(例如,在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质被明确地限定为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
[0028] “包含”和“包括”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求将任何形式的“包含”或“包括”(例如,包括、包含等)用作前言或用于任何种类的权利要求叙述内时,要理解的是,附加的要素、项等可以存在而不超出对应权利要求或叙述的范围。如本文所使用的,当短语“至少”被用作例如与权利要求同步使用的转换术语时是和术语“包含”和“包括”一样的开放式的。当例如以诸如A、B和/或C之类的形式使用术语“和/或”时,指的是A、B、C的任何组合或子集,诸如(1)单独的A、(2)单独的B、(3)单独的C、(4)A与B、(5)A与C、(6)B与C、以及(7)A与B与C。如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语"A和B中的至少一个"旨在表示包括(1)至少一个A(2)至少一个B和(3)至少一个A和至少一个B中的任何一个的实现。类似地,如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语"A或B中的至少一个"旨在表示包括(1)至少一个A(2)至少一个B和(3)至少一个A和至少一个B中的任何一个的实现。如本文在描述过程、指令、动作、活动和/或步骤的处理或执行的上下文中所使用的,短语"A和B中的至少一个"旨在表示包括(1)至少一个A(2)至少一个B和(3)至少一个A和至少一个B中的任何一个的实现。类似地,如本文在描述过程、指令、动作、活动和/或步骤的处理或执行的上下文中所使用的,短语"A或B中的至少一个"旨在表示包括(1)至少一个A、(2)至少一个B和(3)至少一个A和至少一个B中的任何一个的实现。
[0029] 图3的程序开始于框301,其中机器人单元(例如,机器人单元100)被配置为停止服务模式(框301),例如,停止服务模式(例如,停止操作模式、实验室环境模式、开发模式等)如本文所讨论的可以用来训练机器人单元中的机器人。标识要训练的初始(例如,第一)机器人(例如,机器人102)及其相关联的机器人控制器(例如,机器人控制器112)(框302)。例如,训练机器人单元(例如,机器人单元100)的人将执行要由机器人单元100执行的协作任务中的初始或第一子任务的机器人标识为初始机器人。示例初始或第一子任务包括:在可以执行任何其他子任务之前开始的动作、将部分带入机器人单元的动作等。初始机器人控制器112被手动训练、手动配置、手动编程,使用例如,使用先前训练技术的无监督深度强化学习训练模式等(框304)。例如,可使用图4的示例程序训练机器人控制器112。机器人控制器112在训练期间(例如,在训练子任务、训练场景等期间)采取的动作由例如单元监视器222记录。
[0030] 标识要训练的下一个(例如,第二)机器人(例如,机器人103)及其相关联的机器人控制器(例如,机器人控制器113)(框306)。例如,训练机器人单元100的人将机器人103标识为与初始机器人102具有相互依赖性。在一些示例中,标识多于一个的下一个机器人,并且它们的机器人控制器与机器人控制器113同时被训练。使用例如无监督的深度强化学习训练模式来训练机器人控制器113和可能地与其他所选的下一个机器人相关联的其他机器人控制器(框308)。所选的下一个机器人控制器被训练,而先前训练的机器人控制器基于它们在训练期间收集的先前记录的动作来操作它们相关联的机器人(框309)。即,机器人控制器113至少基于用于训练初始机器人102的动作(例如,存在该动作的情况下、与该动作并行地等)被训练。使用物理约束218、模型库224、目标等,所选的下一个机器人控制器在无监督的深度强化学习训练模式中训练。例如,可使用图4的示例程序训练机器人控制器113。
[0031] 重复训练直到机器人控制器的训练收敛(框310)。例如,当机器学习引擎210的系数不再以有意义的方式改变时。当训练未能收敛(框310),并且正被训练的子任务的复杂度可能妨碍对所选的下一个机器人控制器的训练时(框310),对子任务重新排序(框312)。使用例如无监督的深度强化学习训练模式,用重新排序的子任务重复对下一个机器人控制器的训练(框314)。如果使用新的子任务顺序的训练也未能收敛(框316),则选择物理上最接近初始机器人的机器人(框318),使用例如无监督的深度强化学习训练模式单独训练与到先前成功训练的机器人最接近的机器人相关联的机器人控制器(例如,在回放先前记录的动作时)(框320)。例如,可使用图4的示例程序训练机器人控制器113。在一些示例中,可以稍后重新尝试最初选择的下一个机器人的训练。
[0032] 如果与最接近的机器人相关联的机器人控制器的训练成功(框322),并且所有机器人控制器已经被训练(框324),那么所有机器人进一步在无监督的深度强化学习训练模式中同时操作(框326)以进一步测试和/或调整它们的相互依赖性。整个机器人单元在测试模式下操作以验证机器人单元的操作(框328),并且控制从图3的示例程序退出。
[0033] 返回框324,如果并非所有机器人控制器都已被训练(框324),则选择一个或多个未训练的机器人控制器用于训练(框330),并且控制返回框320以训练所选的机器人控制器(框320)。
[0034] 返回框316,如果训练成功(框316),则控制前进到框324以确定是否已成功训练所有机器人控制器(框324)。
[0035] 返回框310,如果训练成功(框310),则控制前进到框324以确定是否已成功训练所有机器人控制器(框324)。
[0036] 可以以任何方式执行机器人的选择顺序。例如,选择可以是线性的,其中每个机器人受先前机器人的影响,并且影响后续节点。该顺序可以对应于例如它们在机器人单元中的线性布置。另外,和/或替代地,机器人的选择可以是分层的,在这种情况下,机器人可以影响许多其他机器人,并且受到许多其他机器人的影响。在一些示例中,所有机器人控制器首先被单独训练(例如,当其他机器人不在移动时)而不是如上文所述。在一些示例中,这引入了与机器人控制器相关联的机器人如何操作和/或执行子任务的延迟。然后,机器人控制器可以在一个或更多组中进一步训练,同时其他机器人是活动的,以使机器人控制器能够训练相互依赖性。
[0037] 在一些机器人单元中,训练顺序的标识可能是困难的。例如,当过程中存在细微差别时,无法轻易被观察并且可能需要扩充。在这种示例中,可以使用进一步的信息来标识训练顺序。人、模型训练管理器216和/或任何其他处理器平台(例如,图5的示例处理器平台500)等可以处理日志以标识从每个机器人控制器出来的事件的时间同步日志以检测动作序列,标识消息是否是信息性的(例如,警告)或指示动作等。来自日志中不同机器人控制器的消息可按时间顺序排序,并用于给机器人分配顺序。可以通过扫描(例如,自动地、由人等)日志将第一机器人标识为执行动作的第一机器人。可以进一步扫描日志以查找下一个动作及其相关联的机器人。该机器人成为训练序列中的下一个。可以重复该过程,直到标识出整个机器人序列。在非常短的持续时间内执行子任务的机器人可以被一起分配为可能受同一机器人影响的,并且可能需要同时训练的集合。还可以在更长的时间段内扫描日志以检测序列是否一致并且可以一致地与现实世界相关。在一些示例中,人类专家标识序列。在一些示例中,一个或多个摄像机(例如,摄像机214)捕获可以由计算机视觉处理器220使用(例如,手动地、自动地等)以标识机器人运动的视频和/或图像。可以由人、模型训练管理器
216和/或任何其他处理器平台等使用所标识的机器人运动以标识动作序列,并使用该信息来标识子任务序列。另外,和/或替代地,可以由例如单元监视器222使用来自运动传感器的传感器信息以检测动作并感测子任务之间的依赖性。可以随后使用这些传感器在一个或多个循环中检测序列。
[0038] 在图4中示出了表示用于训练相互依赖的自主机器的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是由诸如结合图5在下文中所讨论的示例处理器平台500中示出的处理器510执行的可执行程序或可执行程序的一部分。虽然程序能具体化在存储于诸如CD-ROM、软盘、硬驱动器、CD、DVD、蓝光盘或与处理器510关联的存储器之类的非暂态计算机可读存储介质上的软件中,但是全部程序和/或其部分可替代地由除处理器510之外的设备执行,和/或具体化在固件或专用硬件中。此外,虽然参考图4所图示的流程图描述示例程序,但是可替代地使用实现示例训练系统200的许多其他方法。例如,可改变框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。另外,和/或替代地,任何或所有框可以由被构造成在不执行软件或固件的情况下执行相应的操作的一个或多个硬件电路(例如,分立的和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、op-amp、逻辑电路等)来实现。
[0039] 如上所提及的,可使用存储于非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图4的示例过程,非暂态计算机和/或机器可读介质例如:硬盘驱动器、闪存、只读存储器、CD-ROM、CD、DVD、高速缓存、随机存取存储器和/或其他任何在任何时长内(例如,在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质被明确地限定为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
[0040] 图4的程序开始于框402,其中机器人控制器获得物理约束信息和编程的目标(框402),并收集环境传感器数据(例如,来自传感器214、传感器215)(框404)。机器人控制器确定子任务的动作(框406),并控制机器人执行该动作(框408)。如果动作没有导致机器人违反约束或规则(框410),则机器人控制器确定是否已经完成子任务(框412)。
[0041] 如果已经完成子任务(框412),则机器人控制器收集为子任务采取的带时间戳的动作列表(框414)。如果成功完成子任务(例如,没有约束或规则违反)(框416),则机器人控制器将为子任务采取的动作添加到训练日志(框418)。
[0042] 如果完成训练(例如,完成预定数量的训练轮次、训练收敛等)(框420),则机器人控制器确定任何训练轮次是否具有险因素(例如,运动起伏不定、太接近边界、接近掉下盒子等)(框422)。丢弃有风险的训练轮次(框424)并且组合剩余的训练轮次(框426),并且控制退出图4的示例程序。
[0043] 返回到框420,如果尚未可接受地完成训练(框420),则控制返回框402以执行另一个训练轮次。在框402处,在人或程序已经改变物理约束信息和编程目标的情况下(重新)加载物理约束信息和编程目标。
[0044] 返回到框412,如果尚未到达训练轮次结束(框412),则控制返回框402以执行另一个训练轮次。在框402处,在人或程序已经改变物理约束信息和编程目标的情况下(重新)加载物理约束信息和编程目标。
[0045] 返回到框410,如果动作破坏约束和/或规则(框410),则机器人控制器确定将纠正发生的约束和/或规则违反的纠正动作(框428),并且执行该纠正动作(框430)。如果纠正动作没有导致机器人违反约束或规则(框432),则机器人控制器确定是否已经完成子任务(框412)。
[0046] 如果纠正动作导致机器人违反约束或规则(框432),则机器人控制器确定是否将纠正发生的约束和/或规则违反的替代纠正动作(框434),并返回框430以执行替代纠正动作。
[0047] 如果在框434处,没有标识出替代的纠正动作(框434),则机器人控制器举起标志(框436),图4的程序执行被人和/或程序输入停止、暂停等。
[0048] 图5是被构造用于执行图3中的指令以实现图2的训练系统200的示例处理平台500的框图。处理器平台500可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、互联网设备或任何其他类型的计算设备。
[0049] 所图示示例的处理器平台500包括处理器510。所图示示例的处理器510是硬件。例如,处理器510可以由来自任何所需要的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器实现。硬件处理器可以是基于半导体的(例如,基)器件。在该示例中,处理器实现示例机器人控制器113、示例机器人控制器112、示例机器学习引擎210、示例模型训练管理器216、示例计算机视觉处理器220以及示例机器人单元监视器222。
[0050] 所图示示例的处理器510包括本地存储器512(例如,高速缓存)。所图示示例的处理器510经由总线518与包括易失性存储器514和非易失性存储器516的主存储器进行通信。易失性存储器514可由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器 和/或任何其他类型的随机存取存储器设
备实现。非易失性存储器516可由闪存和/或任何其他所期望类型的存储器设备实现。由存储器控制器控制对主存储器514、主存储器516的访问
[0051] 所图示示例的处理器平台500还包括接口电路520。接口电路520可以由任何类型的接口标准实现,诸如以太网接口、通用串行总线(USB)接口、 接口、近场通信(NFC)接口、和/或外围组件互连(PCI)快速接口。
[0052] 在所图示的示例中,一个或多个输入设备522被连接至接口电路520。(多个)输入设备522准许用户将数据和/或命令输入至处理器510中。(多个)输入设备可以由例如音频传感器、麦克风、相机(静止或视频)、键盘、按钮、鼠标、触屏、轨迹板、轨迹球、等点鼠标和/或语音识别系统、相机214、运动传感器215实现。
[0053] 一个或多个输出设备524也被连接至所图示示例的接口电路520。输出设备524可例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、面内切换(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所图示示例的接口电路520典型地包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
[0054] 所示出的示例的接口电路520还包括诸如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进经由网络526与外部机器(例如,任何种类的计算设备)交换数据。通信可经由例如以太网连接、数字订户线路(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等[0055] 所图示示例的处理器平台500还包括用于存储软件和/或数据的一个或多个大容量存储设备528。此类大容量存储设备528的示例包括软盘驱动器、硬盘驱动器、CD驱动器、蓝光盘驱动器、冗余独立磁盘阵列(RAID)系统和DVD驱动器。
[0056] 经编码的指令532(包括图3的经编码的指令和/或图4的经编码的指令)可以被存储在大容量存储设备528中、被存储在易失性存储器514中、被存储在非易失性存储器516中、和/或被存储在诸如CD-ROM或DVD之类的可移除非易失性计算机可读存储介质中。
[0057] 从前述内容可以理解,已经公开了训练相互依赖的自主机器的示例方法、设备和制品。从前述内容可以理解,已经公开了通过自我训练以适应其子任务中的相互依赖性来增强自主机器组的操作的方法、设备和制品,从而降低与需要人为干预来纠正的组的故障相关联的风险和/或可能性。这种故障会具有显著的影响,特别是在制造环境中。所公开的方法、设备和制品通过使用自主机器的无监督训练来提高相互依赖的自主机器组的效率,允许自主机器组更快地运行,具有更少的错误、具有更少的故障、使用更少的占地空间、具有更低的训练复杂度、具有更少的训练时间等。所公开的方法、设备和制品改进了相互依赖的自主机器组的可扩展性。此外,本文所公开的示例方法、设备和/或制品标识并克服了先前技术中自学习自主机器之间的相互依赖性的不准确性和无能。所公开的方法、设备和制品相应地涉及计算机功能的一个或多个改善。
[0058] 本文公开了用于训练相互依赖的自主机器的示例方法、设备和制品。进一步的示例和其组合至少包括以下内容。
[0059] 示例1是一种方法,包括:用机器人单元中的第一协作机器人执行协作任务的第一子任务的动作,同时第二协作机器人根据第二协作机器人的第一记录动作在机器人单元中操作,第二协作机器人的第一记录动作在训练与第二协作机器人相关联的第二机器人控制器以控制第二个作机器人执行协作任务的第二子任务时被记录;以及至少基于在第一子任务的动作由第一协作机器人执行且第二协作机器人根据第一记录动作操作时第一协作机器人与第二协作机器人的交互的感测,训练与第一协作机器人相关联的第一机器人控制器。
[0060] 示例2是示例1的方法,进一步包括在第二协作机器人执行第二子任务以执行协作任务时用第一协作机器人执行第一子任务。
[0061] 示例3是示例2的方法,其中机器人单元的协作任务是在制造环境中的制造任务。
[0062] 示例4是示例2的方法,其中第一子任务不同于第二子任务,且其中第一子任务和第二子任务是相互依赖的。
[0063] 示例5是示例1的方法,进一步包括:至少基于在所述第二协作机器人执行所述第二协作机器人的第二记录动作时第一协作机器人与第二协作机器人的交互的感测来训练第一机器人控制器以控制第一协作机器人,第二协作机器人的第二记录动作在训练第二机器人控制器以控制第二协作机器人执行协作任务的第三子任务时被记录。
[0064] 示例6是示例1的方法,进一步包括:至少基于在所述第二协作机器人第二次执行所述第二协作机器人的所述第一记录动作时第一协作机器人与第二协作机器人的交互的感测来训练第一机器人控制器以控制第一协作机器人。
[0065] 示例7是示例1的方法,其中训练第二机器人控制器包括应用卷积神经网络的深度强化学习。
[0066] 示例8是示例1的方法,其中第一协作机器人与第二协作机器人的交互的感测包括第一协作机器人的边界违反。
[0067] 示例9是示例8的方法,进一步包括处理相机的输出以标识边界违反。
[0068] 示例10是示例1的方法,其中第二机器人控制器的训练是基于以下中的至少一个:要执行的子任务、物理约束、为第二协作机器人限定的动作的奖励或动作的惩罚。
[0069] 示例11是一种系统,包括:单元监视器,用于记录与机器人单元的第一协作机器人相关联的第一机器人控制器被训练以在所述机器人单元中执行协作任务的第一子任务时第一协作机器人的第一动作;以及第二机器人控制器,用于训练以至少基于所述第一协作机器人执行所记录的第一动作时第一协作机器人与第二协作机器人的交互的感测来控制第二协作机器人执行协作任务的第二子任务。
[0070] 示例12是示例11的系统,其中在制造环境中的制造任务包括第一子任务和第二子任务。
[0071] 示例13是示例11的方法,其中第一子任务不同于第二子任务,且其中第一子任务和第二子任务是协作任务的相互依赖的子任务。
[0072] 示例14是示例11的系统,其中单元监视器用于记录所述第一机器人控制器被训练以执行第三子任务时第一协作机器人的第二动作;且第二机器人控制器用于训练以在第一协作机器人执行所记录的第一动作和所记录的第二动作时控制第二协作机器人执行第二子任务。
[0073] 示例15是示例14的系统,其中第二动作包括第一动作,并且第三子任务包括第一子任务。
[0074] 示例16是示例11的系统,进一步包括用于捕获机器人单元的图像的相机,以及用于在第二协作机器人的边界违反时感测第一协作机器人与第二协作机器人的交互的计算机视觉处理器,其中训练第一机器人控制器至少部分地是基于边界违反。
[0075] 示例17是一种非暂态计算机可读存储介质,包括指令,该指令在被执行时使机器至少:用机器人单元中的第一协作机器人执行协作任务的第一子任务的动作,同时第二协作机器人根据所述第二协作机器人的第一记录动作在机器人单元中操作,所述第二协作机器人的第一记录动作在训练与所述第二协作机器人相关联的第二机器人控制器以控制第二协作机器人执行协作任务的第二子任务时被记录;以及至少基于在所述第一子任务的动作由所述第一协作机器人执行且所述第二协作机器人根据所述第一记录动作操作时第一协作机器人与第二协作机器人的交互的感测,训练与所述第一协作机器人相关联的第一机器人控制器。
[0076] 示例18是示例17的非暂态计算机可读存储介质,包括进一步的指令,该进一步的指令在被执行时使机器至少基于在所述第二协作机器人执行所述第二协作机器人的第二记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人,所述第二协作机器人的所述第二记录动作在训练所述第二机器人控制器以控制所述第二协作机器人执行所述协作任务的第三子任务时被记录。
[0077] 示例19是示例17的非暂态计算机可读存储介质,包括进一步的指令,该进一步的指令在被执行时使机器至少基于在所述第二协作机器人第二次执行所述第二协作机器人的所述第一记录动作时所述第一协作机器人与所述第二协作机器人的交互的感测来训练所述第一机器人控制器以控制所述第一协作机器人。
[0078] 示例20是示例17的非暂态计算机可读存储介质,其中第一协作机器人与第二协作机器人的交互的感测包括第一协作机器人的边界违反。
[0079] 尽管本文中已公开了某些示例方法、设备和制品,但本专利涵盖的范围并不限于此。相反,本专利涵盖落入本专利权利要求范围内的全部方法、设备和制品。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈