产品谱系与改名史#

学习目标

读完本页你能:

  • 把 Isaac Gym、IsaacGymEnvs、OmniIsaacGymEnvs、Orbit、Isaac Lab 放到同一条时间线上

  • 判断一份旧资料属于哪个时代、在 Isaac Sim 5.1 + Isaac Lab 2.3.2 上还能不能用

  • 把旧的 import 语句换算成现在的写法

前置知识

两条时间线#

这一节回答:这些名字按什么顺序出现,谁接替了谁?

下图是两条并列的时间线:上半部分是学习框架,下半部分是仿真器,横轴是时间。每个菱形是一次发布,旁边是发布名称。

        %%{init: {"theme": "base", "themeCSS": ".tick text{font-size:13px;fill:#8c8c8c} .sectionTitle{fill:#8c8c8c !important} .taskTextOutsideRight,.taskTextOutsideLeft{fill:#8c8c8c} .grid .tick line{stroke:#8c8c8c;stroke-opacity:0.35} .grid path{stroke-width:0}", "themeVariables": {"textColor": "#8c8c8c", "titleColor": "#8c8c8c", "taskTextDarkColor": "#8c8c8c", "taskTextOutsideColor": "#8c8c8c", "taskBkgColor": "#009485", "taskBorderColor": "#009485", "activeTaskBkgColor": "#009485", "sectionBkgColor": "#76b90014", "altSectionBkgColor": "#00000000", "sectionBkgColor2": "#76b90014", "gridColor": "#8c8c8c55", "todayLineColor": "#00000000", "fontSize": "15px"}, "gantt": {"useWidth": 760, "barHeight": 18, "barGap": 5, "topPadding": 36, "leftPadding": 70, "rightPadding": 40, "fontSize": 15, "sectionFontSize": 15, "numberSectionStyles": 2, "topAxis": true}}}%%
gantt
    dateFormat YYYY-MM-DD
    axisFormat %Y
    tickInterval 1year
    section 学习框架
    Isaac Gym 论文              :milestone, 2021-08-24, 0d
    IsaacGymEnvs               :milestone, 2021-08-27, 0d
    OmniIsaacGymEnvs 1.0       :milestone, 2022-06-03, 0d
    Orbit 0.1                  :milestone, 2023-01-18, 0d
    Isaac Lab 1.0              :milestone, 2024-06-26, 0d
    Isaac Lab 2.0              :milestone, 2025-01-30, 0d
    Isaac Lab 2.3              :milestone, 2025-10-28, 0d
    Isaac Lab 3.0-EA           :milestone, 2026-09-16, 0d
    section 仿真器
    Isaac Sim 2022.x(年份)     :milestone, 2022-07-01, 0d
    Isaac Sim 2023.1(年份)     :milestone, 2023-10-18, 0d
    Isaac Sim 4.0              :milestone, 2024-06-05, 0d
    Isaac Sim 4.5              :milestone, 2025-01-29, 0d
    Isaac Sim 5.0              :milestone, 2025-08-08, 0d
    Isaac Sim 5.1              :milestone, 2025-10-21, 0d
    Isaac Sim 6.0              :milestone, 2026-06-04, 0d
    Isaac Sim 6.1              :milestone, 2026-09-10, 0d
    

图 1:Isaac 学习框架与仿真器的时间线(2021–2026)。Isaac Lab 1.0 与 Isaac Sim 4.0、Isaac Lab 2.0 与 Isaac Sim 4.5、Isaac Lab 3.0-EA 与 Isaac Sim 6.1 大致同期发布,是配套版本。标"(年份)"的两个节点只有年份可考,画在年中或配套项目的发布日期上,精确来源见下表。

接替关系:Isaac Gym 的物理能力并入了 Isaac Sim;它的任务库 IsaacGymEnvs、基于 Isaac Sim 的 OmniIsaacGymEnvs,以及 Orbit,三者最后都汇入 Isaac Lab[1]。

节点

日期

来源

Isaac Gym 预览版

技术论文 2021-08;预览版首发月份未查到官方记录,只写年份

[2]

IsaacGymEnvs

2021-08(推断:依据 GitHub 仓库创建时间)

[3]

OmniIsaacGymEnvs 1.0.0

2022-06-03

[4]

Orbit 0.1.0

2023-01-18(论文 2023-01-10)

[5] [6]

Isaac Sim 2022.x / 2023.1

版本号本身即年份。图中 2022.x 画在 2022 年年中(示意);2023.1 画在 OmniIsaacGymEnvs 2023.1.0 的发布日 2023-10-18,因为该版与同名 Isaac Sim 版本配套(推断)

[4]

Isaac Sim 4.0 / 4.5

2024-06 / 2025-01(PyPI isaacsim 4.0.0.0、4.5.0.0 的上传日期)

[7]

Isaac Sim 5.0 / 5.1 / 6.0 / 6.1

2025-08-08 / 2025-10-21 / 2026-06-04 / 2026-09-10

[8]

Isaac Lab 1.0 / 2.0 / 2.3.0 / 3.0.0-EA

2024-06-26 / 2025-01-30 / 2025-10-28 / 2026-09-16

[5]

已废弃项目#

这一节回答:哪些东西不该再用,官方让你换成什么?

名称

状态

官方替代品

来源

Isaac Gym(预览版)

官网标注为已弃用的遗留软件:仍可下载使用,但不再提供支持

Isaac Lab

[9]

IsaacGymEnvs

GitHub 仓库已归档(只读)

Isaac Lab(官方提供迁移指南)

[3] [10]

OmniIsaacGymEnvs

README 声明 4.0.0 为最后一个版本,后续并入 Isaac Lab;仓库已归档

Isaac Lab

[11] [12]

Orbit

原仓库 NVIDIA-Omniverse/orbit 现在重定向到 isaac-sim/IsaacLab;Isaac Lab 1.0 在 Orbit 基础上发布

Isaac Lab

[13] [14]

Isaac Lab 官方生态页对此有统一说法:Isaac Lab 取代了 IsaacGymEnvs、OmniIsaacGymEnvs 和 Orbit,这些旧框架均已弃用[1]。

为什么这些旧名字至今还常被搜到?因为 Isaac Gym 时代留下了大量有影响的研究成果:同一生态页列举了基于 Isaac Gym 的足式运动、灵巧手操作、工业装配等工作[1],它们的开源代码大多仍停留在 Isaac Gym 或 IsaacGymEnvs 上。读这类论文代码时,把它当作思路参考,不要期待在主线环境里直接运行。

三次关键改名#

这一节回答:同一个东西为什么有好几个名字,它们在代码里长什么样?

第一次:Orbit → Isaac Lab 1.0(2024-06)。 扩展 omni.isaac.orbit、omni.isaac.orbit_tasks、omni.isaac.orbit_assets 改名为 omni.isaac.lab、omni.isaac.lab_tasks、omni.isaac.lab_assets,脚本 orbit.sh 改为 isaaclab.sh[15]。

第二次:Isaac Lab 1.x → 2.0(2025-01),与 Isaac Sim 4.5 同步。 两边一起改:

  • Isaac Sim 的扩展前缀由 omni.isaac.* 改为 isaacsim.*,不少扩展同时被拆分,例如 omni.isaac.core.world 变为 isaacsim.core.api.world,omni.isaac.kit.SimulationApp 变为 isaacsim.SimulationApp[16][17]。

  • Isaac Lab 的扩展由 omni.isaac.lab* 改为 isaaclab*;原 isaaclab_tasks 下的适配层(wrapper)拆成独立的 isaaclab_rl,并新增 isaaclab_mimic[16]。

  • Isaac Lab 2.0 不再兼容旧版 Isaac Sim[16]。

与 0.2 的版本说明一致:5.x 中 omni.isaac.* 旧名仍以弃用扩展的形式保留,导入会打印弃用警告,官方计划在 6.0 移除[18]。

第三次:仓库与文档地址。 代码仓库从 NVIDIA-Omniverse/orbit 迁到 isaac-sim/IsaacLab(旧地址自动重定向),文档从 isaac-orbit.github.io 迁到 isaac-sim.github.io/IsaacLab[5][13]。IsaacGymEnvs 与 OmniIsaacGymEnvs 也从 NVIDIA-Omniverse 组织迁到了 isaac-sim 组织(推断:依据 GitHub API 对旧路径返回 Moved Permanently)。

看 import 判年代#

这一节回答:拿到一段旧代码,怎么快速判断它能不能直接用?

"状态"一列针对 Isaac Sim 5.1.0 + Isaac Lab 2.3.2。

import 语句

年代

在主线上的状态

换算后的写法

from isaacgym import gymapi

Isaac Gym(2021–2022)

不可用:独立产品,不随 Isaac Sim 分发

改用 Isaac Lab 重写任务

from omni.isaac.gym.vec_env import VecEnvBase

OmniIsaacGymEnvs(2022–2024)

不可用:5.1 的扩展目录中没有 omni.isaac.gym[19]

isaaclab.envs.DirectRLEnv

from omni.isaac.orbit.envs import RLTaskEnv

Orbit(2023–2024)

不可用:扩展已改名[14]

from isaaclab.envs import ManagerBasedRLEnv

from omni.isaac.lab.envs import ManagerBasedRLEnv

Isaac Lab 1.x(2024)

不可用:2.0 起改名[16]

from isaaclab.envs import ManagerBasedRLEnv

from omni.isaac.kit import SimulationApp

Isaac Sim 4.2 及更早

pip 安装下作为脚本首行会报 ModuleNotFoundError: No module named 'omni';先 import isaacsim 之后才能导入(弃用)。二进制安装未实测[20]

from isaacsim import SimulationApp

from omni.isaac.core import World

Isaac Sim 4.2 及更早

弃用可用:在 SimulationApp 启动之后可以导入,打印弃用警告(校验方在 5.1.0 上实测)[19]

from isaacsim.core.api import World

from isaacsim.core.api import World

Isaac Sim 4.5 起

可用

—

from isaaclab.envs import ManagerBasedRLEnv

Isaac Lab 2.0 起

可用

—

一个简单的判断法:看到 isaacgym 或 omni.isaac.gym,说明是 Isaac Gym 或 OmniIsaacGymEnvs 时代的代码,只能参考思路;看到 omni.isaac.orbit 或 omni.isaac.lab,按改名表替换包名,一般还能用;看到 omni.isaac.core 这类 Isaac Sim 旧名,暂时能跑,但应当迁移。改旧脚本时,第一处要改的通常就是开头的 from omni.isaac.kit import SimulationApp:在 pip 安装的主线环境里,它会在第一行就失败[20]。完整的新旧名对照见 3.11 Isaac Sim 的 Python API 地图。

除了 import,还能看什么#

这一节回答:资料里没有代码时,怎么判断它的年代?

很多教程和论坛帖子只有安装步骤或命令行,没有 import。这时可以看下面几类线索:

  • 启动脚本名:出现 orbit.sh,说明是 Orbit 时代;Isaac Lab 1.0 起改为 isaaclab.sh[15]。

  • 文档地址:链接指向 isaac-orbit.github.io 的是 Orbit 文档;Isaac Lab 的文档在 isaac-sim.github.io/IsaacLab,而且按版本分路径(如 /v2.3.2/),先确认链接里的版本号[13]。

  • Python 版本:要求 Python 3.10 的对应 Isaac Sim 4.x;要求 3.11 的对应 Isaac Sim 5.x[21]。

  • 环境名:虚拟环境叫 isaaclab 的多半是 1.x 时代,2.0 起默认名改为 env_isaaclab[16]。

  • 下载方式:要求从 NVIDIA 官网下载 "Isaac Gym Preview 4" 压缩包的,是 Isaac Gym / IsaacGymEnvs 时代[3]。

判断出年代后,再回到上面的速查表:同一时代的 import 通常可以批量替换,跨过 Isaac Gym 这条线的则需要重写。

常见误解#

误解一:Isaac Gym 是 Isaac Sim 的旧版本

不是。Isaac Gym 是独立发布的预览版 GPU 物理仿真工具,直接构建在 PhysX 上,从来不是 Isaac Sim 的一个版本。NVIDIA 后来把它的能力整合进了 Isaac Sim,任务库 IsaacGymEnvs 则由 Isaac Lab 取代[1]。

误解二:Orbit 是另一个框架

Orbit 就是 Isaac Lab 的前身。Isaac Lab 1.0 在 Orbit 基础上发布,仓库沿用同一个,版本号从 Orbit 的 0.3.1 接续到 1.0.0[13][5]。Orbit 时代的代码替换包名后,大部分概念仍然适用。

误解三:OmniIsaacGymEnvs 还在维护

没有。它的 README 声明 4.0.0(2024-05-31)为最后一个版本,后续并入 Isaac Lab,仓库也已归档[11][4]。Isaac Lab 1.0 的 Direct 工作流就来自 OmniIsaacGymEnvs[13]。

误解四:omni.isaac.* 在 5.x 上已经不能用

还能用,只是会打印弃用警告;官方计划在 6.0 移除[18]。前提是 Kit 已经启动,或者已经 import isaacsim;pip 安装下直接把 omni.isaac.kit 写在脚本第一行会报错[20]。但 Orbit 与 Isaac Lab 1.x 的 omni.isaac.orbit、omni.isaac.lab 属于另一回事:它们是 Isaac Lab 自己的旧包名,在 2.x 中已经不存在。

延伸阅读#

版本说明#

  • 本页的"状态"一列针对 Isaac Sim 5.1.0 + Isaac Lab 2.3.2。在 Isaac Sim 4.x 上,omni.isaac.* 是正式名称,不是弃用名。

  • Isaac Lab 3.0.0-EA:3.0 又有一轮大改,包括四元数顺序、.data.* 返回类型、训练脚本入口等,这些不属于改名,见 8.1 3.0 改了什么、为什么改。

  • Isaac Sim 6.x:官方计划移除 omni.isaac.* 弃用扩展[18]。本站尚未在 6.x 上实测,暂不下结论。