MICRODUCK · 训练指南

从仿真运动到实体机器人

Microduck 怎样在仿真中学习行走?同一策略控制实体硬件之前,又必须验证什么?本章沿着完整流程讲解:建立机器人模型、定义强化学习问题、用 PPO 训练、评测行为、导出策略,以及缩小仿真与现实之间的差距。

本科生入门指南 · 网站动画是已记录的评测,不是实时训练

1 · MuJoCo 做什么

MuJoCo 是物理引擎。它读取刚体、关节、质量、惯量、驱动器、传感器、接触和地面模型,并在每个很小的时间步内求解运动方程与接触约束,得到下一时刻的位置和速度。网站只回放这些保存下来的状态;真正的 MuJoCo 在学生本地计算机上运行。

机器人模型远不只是可见网格。MJCF 文件还定义刚体层级、关节轴和范围、质量分布、摩擦、驱动器响应及求解设置。外观正确不等于动力学正确。

两个时间尺度

物理步长可设为 0.005 秒,而策略每四个物理步才输出一次动作。因此接触和动力学以 200 Hz 更新,策略以 50 Hz 运行。这让接触计算足够细致,也避免每个物理步都执行神经网络。

2 · 把行走写成强化学习问题

强化学习需要四个定义:观测是策略能测到的信息;动作是策略能提出的请求;奖励评价一次状态变化;终止条件决定一轮实验何时结束。

Microduck 的运动接口包含 61 个观测值:3 个陀螺仪值、3 个重力投影值、14 个关节位置偏差、14 个关节速度、14 个上一步动作和 13 个命令值。策略输出 14 个关节动作。嘴部电机不在行走策略的输出中。

策略动作不是立即施加的扭矩。运行时先缩放动作并加上默认姿态,再经过驱动器模型与安全逻辑形成关节目标。摩擦、载荷、电压和延迟共同决定实际运动。

设计奖励,就是设计任务

行走奖励通常同时考虑速度与转向跟踪、姿态、抬脚高度、步态节奏、动作平滑、脚底滑动和碰撞。权重表达取舍。过度奖励站立,策略可能拒绝迈步;只重视速度,机器人可能快速漂移甚至摔倒。奖励是学习信号,不是最终验收标准。

3 · PPO 怎样改进策略

PPO(近端策略优化)是一种同策略算法。Actor 网络根据观测产生动作分布;Critic 网络估计当前状态未来可获得的累计奖励。大量并行机器人先用当前 Actor 收集轨迹,PPO 再用这些新数据更新 Actor 和 Critic。

实际结果比 Critic 预期好多少,称为优势。正优势会提高相似动作的概率,负优势会降低它。PPO 对新旧策略概率比进行裁剪,避免一次更新改变过大。裁剪能提高稳定性,却不能修复错误奖励、缺失观测或不准确的物理模型。

若 4,096 个环境各收集 24 步,一次 rollout 得到 98,304 个 transition。它们能并行高效生成,但同一轨迹的相邻样本彼此相关,不能当成完全独立的 98,304 次行走实验。

4 · 训练循环

  1. 重置:把机器人放回有效初始姿态,并采样任务条件。
  2. 观测:读取惯性、关节、上一动作和运动命令。
  3. 决策:Actor 输出 14 个动作。
  4. 仿真:MuJoCo 推进多个物理步,计算电机、接触和刚体运动。
  5. 评分:计算各项奖励并检查终止条件。
  6. 更新:估计优势,使用若干 minibatch 优化 PPO 目标。
  7. 重复:保存 checkpoint,并定期做独立评测。

训练奖励上升,只说明策略更符合当前奖励和训练分布。它不能单独证明机器人走直、正确转向、能够停止、适应未见条件或可以安全部署。

域随机化

项目可随机化质心、质量和惯量、关节摩擦、转子惯量、IMU 朝向、编码器偏差与外部扰动。合理随机化能减少策略对单一理想模型的依赖。范围必须有物理依据:过宽会训练出始终紧张的防御步态,过窄则无法覆盖真实差异。

5 · 评测行为,而不只看奖励

评测前冻结 checkpoint。用明确的命令和初始条件,重复进行站立、前进、转向和停止实验。测量直立时间、摔倒、前进速度误差、角速度误差、航向偏差、横向漂移、抬脚以及停止后的残余速度。同时保存策略校验和、机器人模型版本、评测程序版本、随机种子和原始记录。

用于选择 checkpoint 或调整奖励的测试属于开发测试;最终确认应使用冻结选择后未参与调参的测试。网站播放器只是一次保存结果的可交互回放,不能代表多次实验的可靠性。

6 · Sim-to-Real:逐项缩小现实差距

Sim-to-Real 是把仿真中开发的策略迁移到实体机器人的过程。核心困难是“现实差距”:几何、质量、摩擦、电机响应、传感器、时序、接触和外部扰动都可能与仿真不同。

A · 先对齐接口

逐项核对 61 个输入的含义、顺序、单位、正负方向、坐标系和默认姿态,以及 14 个输出的关节顺序和动作缩放。文件能加载不代表控制正确。导出 ONNX 时要保留观测归一化与元数据,并先做有限值和形状测试。

B · 再对齐动力学与时序

在安全负载下测量电机位置响应、总线与推理延迟、编码器偏差、IMU 安装误差、关节摩擦、电池电压影响和地面接触。对同一个小命令同时记录仿真与实体轨迹,每次只修改一个模型假设。

C · 针对有界不确定性训练

只随机化已知存在现实不确定性的参数,并加入合理的观测噪声、延迟、驱动器限制、扰动与质量变化。鲁棒训练后仍须确认策略在标称模型上正常工作。

D · 分阶段进行实体测试

按照接口检查、支撑状态下的小幅动作、站立、短步、低速行走、转向、停止和长时间实验逐级推进。预先定义倾斜、通信丢失、目标突变、电流、温度和失稳的终止条件,并始终保留人工急停。

E · 用重复证据作结论

比较命令与真实测量,报告失败而不只展示漂亮视频。只有在目标条件下重复满足验收标准,才能进入更广泛测试;仿真成功本身从不等于硬件安全。