ISSACLAB如何合成数据

Xbot具身知识库 2025-08-26 17:32

“智能不是记住一切,而是学会如何在不同环境下保持鲁棒。”

ISSACLAB仿真数据合成方法是 “人演示 → 标注 → 变换与拼接 → 仿真回放校验 → HDF5写盘 → 训练/评估” 的Pipeline详细如下:


一、Pipeline 原理


1. 人类遥操作采集(Teleop → Trajectory)

  • 控制链条

 输入设备(Keyboard / SpaceMouse / XR 手部追踪)

 → 计算末端执行器目标位姿 (EEF Pose, SE(2)/SE(3),相对或绝对)
 → IK 求解
 → 关节控制(PD / 力矩控制)
 → 物理仿真闭环。

  • 相对 vs 绝对坐标

  • 相对(Rel):鲁棒、适配场景随机化。

  • 绝对(Abs):直观,但依赖精确配准。

  • 采样与记录

  • 统一时钟采样(20–50 Hz)。

  • 保存:关节角 / EEF 位姿 / 对象位姿 / 夹爪状态 / 相机图像(必要时)。

  • 数据策略

  • 少而精(≥10 条高质量成功演示)优于多而杂。

  • 失败轨迹当场丢弃,减少后续清洗。

2. 演示回放与粗筛(Replay → Curation)

  • 一致性检验:同初始条件下回放应近似重现。若偏差大,常见原因是:IK 超限、接触不稳、轨迹抖动。

  • 冗余裁剪:删除空转段,减少无关状态。

  • 目标:提前剔除“不稳样本”,保留清晰演示。

3. 子任务结构化(Subtasks)

3.1 三要素

  • object_ref:当前交互的对象坐标系(若无对象则为 None)。

  • term_signal_id:子任务结束的标志(事件检测/启发式)。

  • interpolation_steps:拼接到下个子任务的插值步数。

原则:子任务 尽量少,边界选在“自由空间/动力学平稳”的时刻。

3.2 对象相对变换(应对随机化)

  • 轨迹以“对象坐标系”保存。

  • 新场景只需替换对象初始位姿,即可复用逻辑。

  • 收益:对初始姿态、桌高、纹理随机化具鲁棒性。

3.3 线性插值(平滑拼接)

  • 问题:子任务间 EEF 姿态不连续,出现“跳变”。

  • 方法:在 EEF 位姿空间插值(位置线性,姿态四元数球插),再转为动作。

  • 经验值:

  • 0 步 → 跳变;

  • 5 步 → 自然;

  • 20 步 → 冗长。

4. 仿真回放校验与写盘(Success → HDF5)

4.1 成功判定

  • 每条演示需在仿真执行并成功才写盘。

  • 任务类型:

  • State 任务:仅需低维状态。

  • Visuomotor 任务:需记录相机图像流。

  • 判定:依据任务布尔条件(如物块堆叠的顺序、稳定性阈值)。

4.2 HDF5 典型结构

Plain Text
/metadata
  algo: "mimic"
  task: "Isaac-Stack-Cube-…"
  action_norm: [-1, 1]
  相机标定 / 随机种子 / 参数版本

/episode_xxx/
  actions [T, A]           控制动作
  eef_pose_targets [T, 7]  EEF 目标位姿
  states [T, S]            低维状态
  images/cam_*_rgb [T,H,W,3] 多机位图像
  masks/valid [T]          有效帧标记
  subtask_ticks [K]        子任务边界
  object_poses             对象位姿快照
  success: bool            成功标志


5. 两条训练分支

  • State-only

  • 无相机,仅存状态序列。

  • 任务名带 …IK-Rel-Mimic-v0。

  • Visuomotor

  • 启用相机,保存图像与标定。

  • 命令需加 --enable_cameras,并设置渲染模式。

注意:任务名 / 策略类型 / 数据集必须一致。

6. 多 EEF 与 XR 采集要点

  • XR 输入:Vision Pro 提供手腕位姿,Pinocchio 解决 IK 抖动;手指用 dex-retargeting。

  • 子任务组织:如“左手 pick,右手 idle → place”。右手动作需边界标注。

  • 协作建议:避免双臂同时大动作,方便做相对插值。


二、经验与注意事项


A. 子任务设计

  • 数量少、边界清晰。

  • 边界选在自由空间/低约束区。

  • 终止信号应稳定可判定。

B. 相对化与插值

  • 均以交互对象坐标系做相对化。

  • 插值保证位姿连续,必要时保证速度/加速度 C¹ 连续。

  • 常见插值步数:5–10。

C. 仿真回放

  • 只写成功样本。

  • 对边缘样本可多 seed 检查。

  • 相机参数、渲染随机化需与训练分布匹配。

D. HDF5 数据健康

  • 动作、状态、图像严格对齐。

  • 元数据完整记录(任务版本、随机化参数、归一化范围)。

  • episode 分块存储,压缩平衡速度与体积。

E. 训练与评估

  • 做任务级/对象级留出评估泛化。

  • 指标:成功率、误差、稳定时间。

  • 失败样本回流到采集规则,形成迭代闭环。

  • 可用 DAgger 再采样缓解 compounding error。

F. 多 EEF 与 XR 特别注意

  • 跨手约束需显式标注。

  • XR 噪声需滤波、限幅、标定。

  • 建议 Pinocchio 做运动学,减少 IK 抖动。

G. 常见陷阱

  • 子任务过多 → 拼接失败率升高。

  • 只用绝对坐标 → 随机化场景下失效。

  • 忽略相机 → 视觉策略训练不匹配。

  • 归一化不一致 → 动作尺度错位。

  • 边界标注漂移 → 相对化与插值失败。


资讯配图

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号