ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LeIsaac × Cosmos video2action 数据管线:如何用 1 条演示扩出大规模合成机器人视频动作

LeIsaac × Cosmos video2action 数据管线:如何用 1 条演示扩出大规模合成机器人视频动作

【免费下载链接】leisaac

LeIsaac provides teleoperation functionality in IsaacLab using the SO101Leader (LeRobot), including data collection, data conversion, and subsequent policy training.

项目地址:https://gitcode.com/gh_mirrors/le/leisaac
点击查看免费下载

LeIsaac是基于 IsaacLab 的机器人遥操作与数据采集框架,搭配 SO101 机械臂(LeRobot)完成演示录制、HDF5/LeRobot 数据转换与策略训练。本文介绍它的 video2action 合成数据管线:借助Cosmos-Predict2.5把少量真实演示"扩散"成大规模合成视频,再用 IDM 逆动力学模型把视频转回可执行的机器人动作,最终回到 LeIsaac 仿真中回放验证——一条从"单条演示"到"大规模合成动作"的完整数据管线。

管线总览:4 步把 1 条演示变成 N 条合成轨迹

步骤做什么产出
1️⃣ 数据采集用 LeIsaac 遥操作录制演示,并转换为 LeRobot 数据集HDF5 数据集 + LeRobot 数据集
2️⃣ 视频生成Cosmos-Predict2.5 后训练 + 批量推理大规模合成 rollout 视频
3️⃣ 动作推断GR00T-Dreams 的 IDM 微调后,从视频中推断动作LeRobot 格式动作轨迹(parquet)
4️⃣ 回放验证合并为可回放 HDF5,在 Isaac Sim 中回放物理合理性验证

核心思路:Cosmos 只当"视频生成器"——它从你的 LeRobot 视频中学会该任务的视觉 rollout 分布,以文本提示词 + 视频前几帧为条件生成新视频;IDM 则负责把"看起来对"的视频翻译成"真的可执行"的关节动作。

第一步:LeIsaac 遥操作采集 + 转换 LeRobot 数据集

先用 SO101 Leader 臂在 Isaac Sim 中遥操作录制演示(如"把红方块举起来"),得到 HDF5 文件(如dataset.hdf5)。这份 HDF5 是整个管线的source of truth:既用于最终回放评测,也是构建 LeRobot 数据集的源头。

然后运行转换脚本把 HDF5 转成 LeRobot 格式(videos + meta + parquet):

python scripts/convert/isaaclab2lerobot.py --task_name <任务名> --hdf5_root ./datasets

⚠️关键避坑点:输出的视频编码必须是H.264,避免使用 AV1,否则 Cosmos 和 IDM 在解码时可能直接失败。转换时可将视频编码参数由av1改为h264(见 isaaclab2lerobot.py)。

📁 相关文件:isaaclab2lerobot.py

第二步:Cosmos-Predict2.5 后训练 + 批量生成视频

  1. 准备训练数据:按 Cosmos 约定组织目录——videos/下放重命名为1.mp4、2.mp4…的演示视频,metas/下放与之一一对应的 prompt 文本(从meta/tasks.jsonl中提取,如Lift_the_red_cube_up)。
  2. 后训练:在你的机器人本体 + 任务分布上后训练 Cosmos-Predict2.5,得到一个"懂你这条臂、这个任务"的 checkpoint。
  3. 批量推理:生成 JSONL 批处理配置(每条包含输入视频路径、任务 prompt、分辨率480,640、输出帧数等),一次批量生成大量合成 rollout 视频。

这一步的规模几乎只受 GPU 预算限制:prompt 可以按 episode 区分任务,视频以首帧 + 文本为条件自回归生成,16 秒级别的 rollout 一次即可产出。

第三步:IDM 逆动力学模型,把视频"翻译"成动作

视频本身不能驱动机器人,需要IDM(Inverse Dynamics Model,GR00T-Dreams)把 Cosmos 生成的视频映射为关节动作序列:

  1. 配置模态:为 SO101 编写modality.json(6 自由度:shoulder_pan / shoulder_lift / elbow_flex / wrist_flex / wrist_roll / gripper)并注册对应的 DataConfig;
  2. 微调 IDM:直接在第一步的 LeRobot 数据集上微调(torchrun scripts/idm_training.py --dataset-path … --data-config so101);
  3. 批量推断:将 Cosmos 输出(mp4 + json)转换为 IDM 可处理的任务目录结构,跑预处理 + 动作导出,产出全新的、与原始格式完全兼容的LeRobot 动作数据集(parquet)。

💡 注意:IDM 需要的是 Cosmos-Predict2环境(不是 2.5),依赖安装时pytorch3d要用--no-build-isolation,APEX 可直接移除。

第四步:合并 + 在 LeIsaac 中回放评测

IDM 产出的只是动作轨迹,回放还需要初始状态等环境信息,所以要把它"填回"原始 HDF5 模板:

# 1. LeRobot parquet → LeIsaac HDF5(自动做反归一化与关节限位换算) python scripts/convert/lerobot2isaaclab.py \ --lerobot_dir <idm输出目录> --output_hdf5 <输出.hdf5> \ --column_keys action observation.state # 2. 将合成动作合并进源 HDF5 模板 python scripts/tutorials/cosmos_merge.py \ --lerobot_hdf5 <合成动作.hdf5> \ --source_hdf5 <遥操作录制的源.hdf5> \ --output_hdf5 <最终可回放.hdf5>

合并时 cosmos_merge.py 会保留源数据集的结构、属性(如 env_args)和初始状态,仅覆写actions / processed_actions / obs.actions并更新帧数元数据。最后用 LeIsaac 的 action replay 模式在 Isaac Sim 中回放,直观验证合成动作的物理合理性:

python scripts/environments/teleoperation/replay.py \ --task <任务名> --replay_mode=action --dataset_file ./datasets/dataset.hdf5

📁 相关文件:lerobot2isaaclab.py、replay.py

新手常踩的 3 个坑

  1. 视频编码:AV1 编码的视频会让 Cosmos/IDM 解码失败,务必用 H.264;
  2. prompt 与视频一一对应:metas/下每个*.txt对应一个视频,prompt 内容来自tasks.jsonl,写错任务描述会生成"跑偏"的视频;
  3. DCP checkpoint 格式:Cosmos 后训练产出的是分布式 checkpoint,推理前必须先转成 consolidated PyTorch 格式。

总结

这条 LeIsaac × Cosmos 的 video2action 管线,用"遥操作采集 → 世界模型扩视频 → 逆动力学还原动作 → 仿真回放验证"四步,把昂贵的单条人工演示放大成可规模化、可评测的合成动作数据集,非常适合模仿学习数据增强的新手入门实践。完整步骤与全部脚本细节可参考官方教程文档 cosmos_tutorial.md。

【免费下载链接】leisaac

LeIsaac provides teleoperation functionality in IsaacLab using the SO101Leader (LeRobot), including data collection, data conversion, and subsequent policy training.

项目地址:https://gitcode.com/gh_mirrors/le/leisaac
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表