Repository for getting started and learning Isaac Lab - robotics simulation framework by NVIDIA.
Isaac Sim provides a powerful robotics simulation environment built on NVIDIA's Omniverse platform. This repository contains examples and tutorials to help you get started with robot simulation, training, and sim-to-real transfer.
- NVIDIA GPU with driver version 525.60.13 or later
- Ubuntu 22.04
- Python 3.8+
- 32GB+ RAM recommended
- 16GB VRAM recommended
- Install Docker for your OS. You can refer to installation steps here
- Install Docker Compose for you OS. You can refer to the installation steps here
- Tip: Don't forget to run the Docker post-installation in #1. This provides the necessary permissions for the Docker service to run without sudo.
- To build and run GPU accelerated containers, install NVIDIA Container Toolkit using the instructions provided here (prefer using
apt
if you are on Ubuntu). - NOTE: Make sure the Isaac Lab directory is placed under
/home
directory tree when using Docker.
- Get the Isaac Sim Container from here
- Get your NVIDIA GPU Cloud (NGC) API key using the instructions here
- Install NGC CLI using the instructions here
- Set up NGC CLI with
ngc config set
- Input the Username (
$oauthtoken
) and API Key (YnN2cGdiNGE2Mjlzbzlmb3FmcjJxZjRncHQ6MjQ5NzkyNzEtZjlhYi00MDU0LWJhOTgtOTFlOGNmYjViMTUx
) indocker login nvcr.io
This directory contains the files and scripts required to run Isaac Lab inside a Docker container. Following are the high level explanations of few such files,
Dockerfile.base
- Defines the base Isaac Lab image by overlaying the necessary dependencies onto to the Isaac Sim Docker image. Dockerfiles ending an extension (likeDockerfile.ros2
) build an image extension instead. Check the Dockerfiles to understand the differences in these environments.docker-compose.yaml
- Create volume mounts to allow direct editing of Isaac Lab code from the host machine that runs the container. It also creates support volumes such asisaac-cache-kit
to store frequently re-used resources compiled by Isaac Sim like shaders, to retain logs, data and documents..env.base
- Stores environment variables required for thebase
build process and the container itself..env
files ending with other extensions (like.ros2
) define these for image extensions.- container.py - Utility script that interfaces with tools in
docker/utils
directory to configure and build the image, run and interact with the container in headless or GUI(X11) mode.
For Go2, it is important to change the DDS middleware used by ROS2 Humble Docker image to CycloneDDS. To achieve this, make the following changes to /isaac-sim/IsaacLab/docker/.env.ros2
,
# Update this env variable to use CycloneDDS instead of Fast-RTPS
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
TBA
TBA
- Basic robot control
- Environment interaction
- Sensor integration
- Physics simulation
- Integration with popular RL frameworks
- Example training scripts
- Hyperparameter configurations
TBA
TBA
- ROS/ROS2 bridge
- Hardware communication
- Calibration procedures