当前位置: 首页 > news >正文

【学习笔记】DexMimicGen:通过模仿学习实现双臂灵巧操作的自动化数据生成

一、引言

双臂机器人操作的数据瓶颈

  • 数据采集成本高,需大量人力和时间。
  • 人形机器人双臂与灵巧手的协同控制难度更大。
  • 现有远程操作接口复杂且难以规模化。

自动化数据生成的解决方案

  • 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降维可视化。
  • 结果显示末端执行器动作分布显著扩展。
  • 手指关节动作主要进行局部插值,而非广泛扩展。
http://www.dtcms.com/a/301470.html

相关文章:

  • 数据结构基础内容(第三篇:堆栈)
  • 深度解析 inaSpeechSegmenter:高效音频语音分割与检测开源工具
  • Epoll事件EPOLLRDHUP详解
  • springboot基于Java与MySQL库的健身俱乐部管理系统设计与实现
  • C51:使用超声波测量距离
  • C#.NET dapper 详解
  • MySQL 中的 BufferPool 和 ChangeBuffer
  • Amazon Relational Database Service (Amazon RDS)入门课
  • 量子力学的基本假设
  • 【Java】图书管理系统设计详解
  • 《 集成异步任务与定时调度:线程池与任务中心设计》
  • C++--继承
  • 设计模式(六)创建型:单例模式详解
  • VINS外参精确自标定飘的问题
  • 2025.7.22总结-幸福的力量
  • 模型评估的介绍
  • 探秘CommonJS:Node.js模块化核心解析
  • macOS配置 GO语言环境
  • Python测试框架之pytest(一)
  • 数学基础薄弱者的大数据技术学习路径指南
  • 一、搭建springCloudAlibaba2021.1版本分布式微服务-父工程搭建
  • LeetCode 76:最小覆盖子串
  • 分布式事务:二阶段提交和三阶段提交底层原理
  • AI时代,我们更需要自己的开发方式与平台
  • java--函数式接口全面总结与使用场景指南
  • LeetCode 611.有效三角形的个数
  • python---eval函数
  • Ashampoo Background Remover(照片去背景工具) v2.0.2 免费版
  • Oracle EBS 库存期间关闭状态“已关闭未汇总”处理
  • 【成功经验分享】Github Education (Github学生认证)认证