Installation

Prerequisites

Make sure your system meets the following requirements:

  • OS: Ubuntu 20.04 / 22.04
  • Python: 3.10
  • CUDA: 12.8
  • Isaac Sim: 4.5.0
  • Isaac Lab: 2.1.0

Step 1. Repository Setup

mkdir -p ~/workspace/lumos_ws
cd ~/workspace
git clone https://github.com/isaac-sim/IsaacLab.git

Clone additional repositories:

cd ~/workspace/lumos_ws
git clone https://github.com/LumosRobot/st_gym.git
git clone https://github.com/LumosRobot/st_rl.git
git clone https://github.com/LumosRobot/lumos_assets.git
git clone https://github.com/LumosRobot/humanoid_demo_retarget.git

cd st_gym/third_party
git clone https://github.com/sunzhon/refmotion_manager.git

Project structure

workspace
├── IsaacLab
└── lumos_ws
    ├── humanoid_demo_retarget
    ├── installation
    ├── lumos_models
    ├── st_gym
    │   ├── exts/legged_robots
    │   └── third_party/refmotion_manager
    └── st_rl

Step 2. Environment Setup

  • Create and activate conda environment:
conda create -n lumos_env python=3.10
conda activate lumos_env
  • Install PyTorch (CUDA build):
pip install torch==2.5.1 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu118
pip install --upgrade pip
pip install isaaclab[isaacsim,all]==2.1.0 --extra-index-url https://pypi.nvidia.com
  • Verify Isaac Sim:
isaacsim
  • Install project dependencies:
# legged_robots
cd ~/workspace/lumos_ws/st_gym/exts/legged_robots
pip install -e .

# st_rl
cd ~/workspace/lumos_ws/st_rl
pip install -e .

# refmotion_manager
cd ~/workspace/lumos_ws/st_gym/third_party
pip install -e .
  • System tools:
sudo apt-get update
sudo apt install cmake build-essential
  • Install IsaacLab script:
cd ~/workspace/IsaacLab
git checkout 2.1.0
./isaaclab.sh -i
  • Install rsl_rl:
pip install rsl-rl-lib
# or
git clone https://github.com/leggedrobotics/rsl_rl
cd rsl_rl
pip install -e .

Step 3. Robot Resources

  • Convert URDF → USD:
python ~/workspace/IsaacLab/scripts/tools/convert_urdf.py \
  ~/workspace/lumos_ws/lumos_assets/lus2/urdf/lus2_joint21.urdf \
  ~/workspace/lumos_ws/lumos_assets/lus2/usd/lus2_joint21.usd \
  --merge-joints --joint-stiffness 10000 --joint-damping 0.0 --rendering_mode quality

Running

Training

Flat terrain:

cd ~/workspace/lumos_ws/st_gym
python scripts/st_rl/train.py --task Flat-Lus2 --headless

Rough terrain:

cd ~/workspace/lumos_ws/st_gym
python scripts/st_rl/train.py --task Rough-Lus2 --headless

Or use run.sh:

./run.sh -m train

Logs are saved to:

st_gym/logs/st_rl/lus2_flat/yyyy-mm-dd_hh-mm-ss

Run Script (run.sh) Options

Option Description
-n Specify the task name (default: Flat-Lus2)
-m Set run mode to training (train), playback (play) or simulation only (sim2mujoco)
-l Load a previous run (implies --load_run xxx --resume=True)
-h Nohup output file to extract from (default nohup.out)
-c Load a specific checkpoint by index
-d Use specific device (example: --device cuda:0)
-r Export the trained model to RKNN format (--export_rknn)
-e Specify the experiment name (default: flat-Lus2)

Play

Run trained policy in Isaac Lab:

python scripts/st_rl/play.py --task Flat-Lus2 \
  --load_run 2025-06-05_15-16-48 --checkpoint model_400.pt

Or:

./run.sh -n Flat-Lus2 -m play -l 2025-06-05_15-16-48 -c model_400.pt

Exported ONNX policy:

st_gym/logs/st_rl/lus2_flat/yyyy-mm-dd_hh-mm-ss/exported/policy.onnx

Sim2Sim (MuJoCo)

You need to install the required dependencies before running Mujoco by executing:

pip install mujoco
pip install onnxruntime

Replay with MuJoCo using python:

python scripts/st_rl/sim2mujoco.py --task Flat-Lus2-Play \
--experiment_name lus2_flat --load_run 2025-07-27_15-13-37

or by Bash script:

./run.sh -n Flat-Lus2 -m sim -l 2025-07-27_15-13-37