宇树 G1 人形机器人强化学习训练实战指南
人形机器人的运动控制一直是领域内的难点,而强化学习(RL)为解决这一问题提供了强有力的工具。本教程基于宇树 G1 人形机器人,从基础的强化学习环境搭建开始,逐步深入到高自由度模型的训练配置、奖励函数设计与优化,最终实现复杂动作的训练控制。
环境配置与任务注册
宇树机器人的强化学习训练主要依赖 Isaac Gym 物理仿真环境和 RSL-RL 强化学习框架。在开始训练之前,我们需要确保这两个核心组件正确安装和配置。
启动基础训练
我们可以通过简单的命令来启动 12 自由度 G1 机器人的基础训练:
python legged_gym/scripts/train.py --task=g1
这个命令背后的机制涉及到任务注册系统。在 legged_gym/envs/__init__.py 文件中,我们可以看到各种机器人任务的注册代码。这里的关键在于将具体的机器人类、配置文件和 PPO 策略注册到任务注册表中:
from legged_gym import LEGGED_GYM_ROOT_DIR, LEGGED_GYM_ENVS_DIR
from legged_gym.envs.go2.go2_config import GO2RoughCfg, GO2RoughCfgPPO
from legged_gym.envs.h1.h1_config import H1RoughCfg, H1RoughCfgPPO
from legged_gym.envs.h1_2.h1_2_config import H1_2RoughCfg, H1_2RoughCfgPPO
from legged_gym.envs.g1.g1_config import G1RoughCfg, G1RoughCfgPPO
from legged_gym.envs.g1.g1_env import G1Robot
from base.legged_robot import LeggedRobot
from legged_gym.utils.task_registry import task_registry
# 任务注册
task_registry.register("go2", LeggedRobot, GO2RoughCfg(), GO2RoughCfgPPO())
task_registry.register("h1", H1Robot, H1RoughCfg(), H1RoughCfgPPO())
task_registry.register("h1_2", H1_2Robot, H1_2RoughCfg(), H1_2RoughCfgPPO())
task_registry.register("g1", G1Robot, G1RoughCfg(), G1RoughCfgPPO())
12 自由度配置解析
标准的 G1 机器人配置文件位于 legged_gym/envs/g1/g1_config.py 中,其中定义了机器人的各项参数。让我们深入分析关键配置:
from legged_gym.envs.base.legged_robot_config import LeggedRobotCfg, LeggedRobotCfgPPO
():
(LeggedRobotCfg.init_state):
pos = [, , ]
default_joint_angles = {
: ,
: ,
: -,
: ,
: -,
: ,
: ,
: ,
: -,
: ,
: -,
: ,
:
}
(LeggedRobotCfg.env):
num_observations =
num_privileged_obs =
num_actions =


