25年3月来自Nvidia、UT Austin和 UCSD 的论文“DexMimicGen: Automated Data Generation for Bimanual Dexterous Manipulation via Imitation Learning”。
通过模仿人类演示来学习是教授机器人操作技能的有效方法。然而,由于成本高昂且需要耗费大量人力,数据采集成为该范式广泛应用的主要瓶颈。人们对双臂灵巧机器人(例如人形机器人)的模仿学习表现出浓厚的兴趣。遗憾的是,由于同时控制双臂和多指手的难度,此类机器人的数据采集更具挑战性。在仿真环境中自动生成数据是一种极具吸引力且可扩展的替代方案,能够满足训练数据的需求。DexMimicGen,是一个大规模的自动数据生成系统,它能够从少量人类演示中合成双臂灵巧机器人的操作轨迹。其构建一系列双臂灵巧操作的仿真环境,涵盖各种操作行为以及双臂间不同的协调要求。仅使用 60 个人类演示就生成 21,000 个演示,并研究多种数据生成和策略学习决策对智体性能的影响。最后,提出一种从真实-到-模拟-再到-真实的流程,并将其部署到现实世界的人形机器人易拉罐分拣任务中。
如图所示:
该系统基于MimicGen[17]构建,后者针对单臂平行爪机械臂设置提出类似的流程。然而,DexMimicGen仍需克服一些技术挑战才能实现相同的原理。
MimicGen依赖于将每个任务分解为一系列子任务,分别生成每个子任务的轨迹,然后将它们拼接起来。双手灵巧操作涉及三种类型的子任务:双臂需要独立完成子目标、相互协调地完成子目标,并且遵循特定的顺序。MimicGen依赖于单一的子任务分割,难以处理双手任务中所需的独立和相互依赖的动作。为了应对这些挑战,DexMimicGen采用一种灵活的单臂子任务分割策略,允许每只手臂独立执行其子任务,同时仍然能够满足必要的协调阶段。 DexMG 采用同步策略来确保协调子任务期间动作的精确对齐,并采用排序约束机制来强制执行顺序子任务期间动作的正确顺序。
与 MimicGen [17] 类似,做出以下假设。(A1):动作空间 A 由每个机械臂的以下组件构成:末端执行器控制器的姿态指令和机械手的驱动指令(平行爪夹爪为一维开/闭指令,灵巧手为六维关节指令)。(A2):每个任务都可以分解为以目标为中心的子任务。(A3):在数据采集过程中,可以在机械臂与目标接触之前观察或估计目标的姿态。
DexMimicGen 生成用于双手灵巧操作的数据——与 MimicGen 相比,这需要应对三个关键挑战。首先,每条手臂必须独立于另一条手臂运行以完成不同的目标。其次,手臂必须协调才能完成共同的目标。最后,一条手臂的子任务必须完成才能尝试下一个子任务。DexMimicGen 通过引入子任务类型分类(如图所示)来应对这些挑战 —— 并行、协调和顺序等子任务,并对数据生成过程进行相应的调整。需要注意的是,与 MimicGen 类似,利用机器人动作相对于物体姿态的 SE(3) 等变性。具体来说,当对物体的姿态应用 SE(3) 变换时,可以类似地对机器人动作应用相同的 SE(3) 变换,以复制原始机器人动作对新物体姿态的相同效果。
并行子任务
在双臂操作中,每只手臂必须能够独立于另一只手臂进行操作。例如,在零件组装任务开始时(上图上),每只手臂需要抓取一个不同的物体,并且可能在不同的时间点完成抓取。这使得 MimicGen 中单一的固定子任务序列不再适用。为了使涉及两只手臂的并行子任务能够灵活地完成,将每个任务视为由每只手臂的一系列子任务组成:S^a1^_1 (o_1), ..., S^a1^_M1(o_M1) 和 S^a2^ (o_1 ), ..., S^a2^ (o_M2 )。每个源演示都像 MimicGen 一样被分割成以物体为中心的操作片段,但现在每只手臂都有自己的一组片段 ({τ^n^_i}, n ∈ {1,2}, i=1, M_n)。
然而,由于机械臂的子任务是独立定义的,它们的执行开始和结束时间可能不同,彼此不对齐。为了解决这个问题,DexMimicGen采用一种异步执行策略,为每个机械臂维护一个动作队列。每个机械臂的动作会逐个并行地从队列中取出。当某个机械臂的队列为空时,它会填充下一个子任务的转换后的子任务片段(使用与MimicGen相同的转换)。这种方法允许两个机械臂同时执行动作,而无需子任务之间进行对齐。
协调子任务
某些任务需要精确协调,例如在“盒子清理”任务中放置盖子(上图中)。在这些协调子任务中,执行过程中两个末端执行器之间的相对姿态必须与源演示中的相应相对姿态保持一致。为了实现这一点,确保:1)两个机械臂以同步的方式执行其轨迹;2)两个机械臂的轨迹由相同的变换生成。为了实现这种时间对齐,强制协调子任务在源演示分割期间的同一时间步结束。在执行过程中,实施一种同步策略,其中每个机械臂等待另一个机械臂,直到它们在协调子任务中剩余的步数相同,从而使子任务执行的结束与子任务分割对齐。
提供了不同的源演示变换方案,以获取协调子任务中两个机械臂的通用变换矩阵。这些方案包括变换方案和重放方案。变换方案利用变换矩阵 T^o′_i^_W (T^o_i^_W)^−1^,该变换矩阵由第一机械臂开始执行协调子任务时物体的位姿 T^o′_i^_W 和对应源段中的物体位姿 T^o_i^_W 计算得出。相比之下,回放方案直接使用源轨迹,不进行任何变换。回放方案对于某些特定的协调子任务(例如罐头分拣和运输任务的交接阶段)尤为有利,因为它能确保轨迹保持在运动学限制范围内,并且完全可执行。
顺序子任务
有些任务需要按特定顺序完成子任务。例如,在“倾倒”任务(上图下)中,机器人必须先用一只手将球倒入碗中,然后再用另一只手将碗移到垫子上。为了处理这些顺序子任务,实现一种排序约束机制。根据任务要求指定一个前置子任务(倾倒球)和一个后置子任务(拿起碗)。该机制确保执行后置子任务的机械臂必须等待另一机械臂的前置子任务完成后才能继续执行后置子任务。
双臂操作的数据生成
其以托盘抬起任务为例,概述 DexMimicGen 的整体数据生成工作流程。首先,使用手动定义的启发式方法或人工标注,将源演示分割成每个机械臂的子任务(如图左)。每个机械臂的最后一个子任务需要协调(它们必须同时抬起托盘),因此将其标注为协调子任务,以便在数据生成过程中进行同步。
在数据生成开始时,场景被随机化并选择一个源演示(与 MimicGen 相同)。然后,并行地迭代生成并执行每个机械臂的每个子任务的轨迹(参见上图右)。在本例中,给定参考物体(托盘)的姿态,计算当前托盘姿态与源片段中托盘姿态之间的相对变换。用此变换来变换两个机械臂的源轨迹,因为这些是协调子任务。然后,用同步执行策略来执行生成的轨迹。请注意,重放源演示中的手指关节动作来生成手指运动,因为手指运动始终相对于末端执行器的运动。每个生成的演示只有在任务成功的情况下才会保留,并且此过程会重复进行,直到生成足够的数据为止。
为了实现 DexMimicGen,构建一个大型仿真环境集合和一个远程操作系统,该系统允许在仿真和现实世界中收集人类演示数据。
仿真环境。引入多种设置和任务,以展示 DexMimicGen 在不同人体模型和操作行为中生成数据的能力。这些任务在 Robo-Suite [70] 中开发,并使用 MuJoCo [71] 进行物理仿真。重点关注三种人体模型:(1)配备平行爪夹爪的双臂熊猫机器人;(2)配备灵巧手的双臂熊猫机器人;(3)配备灵巧手的 GR-1 人形机器人。针对不同的人体模型应用不同的控制器。对于熊猫机器人的双臂,利用操作空间控制(OSC)[72] 框架,该框架将末端执行器的姿态增量转换为关节力矩指令。对于人形机器人,基于mink[73,74]实现一个逆运动学(IK)控制器。对于人形机器人复杂的运动学结构(双臂连接至同一躯干),这是一种有效的处理方法。IK控制器将全局目标末端执行器姿态转换为机器人关节位置。对于手指控制,直接使用关节位置控制。
对于每个实例,引入三个任务,总共九个任务,如图所示。这些任务涉及高精度操作(穿线、零件组装、装箱、咖啡)、关节体操作(抽屉)以及长时域操作(运输)。这些任务还需要克服多臂交互中的关键挑战。其中一些任务包含协调子任务,需要双臂协同完成(穿线、运输、装箱、托盘升降、罐头分拣)。其他任务需要按顺序执行子任务(例如零件组装、抽屉清理、倾倒、冲泡咖啡)。还引入任务变体,以扩大某些任务的默认重置分布 D0,类似于 MimicGen 中的变体。例如,在倾倒任务中,D1 代表一个变体,其中物体的初始重置分布范围更大;而在 D2 中,碗和绿色垫子的重置位置互换。这些仿真环境以及 DexMimicGen 生成的数据集,为分析影响双手和灵巧操作场景下模仿学习性能的各种因素提供一个有价值的平台。
远程操作系统。为了收集任务的源演示,采用针对每种具身定制的不同远程操作方法。对于配备平行爪夹爪的双臂熊猫机器人,用 RoboTurk [4,24] 中介绍的基于 iPhone 的远程操作界面来捕捉人类的手腕和夹爪动作。对于配备灵巧手的机器人,实现一个基于 Apple Vision Pro 的远程操作系统。具体而言,使用 VisionProTeleop 软件 [75] 通过 Apple Vision Pro 采集手腕和手指姿态。首先,对齐人和机器人,将原始的人体末端执行器姿态转换为机器人姿态。设计一种人机标定流程,要求远程操作员从一个固定姿态开始,然后自动计算将人体姿态映射到机器人目标的相对变换矩阵。该标定流程适用于具有灵巧手部的双臂熊猫机器人和 GR-1 人形机器人。用 OmniH2O [13] 提供的重定向方法,将人体手指姿态重定向到机器人手指关节位置。该远程操作系统将人体动作转换为机器人动作目标,能够直观地采集演示数据。
针对每项任务,使用并联爪机械臂收集十个人类演示视频;而对于涉及灵巧手的任务,由于收集灵巧手演示视频会增加操作人员的负担和时间成本,仅收集五个演示视频。随后,用 DexMimicGen 为每个任务生成 1000 个演示视频。每个数据集均用于通过行为克隆法训练视觉运动策略,训练模型包括 RNN [1]、RNN-GMM [1] 和扩散策略 [54]。评估方法与先前工作 [1,17] 相同:对每个实验使用三个不同的随机种子,并取每个种子下策略成功率最高的结果。
硬件设置。用一台配备两个 6 自由度 Inspire 灵巧机械手的 Fourier GR1 机器人。视觉方面,用两台 Intel RealSense D435i 摄像头:一台头戴式摄像头提供第一人称视角,另一台摄像头位于机器人前方提供第三人称视角。
数字孪生设置。在罐头分类任务(如图所示)上进行实验,使用与真实世界设置相匹配的仿真数字孪生模型。为了确保真实世界和仿真环境之间的精确对齐,在数据采集之前对物体进行姿态估计。使用头戴式摄像头,捕获初始 RGB-D 帧,并应用 GroundingDINO [78] 算法分割物体的 RGB 掩模。用真实世界物体的中心点(通过对 RGB 掩模内的深度值取平均值确定)来初始化仿真中物体的 x 和 y 坐标。
数据采集流程。使用远程操作流程,收集四个用于罐头分类任务的人类演示数据。这些演示数据在仿真环境中重现,并作为数字孪生模型中 DexMimicGen 的源演示数据。接下来,通过将初始物体状态从真实环境同步到仿真环境来收集新的真实世界演示数据,然后尝试使用 DexMimicGen 在仿真环境中生成新的演示数据。如果演示在仿真环境中成功,则将机器人控制动作序列发送到现实世界执行。这样,数字孪生模型可以确保在生成真实世界数据过程中的安全性,而 DexMimicGen 则可以减少数据收集过程中的人工干预,并且除了环境重置之外,DexMimicGen 的运行是自主的。我们使用上述方法成功生成了 40 个演示数据。

