Unitree RL GYM

Unitree RL GYM 是一个基于 Unitree 机器人平台和Isaac Gym仿真的强化学习示例仓库,支持多种 Unitree 机器人型号(如 Go2、H1、H1_2 和 G1)。


通过强化学习(Reinforcement Learning)技术实现机器人的运动控制,涵盖从仿真训练到实物部署的全流程,包括:

训练(Train):在仿真环境中训练机器人策略。
播放(Play):验证训练效果。
仿真到仿真(Sim2Sim):将策略迁移到其他仿真器(如 Mujoco)。
仿真到实物(Sim2Real):将策略部署到真实机器人。

接下来将按照官方开源文档,以宇树H1为例进行强化学习训练和推理,至于为什么选H1这么老的机型着手,而不是更加流行的G1、H2人形机器人,就是因为H1关节自由度少整机结构简单,以后准备使用python研究宇树H1人形机器人全身运动学。

H1关节序号与关节限位

关节序号 关节名称 限位
8 右腿偏航电机 -0.43~+0.43 rad
0 右腿滚动电机 -0.43~+0.43 rad
1 右腿俯仰电机 -3.14~+2.53 rad
2 右腿膝电机 -0.26~+2.05 rad
11 右腿踝电机 -0.87~+0.52 rad
7 左腿偏航电机 -0.43~+0.43 rad
3 左腿滚动电机 -0.43~+0.43 rad
4 左腿俯仰电机 -3.14~+2.53 rad
5 左腿膝电机 -0.26~+2.05 rad
10 左腿踝电机 -0.87~+0.52 rad
6 躯干偏航电机 -2.35~+2.35 rad
12 右手俯仰电机 -2.87~+2.87 rad
13 右手滚动电机 -3.11~+0.34 rad
14 右手偏航电机 -4.45~+1.3 rad
15 右手肘电机 -1.25~+2.61 rad
16 左手俯仰电机 -2.87~+2.87 rad
17 左手滚动电机 -0.34~+3.11 rad
18 左手偏航电机 -1.3~+4.45 rad
19 左手肘电机 -1.25~+2.61 rad

一共才19个自由度,以往遇到的机械臂控制也要6-7个自由度,这样复杂度不会太高,毕竟业余时间有限。

环境准备

系统:

ubuntu20,感觉是目前最稳定常用的,最好不要用虚拟机

显卡:

Nidia显卡驱动我的版本: 570.144

终端输入指令查看:nvidia-smi

Mon Feb 23 13:46:02 2026

+-----------------------------------------------------------------------------------------+

| NVIDIA-SMI 570.144 Driver Version: 570.144 CUDA Version: 12.8 |

终端输入指令查看:nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2025 NVIDIA Corporation

Built on Fri_Feb_21_20:23:50_PST_2025

Cuda compilation tools, release 12.8, V12.8.93

Build cuda_12.8.r12.8/compiler.35583870_0

NVIDIA 的驱动向后兼容,实测可用,本来想按照官方文档要求降级的。

Anaconda:

conda create -n rl-h1 python=3.8


# To activate this environment, use

conda activate rl-h1


# To deactivate an active environment, use

conda deactivate

 


开始强化学习控制RL复现

所有的内容在官网都可以找到:

https://support.unitree.com/home/zh/H1_developer/RL_Control_Routine

下载 Isaac Gym Preview 4 仿真平台

https://developer.nvidia.com/isaac-gym
# current directory: isaacgym/python
pip install -e .

# current directory: isaacgym/python/examples
python 1080_balls_of_solitude.py

安装rsl_rl库

git config --global http.sslbackend gnutls
git clone https://github.com/leggedrobotics/rsl_rl
cd rsl_rl
git checkout v1.0.2
pip install -e .

若安装成功,可看到如下窗口。

模型训练

# 下载宇树官方示例代码

git clone https://github.com/unitreerobotics/unitree_rl_gym.git

# 修改 legged_gym/scripts/train.py , legged_gym/scripts/play.py 中的sys.path.append("/home/unitree/h1/legged_gym")
# 为自己的路径。
# 激活强化学习虚拟环境

#注意官方文档漏了安装这一步!!!!!!!!!!!!
cd unitree_rl_gym
pip install -e .

conda activate rl-h1

# 切换到 legged_gym/scripts 目录下,执行训练指令,开始训练。

python3  train.py --task=h1

# 修改 train.py 文件中的 args.headless 参数,可开启或关闭可视化界面。

isaac_gym 出现如下界面,则训练开始。

我的3070显卡只有8G显存,马上就满载了,训练过程默认迭代10000次,实在太漫长了

硬件资源有限,等不了改成100次。

在/unitree_rl_gym/legged_gym/envs/h1/h1_config.py文件中修改

max_iterations = 100

100次也跑了大概半小时,如果默认10000次那就是50个小时,即使文档推荐的1500次也要8小时,等不及,先跑通流程

推理

python play.py --task=h1

100次训练的模型能力还是东倒西歪的,推荐的1500次应该是官方实测性价比最高的

直接放一个官方视频

报错处理

报错:AttributeError: module 'distutils' has no attribute 'version'

运行pip show setuptools查看

Name: setuptools

Version: 75.1.0

因为 setuptools版本过高,移除了对 distutils的支持。需要降级 setuptools到兼容版本。

pip install setuptools==58.0.4

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐