当前位置: 首页 > 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.lryc.cn/news/601604.html

相关文章:

  • 小白成长之路-Ansible自动化(一)
  • 小白投资理财 - 从换手率和成交量分析股票趋势
  • 【机器学习深度学习】NLP评价指标 BLEU 和 ROUGE
  • 扩展组件(uni-ui)之uni-group
  • Dify 本地化部署深度解析与实战指南
  • C语言自定义数据类型详解(四)——联合体
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现PCB上二维码检测识别(C#代码UI界面版)
  • 2.安装CUDA详细步骤(含安装截图)
  • JavaEE--3.多线程
  • [N1盒子] 斐讯盒子N1 T1通用刷机包(可救砖)
  • [硬件电路-96]:什么是闭环反馈?什么是闭环正反馈控制?什么是闭环负反馈控制?
  • Java面试精进:测试、监控与序列化技术全解析
  • 【模电笔记】—— 波形发生电路(波形振荡器)
  • Redisson的布隆过滤器
  • 安卓打包遇到问题
  • 重温经典,小巧方便的 WinXP 来啦!提供离线驱动
  • net8.0一键创建支持(Kafka)
  • 深度学习在自动驾驶车辆车道检测中的应用
  • 命令行和neovim的git操作软件-lazygit
  • GO语言 go get 下载 下来的包存放在哪里
  • MMAP 机制通俗易懂
  • 如何在 Ubuntu 24.04 或 22.04 中更改 SSH 端口
  • Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)
  • 图像处理:第二篇 —— 选择镜头的基础知识及对图像处理的影响
  • sealos 方式安装k8s5节点集群
  • K8S 九 安全认证 TLS
  • 记录几个SystemVerilog的语法——时钟块和进程通信
  • 系统集成项目管理工程师【第九章 项目管理概论】 - 价值交付系统
  • C51:使用超声波测量距离
  • [10月考试] C