DW0.5 · SO-101 动作条件世界模型(仿真 + 真机 10 任务混训)
在 Dexmal/DW05-Robotwin 上全量微调得到的 SO-101 世界模型:
给它当前画面、机械臂状态和一串未来动作,它画出「照这串动作做下去会看到什么」。
文件
| 文件 |
内容 |
model.pt |
微调后的权重(约 12 GB) |
norm_stats.json |
训练时的动作归一化统计,推理必须用同一份 |
底座里的 VAE、文本编码器与 Wan2.2-TI2V-5B 扩散主干仍从 Dexmal/DW05-Robotwin 取,本仓只放微调后的权重。
训练
- 数据:与策略模型同一份,仿真三场景 1498 集 + 真机九任务 2200 集,共 3698 集 / 10 个任务
- 起点:
Dexmal/DW05-Robotwin,剔掉与双臂机器人绑定的动作头与本体编码器(宽度对不上 SO-101,重新学)
- 全量微调 + DeepSpeed ZeRO-1,每卡 batch 1 × 3 卡,20000 步,学习率 1e-4 cosine
- SO-101 的 6 维状态填进 RobotWin 的 16 槽排布:前五个槽放五个臂关节,夹爪落在第 7 槽;三路视图用 顶视 + 腕部 + 腕部
仿真验证
拿策略模型在仿真里新跑出的 12 条轨迹(训练集里没有),从第 0 帧起连推 3 轮、共 96 步,和仿真真实画面比:
| 喂给它的动作 |
平均 PSNR |
| 轨迹里真实的动作 |
21.65 dB |
| 不预测,复制第一帧 |
19.60 dB |
| 同一串动作按时间倒放 |
17.60 dB |
真实动作 12 条全部胜过倒放 —— 它按动作推演未来,不是在放一段和动作无关的视频。
用法注意
- 本体状态在训练时没有归一化:推理时把 6 维状态排进 16 槽、补一位终止标志 0 后原样送入,不要套 RobotWin 的分位数归一化。
- 动作条件用「相对第一帧的增量」,夹爪那一维不做增量。
用法与评测脚本见 dexbotic 的 docs/so101.md(script/so101/dw05_sim_check.py),
教学示例见 Xbotics-Dexmal-Workshop。
许可
Apache-2.0,随底座 Dexmal/DW05-Robotwin。