Isaac Gym、Isaac Sim、Isaac Lab 详细讲解与对比分析
1. Isaac Gym
1.1 设计定位
Isaac Gym 是 NVIDIA 在 2020 年推出的 GPU 原生物理仿真与策略训练环境。它要解决的核心问题是传统强化学习训练中 CPU 物理引擎与 GPU 神经网络之间的数据搬运瓶颈------每一轮仿真结果需要从 CPU 拷贝到 GPU,梯度更新后又拷贝回 CPU,这一往复在数千个并行环境中会成为致命瓶颈。
Isaac Gym 把物理仿真、观测计算、奖励计算和策略推理全部放进同一块 GPU 里完成。物理引擎输出的状态缓冲区直接被映射成 PyTorch 张量,训练循环可以在不触发任何 CPU 侧中断的情况下跑完整个 rollout。
1.2 技术架构
- 物理引擎:基于 NVIDIA PhysX,所有刚体动力学、接触检测和约束求解在 GPU 上并行执行。
- 数据结构:仿真产生的结果(刚体状态、关节位置/速度、接触力等)以连续 GPU 显存块的形式组织,通过 PyTorch 张量接口暴露,没有冗余拷贝。
- 环境并行:单 GPU 上可以同时步进数千个独立的仿真环境,每个环境的状态保存在统一的大张量中,利用 GPU 的 SIMD 并行度进行批量计算。
- 算法支持:原生 PyTorch 训练管线,用户可以直接在回调中编写网络前向推理和损失计算,兼容 PPO、SAC 等 on-policy 算法。
- 内置环境:提供 Humanoid、ANYmal、Ant、Shadow Hand 等多种预置机械结构与任务,同时支持从 URDF/MJCF 导入自定义机器人。
1.3 核心能力与局限
Isaac Gym 的优势在于训练吞吐量。对于需要在数小时内完成数亿步交互的 contact-rich 任务(例如四足行走、灵巧手操作),其训练速度比传统 CPU 集群方案快 2-3 个数量级。
但 Isaac Gym 几乎没有可视化与传感器仿真能力。它的渲染输出仅是基础 OpenGL 画面,不提供 RGB 相机模型、LiDAR 扫描、深度噪声模拟这些对感知训练至关重要的功能。也没有与 ROS/ROS 2 的桥接接口。因此 Isaac Gym 是一个纯粹的物理仿真与 RL 训练引擎,适合那种"只要本体感知和地面真值奖励就能完成任务"的运动控制类研究。
1.4 当前状态
Isaac Gym 自 2023 年后不再接受功能更新,已进入维护模式。官方文档将其明确标记为遗产项目,建议所有新工作迁移至 Isaac Lab。一些头部机器人公司(如 Fourier Intelligence)已经将基于 Isaac Gym 的 GR-2 人形机器人训练管线迁往 Isaac Lab。
2. Isaac Sim
2.1 设计定位
Isaac Sim 是构建在 NVIDIA Omniverse 与 OpenUSD 之上的全功能机器人仿真应用。它面向的是需要高保真视觉、精确传感器模型、合成数据生成和软件在环验证的开发流程。如果说 Isaac Gym 是一个训练加速器,Isaac Sim 则是一个端到端的数字孪生与仿真验证平台。
2.2 技术架构
- 底座平台:运行在 Omniverse Kit 框架上,利用 RTX 光线追踪管线实现照片级渲染,底层物理仿真由 PhysX 提供。
- 场景描述:全部使用 OpenUSD 格式组织场景图。机器人模型、环境资产、传感器配置、物理参数都以 USD 层级和属性表示,支持非破坏性组合与变体切换。
- 传感器仿真:通过 OmniSensor 架构提供 RGB、深度、立体深度、LiDAR、IMU、触觉等传感器模型。立体深度传感器可以模拟镜头畸变、视差误差和遮挡伪影。
- 合成数据:内置 Omniverse Replicator,可在仿真中自动对场景进行域随机化(光照、纹理、物体摆放),同时产生像素级语义标注、2D/3D 边界框以及深度/法线图。5.0 版本进一步加入事件模拟(Incident Simulation)和自然语言描述生成,专门用于训练视觉-语言-动作模型。
- 机器人集成:通过 ROS 2 Bridge 将仿真中的传感器数据与真实 ROS 2 网络对接,支持硬件在环测试。也提供与其他中间件(如 Flexiv Elements)的接口扩展。
2.3 核心能力
- 高保真环境构建:支持从 CAD、URDF、MJCF 导入机器人,同时可以借助 3DGUT 等基于 3D Gaussian Splatting 的工具从真实图像重建可交互的仿真场景。
- 大规模合成数据管线:MobilityGen 扩展能够生成包含占用地图、机器人轨迹、速度、姿态和对应图像的多样化运动数据集,供导航和操控模型训练。
- 系统级验证:可在虚拟环境中完整运行机器人的感知-规划-控制软件栈,在部署前发现算法边界情况。
2.4 适用场景
Isaac Sim 的价值体现在对"看到的东西"有强依赖的任务上:视觉抓取中的遮挡效应、移动机器人在动态光照下的避障、需要 LiDAR 点云做 SLAM 的场景、需要高保真标注数据训练检测模型的流程。它本身不专精于 RL 训练,更多是作为环境创建者和数据生产者而存在。
3. Isaac Lab
3.1 设计定位
Isaac Lab 是在 Isaac Sim 基础上构建的轻量化机器人学习框架,同时也是 Isaac Gym 的正式继任者。它的目标是提供一个统一模块化接口,让研究者可以高效地进行大规模并行强化学习、模仿学习、策略评估和 sim-to-real 迁移,而不牺牲 Isaac Sim 所能提供的视觉逼真度和传感器精度。
3.2 技术架构
Isaac Lab 的技术架构从 2.x 到 3.0 Beta 经历了一次重要扩展,核心变化是多后端化与组件可插拔。
经典模式(2.x 系列)
- 运行在 Isaac Sim 运行时环境之上,使用 PhysX 作为物理后端,享受 RTX 渲染和传感器仿真的全部能力。
- 提出 Manager-based 环境构造范式:将观测、奖励、终止条件、域随机化等拆分成独立管理器,环境逻辑通过组合这些管理器来定义。
- 支持 RSL-RL、RL-Games、SKRL、Stable-Baselines3 等多种 RL 框架,内置基准测试系统,可自动采集训练吞吐量、样本效率等 KPI 并与预设阈值对比。
多后端模式(3.0 Beta)
- 引入工厂模式,通过抽象基类隔离物理后端细节。运行时根据环境变量自动选择活跃后端。
- 新增 Newton 物理后端(基于 MuJoCo-Warp 求解器),可以在完全不启动 Isaac Sim Kit 的 "Kit-less" 模式下运行。此时没有 RTX 渲染,但可以利用 CUDA 图加速和可配置积分器获得极高的纯物理仿真吞吐。
- 渲染和可视化系统也被设计为可插拔:渲染器支持 RTX、OVRTX 和 Newton Warp;可视化器支持 Omniverse、OpenGL、Rerun 等后端。物理计算、渲染管线、可视化界面三者完全解耦,用户可以按需组合。
3.3 核心能力
- 大规模并行训练:在 Kit-less 模式下利用 Newton 后端可以在单卡上运行数千至上万个并行环境,保持 Isaac Gym 级别的训练吞吐,同时支持更灵活的仿真参数调整。
- 全身控制与遥操作:v2.3 引入了字典式观察空间、自动域随机化和基于群体的训练,用于灵巧操作任务。同时原生集成 MANUS 手套等遥操作设备的输入接口,操作员的动作指令可以被记录为示范数据,直接用于模仿学习或 RL 预训练。
- 多模态与触觉:支持触觉传感器仿真和数据增扩。帕西尼感知科技利用 Isaac Lab 的数据管线将触觉模型训练效率提升了 100 倍以上。
- 基准测试系统:不仅能测训练速度,还能对比同一环境在不同 RL 框架下的收敛行为,并与 Baselines 自动比较。这为算法选型提供了可复现的量化依据。
- 多智能体支持:已有工作在 Isaac Lab 上构建异构多智能体对抗仿真环境,集成 HARL 等算法,并引入 Lipschitz 连续性约束以提升策略鲁棒性。
3.4 与 Isaac Sim 的依存关系
Isaac Lab 不需要 Isaac Sim 的完整运行时也能工作(通过 Newton 后端),但一旦需要渲染、复杂传感器仿真或 ROS 2 集成,就必须依赖于 Isaac Sim。这种设计让研究人员在"纯 RL 快速迭代"和"带感知的完整验证"之间可以平滑切换,不需要更换代码框架。
4. 三者的联系与对比
4.1 演进关系
三者的时间线和功能承接关系直接明了:
- Isaac Gym 开创了 GPU 原生物理仿真与 RL 训练融合的范式,但随着机器人学习对感知、环境和部署验证的要求变高,它的无渲染架构成为制约。
- Isaac Sim 独立发展了高保真数字孪生和合成数据能力,但它最初不是一个面向 RL 训练优化的框架,环境构造和训练集成的工程门槛较高。
- Isaac Lab 则起到了"缝合与升华"的作用:它把 Isaac Gym 的 GPU 原生训练理念和 Isaac Sim 的仿真精度统一在一套框架内,并通过多后端架构让两者可以按需独立或协同工作。
形象地说,Isaac Gym 是一台只有物理引擎和神经网络的裸机训练器,Isaac Sim 是一个装满了传感器和渲染器的全功能试验场,而 Isaac Lab 是可以选择只跑在裸机上、也可以接入试验场全部外设的统一实验平台。
4.2 关键维度对比
| 维度 | Isaac Gym | Isaac Sim | Isaac Lab (2.x/3.0) |
|---|---|---|---|
| 核心目标 | 纯物理仿真 + RL 训练 | 高保真数字孪生与仿真验证 | 统一机器人学习框架(RL + 模仿学习 + 评估) |
| 物理引擎 | PhysX | PhysX | PhysX + Newton (MuJoCo-Warp),可切换 |
| 渲染与传感器 | 仅基础可视化,无传感器仿真 | RTX 照片级渲染,全传感器仿真 | 依赖 Isaac Sim 时具备全部渲染与传感器能力;Kit-less 模式下可选无渲染 |
| 数据生成 | 不支持合成数据 | Omniverse Replicator,语义标注,事件仿真 | 可借助 Isaac Sim 生成数据;自身专注于域随机化增扩 |
| RL 训练框架 | PyTorch 原生接口 | 无内置 RL 训练管线 | 集成 RSL-RL、RL-Games、SKRL、SB3 |
| 并行仿真能力 | 单 GPU 数千并行环境 | 多场景并行仿真,端到端 SIL/HIL | 继承 Isaac Gym 的 GPU 并行能力,Newton 后端下吞吐更高 |
| ROS 2 / 硬件在环 | 不支持 | 原生 ROS 2 Bridge | 依赖 Isaac Sim 时支持 ROS 2 |
| 遥操作与示范 | 不支持 | 间接可行 | 原生支持遥操作设备输入与数据记录 |
| 运行依赖 | 独立安装,仅需 GPU 驱动 | 需 Omniverse 运行时 | 可依赖 Isaac Sim 运行,也可 Kit-less 独立运行 |
| 当前开发状态 | 已停止更新 | 活跃更新 (5.0) | 活跃更新 (2.2 / 3.0 Beta) |
| 开源情况 | 闭源 | 扩展程序开源,核心 Kit 闭源 | 完全开源 (Apache 2.0) |
4.3 功能互补与典型组合
在一个完整的机器人学习研发流程中,三者的典型使用分工如下:
- Isaac Sim 负责构建任务场景:导入或重建环境,配置传感器,设定域随机化参数,生成大规模标注合成数据。
- Isaac Lab 负责策略训练:读取 Isaac Sim 配置的环境描述,在大规模并行环境下训练 RL 策略,或利用遥操作数据做模仿学习。如果在纯运动控制阶段,可以直接用 Kit-less 模式极速迭代,省去渲染开销。
- 策略验证:训练好的策略导回 Isaac Sim,在具有完整传感器和渲染的环境中进行软件在环测试,评估 sim-to-real 泛化能力,必要时通过 ROS 2 桥接真实硬件控制柜做硬件在环验证。
如果项目仅涉及从本体感知到关节力矩的运动控制(例如四足步态生成),使用 Isaac Lab 的 Kit-less 模式即可,不需要启动 Isaac Sim。但一旦任务需要视觉输入、需要合成数据训练感知模块、或需要在部署前与 ROS 2 系统联调,就必须引入 Isaac Sim。至于 Isaac Gym,当前仅适合维护已有遗产代码,新项目不应以其为起点。