前言
人形机器人的运动控制一直是领域内的挑战,强化学习为解决这一问题提供了强有力的工具。本教程基于宇树 G1 人形机器人,从基础的强化学习环境搭建开始,逐步深入到高自由度模型的训练配置、奖励函数设计与优化,最终实现复杂动作的训练控制。
1. 强化学习训练环境配置
1.1 基础环境搭建
宇树机器人的强化学习训练基于 Isaac Gym 物理仿真环境和 RSL-RL 强化学习框架。首先需要确保这两个核心组件正确安装和配置。
在开始训练之前,我们可以通过简单的命令来启动 12 自由度 G1 机器人的基础训练:
python legged_gym/scripts/train.py --task=g1
这个命令背后的机制涉及到任务注册系统。在 legged_gym/envs/__init__.py 文件中,我们可以看到各种机器人任务的注册代码:
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("g1", G1Robot, G1RoughCfg(), G1RoughCfgPPO())
1.2 G1 机器人 12 自由度配置解析
标准的 G1 机器人配置文件位于 legged_gym/envs/g1/g1_config.py 中,其中定义了机器人的各项参数。让我们深入分析关键配置:
from legged_gym.envs.base.legged_robot_config import LeggedRobotCfg, LeggedRobotCfgPPO
class G1RoughCfg(LeggedRobotCfg):
(LeggedRobotCfg.init_state):
pos = [, , ]
default_joint_angles = {
: ,
: ,
: -,
: ,
: -,
: ,
: ,
: ,
: -,
: ,
: -,
: ,
:
}
(LeggedRobotCfg.env):
num_observations =
num_privileged_obs =
num_actions =


