ManiSkill2:把「操作基准」做成一个能换控制器的多面体
🎯 为什么重要:操作研究的「基础设施断层」
2022 年前你若想做「泛化操作」,会发现一个尴尬现实:每个基准都故意绕开了一个真问题。
ManiSkill2 的回答是「都给」——同一个接口里塞下 4 大类、20 个任务族、2000+ 物体、4M 帧演示,并且原生支持刚体 + 软体的全动力学仿真:
💡 核心思想:把基准做成「可换控制器」的可组合积木
论文最被引用的不是任务本身,而是几个让基准「真正可用」的系统设计。最关键的一条是动作空间可转换:
控制器决定了策略的动作空间——而动作空间直接决定 RL 的探索效率和 IL 的拟合难度。论文 §5.2 给出实证:在 PickSingleYCB 上,把
delta-EE 换成 delta-joint,成功率从 0.51 掉到 0.22。同一个任务、同一份演示,控制器一换,结果差 2 倍多。所以「不能换控制器的基准 = 把动作空间的设计选择强加给所有用户」。
🛠️ 四个让基准真跑通的工程关键
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 实时 MPM 软体仿真 | 用 Nvidia Warp + CUDA 自己写 MPM 求解器,并实现刚-柔 2-way coupling | 此前 PlasticineLab 不能耦合机器人,SoftGym 不能仿真弹塑性。ManiSkill2 是第一个实时刚性-MPM 耦合的环境 |
| ② 异步渲染服务器 | 渲染从环境进程剥离,多个环境共享同一份网格/纹理 | 74 个 YCB 物体的场景,Habitat 2.0 内存随环境数线性增长,ManiSkill2 几乎不增长 |
| ③ 多控制器 + 动作空间转换 | 同一轨迹可在 joint/delta-joint/delta-EE 之间重投影 | 研究者拿到一份 TAMP 演示,可立刻用到任意动作空间的算法上,不必重新生成数据 |
| ④ 统一评估协议 | 统一接口、统一指标(seen/unseen 资产、initial states)、云端评测 | 过去「A 方法在 A 环境、B 方法在 B 环境」无法比较;现在可在同一排行榜直接对比 |
📊 关键结果:速度 + 「_baseline 都搞不定」的事实
| 维度 | 数字(来自原文) |
|---|---|
| 规模 | 20 个任务族 · 2000+ 物体模型 · 4M+ 演示帧 |
| 采样速度(rigid-body, PickCube, Nature CNN) | ~2000 FPS(1 GPU + 16 CPU 工作站) |
| 内存共享 | 74 YCB 物体的 PickClutterYCB,多环境共享网格/纹理;Habitat 2.0 在同设置下显存线性增长 |
| BC 成功率(Point Cloud / RGBD) | PickCube 0.22 / 0.01 · Fill 0.45 / 0.62 · AssemblingKits 0.00 · PegInsertionSide 0.00 |
| DAPG+PPO,25M 步(Point Cloud / RGBD) | PickCube 0.94 / 0.91 · StackCube 0.95 / 0.87 · PickSingleYCB 0.51 / 0.18 · PegInsertionSide 0.01 · AssemblingKits 0.00 |
| 控制器消融 | PickSingleYCB:delta-EE 0.51 → delta-joint 0.22 |
| Sim2Real | PickCube 视觉策略:仿真 91.0% → 真机 60.0%(50 次实测) |
🌐 在领域中的位置
ManiSkill2 是操作基准「从单一任务走向系统化」的分水岭。它确立的几个习惯——多控制器、统一接口、软体仿真、TPN/CGN/BC/PPO 全跑一遍——成了后续基准的标配。同时它把 4M 演示帧开放出来,成了后来 diffusion policy / 3D policy 等方法在仿真里复现的公共数据底座。
❓ 常见误区
ManiSkill2 是「一个仿真器」吗?
不是。它建立在 SAPIEN(刚体)+ 自研 Warp-MPM(软体)之上,本身是一套任务环境 + 统一接口 + 评估协议。它的贡献是「把分散的资产和任务组织成可比的标准件」,而不是再写一个物理引擎。
2000 FPS 是怎么做到的?是 Isaac Gym 那种全 GPU 仿真吗?
不是。它是多进程 Python + 异步 RPC 渲染服务器的折中方案。Isaac Gym 全 GPU 快但渲染弱、加资产难;EnvPool 快但要写 C++。ManiSkill2 选了「Python 写环境 + 渲染独立服务化」,在可定制性和速度之间取平衡,且把网格/纹理在多环境间共享。
BC 在 PickCube 上只有 0.22,是不是任务太难?
相反,任务不难,是 BC 太弱——同样的 PickCube,DAPG+PPO 能到 0.94。0.22 反映的是「行为克隆对初始状态分布、对误差累积的脆弱」。这正是基准想暴露的:不同的算法在不同任务上能力差异巨大,单看一个数字会被误导。
软体仿真(Pinch/Write)真的能用吗?
能用,但训练难度极高。论文 §5.3 把 Pinch 的运动规划轨迹同步在仿真和真机上执行,最终 plasticine 形状对得上——证明 MPM 仿真精度足够。但 BC/RL 学习层面还是 0.00,说明感知 → 软体控制的策略学习问题在 2023 年仍未解决。