Migrating from Orbit#
Since Orbit was used as basis for Isaac Lab, migrating from Orbit to Isaac Lab is straightforward. The following sections describe the changes that need to be made to your code to migrate from Orbit to Isaac Lab.
Updates to scripts#
The script orbit.sh has been renamed to isaaclab.sh.
Updates to extensions#
The extensions omni.isaac.orbit, omni.isaac.orbit_tasks, and omni.isaac.orbit_assets have been renamed
to omni.isaac.lab, omni.isaac.lab_tasks, and omni.isaac.lab_assets, respectively. Thus, the new folder structure looks like this:
source/extensions/omni.isaac.lab/omni/isaac/labsource/extensions/omni.isaac.lab_tasks/omni/isaac/lab_taskssource/extensions/omni.isaac.lab_assets/omni/isaac/lab_assets
The high level imports have to be updated as well:
Orbit |
Isaac Lab |
|---|---|
|
|
|
|
|
|
Updates to class names#
In Isaac Lab, we introduced the concept of task design workflows (see Task Design Workflows). The Orbit code is using the manager-based workflow and the environment specific class names have been updated to reflect this change:
Orbit |
Isaac Lab |
|---|---|
|
|
|
|
|
|
|
|
|
Updates to the tasks folder structure#
To support the manager-based and direct workflows, we have added two folders in the tasks extension:
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_basedsource/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct
The tasks from Orbit can now be found under the manager_based folder.
This change must also be reflected in the imports for your tasks. For example,
from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg ...
should now be
from omni.isaac.lab_tasks.manager_based.locomotion.velocity.velocity_env_cfg ...
Other Breaking changes#
Offscreen rendering#
The input argument --offscreen_render given to omni.isaac.lab.app.AppLauncher and the environment variable OFFSCREEN_RENDER
have been renamed to --enable_cameras and ENABLE_CAMERAS respectively.
Event term distribution configuration#
Some of the event functions in events.py
accepted a distribution parameter and a range to sample from. In an effort to support arbitrary distributions,
we have renamed the input argument AAA_range to AAA_distribution_params for these functions.
Therefore, event term configurations whose functions have a distribution argument should be updated. For example,
add_base_mass = EventTerm(
func=mdp.randomize_rigid_body_mass,
mode="startup",
params={
"asset_cfg": SceneEntityCfg("robot", body_names="base"),
"mass_range": (-5.0, 5.0),
"operation": "add",
},
)
should now be
add_base_mass = EventTerm(
func=mdp.randomize_rigid_body_mass,
mode="startup",
params={
"asset_cfg": SceneEntityCfg("robot", body_names="base"),
"mass_distribution_params": (-5.0, 5.0),
"operation": "add",
},
)