Robotics

NVIDIA Isaac Lab

What is Isaac Lab?

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.


Installing Isaac Lab

Preparing a Python Environment

conda create -n isaac python=3.11
conda activate isaac

Ubuntu

Installing Dependencies

Install Isaac Sim pip packages:

$ pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com

Install a CUDA-enabled PyTorch build that matches your system architecture:

CUDA 13

The only exception is if you're on Linux aarch64 (DGX Spark), where CUDA ≥ 13 is required due to the architecture, and thus the cu13 build of PyTorch or newer is needed.

$ pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128

Install Git

$ sudo apt install git

Cloning Isaac Lab

Make sure the isaaclab virtual environment has been activated, then clone it:

$ git clone https://github.com/isaac-sim/IsaacLab.git ~/isaaclab

Install dependencies using apt (on Ubuntu):

$ sudo apt install -y cmake build-essential

Run the install command that iterates over all the extensions in source directory and installs them using pip (with --editable flag):

$ cd ~/isaaclab
$ ./isaaclab.sh --install # or "./isaaclab.sh -i"

Note

By default, this will install all the learning frameworks. If you want to install only a specific framework, you can pass the name of the framework as an argument. For example, to install only the rl_games framework, you can run:

$ ./isaaclab.sh --install rl_games  # or "./isaaclab.sh -i rl_games"
> cd ~/isaaclab
> isaaclab.bat --new

Train a Bot

You can now use Isaac Lab to train a robot through Reinforcement Learning! The quickest way to use Isaac Lab is through the predefined workflows using one of our Batteries-included robot tasks. Execute the following command to quickly train an ant to walk! We recommend adding --headless for faster training.

$ ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless

… Or a robot dog!

$ ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Rough-Anymal-C-v0 --headless

Remove --headless if you want to see it in action.

Isaac Lab provides the tools you’ll need to create your own Tasks and Workflows for whatever your project needs may be. Take a look at our How-to Guides guides like Adding your own learning Library or Wrapping Environments for details.


Asset Caching

Assets used in Isaac Lab are hosted on AWS S3 buckets on the cloud. Asset loading time can depend on your network connection and geographical location. In some cases, it is possible that asset loading times can be long when assets are pulled from the AWS servers.

If you run into cases where assets take a few minutes to load for each run, we recommend enabling asset caching following the below steps.

First, launch the Isaac Sim app:

$ ./isaaclab.sh -s

On the top right of the Isaac Sim app, there will be an icon labelled CACHE:. There may be a message indicating HUB NOT DETECTED or NEW VERSION DETECTED.

Click on the message, which will enable Hub for asset caching. Once enabled, Hub will run automatically each time an Isaac Lab or Isaac Sim instance is run.

Note that for the first run, assets will still need to be pulled from the cloud, which could lead to longer loading times. However, subsequent runs that use the same assets will be able to use the cached files from Hub. Hub will provide better control for caching of assets used in Isaac Lab.


New Robot Project

Windows

> conda activate isaac
> cd c:\isaaclab
> cmd /c isaaclab.bat --new

Follow the prompts to create a new project.

  1. External
  2. Project path: C:\Users\xxxx
  3. Project name: my_robot
  4. Workflow: Manager-based (more modular) or Direct (simpler/faster to start)
  5. RL Library: skrl or rsl_rl
  6. RL algorithm: PPO

Install the generated project:

cd my_robot
pip install -e .

URDF to USD

cd C:\isaaclab
.\isaaclab.bat -p scripts\tools\convert_urdf.py <path_to_urdf>.urdf <path_to_usd>.usd --joint-stiffness 0.0 --joint-damping 0.0 --joint-target-type none

Setting --joint-target-type none disables the drive and sets joint gains to 0.0 — recommended when you intend to configure actuators manually in Isaac Lab rather than using the URDF defaults. Isaac Lab Key flags to know for a bipedal robot like Olaf:

  • Don't use --merge-joints if you need all DOFs separate for RL control
  • Don't use --fix-base — Robot is floating-base (bipedal, free to fall)

Ubuntu

cd ~/isaaclab
./isaaclab.sh --new

The interactive generator will ask you:

  1. Project type - choose external (standalone, keeps your code separate from Isaac Lab)
  2. Porject path - e.g. ~/robot
  3. Workflow - choose manager-based (recommended for locomotion tasks - modular and cleaner)
  4. RL library - choose rsl_rl (standard for legged locomotion)
Previous
Isaac Gym