ManiSkill3:让「视觉 RL」从「按小时计」变成「按分钟计」的模拟器
🎯 为什么重要:视觉 RL 的「数据生成器」决定一切
2024 年机器人学习的现状:算法(PPO、SAC、TD-MPC2、Diffusion Policy)已经卷到极致,但视觉策略要在真机上 work,必须先在仿真里生成海量交互数据。问题来了——
① 渲染太慢:Isaac Lab、Brax/MJX 主要为 state-based RL 优化,视觉渲染一开 FPS 暴跌,视觉 RL 几小时起步;
② 显存吃狠:128 个并行环境 Isaac Lab 吃 14.1GB 显存,off-policy 算法(SAC/TD-MPC2)的 replay buffer(20 万帧 RGB ≈ 9GB)直接 OOM;
③ 异构模拟缺失:现有 GPU 模拟器要求所有并行环境结构完全一致(同物体、同自由度)。但「打开任意一个抽屉」「在 YCB 物体堆里抓任意一个」这类任务,每个并行环境天生就该不同。
ManiSkill3 不是又一个「跑分模拟器」,而是冲着「让视觉 RL + 异构任务成为日常工具」去的。它解决的不是单点性能,而是把整个工程栈从头重塑。
💡 核心思想:全栈 GPU 并行 + 数据导向系统设计
ManiSkill3 不是「在已有模拟器上加速渲染」,而是从底层重新设计:基于开源 SAPIEN 引擎 + PhysX GPU 后端,把仿真、渲染、相机、点云、控制器全部搬到 GPU 上批量并行。同时通过数据导向设计(DOD)解决异构场景的显存管理。
🛠️ 五大核心贡献(论文 §III)
| 贡献 | 具体内容 | 关键数字 |
|---|---|---|
| ① GPU 仿真+渲染 | 仿真、RGB/Depth/Seg 渲染、点云/体素、控制器全部 GPU 并行;基于 SAPIEN 光栅化器(也支持光线追踪非并行模式) | 30,000+ FPS(基准任务) ReplicaCAD 复杂场景 2,000+ FPS |
| ② 显存高效 | 数据导向系统设计 + 最小化 Python/PyTorch 开销 | 128 envs 仅 3.5GB(vs Isaac Lab 14.1GB,省 4x) Isaac Lab 在 128 envs 后 OOM,ManiSkill3 可继续扩展 |
| ③ 异构 GPU 模拟 | 每个并行环境可含不同 DOF 的铰接件、不同数量物体、不同场景。论文称这是目前唯一完全支持的框架 | OpenCabinetDrawer:每个 env 不同柜子 + 不同目标抽屉 PickClutter YCB:每个 env 不同物体数量 + 随机目标 |
| ④ 统一 OOP API | 从铰接件/链接/关节/网格全程对象化;批量 Pose 对象支持方法链;消除 tensor index | Fig.9-10 对比代码:写「柜子把手位姿 + 抽屉关节角」 IsaacGymEnvs / Isaac Lab 都要手动操作 index,ManiSkill3 一行链式调用 |
| ⑤ 数据生成管线 | 简单任务用运动规划;中等任务用收敛 RL 策略 rollout;复杂任务用 VR 遥操 ~10 条 + RLPD/RFCL 在线 IL 自动扩 | 百万级示教帧;trajectory replay 可改观测空间、reward 形式、控制器类型、CPU↔GPU 互转 |
论文 §III-B 有一段反直觉的观察:「从视觉 RL 实验中我们发现,显存效率比 FPS 重要性更高」。原因:一旦并行环境数够用,再加 FPS 收益递减;但显存如果爆了,off-policy 算法的 replay buffer(典型 20 万帧 RGB ≈ 9GB)+ 大模型(如 VLA)就装不下。ManiSkill3 把显存砍到 1/4,等于把「VLA + visual RL + 大 buffer」整套生态一次性打开了。
📊 关键结果(PDF 溯源)
1. 性能 vs Isaac Lab(基准任务 Cartpole + 各种相机设定)
| 指标 | ManiSkill3 | Isaac Lab v1.2.0 |
|---|---|---|
| 仿真+渲染 FPS(最高) | 30,000+ | 较低(论文未给单值,Isaac Lab 在更少 envs 已更慢) |
| 128 envs 显存(640×480 RGB+Depth,仿 Open-X/Droid) | 3.5GB | 14.1GB(再增加 envs 即 OOM) |
| 复杂 ReplicaCAD 场景 FPS | 2,000+ | —(Robocasa CPU 后端 ~25 FPS;Isaac Lab 此场景未报告) |
2. 视觉 RL 训练加速(PickCube,PPO)
| 设定 | ManiSkill3(GPU 仿真) | 相对 ManiSkill2 加速 |
|---|---|---|
| State-based(delta 关节控制) | ~1 分钟到 ~100% 成功率 | 15× |
| RGB-based(并行渲染) | ~10 分钟到收敛 | 8× |
3. Sim2Real / Real2Sim 真机验证
| 实验 | 设定 | 结果 |
|---|---|---|
| 视觉 sim2real:Koch 机械臂抓方块 | $300 机械臂 + 手机摄像头 + NatureCNN + PPO + 域随机化 + 绿幕;RTX 4090 训 1 小时(15M 样本,256 envs) | 22/24 = 91.6% 真机成功率(3 次训练 × 8 次滚动) |
| 视觉-触觉 sim2real:peg 插入 | 硅胶触觉传感器用 softbody 模拟(参引文 [9]) | 95.08% 真机成功率 |
| Real2sim 数字孪生(评估 Octo / RT-1X) | SIMPLER 4 个任务的 ManiSkill3 并行版 | 相关性 0.9284,MMRV 0.0147(与原 SIMPLER 持平) |
| 数字孪生评估速度 | 对比真机/原 SIMPLER | 真机的 60×–100×;比 SIMPLER 快 ~10× |
🌐 在领域中的位置
同代对手:Isaac Lab(闭源 Isaac Sim 后端)、Brax/Mujoco MJX(暂无并行渲染)、Robocasa(CPU 后端)。ManiSkill3 的差异化是唯一同时做到「异构 + 开源 + 视觉并行 + 显存高效」。它是 T05/T03 谱系中「基础设施」类的代表作——本身不发明新算法,但定义了下一代视觉 RL 实验的默认环境。关联线索:T05 扩散谱系(Diffusion Policy 等基线在此环境评测)。
❓ 常见误区
ManiSkill3 比 Isaac Lab 快 30,000 倍吗?
不是。30,000+ FPS 是特定基准任务(如 Cartpole)在最优配置下的仿真+渲染总吞吐,不是和 Isaac Lab 的直接倍数。论文 §III-B 明确说:渲染技术不同(ManiSkill3 默认光栅化,Isaac Lab 默认光追),不是严格 apples-to-apples。在显存上才是 ManiSkill3 的明显优势(3.5GB vs 14.1GB)。
异构 GPU 模拟有什么实际用处?
核心场景:泛化训练。例如「开任意柜子的任意抽屉」——PPO 可以同时在一批并行环境里练不同结构的柜子(不同 DOF)。以前必须一个一个串行练,现在并行练。论文 §III-C 给出 PickClutter YCB(每个 env 不同物体数)和 OpenCabinetDrawer(每个 env 不同柜子)两个例子。
91.6% 的 sim2real 是不是太理想了?
这是非常受限的设置:单任务(抓方块)、用绿幕去掉背景干扰、NatureCNN 小模型、域随机化。它的意义不是「ManiSkill3 让 sim2real 解决了」,而是「一个低成本可复现的 sim2real baseline 跑通了」。论文明确说「需要进一步研究去除绿幕」。把它当成「hello-world 级 sim2real」更准确。
我不能用 Mujoco MJX + 自己加渲染吗?
可以,但你要自己解决并行渲染(MJX 目前没有)、异构模拟、物体级 API、轨迹 replay、VR 遥操这一整套。论文 §II 强调:Isaac Lab / Brax/MJX 是模拟器,ManiSkill3 是「模拟器 + 工具链 + 数据管线 + 基线 + 数字孪生」的整包。这就是它「democratizing」叙事的来源。
它和 LeRobot 是什么关系?
互补。LeRobot(HuggingFace)提供低成本硬件 + IL 工具链;ManiSkill3 提供仿真+渲染+RL 基线。论文 §IV-D 的 Koch 抓方块 sim2real 演示就明确用 LeRobot 的硬件和库来做,强化「$300 机器人 + 单卡 4090 + 1 小时」的可复现叙事。