[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83221":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":9,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},83221,"LeggedManip_Lab","zzzJie-Robot\u002FLeggedManip_Lab","zzzJie-Robot","RL framework for whole-body legged manipulation across 7 robot platforms",null,"Python",71,7,52,1,0,16,10,2.71,"Apache License 2.0",false,"master",true,[],"2026-06-12 02:04:32","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fimgs\u002Freadme_logo.png\" alt=\"LeggedManip Lab\" width=\"600\">\n\u003C\u002Fp>\n\n# LeggedManip Lab\n\n[![Isaac Sim](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FIsaac%20Sim-5.1.0-blue.svg)](https:\u002F\u002Fdocs.isaacsim.omniverse.nvidia.com\u002Flatest\u002Findex.html)\n[![Isaac Lab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FIsaac%20Lab-main%20branch-blue.svg)](https:\u002F\u002Fgithub.com\u002Fisaac-sim\u002FIsaacLab\u002Ftree\u002Fmain)\n[![RSL-RL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frsl--rl--lib-%3E%3D5.0.1-blue.svg)](https:\u002F\u002Fgithub.com\u002Fleggedrobotics\u002Frsl_rl)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.11-blue.svg)](https:\u002F\u002Fdocs.python.org\u002F3\u002Fwhatsnew\u002F3.11.html)\n[![MuJoCo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMuJoCo-3.2.7-orange.svg?logo=mujoco)](https:\u002F\u002Fmujoco.org\u002F)\n[![Linux platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-linux--64-orange.svg)](https:\u002F\u002Freleases.ubuntu.com\u002F22.04\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicense\u002Fapache-2-0)\n\n[English](README.md) | [中文](README_CN.md)\n\n\n**A Reinforcement Learning (RL) framework for legged robots with manipulator arms**\n\nLegged robots with manipulation arms present unique challenges — coordinating locomotion and dexterous manipulation simultaneously. LeggedManip Lab addresses this by providing a unified RL training framework built on Isaac Lab, supporting whole-body locomotion-manipulation policy training and deployment across 7 robot platforms, including Flat and Whole-Body Control (WBC) training modes.\n\n\u003Cdiv align=\"center\">\n\n| \u003Cdiv align=\"center\"> Isaac Lab \u003C\u002Fdiv> | \u003Cdiv align=\"center\">  Mujoco \u003C\u002Fdiv> |  \u003Cdiv align=\"center\"> Physical \u003C\u002Fdiv> |\n|--- | --- | --- |\n| \u003Cimg src=\"docs\u002Fvideos\u002Fisaaclab.gif\" width=\"240px\"> | \u003Cimg src=\"docs\u002Fvideos\u002Fmujoco.gif\" width=\"240px\"> | \u003Cimg src=\"docs\u002Fvideos\u002Freal.gif\" width=\"240px\"> |\n\n\u003C\u002Fdiv>\n\n---\n\n## Supported Robots\n\n| Platform | Legged Robot | Arm | Screenshot |\n|----------|:-----------:|:---:|:----:|\n| AGO-Z1 | Unitree Aliengo | Unitree Z1 | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fago_z1.png\" alt=\"ago_z1\" width=\"75\"> |\n| B1-Z1 | Unitree B1 | Unitree Z1 | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fb1_z1.png\" alt=\"b1_z1\" width=\"75\"> |\n| B2-Z1 | Unitree B2 | Unitree Z1 | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fb2_z1.png\" alt=\"b2_z1\" width=\"75\"> |\n| GO1-ARX5 | Unitree Go1 | ARX-X5 | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fgo1_arx5.png\" alt=\"go1_arx5\" width=\"75\"> |\n| GO1-WX250S | Unitree Go1 | WX250S | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fgo1_wx250s.png\" alt=\"go1_wx250s\" width=\"75\"> |\n| GO2-ARX5 | Unitree Go2 | ARX-X5 | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fgo2_arx5.png\" alt=\"go2_arx5\" width=\"75\"> |\n| GO2-PIPER | Unitree Go2 | Agilex Piper | \u003Cimg src=\".\u002Fdocs\u002Fimgs\u002Fgo2_piper.png\" alt=\"go2_piper\" width=\"75\"> |\n| ... | ... | ... | ... |\n\nEach platform supports the following **2** training modes:\n\n- **Flat** — Locomotion + manipulation on flat terrain\n- **WBC** — Whole-body control with end-effector pose tracking in [mixed frame](docs\u002FWBC_MIXED_FRAME.md)\n\n---\n\n## Roadmap\n\n| Feature | Status |\n|---------|--------|\n| Flat terrain | ✅ Released |\n| Whole-body control (WBC) | ✅ Released |\n| Sim-to-Sim transfer | ✅ Released |\n| Sim-to-Real transfer | 🔜 Coming Soon |\n\n---\n\n## Installation\n\n### Prerequisites\n\n- Install Isaac Lab by following the [official installation guide](https:\u002F\u002Fisaac-sim.github.io\u002FIsaacLab\u002Fmain\u002Fsource\u002Fsetup\u002Finstallation\u002Findex.html).\n  We recommend using the conda installation as it simplifies calling Python scripts from the terminal.\n\n> [!IMPORTANT]\n> This repository currently targets the Isaac Lab `main` branch with the newer RSL-RL config API.\n> Please do **not** use the Isaac Lab `v2.3.2` release tag, since it depends on `rsl-rl-lib==3.1.2` and is incompatible with the current agent configs.\n>\n> Required:\n> - Isaac Sim: `5.1.0`\n> - Isaac Lab: `main` branch\n> - rsl-rl-lib: `>=5.0.1`\n> - Python: `3.11`\n\n**[Recommended one-click install](https:\u002F\u002Fdocs.robotsfan.com\u002Fisaaclab\u002Fsource\u002Fsetup\u002Foneclick_installation.html)**:\n\n```bash\nwget -O install_isaaclab.sh https:\u002F\u002Fdocs.robotsfan.com\u002Finstall_isaaclab.sh && bash install_isaaclab.sh\n```\n\nAfter installation, please verify the installed RSL-RL version:\n\n```bash\npython -m pip show rsl-rl-lib\n```\n\nThe version should be `5.0.1` or newer. If it shows `3.1.2`, you are likely using the Isaac Lab `v2.3.2` release tag, which is not compatible with this repository.\n\n### Install LeggedManip Lab\n\n- Clone this repository separately from the Isaac Lab installation (i.e. outside the `IsaacLab` directory):\n\n```bash\ncd LeggedManip_Lab\npython -m pip install -e source\u002FLeggedManip_Lab\n```\n\n### Install Dependencies\n\n- Install the additional Python dependencies for MuJoCo deployment and utilities:\n\n```bash\npip install -r requirements.txt\n```\n\n---\n\n## Quick Start\n\n### List Available Environments\n\n```bash\npython scripts\u002Flist_envs.py\n```\n\n### Training\n\nTrain a policy with RSL-RL PPO:\n\n```bash\n# Flat terrain training\npython scripts\u002Frsl_rl\u002Ftrain.py --task GO2-PIPER-Flat --num_envs 4096 --headless --max_iterations 5000\n\n# Whole-body control training\npython scripts\u002Frsl_rl\u002Ftrain.py --task GO2-PIPER-WBC --num_envs 4096 --headless --max_iterations 5000\n```\n\n### Play \u002F Inference\n\n```bash\npython scripts\u002Frsl_rl\u002Fplay.py --task GO2-PIPER-Flat --headless\n```\n\n### Debug\n\n```bash\npython scripts\u002Fzero_agent.py --task GO2-PIPER-Flat    # Zero-action agent\npython scripts\u002Frandom_agent.py --task GO2-PIPER-Flat  # Random-action agent\n```\n\n---\n\n## MuJoCo Deployment\n\n### Run Trained Policies in MuJoCo\n\n**Step 1 — Export the policy.** The play script automatically exports `policy.pt` (TorchScript) and `policy.onnx` upon loading your trained checkpoint:\n\n```bash\npython scripts\u002Frsl_rl\u002Fplay.py --task GO2-PIPER-Flat\n```\n\nThe exported files are saved to `logs\u002Frsl_rl\u002F{experiment_name}\u002F{run_name}\u002Fexported\u002F`.\n\n**Step 2 — Copy the policy** to the corresponding robot's policy folder:\n\n```bash\ncp logs\u002Frsl_rl\u002F{experiment_name}\u002F{run_name}\u002Fexported\u002Fpolicy.pt mujoco\u002Fdeploy\u002Fpolicy\u002F{robot}\u002F\n```\n\n**Step 3 — Run in MuJoCo** using the platform deployment script:\n\n```bash\npython mujoco\u002Fdeploy\u002Fdeploy_mujoco\u002F{robot}\u002F{robot}.py {config_name}.yaml\n```\n\n**Example: Running GO2-PIPER**\n\n```bash\n# 1. Export\npython scripts\u002Frsl_rl\u002Fplay.py --task GO2-PIPER-Flat\n\n# 2. Copy\ncp logs\u002Frsl_rl\u002Fgo2_piper_flat\u002F2026-01-01_00-00-00\u002Fexported\u002Fpolicy.pt mujoco\u002Fdeploy\u002Fpolicy\u002Fgo2_piper\u002F\n\n# 3. Deploy\npython mujoco\u002Fdeploy\u002Fdeploy_mujoco\u002Fgo2_piper\u002Fgo2_piper.py config.yaml\n```\n\n### Keyboard Teleoperation\n\n| Key | Robot Movement | Key | End-Effector Translation | Key | End-Effector Rotation |\n|------|---------------|------|-------------------------|------|----------------------|\n| W | Move forward | I | Move forward | 1 | Roll clockwise |\n| S | Move backward | K | Move backward | 2 | Roll counterclockwise |\n| A | Move left | J | Move left | 3 | Pitch clockwise |\n| D | Move right | L | Move right | 4 | Pitch counterclockwise |\n| Q | Turn left | U | Move up | 5 | Yaw clockwise |\n| E | Turn right | O | Move down | 6 | Yaw counterclockwise |\n| R | Reset all commands | | | | |\n\n---\n\n## Documentation\n\n- [Environment Details, Project Structure & Key Files](docs\u002FENV_DETAILS.md)\n\n---\n\n## Troubleshooting\n\n### Pylance Missing Indexing of Extensions\n\nIn some VsCode versions, the indexing of part of the extensions is missing. In this case, add the path to your extension in `.vscode\u002Fsettings.json` under the key `\"python.analysis.extraPaths\"`.\n\n> **Note: Replace `\u003Cpath-to-isaac-lab>` with your own IsaacLab path.**\n\n```json\n{\n    \"python.languageServer\": \"Pylance\",\n    \"python.analysis.extraPaths\": [\n        \"${workspaceFolder}\u002Fsource\u002FLeggedManip_Lab\",\n        \"\u002F\u003Cpath-to-isaac-lab>\u002Fsource\u002Fisaaclab\",\n        \"\u002F\u003Cpath-to-isaac-lab>\u002Fsource\u002Fisaaclab_assets\",\n        \"\u002F\u003Cpath-to-isaac-lab>\u002Fsource\u002Fisaaclab_mimic\",\n        \"\u002F\u003Cpath-to-isaac-lab>\u002Fsource\u002Fisaaclab_rl\",\n        \"\u002F\u003Cpath-to-isaac-lab>\u002Fsource\u002Fisaaclab_tasks\"\n    ]\n}\n```\n\n---\n\n## Citation\n\nPlease cite the following if you use this code or parts of it:\n\n```bibtex\n@software{junjiezhu2026LeggedManip_Lab,\n  author = {Junjie Zhu},\n  title  = {LeggedManip_Lab: A Reinforcement Learning Framework for Legged Manipulation},\n  url    = {https:\u002F\u002Fgithub.com\u002FzzzJie-Robot\u002FLeggedManip_Lab},\n  year   = {2026}\n}\n```\n\n---\n\n## Acknowledgements\n\nThe project uses some code from the following open-source code repositories:\n\n- [fan-ziqi\u002Frobot_lab](https:\u002F\u002Fgithub.com\u002Ffan-ziqi\u002Frobot_lab)\n- [unitreerobotics\u002Funitree_mujoco](https:\u002F\u002Fgithub.com\u002Funitreerobotics\u002Funitree_mujoco)\n- [google-deepmind\u002Fmujoco](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmujoco)\n",2,"2026-06-11 04:10:26","CREATED_QUERY"]