23年10月来自Nvidia和德州Austin分校的论文“MimicGen: A Data Generation System for Scalable Robot Learning using Human Demonstrations”。
事实证明,从大量人类演示中进行模仿学习,是构建有能力的机器人智体的有效范例。但是,收集演示的成本可能极其高昂且耗时。MimicGen,是一个仅将少量人类演示调整到新环境来自动合成大规模丰富数据集的系统。用 MimicGen 从仅约 200 个人类演示中生成了 18 个任务中具有不同场景配置、目标实例和机械臂的 50,000 多个演示。通过模仿学习,机器人智体可以在这个生成的数据集上进行有效训练,从而在广泛的初始状态分布中在长期和高精度任务(例如多部件组装和咖啡制备)中取得强劲表现。进一步证明,MimicGen 数据的有效性和实用性与收集额外的人类演示相比毫不逊色,这使其成为扩大机器人学习一个强大且经济的方法。
在从人类演示的模仿学习中,一种流行的方法是让人类操作员通过不同的控制界面远程操作机械臂 [1, 2],从而演示机器人执行各种操作任务,然后使用数据训练机器人自行执行这些任务。最近的尝试旨在通过与更大的人类操作员群体一起收集更多任务数据来扩展这一范例 [3–6]。这些研究表明,在大型多样化数据集上进行模仿学习,可以产生令人印象深刻的性能,使机器人能够泛化到新目标和未见过的任务。这表明,构建具有通用能力的机器人的关键一步是收集大量丰富的数据集。
然而,这种成功离不开昂贵且耗时的人力劳动。以 robomimic [7] 中的一个案例研究为例,其中智体的任务是将可乐罐从一个箱子移到另一个箱子里。这是一项涉及单个场景、单个目标和单个机器人的简单任务;然而,要实现 73.3% 的适度成功率,需要一个包含 200 次演示相对较大的数据集。最近,为了扩展到具有不同场景和目标的设置,需要涵盖数万次演示的更大数据集。例如,[3] 表明,超过 20,000 条轨迹的数据集可以推广到物体和目标变化适中的任务。RT-1 [5] 近一年半的数据收集工作涵盖了几个人类操作员、厨房和机械臂,制定可以在少数厨房中以 97% 的成功率重排列、清理和检索目标的策略。然而,尚不清楚需要多少年的数据收集才能将这样的系统部署到野外的厨房。
一个问题——这些数据中有多少实际上包含独特的操纵行为?这些数据集的大部分可能包含在不同环境或情况下应用的类似操纵技能。例如,无论杯子放在哪个台面上,人类操作员都可能展示出非常相似的机器人抓取轨迹。在新的环境中重新利用这些轨迹是一种无需太多人力即可生成多样化数据的方法。事实上,最近的几项研究基于这种直觉,提出了重现先前人类演示的模仿学习方法 [8–11]。虽然这些方法很有前景,但它们对特定任务和算法做出了假设,限制了它们的适用性。相反,应该寻求开发一种通用系统,可以无缝集成到现有的模仿学习流程中,并提高各种任务的性能。
如图所示 MimicGen,一个数据生成系统,从一小组人类演示中生成大量多样性数据集,其方法是重新利用这些演示应用在新设置中,即不同配置、目标和机器人硬件。
行为克隆 (BC) [28] 是一种离线学习策略的标准方法,通过训练策略来模仿演示中的动作。它在之前的机器人操作工作中得到了广泛的应用 [1,19,25,29–34] 。本研究用 BC 从 MimicGen 生成的数据集中训练单任务策略。然而,MimicGen 还可用于为各种现有的离线学习算法生成数据集,这些算法从各种多任务数据集中学习 [53, 55, 79–83]。
MimicGen 首先将源数据集解析为多个段 — 每个任务中每个以目标为中心的子任务一个段。然后,为了生成新场景的演示,MimicGen 为每个子任务生成并执行轨迹(末端执行器控制姿势序列),方法是从源演示中选择一个参考段,根据新场景中目标的姿势对其进行转换,然后使用末端执行器控制器执行目标姿势的序列。如图所示:
对每个子任务重复执行这个过程,直到执行完最后一个片段。但是,这个过程可能并不完美——由于控制和手臂运动学问题导致的微小轨迹偏差可能会导致任务失败。因此,MimicGen 在执行完所有片段后检查任务是否成功,并且只保留成功的演示。将成功生成的轨迹数量与尝试总数之间的比率称为数据生成率。
该流水线仅依赖于目标框架和机器人控制器框架——这使得数据生成可以在具有不同初始状态分布、目标(假设它们具有定义的规范框架)和机械臂(假设它们共享末端执行器控制框架的约定)的任务中进行。在实验中,为每个机器人操作任务设计了任务变型,其中改变初始状态分布(D)、任务中的目标(O)或机械臂(R),并表明 MimicGen 能够在这些变型之间进行数据收集和模仿学习。
如图所示:将 MimicGen 应用于广泛的任务和任务变型,展示它如何在各种操作行为(包括拾取和放置、接触丰富的交互和动作)中为模仿学习生成有用的数据。
将任务分组并总结如下。 一些任务是使用 robosuite 框架[49](MuJoCo 后端 [50])实现的,其他任务则在 Factory [51](Isaac Gym [52] 后端)中实现。 基本任务(Stack、Stack Three):一组盒子堆叠任务。 接触丰富的任务(Square、Threading、Coffee、Three Piece Assembly、Hammer Cleanup、Mug Cleanup):一组涉及接触丰富的行为(如插入或抽屉)的任务。 长期任务(厨房、螺母组装、拾取放置、咖啡准备):需要将多个行为链接在一起。 移动操作任务(移动厨房):需要底座和手臂运动。 工厂任务(螺母螺栓组装、齿轮组装、框架组装):工厂中的一组高精度装配任务 [51]。
对于每项任务,一名人类操作员使用遥操作系统 [2,23] 在默认变型任务 (D0) 上收集 10 个演示的源数据集(移动厨房除外,由于目标变型数量众多,使用 25 个演示,而 Square 则使用 10 个来自机器人 Square PH 数据集的演示 [7])。MimicGen 用于使用每个任务的源数据集为每个任务变型生成 1000 个演示。由于数据生成并不完善,因此不能保证每次数据生成尝试都能成功完成任务。未实现任务成功的尝试将被丢弃,并且继续为每个任务变型收集数据,直到收集到 1000 个任务成功示例。然后,每个生成的数据集用于使用具有 RNN 策略的行为克隆来训练策略 [7]。还采用 Mandlekar 的惯例。[7] 用于报告策略绩效 — 跨 3 个不同种子在所有策略评估中的最大成功率。所有策略学习结果均显示在 RGB 观测值训练的基于图像智体上。