Getting Started with NVIDIA Isaac Lab on Ubuntu 22.04 / 24.04

Installation

The official instruction is pretty straight forward: https://isaac-sim.github.io/IsaacLab/source/setup/installation/pip_installation.html

Prepare build tools

sudo apt install cmake build-essential

Clone repository

git clone git@github.com:isaac-sim/IsaacLab.git
cd ./IsaacLab/

Create conda environment

conda create -yn isaaclab python=3.10

# alternatively,
# conda create -yp ./.conda-env/ python=3.10
conda activate isaaclab

Install Python packages

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

Install rsl_rl component

./isaaclab.sh --install rsl_rl

Verify installation

./isaaclab.sh -p source/standalone/tutorials/00_sim/create_empty.py

List Environments

./isaaclab.sh -p source/standalone/environments/list_envs.py

Example Train and Play script

python scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Velocity-Flat-G1-v0 --run_name example_run

Train headless and record video

python scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Velocity-Flat-G1-v0 --video --video_length 100 --video_interval 2000 --headless

python scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Velocity-Flat-G1-v0 --num_envs 4

./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless
# run script for playing with 32 environments
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt
# run script for recording video of a trained agent (requires installing `ffmpeg`)
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200

Errata

If encounter this error

.isaac.core/omni/isaac/core/robots`: errno=28/No space left on device
2024-08-20 07:19:57 [9,094ms] [Error] [carb] Failed to create change watch for `/home/tk/Desktop/IsaacLab/.conda-env/lib/python3.10/site-packages/isaacsim/exts/omni.isaac.core/omni/isaac/core/simulation_context`: errno=28/No space left on device
2024-08-20 07:19:57 [9,094ms] [Error] [carb] Failed to create change watch for `/home/tk/Desktop/IsaacLab/.conda-env/lib/python3.10/site-packages/isaacsim/exts/omni.isaac.core/omni/isaac/core/objects`: errno=28/No space left on device
2024-08-20 07:19:57 [9,094ms] [Error] [carb] Failed to create change watch for `/home/tk/Desktop/IsaacLab/.conda-env/lib/python3.10/site-packages/isaacsim/exts/omni.isaac.core/omni/isaac/core/scenes`: errno=28/No space left on device
2024-08-20 07:19:57 [9,094ms] [Error] [carb] Failed to create change watch for `/home/tk/Desktop/IsaacLab/.conda-env/lib/python3.10/site-packages/isaacsim/exts/omni.isaac.core/omni/isaac/core/world`: errno=28/No space left on device

solution:

https://docs.omniverse.nvidia.com/dev-guide/latest/linux-troubleshooting.html#q11-getting-many-failures-similar-to-failed-to-create-change-watch-for-xxx-errno-28-no-space-left-on-device

Set up in Headless Mode

rm _isaac_sim
(base) chiyufeng@a27:/rscratch/tk/Desktop/G1Workspace/IsaacLab$ ln -s /rscratch/tk/Documents/isaac-sim-4.1.0 _isaac_sim
(base) chiyufeng@a27:/rscratch/tk/Desktop/G1Workspace/IsaacLab$ export ISAACSIM_PATH="/rscratch/tk/Documents/isaac-sim-4.1.0"
(base) chiyufeng@a27:/rscratch/tk/Desktop/G1Workspace/IsaacLab$ export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
(base) chiyufeng@a27:/rscratch/tk/Desktop/G1Workspace/IsaacLab$ ${ISAACSIM_PYTHON_EXE} -c "print('Isaac Sim configuration is now complete.')"

Helpful Tips

Logging Directory

A bunch of omni Python module uses the omni.log.info() method to log data.

The logging directory is at

$CONDA_PREFIX/lib/python3.10/site-packages/omni/logs/Kit/Isaac-Sim/4.2/

Robot Joint Order

The joint are searched BFS, and joints at the same depth level are ordered alphabetically.

For example, this is the G1 robot joint order

File Watch Limit

If running into file watch limit error like the one below:

[carb] Failed to create change watch for `xxxxx`: errno=28/No space left on device

Can increase the system file watch limit by running

echo fs.inotify.max_user_watches=1048576 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

and examine the change:

cat /proc/sys/fs/inotify/max_user_watches

Last updated

Was this helpful?