news 2026/10/20 1:10:57

ManiSkill3:一张 4090 并行仿真 8192 个机器人,26 万 FPS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ManiSkill3:一张 4090 并行仿真 8192 个机器人,26 万 FPS

ManiSkill3:一张 4090 并行仿真 8192 个机器人,26 万 FPS

【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill

用 Isaac Lab 这类传统仿真器做机器人策略训练,最卡的瓶颈往往是显存:一开大批并行环境、一上几百个相机,显存直接顶满,GPU 上的 replay buffer 根本塞不下。ManiSkill3 是基于 SAPIEN 的 GPU 并行化机器人仿真框架,把物理和渲染都搬上 GPU,一张 RTX 4090 就能用 8192 个并行环境跑出 26 万+ FPS 的状态仿真。

30 秒搞懂它能干什么

它是给做机器人学习的研究者和开发者准备的,专门解决"单机串行仿真吞吐太低、喂不饱策略训练"这个痛点。你不用自己碰底层内存管理,按 Gymnasium 的接口调,就能批量产出数据。

  • 🧩 30+ 种机器人,工业臂到灵巧手
  • ⚡ 物理 + 渲染全上 GPU
  • 📦 标准 Gymnasium 接口
  • 🎮 RL / IL / VLA 都有 baseline

凭什么比传统方案快一个数量级

传统 CPU 仿真器(MuJoCo、PyBullet 这一类)是一个环境一个线程,环境数一多,要么 CPU 核数不够,要么进程间同步把时间全吃光;Isaac Lab 靠光线追踪做并行渲染,画质好但显存吃得很凶,相机一多就 OOM。

ManiSkill3 的绕法很直接:物理走 PhysX 的 CUDA 后端(physx_cuda),渲染走 SAPIEN 的并行光栅化,而且观测、动作全程是 batched torch tensor,一直待在 GPU 上,省掉了 CPU↔GPU 的来回拷贝。代价是它默认数据是 tensor,不想要 numpy 得手动切。

这段就是在演示"怎么开启"——把num_envs设为大于 1,GPU 并行仿真就自动点亮,不用你手动指定后端:

import gymnasium as gym import mani_skill.envs env = gym.make( "PickCube-v1", num_envs=1024, # >1 自动启用 GPU 并行仿真 obs_mode="state", )

所以它不是"再加几层封装",而是把"每环境独立、数据在 CPU 上走"这条老路整个换成"一批环境一张表、数据不落地"。

不同任务实测:FPS 到底能拉多高

官方基准跑在一张 RTX 4090 上,下面这组数字都能从仓库自带的 CSV 里查到:

任务观测模式并行环境相机配置FPS
FrankaMovestate4096—330,096
FrankaPickCubestate8192—261,546
PickCubergb10241×128×12817,472
OpenCabinetDrawerrgb10241×128×1288,222
Frankargb5121×640×4806,740

优势最大的是纯state观测 + 简单控制:4096 环境冲到 33 万 FPS,比 CPU 串行仿真高两三个数量级。差距缩小出现在复杂物理交互 + 高分辨率多相机上——比如仿 Open-X 的 1×640×480 或仿 Droid 的 3×320×180,FPS 就会掉到几千,和高端光追方案的差距明显收窄。

也得说句公道话:官方目前只正式对比了 Cartpole 这一个任务(对 Isaac Lab),而且两边渲染技术不同(光栅化 vs 光线追踪),文档自己也承认不是完全 apples-to-apples。

拿它实际能跑哪些活儿

强化学习训练。内置 PPO、SAC、TD-MPC2 等调好的 baseline,PickCube / PushCube 这类任务基本是baselines.sh一把梭。num_envs调大,样本吞吐就上去,state 观测下基本不用担心数据生产拖后腿。

模仿学习。BC 和 Diffusion Policy 都有对应目录,配合 record/replay wrapper 存轨迹,还能转成 LeRobot 格式喂给下游模型。

VLA 大模型。提供 AI2THOR 和 ReplicaCAD 重建的真实家庭场景(HAB),跑rgbd观测就能给 Octo / RDT / RT-x 这类大模型供数,官方口径是 RGBD+分割数据在 4090 上能到 3 万+ FPS。

数据生成。遥操作 + 运动规划脚本可以批量出演示轨迹,sim2real 的部署链路也有现成 example。

从装好到跑通第一个环境

两条命令装完:

pip install --upgrade mani_skill pip install torch

第一行能跑通的验证脚本(无头模式,不用显示器):

python -m mani_skill.examples.demo_random_action -e PickCube-v1

兼容性一览(取自官方 README):

系统 / GPUCPU 仿真GPU 仿真渲染
Linux / NVIDIA✅✅✅
Windows / NVIDIA✅❌✅
Windows / AMD✅❌✅
WSL / 任意✅❌❌
MacOS / 任意✅❌✅

两个最常踩的坑:

  • 只有 Linux + NVIDIA 才能开 GPU 仿真(physx_cuda),Windows 和 Mac 上 GPU 后端不可用,只能 CPU 仿真,别在错平台上等"为什么没加速"。
  • 渲染要先单独配 Vulkan(见安装文档),否则render_mode="human"起不来;没有本机 GPU 的话,官方 quickstart notebook 在 Colab free tier 能白嫖。

把 FPS 再榨出来的几个招

  • 观测从rgbd降成state→ PickCube 从 1.7 万 FPS 直接跳到十万级(state 8192 环境 26 万 vs rgb 1024 环境 1.7 万),数量级的差距。
  • 相机降分辨率→ Cartpole 1024 环境下,640×480(1.1 万 FPS)换成 128×128(3.2 万 FPS),约 3 倍。
  • 减相机数量→ 仿 Droid 的 3×320×180 换成单相机,Cartpole 64 环境约 2.2 倍提升。
  • 别把num_envs拉满→ 显存随环境数线性涨(state 4096 环境才 2.5GB,rgb+depth 8192 环境就 13GB),留点余量给 replay buffer 更稳。
  • 纯 step 时关渲染→ 不需要出图就把渲染关掉,省掉整条渲染管线开销。

后面它还打算往哪走

  • Real2sim:把真实世界策略丢进仿真规模化评估,官方口径是 GPU 仿真让评估快 100 倍。
  • 基准覆盖:目前只正式对比了 Cartpole 一个任务,文档自述还在 WIP,计划补更多任务和其他物理引擎(如 MuJoCo)的公平对比。
  • sim2real 链路:已有把仿真训好的策略部署到真机的 example,会持续补。

回到开头那个"显存爆掉"的痛点:把物理和渲染都塞进 GPU、数据全程不落地 CPU,ManiSkill3 让你用一张 4090 就能喂饱成千上万个并行环境。一句话收束——与其等 CPU 串行仿真慢慢磨,不如把策略训练搬上 GPU 并行,8192 个环境、26 万 FPS,数据生产从此不再是瓶颈。

参考:官方文档 · 性能基准

【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 1:07:39

工业电表采集网关实战:DLT645与Modbus双规约边缘计算上云

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:07:37

显示驱动调试工具全解析:从示波器到协议分析仪的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:07:06

嵌入式GUI选型:FlyThings OS三层架构拆解与库/OS边界分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:06:46

超低功耗边缘AI设备:从模型量化到通信策略的系统设计指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:06:15

ESP32射频底层玩法:RMT谐波、ESP-NOW、BLE广播RAW与寄存器直操作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 1:06:12

ZYNQ裸芯片开发与PetaLinux实战:从启动到部署的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华