迁移指南(Isaac Sim)#

从 Isaac Sim 4.2 版本迁移到 4.5 及更高版本会带来一系列 API 以及 Isaac Sim 扩展和类的变化。本文档概述了这些变化,并说明了如何将您的代码迁移到新 API。

重命名 Isaac Sim 扩展#

之前,Isaac Sim 扩展遵循 omni.isaac.* 的约定,例如 omni.isaac.core 。在 Isaac Sim 4.5 中,Isaac Sim 扩展已被重命名为使用前缀 isaacsim ,替代 omni.isaac 。此外,许多扩展已被重命名并拆分成多个扩展,以便为更具模块化的框架做准备,用户可以通过使用应用模板进行定制。

值得注意的是,以下在 Isaac Lab 中常用的 Isaac Sim 扩展被重新命名为:

  • omni.isaac.cloner –> isaacsim.core.cloner

  • omni.isaac.core.prims –> isaacsim.core.prims

  • omni.isaac.core.simulation_context –> isaacsim.core.api.simulation_context

  • omni.isaac.core.utils –> isaacsim.core.utils

  • omni.isaac.core.world –> isaacsim.core.api.world

  • omni.isaac.kit.SimulationApp –> isaacsim.SimulationApp

  • omni.isaac.ui –> isaacsim.gui.components

URDF和MJCF导入器的重命名#

从 Isaac Sim 4.5 开始,URDF 和 MJCF 导入器已被重命名,以便与 Isaac Sim 中的其他扩展保持一致。导入器作为开源项目可以在 isaac-sim GitHub 上找到。

由于扩展名更改,Python模块名称也已更改:

  • URDF导入器: isaacsim.asset.importer.urdf (之前是 omni.importer.urdf

  • MJCF导入器: isaacsim.asset.importer.mjcf (之前是:omni.importer.mjcf

从 Isaac Sim UI 中,URDF 和 MJCF 导入器现在可以通过文件 > 导入菜单直接访问,当在文件浏览器中选择相应的 .urdf 或 .xml 文件时。

URDF 导入器的变化#

Isaac Sim 4.5 带来了一些对 URDF 导入器的更新,新的 UI 允许在从 URDF 导入机器人时进行更好的配置。因此,Isaac Lab URDF 转换器也已更新,以反映这些变化。 UrdfConverterCfg 包括一些新的设置,例如 PDGainsCfgNaturalFrequencyGainsCfg 类,用于配置驱动的增益。

需要注意的一项破坏性变化是,UrdfConverterCfg.JointDriveCfg.gains 属性必须是类类型 PDGainsCfgNaturalFrequencyGainsCfg

刚度必须指定 PDGainsCfg ,格式如下:

natural_frequency 必须为 NaturalFrequencyGainsCfg 指定。

重命名 omni.isaac.core 类#

Isaac Sim 4.5 引入了一些命名更改,这些更改影响了 Isaac Lab 中常用的核心 prim 类。这些更改影响了 prim 类的单个和 View 变体,包括 Articulation、RigidPrim、XFormPrim 等。单对象类现在以 Single 为前缀,例如 SingleArticulation ,而张量化的 View 类现在移除了 View 后缀。

类的具体重命名如下:

  • Articulation –> SingleArticulation

  • ArticulationView –> Articulation

  • ClothPrim –> SingleClothPrim

  • ClothPrimView –> ClothPrim

  • DeformablePrim –> SingleDeformablePrim

  • DeformablePrimView –> DeformablePrim

  • GeometryPrim –> SingleGeometryPrim

  • GeometryPrimView –> GeometryPrim

  • ParticleSystem –> SingleParticleSystem

  • ParticleSystemView –> ParticleSystem

  • RigidPrim –> SingleRigidPrim

  • RigidPrimView –> RigidPrim

  • XFormPrim –> SingleXFormPrim

  • XFormPrimView –> XFormPrim

重命名 Isaac Lab 扩展和文件夹#

对应于 Isaac Sim 4.5 的更改,我们也对 Isaac Lab 目录和扩展做了一些更新。所有之前位于 source/extensions 下的扩展现在直接位于 source/ 目录下。source/appssource/standalone 文件夹已被移动到根目录,并且现在分别称为 apps/scripts/

Isaac Lab 扩展已重命名为:

  • omni.isaac.lab –> isaaclab

  • omni.isaac.lab_assets –> isaaclab_assets

  • omni.isaac.lab_tasks –> isaaclab_tasks

此外,我们已将之前的 source/standalone/workflows 目录拆分为 scripts/imitation_learningscripts/reinforcement_learning 目录。RSL RL、Stable-Baselines、RL_Games、SKRL 和 Ray 目录位于 scripts/reinforcement_learning 下,而 Robomimic 和新的 Isaac Lab Mimic 目录则位于 scripts/imitation_learning 下。

为了帮助您重命名项目中的 Isaac Lab 扩展,我们提供了一个 简单脚本 ,该脚本将遍历您本地 Isaac Lab 项目的 sourcedocs 目录,并替换任何被重命名的目录和导入实例。 **请自行承担使用该脚本的风险,因为它将直接覆盖源文件。 **

Isaac Lab 扩展的重构#

随着 isaaclab_mimic 的引入,该模块旨在支持模仿学习的数据生成工作流,我们还将之前位于 isaaclab_tasks 中的 wrappers 文件夹拆分成一个独立的模块,命名为 isaaclab_rl 。这个新扩展将包含针对Isaac Lab支持的各种强化学习库的强化学习专用包装器。

新的 isaaclab_mimic 扩展将替代 robomimic 文件夹下的旧有模仿学习脚本。我们已删除用于数据收集和数据集准备的旧脚本,转而使用新的 mimic 工作流。对于偏好使用之前脚本的用户,这些脚本将会在之前的发布分支中提供。

此外,我们还重新构建了 isaaclab_assets 扩展,将其拆分为 robotssensors 子目录。这可以更清晰地区分扩展中提供的预定义配置。对于任何现有的导入,例如 from omni.isaac.lab_assets.anymal import ANYMAL_C_CFG ,请将其替换为 from isaaclab.robots.anymal import ANYMAL_C_CFG