A growing collection of manipulation tasks built with mjlab.
Reach-{Robot}Move gripper to target. |
Lift-{Robot}Lift a cube (state-based). |
|---|---|
![]() |
![]() |
Lift-{Robot}-RGBLift a cube (vision-based). |
Lift-Any-{Robot}-RGBLift 12 objaverse objects (vision-based). |
![]() |
|
{Robot} is one of Droid, xArm, Kuka, Gen3, or UR5e (add your own).
git clone https://github.com/<user>/mjlab_manipulation.git && cd mjlab_manipulation
uv syncTrain a task:
uv run train <task-id> --num_envs 4096Play back a trained policy:
uv run play <task-id> --wandb-path-checkpoint <wandb-path>- Add a bare-arm MJCF under
robots/<name>/xmls/(no gripper, they get attached at task time). - Write
robots/<name>/<name>_constants.pyreturning aRobotCfgwith the home pose and tool-attach offset. - Add it to the
_ROBOTSdict in each task's__init__.py.
- Robot MJCF models are sourced from MuJoCo Menagerie.
- Object meshes are sourced from Objaverse.



