This is a repository for reinforcement learning implementation for Unitree robots, based on IsaacLab.
Python
1,413
76 commits
updated May 25, 2026
This project provides a set of reinforcement learning environments for Unitree robots, built on top of IsaacLab.
Currently supports Unitree Go2, H1 and G1-29dof robots.
Install Isaac Lab by following the installation guide.
Install the Unitree RL IsaacLab standalone environments.
Clone or copy this repository separately from the Isaac Lab installation (i.e. outside the IsaacLab directory):
git clone https://github.com/unitreerobotics/unitree_rl_lab.git
Use a python interpreter that has Isaac Lab installed, install the library in editable mode using:
conda activate env_isaaclab
./unitree_rl_lab.sh -i
# restart your shell to activate the environment changes.
Download unitree robot description files
Method 1: Using USD Files
Download unitree usd files from unitree_model, keeping folder structure
git clone https://huggingface.co/datasets/unitreerobotics/unitree_model
Config UNITREE_MODEL_DIR in source/unitree_rl_lab/unitree_rl_lab/assets/robots/unitree.py.
UNITREE_MODEL_DIR = "</home/user/projects/unitree_usd>"
Method 2: Using URDF Files [Recommended] Only for Isaacsim >= 5.0
git clone https://github.com/unitreerobotics/unitree_ros.git
UNITREE_ROS_DIR in source/unitree_rl_lab/unitree_rl_lab/assets/robots/unitree.py.
UNITREE_ROS_DIR = "</home/user/projects/unitree_ros/unitree_ros>"
Verify that the environments are correctly installed by:
Listing the available tasks:
./unitree_rl_lab.sh -l # This is a faster version than isaaclab
Running a task:
./unitree_rl_lab.sh -t --task Unitree-G1-29dof-Velocity # support for autocomplete task-name
# same as
python scripts/rsl_rl/train.py --headless --task Unitree-G1-29dof-Velocity
Inference with a trained agent:
./unitree_rl_lab.sh -p --task Unitree-G1-29dof-Velocity # support for autocomplete task-name
# same as
python scripts/rsl_rl/play.py --task Unitree-G1-29dof-Velocity
After the model training is completed, we need to perform sim2sim on the trained strategy in Mujoco to test the performance of the model. Then deploy sim2real.
# Install dependencies
sudo apt install -y libyaml-cpp-dev libboost-all-dev libeigen3-dev libspdlog-dev libfmt-dev
# Install unitree_sdk2
git clone [email protected]:unitreerobotics/unitree_sdk2.git
cd unitree_sdk2
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=OFF # Install on the /usr/local directory
sudo make install
# Compile the robot_controller
cd unitree_rl_lab/deploy/robots/g1_29dof # or other robots
mkdir build && cd build
cmake .. && make
Installing the unitree_mujoco.
robot at /simulate/config.yaml to g1domain_id to 0enable_elastic_hand to 1use_joystck to 1.# start simulation
cd unitree_mujoco/simulate/build
./unitree_mujoco
# ./unitree_mujoco -i 0 -n eth0 -r g1 -s scene_29dof.xml # alternative
cd unitree_rl_lab/deploy/robots/g1_29dof/build
./g1_ctrl
# 1. press [L2 + Up] to set the robot to stand up
# 2. Click the mujoco window, and then press 8 to make the robot feet touch the ground.
# 3. Press [R1 + X] to run the policy.
# 4. Click the mujoco window, and then press 9 to disable the elastic band.
You can use this program to control the robot directly, but make sure the on-borad control program has been closed.
./g1_ctrl --network eth0 # eth0 is the network interface name.
This repository is built upon the support and contributions of the following open-source projects. Special thanks to:
121 followers · starred Nov 2025
1,759 followers · starred Apr 2026
7 followers · starred Jan 2026
230 followers · starred Sep 2025
This is a repository for reinforcement learning implementation for Unitree robots, based on IsaacLab.
Python
1,413
76 commits
updated May 25, 2026
This project provides a set of reinforcement learning environments for Unitree robots, built on top of IsaacLab.
Currently supports Unitree Go2, H1 and G1-29dof robots.
Install Isaac Lab by following the installation guide.
Install the Unitree RL IsaacLab standalone environments.
Clone or copy this repository separately from the Isaac Lab installation (i.e. outside the IsaacLab directory):
git clone https://github.com/unitreerobotics/unitree_rl_lab.git
Use a python interpreter that has Isaac Lab installed, install the library in editable mode using:
conda activate env_isaaclab
./unitree_rl_lab.sh -i
# restart your shell to activate the environment changes.
Download unitree robot description files
Method 1: Using USD Files
Download unitree usd files from unitree_model, keeping folder structure
git clone https://huggingface.co/datasets/unitreerobotics/unitree_model
Config UNITREE_MODEL_DIR in source/unitree_rl_lab/unitree_rl_lab/assets/robots/unitree.py.
UNITREE_MODEL_DIR = "</home/user/projects/unitree_usd>"
Method 2: Using URDF Files [Recommended] Only for Isaacsim >= 5.0
git clone https://github.com/unitreerobotics/unitree_ros.git
UNITREE_ROS_DIR in source/unitree_rl_lab/unitree_rl_lab/assets/robots/unitree.py.
UNITREE_ROS_DIR = "</home/user/projects/unitree_ros/unitree_ros>"
Verify that the environments are correctly installed by:
Listing the available tasks:
./unitree_rl_lab.sh -l # This is a faster version than isaaclab
Running a task:
./unitree_rl_lab.sh -t --task Unitree-G1-29dof-Velocity # support for autocomplete task-name
# same as
python scripts/rsl_rl/train.py --headless --task Unitree-G1-29dof-Velocity
Inference with a trained agent:
./unitree_rl_lab.sh -p --task Unitree-G1-29dof-Velocity # support for autocomplete task-name
# same as
python scripts/rsl_rl/play.py --task Unitree-G1-29dof-Velocity
After the model training is completed, we need to perform sim2sim on the trained strategy in Mujoco to test the performance of the model. Then deploy sim2real.
# Install dependencies
sudo apt install -y libyaml-cpp-dev libboost-all-dev libeigen3-dev libspdlog-dev libfmt-dev
# Install unitree_sdk2
git clone [email protected]:unitreerobotics/unitree_sdk2.git
cd unitree_sdk2
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=OFF # Install on the /usr/local directory
sudo make install
# Compile the robot_controller
cd unitree_rl_lab/deploy/robots/g1_29dof # or other robots
mkdir build && cd build
cmake .. && make
Installing the unitree_mujoco.
robot at /simulate/config.yaml to g1domain_id to 0enable_elastic_hand to 1use_joystck to 1.# start simulation
cd unitree_mujoco/simulate/build
./unitree_mujoco
# ./unitree_mujoco -i 0 -n eth0 -r g1 -s scene_29dof.xml # alternative
cd unitree_rl_lab/deploy/robots/g1_29dof/build
./g1_ctrl
# 1. press [L2 + Up] to set the robot to stand up
# 2. Click the mujoco window, and then press 8 to make the robot feet touch the ground.
# 3. Press [R1 + X] to run the policy.
# 4. Click the mujoco window, and then press 9 to disable the elastic band.
You can use this program to control the robot directly, but make sure the on-borad control program has been closed.
./g1_ctrl --network eth0 # eth0 is the network interface name.
This repository is built upon the support and contributions of the following open-source projects. Special thanks to:
121 followers · starred Nov 2025
1,759 followers · starred Apr 2026
7 followers · starred Jan 2026
230 followers · starred Sep 2025