Isaac Lab¶
Operating System:
Terminal:
Shell:
Editor:
Package Manager:
Programming Language:
Database:
Utility:
Extension:
Isaac Lab is a unified and modular framework for robot learning that aims to simplify common workflows in robotics research (such as reinforcement learning, learning from demonstrations, and motion planning). It is built on NVIDIA Isaac Sim to leverage the latest simulation capabilities for photo-realistic scenes, and fast and efficient simulation.
More information can be found here.
Initialization¶
For information on how to use the Initialization parameter, please refer to the Initialization: Bash Script section of the documentation.
App Requirements¶
The app is built on the top of Isaac Sim. As a consequence the same system requirements apply here. The app requires GPUs to run (more details below). If a job does not fulfil the system requirements, Isaac Lab will not be able to run inside the virtual desktop.
Important
If the app is started on a CPU machine type the job will fail.
When the job starts it is checked whether it meets the system requirements. The test's result is printed to the job console and can be found in /work/compatibility_check_result.txt.
Supported GPU machines types¶
The app only support GPUs with RT cores.
The table below shows the compatibility with the different GPU machine types available on UCloud:
Provider |
Machine type |
Compatible? |
|---|---|---|
|
|
No |
|
|
No |
|
|
Yes |
|
|
Yes |
|
|
Yes |
Note
While starting the app on GPUs without RT cores, there may be different errors and missing features.
Running Isaac Lab¶
Isaac Lab is installed in the /opt/IsaacLab directory, accessible through the environment variable ${ISAACLAB_PATH}.
Quick Start¶
Isaac Lab includes predefined workflows using one of the Batteries-included robot tasks.
The scripts are present in the /opt/IsaacLab/scripts directory.
For example, for training an ant to walk, open a terminal and write:
$ ${ISAACLAB_PATH}/isaaclab.sh -p ${ISAACLAB_PATH}/scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless
Adding the --headless option to the command, ensures a faster training.
Creating a Dedicated Conda Environment¶
Create a dedicated environment for Isaac Lab is strongly recommended. Advantages includes to keep dependencies isolated while running different experiments/projects and easily manage multiple environments for setups with different versions of libraries/frameworks.
This can be easily done via conda, pre-installed in the directory /opt/conda and accessible through the environment variable $CONDA_DIR.
To create a dedicated conda environment:
Execute the command:
$ ${ISAACLAB_PATH}/isaaclab.sh --conda environment_name
(the environment name can be omitted, the default name is
env_isaaclab).By running this command, all the dependencies/path will be set correctly and the environment will be created with the specific python version compatible with the Isaac Sim installation.
Initialize the current shell:
$ conda init $ source ~/.bashrc
Activate and prepare the environment
$ conda activate env_isaaclab $ ${ISAACLAB_PATH}/isaaclab.sh --install
From this point it is possible to run the scripts simply by using python:
$ python ${ISAACLAB_PATH}/scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless
Important
In order to be able to use the dedicated environment for future jobs on UCloud,
it is necessary to move (not copy) the environment in the /work directory:
$ mv $CONDA_DIR/envs/env_isaaclab /work
Using pre-created conda environment¶
In order to re-use a previously Isaac Lab dedicated environment:
Mount the created environment when starting the Isaac Lab app, via the job parameter Select folders to use
Open the terminal and write:
$ conda init $ source ~/.bashrc $ conda activate /work/env_isaaclab
The full activation process can be automatized and completed before the app starts, by using the script:
$ conda init
$ export MY_ENV=/work/env_isaaclab
$ echo "conda activate $MY_ENV" >> ~/.bashrc
via the app Initialization parameter, when starting the job. The last line automatically activates the environment while opening the terminal.
Contents