Skip to content

Install & Download

This guide walks through the standard native RoboDojo setup path: check the system requirements, install the codebase and dependencies, download assets, and update local asset paths.

RoboDojo is built on Isaac Sim 5.1 and Isaac Lab. We recommend Linux (Ubuntu 22.04 x64) with an NVIDIA GPU.

Most platform constraints come from Isaac Sim and Isaac Lab, so check their official requirements if you are using a different driver, CUDA version, or workstation setup.

ItemRequirement
OSUbuntu 22.04 (Linux x64) recommended
RAM32 GB or more
GPU VRAM16 GB or more (extra VRAM may be needed for rendering-heavy workflows)
NVIDIA driver570 or 580 recommended on Linux
CUDA12.8 recommended (installed with PyTorch during setup)

For the latest Isaac Sim hardware notes, see the official system requirements.

Vulkan is required for Isaac Sim rendering. Skip this step if vulkaninfo already reports a working Vulkan installation.

sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-tools
vulkaninfo | head
git clone https://github.com/RoboDojo-Branchmark/RoboDojo.git

The native install path creates the RoboDojo conda environment and installs Isaac Sim 5.1, Isaac Lab, CuRobo, and the remaining Python dependencies:

bash scripts/install.sh -i

When finished, activate the environment:

conda activate RoboDojo

If installation stops midway, resume from a named step instead of restarting from scratch:

bash scripts/install.sh --from STEP_NAME

Available step names:

Step nameResumes from
systemSystem package setup
condaConda environment creation
base_depsBase Python dependencies
submodulesGit submodule initialization
isaacsimIsaac Sim installation
isaaclabIsaac Lab installation
curoboCuRobo installation

Example - retry after an Isaac Sim failure:

bash scripts/install.sh --from isaacsim

ffmpeg is required for some data-processing workflows. On Ubuntu, the install script tries to install it automatically; you can verify it manually with:

ffmpeg -version

If missing, install from ffmpeg.org or via sudo apt install ffmpeg.

Simulation assets, including objects, textures, and embodiments, are hosted on ModelScope. Git LFS is required before downloading them.

# Install git-lfs once (Ubuntu)
sudo apt install git-lfs
git lfs install

# Download assets into ./Assets
bash scripts/init_assets.sh

After download, the assets directory should look like:

Assets/
├── Background/
├── Eval_Layout/
│   └── ...
├── Material/
└── ...

After the assets are in place, point robot configs to the local asset directory:

python utils/update_embodiment_config_path.py

Run this command again if you move the repository or re-download assets to a different location.

Docker is useful when you want a reproducible simulator/evaluation container. The RoboDojo image contains Isaac Sim 5.1, Isaac Lab, CuRobo, the RoboDojo Python stack, and the lightweight XPolicyLab client used by the eval client.

The image does not include Assets/, policy dependencies, or checkpoints. Download assets on the host, mount them into the container, and run your policy server outside the container over WebSocket.

NeedDetails
NVIDIA GPU + driverDriver 570 or newer is recommended for CUDA 12.8. Check with nvidia-smi.
OSLinux, tested on Ubuntu 22.04.
Disk spaceThe image is large because it includes Isaac Sim and cached extensions. Keep at least 300 GB free for the image and build cache.
AssetsA host-side Assets/ directory downloaded with bash scripts/init_assets.sh. Assets are mounted at runtime, not baked into the image.

Prepare host-side assets before running container evaluation:

bash scripts/init_assets.sh
python utils/update_embodiment_config_path.py

6.2 Install Docker and NVIDIA Container Toolkit

Section titled “6.2 Install Docker and NVIDIA Container Toolkit”

If Docker and the NVIDIA Container Toolkit already work with --gpus all, skip to the image build step.

sudo bash docker/install_docker_nvidia.sh
newgrp docker

Verify that Docker can see the GPU:

docker run --rm --gpus all nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04 nvidia-smi

If you are on a restricted China network, the installer can use TUNA/USTC apt mirrors and Docker Hub registry mirrors. It auto-detects this by default; force it with USE_CN_MIRRORS=1 or disable it with USE_CN_MIRRORS=0.

From the repository root:

docker build -t robodojo:cuda12.8 .

The first build can take a long time because it downloads Isaac Sim extensions and compiles CuRobo kernels. Later builds should reuse Docker layer cache.

Run the end-to-end Docker smoke procedure:

bash docker/smoke_docker.sh run

This builds the image if needed, starts the bundled demo_policy server on the host, runs one container evaluation, and checks that a result file is written. The demo policy outputs zero actions, so a success_rate of 0.0 is expected; the smoke test is checking the simulator, rendering, WebSocket connection, and result writing path.

Monitor a running smoke test from another terminal:

bash docker/smoke_docker.sh monitor

The smoke script launches the demo server on the host using the native RoboDojo conda environment. If you do not have the native environment and only want Docker, skip the demo smoke step and connect the container to your own policy server.

Start your policy server outside the container and bind it to 0.0.0.0, not only 127.0.0.1, so the container can reach it. Then run the simulator client in Docker:

docker run --rm -it \
  --gpus all --network host --ipc host \
  -v "$PWD/Assets:/workspace/RoboDojo/Assets:ro" \
  -v "$PWD/Assets:$PWD/Assets:ro" \
  -v "$PWD/eval_result:/workspace/RoboDojo/eval_result" \
  -v "$HOME/.cache/warp:/root/.cache/warp" \
  -v "$HOME/.local/share/ov:/root/.local/share/ov" \
  -v "$HOME/.cache/ov:/root/.cache/ov" \
  robodojo:cuda12.8 \
  bash scripts/robodojo.sh client \
    --task stack_bowls \
    --policy-name <POLICY_NAME> \
    --policy-host 127.0.0.1 --policy-port 9999 \
    --ckpt <CKPT_NAME> --eval-num 1

Required client flags are --task, --policy-name, --policy-host, and --policy-port. Common options include --ckpt, --eval-num, --action-type, --env-cfg, and --env-gpu. Add --dry-run to inspect the resolved simulator command without launching Isaac Sim.

The two Assets mounts are intentional:

MountWhy it is needed
-v "$PWD/Assets:/workspace/RoboDojo/Assets:ro"Gives the container access to robot, object, material, and layout assets.
-v "$PWD/Assets:$PWD/Assets:ro"Preserves absolute host paths baked into CuRobo configs by utils/update_embodiment_config_path.py.
-v "$PWD/eval_result:/workspace/RoboDojo/eval_result"Persists result artifacts on the host.
Cache mounts under ~/.cache/warp, ~/.local/share/ov, and ~/.cache/ovReuse CuRobo kernels and Isaac Sim extension/shader caches between runs.

The second Assets mount prevents errors such as:

ValueError: /abs/host/.../X5A.urdf is not a file

CuRobo robot configs may contain absolute host paths generated by utils/update_embodiment_config_path.py, so the container must be able to access the same absolute path.

Policy server hostnames depend on Docker networking:

Policy server locationDocker mode--policy-host
Same host as the container--network host127.0.0.1
Same host, bridge network--add-host=host.docker.internal:host-gatewayhost.docker.internal
Another machinedefault networkingThe machine’s IP or hostname

If the client cannot reach the policy server, first check that the server is listening on the expected port and is bound to 0.0.0.0.