一、引言
双臂机器人操作的数据瓶颈
- 数据采集成本高,需大量人力和时间。
- 人形机器人双臂与灵巧手的协同控制难度更大。
- 现有远程操作接口复杂且难以规模化。
自动化数据生成的解决方案
- DexMimicGen是一个大规模自动化数据生成系统。
- 可从少量人类演示中合成双臂灵巧操作轨迹。
- 提供多个模拟环境,涵盖不同操作行为和协调需求。
- 仅用60个源演示生成21K个演示,验证数据生成与策略学习效果。
- 构建真实到模拟再到真实的工作流程,应用于现实世界的人形机器人罐体分拣任务。
二、相关工作
远程操作数据采集
- 远程操作是机器人任务演示的常用方法。
- 多臂和人形机器人数据采集需特殊接口。
- 依赖大量人力,难以扩展。
模仿学习与数据增强
- 行为克隆是主流学习框架。
- 现有方法依赖大量演示数据。
- DexMimicGen通过少量人类演示生成物理有效的训练数据。
三、前提条件
模仿学习框架
- 将任务建模为部分可观测马尔可夫决策过程(POMDP)。
- 学习从观测到动作空间的映射策略。
- 采用最大似然目标训练策略。
假设条件
- 动作空间包括末端执行器位姿与手部控制命令。
- 每个任务可划分为以物体为中心的子任务。
- 数据采集时可提前观测或估计物体姿态。
四、DexMimicGen方法
并行子任务
- 每只手臂独立执行不同任务。
- 引入异步执行策略,各臂动作队列独立。
- 每个臂的子任务可单独生成并执行。
协调子任务
- 两臂需协同完成目标(如盖子放置)。
- 采用同步执行策略,确保两臂动作对齐。
- 提供两种变换方案:变换与回放。
- 变换方案:基于物体姿态计算SE(3)变换矩阵。
- 回放方案:直接使用源轨迹,确保可执行性。
顺序子任务
- 一个臂的子任务必须在另一个臂完成前才能开始。
- 引入顺序约束机制,确保执行顺序。
- 例如:倒球后放置碗。
数据生成流程
- 分割源演示为以物体为中心的操作段。
- 在新环境中通过变换源轨迹生成新轨迹。
- 执行轨迹并检查任务成功与否,仅保留成功演示。
五、系统设计
模拟环境
- 使用RoboSuite与MuJoCo进行物理仿真。
- 支持三种机器人形态:
- 双臂Panda(平行夹爪)
- 双臂Panda(灵巧手)
- GR-1人形机器人(灵巧手)
- 控制器设计:
- Panda臂采用操作空间控制(OSC)
- 人形机器人采用逆运动学(IK)控制器
- 手指直接使用关节位置控制
九项任务设计
- 高精度操作任务(穿线、拼装、装盒、咖啡)
- 关节物体操作任务(抽屉)
- 长周期任务(运输)
- 任务变体扩展初始分布(如D1、D2)
远程操作系统
- 针对不同机器人形态采用不同远程操作接口:
- 平行夹爪:iPhone远程操作
- 灵巧手:Apple Vision Pro远程操作
- 校准过程将人体姿态转换为机器人目标姿态
- 使用OmniH2O进行手指姿态重定向
六、实验
实验设置
- 每个任务采集10个源演示(平行夹爪),5个(灵巧手)
- DexMimicGen生成1000个演示/任务
- 使用RNN、RNN-GMM、扩散策略进行行为克隆训练
- 3个种子实验取最大成功率
DexMimicGen特性验证
- 使用DexMimicGen显著提升策略成功率
- 抽屉清理:0.7% → 76.0%
- 穿线:1.3% → 69.3%
- 拼装:3.3% → 80.7%
- 支持不同初始状态分布(D0 → D1/D2)
- 应用于BiGym基准任务(翻杯、洗碗机装盘、关闭所有杯子)
数据生成策略分析
- 回放方案在交接任务中表现更优(如运输:63.3% vs. 46.0%)
- 顺序约束机制提升任务成功率(如倒水:88.7% vs. 76.7%)
- 不同策略架构比较:
- 扩散策略总体表现最优
- RNN-GMM在灵巧手任务中表现不佳
真实世界部署
- 使用数字孪生实现真实机器人部署
- Fourier GR1机器人配双Inspire灵巧手与双RealSense相机
- 生成40个成功演示,训练策略在罐体分拣任务中达到90%成功率
- 对比仅使用4个源演示的策略(0%成功率)
七、结论
- DexMimicGen是一个高效的双臂灵巧操作数据生成系统
- 支持多种机器人形态与任务类型
- 提供大规模模拟环境与数据集
- 实现从真实到模拟再到真实的应用流程
- 开源数据集与环境促进未来研究
实现细节
DexMimicGen流程中哪些部分依赖人工输入,哪些部分是自动化的?
- 数据收集需要人工操作。
- 数据分割有两种方式:
- 一种基于手动定义的启发式规则(例如检测手与目标物体接触)。
- 另一种为手动分割,更灵活但耗时。
- 子任务结构默认为并行任务,但可手动指定协调或顺序任务。
- 一旦数据收集、分割完成并指定任务结构,后续流程完全自动化。
DexMimicGen如何判断任务成功?
- 每个任务实现一个成功检测函数。
- 通常基于最终仿真状态判断(如物体是否放入目标容器)。
- 成功检测用于在数据生成阶段过滤失败案例。
DexMimicGen如何处理机器人与物体的碰撞?
- 当前版本未显式处理碰撞问题。
- 一些失败案例源于轨迹与物体碰撞。
- 计划未来引入SkillMimicGen的运动规划模块来改进。
结果分析
哪些因素导致某些任务成功率较低?
- 例如穿线任务成功率低于70%。
- 推测原因是穿线物体和孔洞被遮挡,视觉策略难以完成任务。
- 可引入视觉强化学习以增强感知和控制能力。
DexMimicGen如何扩展数据分布?
- 对TwoArmCoffee任务的动作分布进行PCA降维可视化。
- 结果显示末端执行器动作分布显著扩展。
- 手指关节动作主要进行局部插值,而非广泛扩展。