This repository showcases the implementation of PAL Robotics' robots in mjlab.
mjlab brings the Isaac Lab API to MuJoCo Warp. It's lightweight, easy to install, and has been validated for sim-to-real transfer on the G1 and Go1 robots for RL locomotion and motion imitation. See the announcement thread for videos, or read about the motivation behind mjlab.
Install uv.
curl -LsSf https://astral.sh/uv/install.sh \| shClone the repository.
git clone https://github.com/pal-robotics/pal_mjlab.git
cd pal_mjlab
uv syncList available environments.
uv run list_envs --keyword palTest with dummy agents.
uv run play Mjlab-Velocity-Flat-Pal-Kangaroo --agent zero # send zero actions
uv run play Mjlab-Velocity-Flat-Pal-Kangaroo --agent random # send random actionsTrain a locomotion policy.
uv run train Mjlab-Velocity-Flat-Pal-Kangaroo --env.scene.num-envs 4096Evaluate a trained policy.
uv run play Mjlab-Velocity-Flat-Pal-Kangaroo --wandb-run-path your-org/mjlab/run-idWe added support to GMR to retarget animations from the LaFAN1 dataset for PAL robots (KANGAROO and Talos).
First, use GMR to retarget and convert a motion file. Note that for convenience we provide a few retargeted motions under motions folder.
Then convert the CSV to NPZ format.
uv run -m pal_mjlab.scripts.csv_to_npz \
--input-file motions/kang_walk.csv \
--output-name kang_walk \
--input-fps 30 \
--output-fps 50 \
--robot-name kangaroo \
--render TrueTrain.
uv run train Mjlab-Tracking-Flat-Pal-Kangaroo \
--registry-name your-org/csv_to_npz/kang_walk \
--env.scene.num-envs 4096Evaluate.
uv run play Mjlab-Tracking-Flat-Pal-Kangaroo --wandb-run-path your-org/mjlab/run-idpal_mjlab.mp4
Contributions are welcome! Please open an issue to discuss proposed changes or report bugs. As mjlab is in early development, breaking changes may occur—thank you for your patience.
Thanks to the teams behind mjlab, PAL Robotics, MuJoCo Warp, Isaac Lab, and the Inria HUCEBOT Team.
See LICENSE for details.
