Welcome to this workshop on sim-to-real transfer for the SO-101 robot!
This repository contains the assets and code to accompany this learning content.
The rest of this README will help you setup the environment and ensure everything is installed correctly.
You can also use this repo as a basis for trying out your own tasks.
This content was tested on the following GPUs:
- NVIDIA RTX 6000 Pro (Blackwell)
- NVIDIA RTX 5090 (Blackwell)
- NVIDIA RTX 6000 (Ada)
OS and Software tested:
- Ubuntu Linux >22.04
- Docker
- CUDA Toolkit
- NVIDIA Container Toolkit
- Create directory and clone this repo
mkdir ~/sim2real
cd ~/sim2real
git clone https://github.com/isaac-sim/Sim-to-Real-SO-101-Workshop.git- Navigate to the repo
cd ~/sim2real/Sim-to-Real-SO-101-Workshop- From the repo root directory, run:
docker build -t teleop-docker -f docker/sim/Dockerfile .For Blackwell architecture GPUs:
- From the repo root directory, run:
./docker/real/build.sh blackwellFor Ada architecture GPUs:
- From the repo root directory:
./docker/real/build.sh ada- Continue with the course instructions here.
To start the Teleop & Simulation container:
xhost +
docker run --name teleop -it --privileged --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
-e "PRIVACY_CONSENT=Y" \
-e DISPLAY \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
-v $HOME/.Xauthority:/root/.Xauthority \
-v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
-v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
-v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
-v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
-v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
-v ~/.cache/huggingface/lerobot/calibration:/root/.cache/huggingface/lerobot/calibration \
-v ./docker/env:/root/env \
-v $(pwd)/source:/workspace/Sim-to-Real-SO-101-Workshop/source \
-v $(pwd)/outputs:/workspace/Sim-to-Real-SO-101-Workshop/outputs \
-v $(pwd)/datasets:/workspace/Sim-to-Real-SO-101-Workshop/datasets \
teleop-docker:latestTo start the Real Robot & Inference Server:
docker run -it --rm --name real-robot --network host --privileged --gpus all \
-e DISPLAY \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
-v $HOME/.Xauthority:/root/.Xauthority \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.cache/huggingface/lerobot/calibration:/root/.cache/huggingface/lerobot/calibration \
-v ./docker/env:/root/env \
-v ~/sim2real/models:/workspace/models \
-v $(pwd)/docker/real/scripts:/workspace/Isaac-GR00T/gr00t/eval/real_robot/SO100 \
real-robot \
/bin/bashFirst, install the HuggingFace command-line-interface (CLI)
The models used in the course are listed in the course instructions here.
You can either download them ahead of time, or as you get to them in the course.
Lerobot-So101-Teleop-Base: Teleop debugLerobot-So101-Teleop-Task: Lightbox, cameras, non-task related debug
Lerobot-So101-Teleop-Vials-To-Rack- Main task for the workshop - pick up the vial and place it in the yellow rackLerobot-So101-Teleop-Vials-To-Rack-DR- Same as above but with domain randomization
Lerobot-So101-Teleop-Vials-To-Rack-Eval- Evaluation without domain randomization (fixed orange robot, no lighting/mat DR)Lerobot-So101-Teleop-Vials-To-Rack-DR-Eval- Evaluation with full domain randomization
list_envs- List environments in this repozero_agent- Debug script with zero actionsrandom_agent- Debug script with random actionslerobot_agent- LeRobot SO101 teleop scriptlerobot_eval- Model evaluation scriptlerobot_push_dataset- LeRobot Dataset push to hub script
We are not currently accepting contributions for this project.
