Skip to content

RBQ-Lab

📚 Introduction

RBQ-Lab user guide

This document explains the basic procedure to train RBQ10 quadruped locomotion policy in Isaac Sim / Isaac Lab, then replay (Play) and use the outputs for deployment.


💻 System Requirements

For RBQ-Lab, the following environment is recommended:

  • OS: Ubuntu 22.04 (x86)
  • GPU: CUDA-capable NVIDIA GPU
  • Disk: minimum 80 GB, recommended 120 GB or more (includes Isaac Sim / Isaac Lab / Conda / cache)
  • Network: initial setup needs large downloads (wget, git clone, pip)

Version pins

For the actual operating versions, check the pins in dependencies.yaml and scripts/setup.bash first.

🔁 Process overview

The default workflow is:

Setup → Train → Play → Deploy

  • Setup: install dependencies/environment with setup.bash
  • Train: train the rbq10 task
  • Play: replay/verify the rbq10_play task
  • Deploy: use the exported policy artifacts (policy.onnx, info.json, etc.)
Isaac SimMujoco
RBQ Lab overviewDeploy step example

📦 Setup

Go to the rbq_lab directory:

bash
cd <your workspace>/RBQ/rbq_lab

Inside the rbq_lab directory, run:

bash
bash scripts/setup.bash

🏋️ Train

Default training:

bash
bash scripts/train.bash

Default task is rbq10. Training logs are usually stored under logs/rsl_rl/<experiment_name>/....

Options available in train.py (reference)
--task, --num_envs, --device, --headless, --resume, --checkpoint, --max_iterations, --seed, --video, etc. Full list: bash scripts/python.bash rbq_lab/train.py --help.

If you want to hardcode options, edit the train.py invocation inside scripts/train.bash. Since execution is mostly headless, the training window may not appear (which can be normal).

Train RBQ-Lab
Train example

Training logs: logs/rsl_rl/<experiment_name>/...

🏅 Play

Default replay:

bash
bash scripts/play.bash

Default task is rbq10_play. Training checkpoints (.pt) are typically under logs/rsl_rl/<experiment_name>/.../model_*.pt. When running Play, specifying the exact model_*.pt path via --checkpoint is the most reliable.

Options available in play.py (reference)
--use_pretrained_checkpoint, --no_keyboard, --real-time, --video, --checkpoint, etc. Full list: bash scripts/python.bash rbq_lab/play.py --help.

If you want to hardcode options, edit the play.py invocation inside scripts/play.bash.

Play RBQ-Lab

🎯 Deploy

To evaluate the trained policy and deploy it to the real robot, refer to rbq_example_level_0.

After Play, policy.jit, policy.onnx, and info.json may be generated under logs/<experiment_name>/exported/.

📂 Directory structure

rbq_lab/
├── 3rdparty
├── policy
│   └── rbq10
│       ├── info.json
│       └── policy.onnx
├── rbq_lab
│   ├── envs
│   │   ├── base
│   │   │   ├── base_task.py
│   │   │   └── base_task_cfg.py
│   │   ├── __init__.py
│   │   └── rbq10
│   │       ├── __init__.py
│   │       ├── env.py
│   │       ├── env_cfg.py
│   │       ├── env_mdp.py
│   │       ├── rbq10.py
│   │       └── rsl_rl_ppo_cfg.py
│   ├── __init__.py
│   ├── play.py
│   ├── train.py
│   └── utils
│       ├── camera.py
│       ├── cli_args.py
│       ├── keyboard.py
│       ├── marker.py
│       ├── math.py
│       └── rough.py
├── scripts
│   ├── activate.bash
│   ├── clear.bash
│   ├── configure.bash
│   ├── isaacsim.bash
│   ├── play.bash
│   ├── python.bash
│   ├── setup.bash
│   └── train.bash
├── dependencies.yaml
└── setup.py
  • USD and other assets can be placed under a separate resources/ directory; code uses LAB_ASSET_DIR.
  • Training logs: logs/rsl_rl/<experiment_name>/...
  • Replay/checkpoint lookup: logs/<experiment_name>/...
  • Cleanup: bash scripts/clear.bash (*.egg-info, __pycache__, and optionally logs/)

🔧 Add a new Lab environment

The typical approach is to copy and modify the existing rbq10 environment to register a new task.

  1. Add a new environment folder under rbq_lab/envs/.
  2. Create env.py, env_cfg.py, env_mdp.py, and rsl_rl_ppo_cfg.py for the new task.
  3. If needed, add robot/environment assets (USD, etc.) under resources/ and connect the paths in the environment config.
  4. Register the new environment/task id in rbq_lab/envs/__init__.py.
  5. Verify that train.py selects the new task correctly, then validate with training and replay.

After adding a task, it’s recommended to run with a small num_envs first to catch early issues (asset paths, observation/action dimensions, reward definition).

This user manual is intended for RBQ users.