【MicroDuck RL 05】解剖主任务 Velocity 行走:观测、奖励、域随机化与课程学习

:books: 《MicroDuck RL:训练机器鸭从仿真走到真机》 系列课程 · 第 05 集 / 共 14 集
上一集:【MicroDuck RL 04】训练:一条命令背后发生了什么 | :open_book: 课程目录 | 下一集:【MicroDuck RL 06】机器人本体与 BAM 电机模型

本系列最硬核的一集。任务定义在 src/mjlab_microduck/tasks/microduck_velocity_env_cfg.py(约 950 行,注释极详细,是最好的学习材料),建议打开源码对照读。

动作空间(14 维)

策略每 0.02 s 输出 14 个关节目标位置(弧度),交给舵机 PD 控制器。

观测空间(actor 61 维)

观测项 维度 说明
base_ang_vel 3 躯干角速度(IMU)
projected_gravity 3 重力在机体系的投影 → 姿态信息
joint_pos 14 关节位置
joint_vel 14 关节速度
actions 14 上一步动作
command (twist) 3 速度指令 [vx, vy, ω]
head_pose 4 头部位姿指令(颈/头 4 关节相对 HOME 的偏移)
body_pose 6 躯干姿态指令 [x, y, z, roll, pitch, yaw]

critic(价值网络)额外拿到特权信息(76 维):真实线速度、脚高度、触地时间、接触力等——训练时帮助估值,部署时只用 actor 的 61 维。

重要设计:所有任务共享这个 61 维观测布局(不用的指令槽补零,不许删除)。这样真机运行时可以在走路/站立/翻滚等策略之间随时热切换。

奖励设计(本任务的灵魂)

正向(引导行为):

项 权重 作用
track_linear_velocity 2.0 跟踪线速度指令(高斯型,std=√0.1)
track_angular_velocity 2.0 跟踪转向指令(高斯型,std=√0.5)
pose 1.0 腿部关节接近默认站姿/步态姿态(只含腿,头颈由指令驱动)
upright 2.0 躯干保持竖直(曾调强过:防止走路时前倾)
air_time 3.0 抬脚时间落在 0.125–0.3 s 区间 → 鼓励交替迈步而不是拖脚
head_pose_tracking 主目标 头部跟踪位姿指令(std=0.5)

负向(惩罚坏行为,注意权重符号约定,第 10 集会讲为什么):

项 权重 作用
foot_slip −0.1 支撑脚滑动(故意调弱:调强会妨碍原地转向)
action_rate_l2 −0.1 动作抖动,经课程学习逐步引入
self_collisions 负 腿撞躯干电池仓
foot_clearance / foot_swing_height 负 抬脚高度不达标
head_pose_bias 负 只惩罚"可避免的"头部直流下垂(EMA 处理,走路时头自然晃不被罚)

终止条件:fell_over(摔倒)、nan_state(状态出 NaN)、20 s 超时。

指令采样的两个细节很值得学:

  • 转向 ±1.0 rad/s;15% 的环境专门采样原地转(线速度=0)——因为独立均匀采样下原地转只占 ~2% 经验,永远学不会;
  • 头部/躯干姿态指令每 2–5 s 重采样。

域随机化(sim2real 的核心手段)

随机化 范围 时机
躯干质心偏移 ±3 mm 起步,课程升到 ±8 mm 每回合
头部组件质心 ±3 mm 起 每回合
质量/惯量 ±5% 启动
关节摩擦(BAM friction_scale) ±10% 每回合
转子惯量(armature) ±10% 每回合
脚底摩擦系数 随机 启动
编码器零位偏差 每环境固定偏置 启动
IMU 安装姿态偏差 零均值 观测层
外力推搡 ±0.3 m/s,每 3–6 s 一次 运行中
电池电压 6.5–8.2 V、负载压降、指令延迟 3–6 步 — 电机模型内部

故意关闭的:kp/kd 随机化、初始姿态倾斜——配置顶部都有 ENABLE_* 开关,读代码一眼能看到哪些开着、哪些被试错过。

课程学习(Curriculum)

训练难度随进度递增:质心扰动范围、头部指令范围、站立环境比例、action_rate 惩罚权重等分阶段放大。单位是环境步:迭代号 × 24。

读这 950 行配置的最佳顺序:先看奖励权重表建立直觉 → 再看 ENABLE_* 开关理解取舍 → 最后对照第 10 集的日志解读方法验证你的理解。下一集讲机器人本体和让一切成立的 BAM 电机模型。


:open_book: 系列课程目录:【系列课程】MicroDuck 强化学习:训练机器鸭从仿真走到真机 · 课程目录与导读