Skip to content

BDX-R/BDX-R-MjLab

Repository files navigation

bdx_r_mjlab.mp4

BDX-R in MjLab

This repository showcase the implementation of the BDX-R robot into MjLab.

Warning

As MjLab is still in early development, this repository may be impacted by breaking changes. If an issue were to arise when running one of the scripts, feel free to open an issue or contribute to the project. Thanks you for your understanding!

πŸ€– What's MjLab?

MjLab is a project to have the Isaac Lab API using MjWarp as the backend. If you’re wondering about the motivation behind it or how it differs from Newton, you can learn more about it here.

πŸš€ Quickstart

Clone the repository.

git clone https://github.com/BDX-R/BDX-R-MjLab.git && cd BDX-R-MjLab

Get the robot description.

curl -L -o bdx_r_description.tar.gz https://github.com/KaydenKnapik/BDX-R-Description/archive/refs/heads/main.tar.gz
tar -xzf bdx_r_description.tar.gz -C src/bdx_r_mjlab/robots/bdx_r/
rm bdx_r_description.tar.gz

List available environments.

uv run bdx_r_list_envs

Use the dummy agents.

uv run bdx_r_play Mjlab-Velocity-Flat-BDX-R --agent zero # send zero actions to the robot
uv run bdx_r_play Mjlab-Velocity-Flat-BDX-R --agent random # send random actions to the robot

Velocity Tracking

Train the policy.

uv run bdx_r_train Mjlab-Velocity-Flat-BDX-R --env.scene.num-envs 4096

Evaluate the policy.

uv run bdx_r_play Mjlab-Velocity-Flat-BDX-R-Play --wandb-run-path your-org/mjlab/run-id

🎯 Roadmap

  • Use IMU for observations
  • Use simplified meshes for collisions
  • Deploy the policy on real robot
  • Use rough terrains
  • Add a head to the robot

Check here for the general roadmap of the project!

πŸ› οΈ Contributing

We look forward for contributions. Before submitting a PR, please run the following command for format:

make format

πŸ™ Acknowledgements

We're grateful to the people behind MjLab, MuJoCo Warp and Isaac Lab.