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 python -m pip install -e source/unitree_rl_lab
-
-
Download unitree 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
insource/unitree_rl_lab/unitree_rl_lab/assets/robots/unitree.py
.UNITREE_MODEL_DIR = "</home/user/projects/unitree_usd>"
-
-
Verify that the environments are correctly installed by:
-
Listing the available tasks:
python scripts/list_envs.py
-
Running a task:
python scripts/rsl_rl/train.py --headless --task Unitree-G1-29dof-Velocity
-
Inference with a trained agent:
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
# 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 deploy/robots/g1_29dof # or other robots
mkdir build && cd build
cmake .. && make
Installing the unitree_mujoco.
- Set the
robot
at/simulate/config.yaml
to g1 - Set
domain_id
to 0 - Set
enable_elastic_hand
to 1 - Set
use_joystck
to 1.
# start simulation
cd unitree_mujoco/simulate/build
./unitree_mujoco
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: