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.
- External
- Project path: C:\Users\xxxx
- Project name: my_robot
- Workflow: Manager-based (more modular) or Direct (simpler/faster to start)
- RL Library: skrl or rsl_rl
- 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-jointsif 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:
- Project type - choose external (standalone, keeps your code separate from Isaac Lab)
- Porject path - e.g. ~/robot
- Workflow - choose manager-based (recommended for locomotion tasks - modular and cleaner)
- RL library - choose rsl_rl (standard for legged locomotion)