roboparty_train provides training, evaluation, and policy export for Roboparty RPO and RP1 robots, built on Isaac Lab and RSL-RL.
The repository contains two submodules:
robolab: Roboparty Isaac Lab extension, environments, scripts, and robot assets.rsl_rl: RSL-RL fork with AMP and Parkour policy support.
- RPO and RP1 training environments built on Isaac Lab.
- RSL-RL training, evaluation, and policy export entry points.
- AMP, BeyondMimic, and Parkour workflows.
- AMP and BeyondMimic data conversion from HHTools exports.
- Python 3.12.
- Isaac Lab 3.0.0 GA, with MJWarp (Newton 1.6.1) or Isaac Sim 6.2 for PhysX.
- The included RSL-RL 5.5.1 fork.
- Ubuntu 22.04 x64.
Prepare the Isaac Lab 3.0 source checkout and system prerequisites following the official installation guide. The installation below creates the project's Python environments.
Clone the repository and its submodules:
git clone --recursive https://github.com/Roboparty/roboparty_train.git
cd roboparty_trainFor an existing checkout:
git submodule update --init --recursiveKeep the Isaac Lab 3.0.0 source checkout alongside this repository. From the project root:
git clone --branch v3.0.0 --recursive https://github.com/isaac-sim/IsaacLab.git ../IsaacLab-3.0.0For an existing v3.0.0 checkout, create a symbolic link at ../IsaacLab-3.0.0 instead. Run the installation commands below from the project root.
MJWarp and PhysX use separate Python environments.
MJWarp (default):
uv sync --locked
source .venv/bin/activatePhysX (Isaac Sim):
UV_PROJECT_ENVIRONMENT=.venv-physx uv sync --locked --no-default-groups \
--extra physx --no-install-package usd-exchange
source .venv-physx/bin/activateKeep the PhysX sync options when updating that environment. After activation, run commands with python or isaaclab directly. Add --extra video or --extra wandb to the corresponding sync command for video recording or W&B logging.
Verify that the extension is installed by listing the available environments:
isaaclab list_envs --keyword RPThe output should include both RPO- and RP1- tasks.
Training defaults to MJWarp (physics=newton_mjwarp). For PhysX, activate
.venv-physx and add physics=isaacsim_physx. Kit visualization also uses this environment.
python robolab/scripts/rsl_rl/train.py --task=RP1-Flat --viz=none --logger=tensorboard --num_envs=4096Playback defaults to MJWarp. The commands below open a Newton GL window and load the task's latest training checkpoint; use --checkpoint=/path/to/model.pt to select a model explicitly. Use --viz=none for headless playback. For PhysX, activate .venv-physx and add physics=isaacsim_physx; replace --viz=newton_gl with --viz=kit for the Isaac Sim viewport.
python robolab/scripts/rsl_rl/play.py --task=RP1-Flat --num_envs=1 --checkpoint=latest --viz=newton_glpython robolab/scripts/rsl_rl/play.py --task=RPO-AMP-Play --num_envs=1 --checkpoint=latest --viz=newton_glpython robolab/scripts/rsl_rl/play.py --task=RPO-BeyondMimic --num_envs=1 --checkpoint=latest --viz=newton_glpython robolab/scripts/rsl_rl/play.py --task=RPO-Parkour-Play --num_envs=1 --checkpoint=latest --viz=newton_glPlayback exports models to exported/ in the selected training run. Parkour additionally exports 0-depth_encoder.onnx and actor.onnx; keep their accompanying .onnx.data files for deployment.
The repository includes the following training data under robolab/data/motions/:
| Robot | AMP (.pkl) |
BeyondMimic (.npz) |
|---|---|---|
| RPO | rpo_amp |
rpo_bm |
| RP1 | rp1_amp |
rp1_bm |
Retarget motions in HHTools using the matching robot URDF. Export robot CSV with comments and column headers, or robot PKL, then convert it to training data:
# AMP: 120 Hz.
python robolab/scripts/tools/hhtools/convert_motion.py --robot rp1 --output_fps 120 \
-f /path/to/hhtools/walk.csv -o robolab/data/motions/rp1_amp/walk.pkl
# BeyondMimic: 50 Hz.
python robolab/scripts/tools/hhtools/convert_motion.py --robot rp1 --output_fps 50 \
-f /path/to/hhtools/walk.csv -o robolab/data/motions/rp1_bm/walk.npzUse --robot rpo for RPO. Without --output_fps, AMP retains the source rate and BeyondMimic defaults to 50 Hz.
- Empty
robolaborrsl_rldirectory: rungit submodule update --init --recursive. - Missing Isaac Lab imports: activate the Python environment used by Isaac Lab before installing or running scripts.
- Missing task name: run
isaaclab list_envs --keyword RPand copy the exact task id. - PhysX training may become abnormally slow in some scenarios.
This project builds on the following open-source projects: