This repository provides a direct workflow for training a legged robot using IsaacLab. It provides high transparency and low refactoring difficulty of the direct environment, and uses isaaclab components to simplify the workflow.
It has all the necessary conditions for sim-to-real and has been tested on real unitree g1 and h1 robots, video available. Deploy Code: https://github.com/Hellod035/LeggedLabDeploy
Maintainer: Wandong Sun Contact: 24b908020@stu.hit.edu.cn
Key Features:
Easy to Reorganize
Provides a direct workflow, allowing for fine-grained definition of environment logic.Isolation
Work outside the core Isaac Lab repository, ensuring that the development efforts remain self-contained.Long-term support
This repository will be updated with the updates of isaac sim and isaac lab, and will be supported for a long time.
LeggedLab is built against the latest version of Isaacsim/IsaacLab. It is recommended to follow the latest updates of legged lab.
-
Install Isaac Lab by following the installation guide. We recommend using the conda installation as it simplifies calling Python scripts from the terminal.
-
Clone this repository separately from the Isaac Lab installation (i.e. outside the
IsaacLab
directory):
# Option 1: HTTPS
git clone https://github.com/Hellod035/LeggedLab
# Option 2: SSH
git clone git@github.com:Hellod035/LeggedLab.git
- Using a python interpreter that has Isaac Lab installed, install the library
cd LeggedLab
pip install -e .
- Verify that the extension is correctly installed by running the following command:
python legged_lab/scripts/train.py --task=g1_flat --headless --logger=tensorboard --num_envs=64
Assets must be converted into USD format to be compatible with Legged Lab/IsaacLab. Convert Tutorial.
Legged Lab supports multi-GPU and multi-node reinforcement learning using rsl_rl, the usage is exactly the same as IsaacLab. Detailed information
In some VsCode versions, the indexing of part of the extensions is missing. In this case, add the path to your extension in .vscode/settings.json
under the key "python.analysis.extraPaths"
.
{
"python.analysis.extraPaths": [
"${workspaceFolder}/legged_lab",
"<path-to-IsaacLab>/source/isaaclab_tasks",
"<path-to-IsaacLab>/source/isaaclab_mimic",
"<path-to-IsaacLab>/source/extensions",
"<path-to-IsaacLab>/source/isaaclab_assets",
"<path-to-IsaacLab>/source/isaaclab_rl",
"<path-to-IsaacLab>/source/isaaclab",
]
}
This project repository builds upon the shoulders of giants.
- IsaacLab The various reusable practical components in IsaacLab greatly simplify the complexity of LeggedLab.
- legged_gym We borrowed the code organization and environment definition logic of legged_gym and simplified it as much as possible.
- Protomotions The motivation for building this repository comes from protomotions. For the first time, we realized that we could create our own environment using only IsaacLab components without inheriting 'DirectRLEnv' or 'ManagerBasedRLEnv'.
If you use Legged Lab in your research, you can cite it as follows:
@software{LeggedLab,
author = {Wandong, Sun},
license = {BSD-3-Clause},
title = {Legged Lab: Direct IsaacLab Workflow for Legged Robots},
url = {https://github.com/Hellod035/LeggedLab},
version = {1.0.0},
year = {2025}
}