一句话定位
ManiSkill2 是加州大学圣地亚哥分校(Hao Su 组,与清华合作)提出的通用可泛化操作技能基准:基于开源物理引擎 SAPIEN,覆盖 20 个操作任务族、2000+ 物体模型、4M+ 演示帧,统一支持刚体/软体、单臂/双臂、固定基座/移动基座任务,并首次实现双向耦合的刚体-MPM 软体仿真与异步渲染服务器架构,使单 GPU 上视觉 RL 采样吞吐达 2000+ FPS。ICLR 2023 发表,是 ManiSkill 系列承前启后的一代,后续演进为 GPU 全并行的 ManiSkill3(RSS 2025)。
背景与定位
论文指出既有操作基准的共同短板:要么用抽象抓取跳过接触仿真(如 ManipulaTHOR、Habitat 2.0、BEHAVIOR),要么物体级拓扑/几何变化太少(RLBench、MetaWorld、RoboSuite),要么偏向单一操作类型(MetaWorld 只做 4-DoF 操作)。这使研究者难以在统一环境下比较 sense-plan-act、RL、模仿学习等不同范式,也难以复现结果。ManiSkill2 是 ManiSkill1(Mu et al., 2021, NeurIPS D&B)的下一代:在继承其移动操作任务(PushChair、MoveBucket、OpenCabinetDoor/Drawer)基础上,新增软体操作、精密插孔装配、6-DoF 拾放等任务族,并把演示动作空间转换、异步渲染服务器等工程能力系统化。
同期相关工作的定位差异:Isaac Gym 是全 GPU 向量化仿真器但渲染效率低、资产扩展困难、物体接触信息不可访问;EnvPool 用线程池批量化环境但要求 C++ 实现,牺牲了 Python 原型开发的灵活性;PlasticineLab 用 Taichi 实现 MPM 软体但缺乏与刚体的耦合、性能受限。ManiSkill2 选择”Python 脚本化 + 多进程向量化 + 渲染资源共享”这一折中,试图同时保留可定制性与吞吐量。
模型架构
ManiSkill2 本身是仿真基准 + 渲染/仿真基础设施,不是策略模型,此处按仿真器架构与控制接口分述。
物理仿真后端:
- 刚体:基于开源仿真器 SAPIEN(Xiang et al., 2020, CVPR)。
- 软体:从零实现的自研 GPU MPM 仿真器,用 Nvidia Warp(JIT 框架,将 Python 编译为原生 C++/CUDA)+ 原生 CUDA 编写,并进一步扩展 Warp 以优化 host-device 数据传输。MPM 求解器为 MLS-MPM(Moving Least Squares MPM,Hu et al. 2018),与 PlasticineLab 同源但接触建模方式不同——PlasticineLab 在 MPM 网格节点上算力,ManiSkill2 在 MPM 粒子位置上算力(更少穿透伪影)。
- 2-way 刚-软耦合:外部刚体仿真器(SAPIEN)的碰撞形状(基本几何用解析 SDF,网格转 SDF 存为 3D CUDA 纹理)复制进软体仿真器;每步刚体仿真后把刚体位姿传给软体仿真器,软体仿真产生的接触力/力矩再传回刚体仿真器。论文称这是首个支持 2-way 耦合刚体-MPM 仿真、且首个支持 MPM 材质实时仿真与渲染的具身 AI 环境。
- 软体渲染:屏幕空间粒子溅射(screen-space splatting,类似 Nvidia Flex 内置渲染器)而非三角网格化,配合双边滤波平滑深度缓冲后计算法线与光照;粒子位置从仿真到渲染器通过单次 GPU-GPU 拷贝传输,减少延迟。
控制接口:默认机器人为 Franka Emika Panda(7 自由度单臂)。支持多种控制器(关节位置、delta 关节位置、delta 末端位姿等),并允许为机器人不同部件(底座/手臂/夹爪)分别指定不同控制器类型。核心创新是演示动作空间转换算法:给定源环境(如 TAMP 生成、关节位置控制器)的演示动作 $a_{src}(t)$,通过正运动学 $FK(\cdot)$ 计算目标末端位姿 $\bar T_{src}(t)$,再结合闭环获取的目标环境当前末端位姿 $T_{tgt}(t)$,求得目标动作 $a_{tgt}(t) = FK(\bar a_{src}(t)) \cdot T_{tgt}^{-1}(t)$——闭环方式避免了开环转换的累积误差,使同一批演示可复用到不同控制器/动作空间的下游算法(IL/RL)。论文在附录 B.5 用 4 个代表性任务各 100 条演示验证了该转换算法(关节位置控制器 → delta 末端位姿控制器)的成功率:PickSingleYCB 99%、AssemblingKits 98%、Write 100%、TurnFaucet 80%(TurnFaucet 较低是因为其演示策略依赖夹爪推动阀门手柄这一非力封闭的丰富接触过程,对累积误差更敏感)。
观测模式:点云、RGBD、特权状态(2D/3D 输入均支持),统一封装为 OpenAI Gym 接口。
数据
- 任务规模:20 个任务族,覆盖固定基座/移动基座、单臂/双臂、刚体/软体:
- 软体操作(6 个):Fill(倒黏土入烧杯)、Hang(挂面条上杆)、Excavate(舀取指定量黏土并举升)、Pour(倒水到目标液位线)、Pinch(塑形黏土到目标形状,4 视角 RGBD/点云给定目标)、Write(在黏土上写目标字符,2D 深度图给定)。
- 精密插孔装配(3 个):PegInsertionSide(孔隙 3mm)、PlugCharger(双销插孔,孔隙 0.5mm)、AssemblingKits(5 槽位板,可编程生成任意孔隙如 0.8mm)——均要求”实际插入”而非此前工作只测位置/朝向误差的宽松指标。
- 6-DoF 拾放(5 个):PickCube、StackCube、PickSingleYCB(YCB 物体集)、PickSingleEGAD(EGAD 物体集)、PickClutterYCB(多物体杂乱场景),工作空间达 30×50×50 cm³。
- 移动/固定操作铰接物体(继承自 ManiSkill1 + 新增,6 个):PushChair、MoveBucket、OpenCabinetDoor、OpenCabinetDrawer(继承)、TurnFaucet(新增固定臂开水龙头)、AvoidObstacles(固定臂在密集障碍物中主动感知导航)。
- 物体规模:2000+ 物体模型(含 YCB、EGAD 等标准物体集)。
- 演示规模:4M+ 演示帧,通过 TAMP / MPC / RL 三种互补方式生成(“验证驱动的迭代开发”流程的副产物)。举例:MoveBucket 每个训练桶采集 300 条轨迹,训练物体集 29 个桶,另留 10 个未见桶做保留测试集。
- 数据发布:全部代码(仿真器、环境、基线)与训练资产开源;因公开挑战赛的公平性考虑,资产生成与云端评测服务代码不开源。
训练方法
论文本身不训练模型权重,而是用 ManiSkill2 基准复现/训练多种基线算法:
- 模仿学习(IL):行为克隆(BC),50k 梯度步,batch size 256,在测试配置上评估。
- 带演示的强化学习(RL):DAPG + PPO(Demonstration-Augmented Policy Gradient 增广 PPO 目标),从头训练 2500 万(25M)时间步,仅在刚体环境上报告(软体因算力受限未做 RL)。
- 视觉骨干:RGBD 输入用 IMPALA;点云输入用 PointNet(并将输入点云变换到末端执行器坐标系;对有目标位置的任务如 PickCube/PickSingleYCB,随机采样 50 个绿色点作为视觉提示拼接到点云输入)。
- 控制器选择:刚体环境默认用 delta 末端位姿控制器,软体环境用 delta 关节位置控制器,并通过 2.2 节的动作空间转换算法把源演示转换到目标控制器。
- 消融:在 PickSingleYCB 上把 delta 末端位姿控制器换成 delta 关节位置控制器,点云 RL 成功率从 0.51±0.05 骤降到 0.22±0.18,说明控制器选择对学习效果影响巨大。
Infra(训练 / 推理工程)
- 渲染服务器架构:基于 gRPC(HTTP/2 + Protocol Buffers)实现的异步渲染服务器——worker 进程的”拍照”请求被主进程线程池接管(渲染指令提交到独立线程立即返回),避免 GPU-CPU-GPU 图像拷贝;中央资源管理器保证任一资源(模型/图片/纹理)只在 GPU 上加载一份、跨场景共享,显著降低多进程 GPU 显存占用。
- 刚体环境吞吐对比(PickCube 任务,128×128 图像,16 CPU 核心 Intel i9-9960X + 128GB 内存 + 1×RTX Titan 24GB,随机动作 / Nature CNN 策略):
框架 总 FPS(随机动作) 总 FPS(CNN 策略) 最优并行环境数 ManiSkill2-Server 2487±24 2532±63 64 ManiSkill2(异步渲染,无服务器) 942±19 931±4 32 Habitat 2.0 1275±10 1224±13 64 RoboSuite 1.3 924±3 894±15 32 Isaac Gym 865±35 835±5 512 - GPU 显存对比(74 个 YCB 物体/环境场景,PickClutterYCB 扩展设置):ManiSkill2-Server 在 4/8/64 个环境下分别用 4.9G / 5.1G / 5.8G 显存;Habitat 2.0(已启用纹理压缩)用 6.4G / 12.9G / OOM——ManiSkill2 因资源共享几乎不随环境数线性增长。
- 软体环境性能:单环境渲染下约 17-18 FPS;16 个并行环境在单张 RTX Titan 上合计达到 80-84 FPS(约 4 倍实时速度),瓶颈在于刚体(CPU)与软体(GPU)仿真的顺序执行及单 CPU 进程提交 CUDA kernel 的速度,论文将向量化软体仿真列为未来工作。
- MPM 仿真关键参数范围:网格边长 0.005–0.015m,粒子体积 6.2e-8/1.2e-7,密度 300–3000,杨氏模量 1e4/3e5,泊松比 0.3,屈服应力 2e3/1e4(均 SI 单位)。
- 摘要口径的采样吞吐:CNN 视觉策略在 1 GPU + 16 CPU 进程的常规工作站上可达约 2000 FPS(刚体环境)。
- 训练 GPU 数 / 总 GPU-hours:论文未披露 DAPG+PPO(25M 步)与 BC(50k 步)训练所用 GPU 总数与总时长,仅披露上表所示的吞吐对比硬件配置。
- 真机部署硬件:Intel RealSense D415 深度传感器 + 7-DoF ROKAE xMate3Pro 机械臂 + Robotiq 2F-140 二指夹爪;控制频率/推理延迟未披露。
评测 benchmark
Sense-plan-act 基线:
- Contact-GraspNet(预训练于 ACRONYM)+ 运动规划做 PickSingleYCB:74 个物体各 5 次试验(370 trials),成功率 43.24%;两大失败模式:预测抓取姿态置信度低(27.03% 试验)、姿态置信度高但抓取质量差/不可达(29.73% 试验)。
- Transporter Networks 做 AssemblingKits(从头训练,旋转预测 bin 数从原论文 36 提升到 144 以适配高精度要求):按 ManiSkill2 的严格”实际插入”指标,100 次试验成功率 18%;若按原 TPN 论文的位姿精度指标(1cm/15°以内),成功率 99%——凸显”表面上精度接近但实际插不进”的差距。
模仿学习(BC,50k 步)成功率(点云 / RGBD):PickCube 0.22±0.06 / 0.01±0.02;StackCube 0.04±0.02 / 0.00±0.00;Fill 0.45±0.04 / 0.62±0.07;Hang 0.35±0.15 / 0.20±0.12;Excavate 0.08±0.04 / 0.21±0.04;Pour 0.02±0.02 / 0.00±0.00;Pinch、Write 均为 0.00±0.00;刚体装配任务成功率均为 0%(未列入表格)。
RL+演示(DAPG+PPO,25M 时间步)成功率(点云 / RGBD):PickCube 0.94±0.03 / 0.91±0.05;StackCube 0.95±0.02 / 0.87±0.04;PickSingleYCB 0.51±0.05 / 0.18±0.07(高于 Contact-GraspNet+运动规划的 43.24%);PegInsertionSide 0.01±0.01 / 0.01±0.01;PlugCharger 0.01±0.02 / 0.01±0.01;AssemblingKits 0.00±0.00 / 0.00±0.00;TurnFaucet 0.04±0.03 / 0.03±0.03;AvoidObstacles 0.00±0.00 / 0.00±0.00——高精度装配与导航任务上 RL 也接近零成功率,论文指出这暴露了现有 RL 算法在高精度控制上的不足。
Sim2real:PickCube 点云策略训练 1000 万(10M)时间步,仿真成功率 91.0%,真机 50 次试验成功率 60.0%(推测性能下降源于深度图的仿真-真实域差,训练时仅用高斯噪声+随机像素丢弃做数据增强);Pinch 任务对比仿真与真实执行同一运动规划动作序列后的黏土最终形状(定性展示 2-way 耦合刚-MPM 仿真的保真度,未给出数值指标)。
创新点与影响
贡献:(1) 首个覆盖软体/刚体、单臂/双臂、固定/移动基座等异构任务类型的统一可泛化操作基准,20 任务族 + 2000+ 物体 + 4M+ 演示;(2) 首个支持 2-way 耦合刚体-MPM 仿真、且首个支持 MPM 材质实时仿真渲染的具身 AI 环境(自研 GPU MPM 仿真器 + SAPIEN 耦合);(3) 多控制器支持 + 闭环演示动作空间转换算法,使 TAMP 生成的演示可跨控制器复用于 IL/RL;(4) 异步渲染 + 渲染服务器基础设施,单 GPU 16 进程实现 2000+ FPS 采样,并大幅降低多进程 GPU 显存占用;(5) 云端评测系统(Docker 提交),支撑公开挑战赛的公平比较。
影响:确立了”点云/RGBD + 多控制器 + 演示可转换”的操作基准范式,其渲染服务器思路与动作空间转换算法被后续仿真基准借鉴;ManiSkill2 的高精度装配任务(PegInsertionSide 3mm、PlugCharger 0.5mm)成为检验 RL/IL 算法精细操作能力的试金石(论文自身实验中这些任务成功率接近 0)。项目后续演进为完全 GPU 并行状态/视觉仿真器 ManiSkill3(RSS 2025),ManiSkill2 代码定格在 GitHub v0.5.3 tag。
论文自陈局限:软体仿真器受限于单 CPU 进程提交 CUDA kernel 的速度,尚未做向量化优化(列为未来工作);BC 与 RL+演示在高精度装配、导航类任务上成功率接近零,说明基准提出的挑战超出当前算法能力(论文视此为”有意义的挑战”而非缺陷);sim2real 迁移的性能下降被归因于训练时数据增强手段有限(仅高斯噪声+像素丢弃)。
原始链接
- 论文(arXiv abs):https://arxiv.org/abs/2302.04659
- 论文 PDF:https://arxiv.org/pdf/2302.04659
- 项目主页:https://maniskill2.github.io/
- 代码(GitHub,现为 ManiSkill3 主线,ManiSkill2 定格于 v0.5.3 tag):https://github.com/haosulab/ManiSkill
- 挑战赛主页:https://sapien.ucsd.edu/challenges/maniskill/2022/
一手源存档(sources/)
- maniskill2—github-readme — GitHub README 快照(当前仓库已演进为 ManiSkill3,含 ManiSkill2 引用信息与 v0.5.3 tag 说明、许可证)
- maniskill2—project-page — 项目主页快照(任务族展示、快速开始命令、与同期基准的对比表)
- arXiv 论文原文(PDF,不入 git):https://arxiv.org/pdf/2302.04659