Unitree GO1 平地行走#

Unitree GO1 是一个四足机器人平台,本示例展示了如何训练 GO1 在平坦地形上实现稳定的步态行走。

任务描述#

GO1 四足机器人具有 12 个自由度(每条腿 3 个关节),需要通过深度强化学习学习协调的步态控制。该环境使用 MotrixSim 物理引擎进行仿真,提供高保真的动力学模拟。智能体通过控制各关节的目标位置(通过 PD 控制器转换为力矩)来实现速度跟踪和姿态稳定。


动作空间(Action Space)#

项目

详细信息

类型

Box(-1.0, 1.0, (12,), float32)

维度

12

动作对应 12 个关节的位置控制指令(相对于默认站立姿态的偏移量),包括:

序号

动作含义(关节位置变化)

对应肢体

0-2

髋关节、大腿关节、小腿关节

前左腿

3-5

髋关节、大腿关节、小腿关节

后左腿

6-8

髋关节、大腿关节、小腿关节

前右腿

9-11

髋关节、大腿关节、小腿关节

后右腿


观察空间#

项目

详细信息

类型

Box(-inf, inf, (48,), float32)

维度

48

GO1 环境的观测空间由以下部分组成(按顺序):

部分

内容说明

维度

备注

noisy_linvel

局部坐标系线速度

3

带噪声的线速度

noisy_gyro

陀螺仪数据

3

带噪声的角速度

local_gravity

局部重力方向

3

重力向量投影

noisy_joint_angle

关节角度

12

相对于默认值的偏差

noisy_joint_vel

关节速度

12

带噪声的关节速度

last_actions

上一帧动作

12

历史动作信息

command

速度命令

3

[vx, vy, vyaw]


奖励函数设计#

GO1 的奖励函数是一个复杂的复合函数,包含多个组件:

@dataclass
class RewardConfig:
    scales: dict[str, float] = field(
        default_factory=lambda: {
            "termination": -0.0,
            "tracking_lin_vel": 1.0,
            "tracking_ang_vel": 0.5,
            "lin_vel_z": -2.0,
            "ang_vel_xy": -0.05,
            "orientation": -0.0,
            "torques": -0.00001,
            "dof_vel": -0.0,
            "dof_acc": -2.5e-7,
            "base_height": -0.0,
            "feet_air_time": 1.0,
            "collision": -1.0 * 0,
            "action_rate": -0.001,
            "stand_still": -0.0,
            "hip_pos": -1,
            "calf_pos": -0.3 * 0,
        }
    )

    tracking_sigma: float = 0.25
    max_foot_height: float = 0.1


总奖励 = 加权组合以上所有项


初始状态#

  • 机器人位置:固定在初始位置

  • 关节角度:设置为默认站立姿态

  • 关节角度噪声:每个关节在 [-0.125, 0.125] 弧度范围内添加随机噪声

  • 速度初始化:所有线速度和角速度初始化为零

Episode 终止条件#

  • 身体接触地面:机器人躯干与地面发生非预期接触

  • 速度异常:线速度平方和超过阈值(1e8)


使用指南#

1. 环境预览#

uv run scripts/view.py --env go1-flat-terrain-walk

2. 开始训练#

uv run scripts/train.py --env go1-flat-terrain-walk

3. 查看训练进度#

uv run tensorboard --logdir runs/go1-flat-terrain-walk

4. 测试训练结果#

uv run scripts/play.py --env go1-flat-terrain-walk

预期训练结果#

  1. 稳定的四足步态(trot 步态或其他协调步态)

  2. 良好的速度跟踪能力

  3. 能够跟踪不同的速度命令(前进、转向)

  4. 姿态稳定,无明显侧翻