MoE 机器人强化学习原理详解:如何用专家混合表示和 RoboGauge 提升四足机器人 Sim-to-Real 可靠性
> 论文:*Toward Reliable Sim-to-Real Predictability for MoE-based Robust Quadrupedal Locomotion*
> 作者:Tianyang Wu、Hanwei Guo、Yuhang Wang、Junshu Yang、Xinyang Sui、Jiayi Xie、Xingyu Chen、Zeyang Liu、Xuguang Lan
> 论文版本:arXiv:2602.00678v4,2026 年 5 月 10 日
## 摘要
四足机器人强化学习通常先在仿真环境中训练,再部署到真实机器人上。问题在于:仿真中的高奖励并不一定意味着真实机器人能够稳定行走。复杂地形、摩擦变化、执行器延迟、传感器噪声和模型参数误差都会造成严重的 Sim-to-Real gap。
这篇论文提出了一个由两部分组成的整体框架:
1. **基于 Mixture-of-Experts 的运动策略**:通过多个专家网络和门控网络,对不同地形、速度指令和运动状态进行专门化的潜表示建模;
2. **RoboGauge 预测性评估框架**:不直接把未充分验证的策略部署到真实机器人,而是通过 MuJoCo 中的并行 Sim-to-Sim 测试,评估策略在不同地形、难度、运动目标和动力学随机化条件下的可迁移性。
论文的核心思想不是简单地“增加几个专家网络”,而是解决两个相互关联的问题:
- **训练问题**:一个学生策略很难用有限容量同时表示多地形、多速度和多种运动模式;
- **评估问题**:仿真训练奖励无法可靠预测真实机器人表现,直接上硬件测试又危险、昂贵且效率低。
论文将 MoE 放在 Concurrent Teacher-Student(CTS)的学生编码器中,用于生成更有区分度的潜表示;同时用 RoboGauge 对策略进行多维度、分层次、可量化的迁移能力评估。实验在 Unitree Go2 上验证了该方法:机器人能够在复杂地形中稳定运动,在平地上达到约 $4.01\ \mathrm{m/s}$ 的峰值速度,并成功完成 $30\ \mathrm{cm}$ 障碍、约 $100\ \mathrm{N}$ 外力扰动和 $60\ \mathrm{cm}$ 落差恢复等测试。
本文将完整解释论文的研究背景、POMDP 建模、CTS、MoE 潜表示、负载均衡损失、RoboGauge 指标、训练策略、实验结果以及该方法真正解决的问题。
---
## 一、论文要解决的根本问题
### 1. 仿真奖励高,不代表真实机器人可靠
强化学习通常在 Isaac Gym 等仿真器中并行训练大量机器人。仿真环境可以高效地产生数据,但它不可能完全复现真实机器人:
- 真实电机存在响应延迟;
- 摩擦系数随地面材料变化;
- 机器人质量、质心和惯量存在误差;
- 关节位置和速度存在噪声;
- 执行器强度、PD 参数和控制延迟并不精确;
- 仿真中的接触模型与真实接触仍有差异。
因此,一个策略可能在训练环境中获得很高的 reward,但部署到真实机器人后出现:
- 速度跟踪误差明显增大;
- 关节超限或电机功率过高;
- 身体姿态震荡;
- 足端打滑;
- 遇到台阶或障碍时失稳;
- 受到外力或突然失去支撑时摔倒。
这说明训练 reward 只是优化目标,并不是可靠的真实世界性能预测器。
### 2. 多地形任务中的单一策略表示能力不足
论文考虑的不是单一平地行走,而是包含多种地形和运动目标的统一策略:
- 平地;
- 波浪地形;
- 斜坡;
- 粗糙斜坡;
- 上楼梯;
- 下楼梯;
- 障碍物。
不同地形需要不同的运动规律。例如:
- 平地高速运动关注速度和能量效率;
- 上楼梯需要更高的足端抬升和前向推进;
- 下楼梯需要更强的姿态调整和冲击吸收;
- 低摩擦地面需要减少切向力和打滑风险;
- 障碍物场景需要根据局部地形改变步态。
如果所有模式都由一个低容量学生编码器处理,它可能无法同时保留这些模式的关键特征。论文观察到,CTS 中学生模型表达能力不足,会限制最终策略的性能上限。
### 3. 仅靠外部视觉传感器并不总是可靠
相机和 LiDAR 可以提供丰富的地形信息,但在以下场景中可能失效:
- 烟雾或灰尘遮挡;
- 光照不足;
- 机器人高速运动导致图像模糊;
- 剧烈震动造成视觉估计不稳定;
- 传感器安装和标定增加系统复杂度。
论文因此采用主要基于本体感觉(proprioception)的策略输入,例如 IMU 和关节编码器信息,让机器人通过自身运动反馈和历史观测隐式推断环境与地形。
### 4. 真实机器人直接测试成本高、风险大
如果每训练一版策略都直接放到真实机器人上测试,需要消耗大量时间,并且可能损坏机器人。论文希望建立一个中间评估层:
```text
Isaac Gym 训练
↓
MuJoCo RoboGauge 预测性评估
↓
筛选更可靠的策略
↓
真实 Unitree Go2 测试
```
RoboGauge 的目标不是替代真实测试,而是提前过滤表现不可靠的策略,减少盲目部署。
---
## 二、强化学习中的四足运动控制建模
### 1. POMDP 建模
论文将四足机器人运动控制建模为无限时域部分可观测马尔可夫决策过程(POMDP):
$$
\mathcal{M}=(\mathcal{S},\mathcal{A},\mathcal{O},P,\Omega,R,\rho_0)
$$
其中:
- $\mathcal{S}\subseteq\mathbb{R}^{n}$:完整状态空间;
- $\mathcal{A}\subseteq\mathbb{R}^{m}$:动作空间;
- $\mathcal{O}\subseteq\mathbb{R}^{o}$:可观测空间;
- $P(s'|s,a)$:状态转移概率;
- $\Omega(o|s)$:状态到观测的观测模型;
- $R(s,a,s')$:奖励函数;
- $\rho_0(s_0)$:初始状态分布。
策略的目标是最大化折扣累积奖励:
$$
J(\pi)=
\mathbb{E}_{s_0\sim\rho_0,\,\tau\sim\pi}
\left[
\sum_{t=0}^{\infty}\gamma^tR(s_t,a_t,s_{t+1})
\right]
$$
其中 $\gamma\in(0,1)$ 是折扣因子,轨迹可以表示为:
$$
\tau=\{s_t,a_t,r_t,s_{t+1},\ldots\}
$$
### 2. 本体感觉观测
论文中的部署策略主要使用本体感觉观测,不依赖相机或 LiDAR。观测 $o_t$ 包含:
- IMU 测得的角速度 $\omega_t$;
- 机体坐标系中的投影重力向量 $g_t^{\mathrm{proj}}$;
- 关节位置 $q_t$;
- 关节速度 $\dot q_t$;
- 纵向速度指令 $v_x^{\mathrm{cmd}}$;
- 横向速度指令 $v_y^{\mathrm{cmd}}$;
- 偏航角速度指令 $\omega_z^{\mathrm{cmd}}$;
- 上一时刻动作 $a_{t-1}$。
训练时还可以使用特权状态 $s_t$,其中包含真实线速度、地形高度、足端接触力、关节力矩和关节加速度等信息。部署时学生策略只能使用可观测的 $o_t$。
### 3. 动作和 PD 控制
策略输出的不是直接电机力矩,而是相对于默认关节姿态的关节位置偏移:
$$
a_t\in\mathcal{A}
$$
策略输出关节目标位置后,通过 PD 控制器生成力矩:
$$
\tau_t=K_p(q_t^{\mathrm{target}}-q_t)
-K_d\dot q_t
$$
论文实验使用 12 自由度 Unitree Go2,控制频率为 $50\ \mathrm{Hz}$,物理仿真频率为 $200\ \mathrm{Hz}$。
---
## 三、PPO 在论文中的作用
论文使用强化学习训练四足运动策略,相关训练框架继承了 PPO/CTS 一类方法。需要特别说明:
> 这篇论文的主要创新不是重新设计 PPO 的 clipped objective,而是把 MoE 用于 CTS 学生编码器,并增加 RoboGauge 评估闭环。
为了理解整体流程,仍然需要先明确 PPO 的作用。
### 1. Actor 和 Critic
Actor 表示策略分布:
$$
\pi_\theta(a_t|o_t)
$$
它根据观测输出动作。
Critic 估计当前观测或状态的价值:
$$
V_\phi(s_t)
$$
优势函数用于衡量当前动作相对于平均水平的好坏:
$$
A_t=R_t-V_\phi(s_t)
$$
实际实现中通常使用 GAE:
$$
\delta_t=r_t+\gamma V_\phi(s_{t+1})-V_\phi(s_t)
$$
$$
\hat A_t=\sum_{l=0}^{\infty}(\gamma\lambda)^l\delta_{t+l}
$$
### 2. PPO 概率比和裁剪目标
旧策略采集数据,新策略进行更新。两者的概率比为:
$$
r_t(\theta)=
\frac{\pi_\theta(a_t|o_t)}
{\pi_{\theta_{\mathrm{old}}}(a_t|o_t)}
$$
PPO 使用裁剪目标限制策略变化:
$$
L^{\mathrm{CLIP}}(\theta)=
\mathbb{E}_t
\left[
\min
\left(
r_t(\theta)\hat A_t,
\mathrm{clip}(r_t(\theta),1-\epsilon,1+\epsilon)\hat A_t
\right)
\right]
$$
这样做的目的不是让策略完全不变,而是避免一次更新把动作概率推得过远,导致旧采样数据失效或训练崩溃。
### 3. MoE 与 PPO 的关系
如果 MoE 被放在 Actor 输出层,那么每个专家直接给出动作,门控结果直接作用在动作空间;这可能造成专家切换时动作突然变化,训练容易不稳定。
本文采用了不同的结构:
```text
观测序列
↓
MoE 学生编码器
↓
学生潜表示 z_s
↓
Actor 网络
↓
动作
```
也就是说,MoE 主要作用于**潜表示层**,而不是直接把多个专家动作相加。这种方式让 MoE 负责提取和组合特征,最终动作仍由统一的 Actor 网络产生。
论文消融实验显示,直接把 MoE 放在 Actor-Critic 或动作输出位置,容易造成训练发散;潜表示层的 MoE 更稳定。
---
## 四、Concurrent Teacher-Student 框架
### 1. 为什么需要 Teacher-Student
训练时可以获得很多特权信息,例如:
- 真实机体线速度;
- 精确地形高度;
- 足端接触状态;
- 真实关节力矩;
- 环境随机化参数。
这些信息有助于训练出强大的 Teacher,但真实部署时往往无法获得同样完整的状态。因此需要 Student 学习仅依赖本体感觉的策略。
基本结构是:
```text
训练阶段:特权状态 s_t → Teacher
部署阶段:本体感觉 o_t → Student
```
### 2. CTS 的特点
论文使用 Concurrent Teacher-Student(CTS)框架,而不是简单地先训练 Teacher、再冻结 Teacher 做蒸馏。
CTS 同时优化 Teacher 和 Student 的 Actor/Critic。Student 的反馈可以反过来帮助更新 Teacher,使两者共同适应任务。
这种并行优化的优点是:
- Teacher 可以使用特权信息提供更强的学习信号;
- Student 可以直接参与策略优化;
- Student 的限制能够反馈给 Teacher;
- 最终两者的表示更容易对齐。
但论文发现,Student 编码器容量有限,难以完整表达多地形、多指令的复杂运动特征,这就是引入 MoE 的原因。
---
## 五、MoE 学生编码器的核心原理
### 1. 专家网络
设有 $K$ 个专家网络:
$$
\{E_k\}_{k=1}^{K}
$$
每个专家接收一段历史观测序列:
$$
o_{t-H:t}=[o_{t-H},\ldots,o_t]
$$
论文中 MoE 输入序列长度设置为 5,因此每次编码不仅依赖当前时刻,还会利用最近的历史信息。
每个专家输出一个潜在特征:
$$
h_k=E_k(o_{t-H:t})
$$
不同专家可以逐渐学习不同的表示偏好,例如:
- 某个专家更关注速度指令;
- 某个专家更关注姿态变化;
- 某个专家更适合楼梯或障碍物;
- 某个专家更擅长高速运动;
- 某个专家更关注冲击和恢复。
这里的“专家对应关系”不是人工硬编码的,而是由门控网络和训练目标共同形成的。
### 2. 门控网络
门控网络根据输入序列生成每个专家的 logits:
$$
z=g(o_{t-H:t})
$$
再通过 Softmax 得到专家权重:
$$
\omega_k=
\mathrm{softmax}(g(o_{t-H:t}))_k
$$
因此:
$$
\omega_k\geq0,
\qquad
\sum_{k=1}^{K}\omega_k=1
$$
门控网络的作用可以理解为一个条件分配器:它根据当前状态判断哪些专家更适合处理当前运动模式。
### 3. 潜表示加权融合
论文最终的学生潜状态为各专家输出的加权和:
$$
z_s=\sum_{k=1}^{K}\omega_kE_k(o_{t-H:t})
$$
这就是本文 MoE 表示学习的核心公式。
与直接选择一个专家相比,软融合有两个优势:
1. 当当前状态处于两种运动模式之间时,可以平滑组合多个专家;
2. 当环境变化时,门控权重可以连续变化,减少策略输出突变。
与单一编码器相比,多个专家提供了更大的表示容量和更强的任务分解能力。
### 4. 完整前向过程
MoE 学生编码器可以抽象为:
```text
历史本体感觉观测 o_{t-H:t}
↓
K 个并行专家 E_1,...,E_K
↓
K 个专家特征 h_1,...,h_K
↓
门控网络 g 计算权重
↓
Softmax 得到 ω_1,...,ω_K
↓
z_s = Σ_k ω_k h_k
↓
学生 Actor / Critic
```
注意这里的 MoE 输出是潜特征 $z_s$,不是最终关节动作。这个设计是论文稳定性的关键之一。
---
## 六、为什么需要负载均衡损失
### 1. 专家塌缩问题
如果只训练任务奖励,门控网络可能发现一个投机策略:始终把权重集中给某一个最容易优化的专家。
例如:
$$
\omega(s)=[0.99,0.01,0.00,0.00]
$$
这样虽然短期内可能提高 reward,但会导致:
- 其他专家几乎得不到训练;
- 专家之间没有形成分工;
- 模型容量没有被充分利用;
- 对新地形和新指令的泛化能力下降。
### 2. 论文中的负载均衡目标
对于 batch 中第 $j$ 个样本,第 $k$ 个专家的门控权重记为 $\omega_k^{(j)}$。先计算 batch 平均权重:
$$
\bar{\omega}_k=
\frac{1}{B}\sum_{j=1}^{B}\omega_k^{(j)}
$$
理想情况下,所有专家平均获得相同权重:
$$
\bar{\omega}_k\approx\frac{1}{K}
$$
因此论文使用负载均衡损失:
$$
L_{\mathrm{load\ balance}}
=
\sum_{k=1}^{K}
\left(
\bar{\omega}_k-\frac{1}{K}
\right)^2
$$
该损失越小,说明 batch 范围内的专家使用越均匀。
### 3. 负载均衡并不等于强制专家完全相同
负载均衡约束的是**平均使用率**,不是要求每个样本对所有专家使用相同权重。
理想状态是:
- 对单个样本,门控可以偏向适合当前状态的专家;
- 对整个训练 batch 或更长时间范围,不同专家都有机会学习。
这样既保留了专家专门化能力,又避免单一专家垄断训练。
---
## 七、论文为什么选择潜表示 MoE,而不是动作 MoE
这是论文方法设计中的关键点。
### 1. 动作空间直接组合的问题
一种直观做法是让每个专家直接输出动作:
$$
a_k=\pi_k(o)
$$
然后融合动作:
$$
a=\sum_{k=1}^{K}\omega_k a_k
$$
这种方法看似简单,但动作空间是高敏感空间。门控权重稍微变化,就可能导致最终关节目标变化;多个专家同时更新时,也容易出现:
- 动作抖动;
- 步态突然切换;
- 高力矩或关节超限;
- 策略损失发散;
- 训练过程不稳定。
### 2. 潜表示组合的优点
论文让专家先提取潜特征:
$$
h_k=E_k(o_{t-H:t})
$$
再融合成:
$$
z_s=\sum_k\omega_k h_k
$$
最后由一个 Actor 输出动作:
$$
a=\pi(z_s, c_t)
$$
其中 $c_t$ 表示速度或运动指令等策略输入。
这样做的好处是:
- MoE 专家主要负责表示学习;
- Actor 负责把融合后的表示转换为连续动作;
- 潜空间通常比动作空间更平滑;
- 门控变化不必直接造成动作突变;
- 训练时专家之间的组合更容易稳定。
论文的消融实验验证了这一点:直接把 MoE 放到 Actor-Critic 或动作组合中,性能低于潜表示 MoE,并且训练更容易发散。
---
## 八、训练环境和随机化设置
### 1. 并行仿真
论文使用 Isaac Gym 并行训练:
- 并行智能体数量:8192;
- 机器人:Unitree Go2;
- 自由度:12;
- 控制频率:50 Hz;
- 仿真频率:200 Hz;
- MoE 输入历史长度:5 个观测时刻。
### 2. 多地形课程
训练包含 7 类地形:
1. Flat:平地;
2. Wave:波浪地形;
3. Slope:斜坡;
4. Rough Slope:粗糙斜坡;
5. Stairs Up:上楼梯;
6. Stairs Down:下楼梯;
7. Obstacle:障碍物。
论文中的地形范围包括:
- 斜坡角度约为 $5.7^\circ$ 到 $29.6^\circ$;
- 粗糙斜坡高度扰动约为 $5\ \mathrm{cm}$;
- 楼梯高度约为 $5\ \mathrm{cm}$ 到 $25.7\ \mathrm{cm}$;
- 楼梯踏步宽度为 $31\ \mathrm{cm}$;
- 障碍物高度约为 $5\ \mathrm{cm}$ 到 $27.5\ \mathrm{cm}$;
- 障碍物宽度约为 $1\ \mathrm{m}$ 到 $2\ \mathrm{m}$。
### 3. 动力学域随机化
训练时随机化以下参数:
| 随机化参数 | 范围 |
|---|---|
| 摩擦系数 | $[0.5,1.5]$ |
| 负载质量 | $[-1,1]\ \mathrm{kg}$ |
| 连杆质量 | 标称值的 $[0.9,1.1]$ 倍 |
| 质心偏移 | 每个方向约 $[-3,3]\ \mathrm{cm}$ |
| 恢复系数 | $[0,0.5]$ |
| 比例增益 $K_p$ | 标称值的 $[0.9,1.1]$ 倍 |
| 微分增益 $K_d$ | 标称值的 $[0.9,1.1]$ 倍 |
| 执行器强度 | 标称值的 $[0.8,1.2]$ 倍 |
| 执行器偏置 | $[-0.035,0.035]\ \mathrm{rad}$ |
| 控制延迟 | $[0,20]\ \mathrm{ms}$ |
域随机化的目的,是让策略在训练阶段就接触到多种可能的机器人和环境参数,而不是只适应一个理想仿真模型。
---
## 九、奖励函数设计
论文针对多地形模型和平地高速模型使用统一的奖励结构,并加入了针对高速运动的改进项。
主要奖励或惩罚项包括:
- 线速度跟踪;
- 角速度跟踪;
- 垂直线速度惩罚;
- 横向角速度惩罚;
- 关节加速度惩罚;
- 关节功率惩罚;
- 关节力矩惩罚;
- 基座高度误差;
- 动作变化率;
- 动作平滑性;
- 碰撞惩罚;
- 关节限位惩罚;
- 足端抬升和接触调节;
- 髋关节姿态调节;
- 高速行走时的左右髋关节对称性。
### 髋关节对称性奖励
平地高速模型额外加入了髋关节对称性奖励。论文给出的形式可以概括为:
$$
r_{\mathrm{hs}}=
\frac{|v_x^{\mathrm{cmd}}|}
{\|v^{\mathrm{cmd}}\|_2}
\left(
|q_{FL}^{\mathrm{hip}}+q_{FR}^{\mathrm{hip}}|
+
|q_{RL}^{\mathrm{hip}}+q_{RR}^{\mathrm{hip}}|
\right)
$$
该项用于抑制高速纵向运动时髋部向外张开,帮助机器人形成更稳定的窄基步态。
### 为什么要调整奖励
复杂地形中,如果速度跟踪奖励过强,策略可能为了追求速度而牺牲稳定性;如果稳定性约束过强,策略又可能变得保守、无法通过障碍。
论文因此不仅增加 MoE,还对速度跟踪精度、命令课程和命令采样方式进行了改进,使奖励信号与多地形训练过程更匹配。
---
## 十、训练稳定性改进
论文在附录中分析了原始训练框架中的几个问题,并提出了三类训练策略。
### 1. 动态速度跟踪精度调整
不同地形和难度下,对速度跟踪精度的要求不应完全相同。复杂地形上,如果强行要求机器人精确跟踪高速指令,可能造成步态不稳定。
论文首先根据指令速度 $v$ 调整中间跟踪系数 $\sigma_{\mathrm{vel}}$。设速度范围为 $[v_{\min},v_{\max}]$,地形 $i$ 对应的最大系数为 $\sigma_{\max}^{T_i}$,则分段形式可以表示为:
当 $v\in[0,v_{\min})$ 时:
$$
\sigma_{\mathrm{vel}}=\sigma
$$
当 $v\in[v_{\min},v_{\max})$ 时:
$$
\sigma_{\mathrm{vel}}
=
\frac{\sigma(v-v_{\min})
+\sigma_{\max}^{T_i}(v_{\max}-v)}
{v_{\max}-v_{\min}}
$$
当 $v\in[v_{\max},\infty)$ 时:
$$
\sigma_{\mathrm{vel}}=\sigma_{\max}^{T_i}
$$
然后再根据地形难度等级 $L$ 调整当前跟踪系数:
$$
\sigma_{\mathrm{now}}
=
\sigma+
\min\left(\exp\left(\frac{L}{10}\right)-1,1\right)
\left(\sigma_{\mathrm{vel}}-\sigma\right)
$$
直观上,难度越高,允许速度跟踪目标适度放宽,从而优先保证机器人不摔倒。
### 2. 速度命令课程
论文将速度指令分成三个训练阶段:
| 阶段 | 训练步数 | $v_x$ | $v_y$ | $\omega_z$ |
|---|---:|---:|---:|---:|
| Initial | $[0,2\times10^4]$ | $\pm0.5$ | $\pm0.5$ | $\pm1.0$ |
| Intermediate | $[2\times10^4,5\times10^4]$ | $\pm1.0$ | $\pm1.0$ | $\pm1.5$ |
| Advanced | $[5\times10^4,\infty)$ | $\pm2.0$ | $\pm1.0$ | $\pm2.0$ |
训练早期先学习稳定步态,随后逐渐提高速度范围,避免一开始就用高难度命令破坏策略学习。
### 3. 极端命令和动态命令采样
论文发现,均匀采样命令会导致边界速度出现概率过低,策略很少真正学习最大速度、急停和转向等困难情况。
因此论文加入:
- 约 $10\%$ 的静止命令;
- 约 $20\%$ 的最大速度组合命令;
- 当线速度为零时,增加最大角速度命令的采样概率;
- 根据当前 episode 已经走过的距离动态选择下一条指令。
如果剩余时间不足以达到要求的水平位移,就提高下一条命令的速度下界。论文中使用类似下式的动态阈值:
$$
v^*=\mathrm{clip}
\left(
\frac{5-\left\|\sum_{i=1}^{n_r}v_i^{\mathrm{cmd}}\right\|_2T_r}
{T_{\mathrm{ep}}-n_rT_r},
0,
\min(|v_{\min}|,|v_{\max}|)
\right)
$$
它的目的,是保证机器人在一个 episode 内积累足够的水平位移,能够触发地形课程升级,而不是因为大量静止或低速指令一直停留在低难度。
论文报告称,动态命令采样可以加速收敛,并使峰值 reward 相比不使用该策略的版本提高约 $11\%$。
---
## 十一、RoboGauge:为什么需要新的评估框架
### 1. 训练环境评估的缺陷
传统做法通常直接用 Isaac Gym 中的平均 reward、地形等级或成功率评估模型。但这些指标有几个问题:
- 只覆盖训练使用的环境;
- 不能充分测试不同摩擦和延迟;
- 可能被奖励函数的特定设计误导;
- 不能直接反映真实硬件的功率、稳定性和打滑风险;
- 某些训练曲线很高的策略,真实部署可能反而失败。
因此论文把 RoboGauge 设计成一个独立的预测性评估层,使用 MuJoCo 重新测试策略,而不是直接读取训练器的 reward。
### 2. RoboGauge 的三层结构
RoboGauge 包含三个层次:
```text
Base Pipeline
↓
Multi / Level Pipeline
↓
Stress Pipeline
```
#### Base Pipeline
在一个具体环境中执行策略,设置:
- 指定地形;
- 指定地形难度;
- 指定运动命令;
- 指定动力学随机化;
- 计算各项指标。
#### Multi / Level Pipeline
并行遍历:
- 多种地形;
- 多个难度等级;
- 多个随机种子;
- 多组域随机化参数。
它还使用二分搜索寻找每个地形下能够通过的最大难度等级。
#### Stress Pipeline
将不同地形、随机化、运动目标和指标聚合成最终鲁棒性分数,用来筛选策略和指导后续训练。
---
## 十二、RoboGauge 的八类评估指标
论文最终使用 $K=8$ 个指标,而不是只看 reward。
### 1. 线速度误差
$$
e_{v}=\|v^{\mathrm{cmd}}-v^{\mathrm{meas}}\|_2
$$
用于衡量机器人对线速度指令的跟踪能力。
### 2. 角速度误差
$$
e_{\omega}=\|\omega^{\mathrm{cmd}}-\omega^{\mathrm{meas}}\|_2
$$
用于衡量偏航等角速度指令的跟踪能力。
### 3. DOF 功率
用于衡量电机功率消耗。功率过高可能导致:
- 电机发热;
- 电池消耗增加;
- 执行器热保护;
- 机械冲击增大。
### 4. DOF 限位
统计关节角度超过软限位的情况,用于衡量动作是否存在潜在机械风险。
### 5. 姿态稳定性
论文使用重力向量在机体横向方向上的投影,衡量身体是否发生较大侧倾。
### 6. 力矩平滑性
评估连续时刻电机力矩的变化,避免高频抖动:
$$
e_{\tau}=\|\tau_t-\tau_{t-1}\|_2
$$
### 7. ZMP 稳定裕度
衡量零力矩点距离支撑区域中心的程度。
### 8. 库仑摩擦裕度
衡量足端切向力距离摩擦锥边界的余量,用于评估打滑风险。
所有原始指标会归一化为“越大越好”的分数。论文用:
$$
f(x)=1-x
$$
将误差或风险转为得分。归一化后每个指标 $m_k$ 位于 $[0,1]$。
---
## 十三、RoboGauge 的组合评分方法
### 1. 评估维度
论文定义:
- $N=7$:地形配置数量;
- $M=9$:域随机化配置数量;
- $L\in\{1,\ldots,10\}$:地形难度等级;
- $K=8$:评估指标数量。
7 个地形配置包含基本地形以及上坡/下坡方向的区分。评估运动目标包括:
- 最大速度执行;
- 对角速度组合跟踪;
- 目标位置速度控制;
- 急停和突变指令等压力测试。
### 2. 加权几何平均
对于地形 $T_i$、域随机化 $d_j$ 和难度等级 $L$,设归一化指标为 $m_1,\ldots,m_K$,质量分数为:
$$
Q_{i,j}(L)=
\left(
\prod_{k=1}^{K}m_k^{w_k}
\right)^{
\frac{1}{\sum_{k=1}^{K}w_k}
}
$$
几何平均比算术平均更严格:如果某一个关键指标很差,整体分数会明显下降。这避免了“速度很快但关节超限”或“跟踪很好但姿态极不稳定”的策略得到虚高评价。
附录中对任务完成类指标使用 $w_k=2$,其他指标使用 $w_k=1$。
### 3. Worst-Case Mean
对于每个运动目标,RoboGauge 不只看所有结果的平均值,而是取表现较差的一半样本计算 Worst-Case Mean。
这样可以强调困难动作,例如:
- 障碍通过;
- 急停;
- 步态切换;
- 低摩擦转向;
- 斜坡上下行。
### 4. 最大可通过难度
对于每个地形和随机化组合,RoboGauge 用二分搜索寻找最大可通过等级 $L_{i,j}^{*}$。
通过标准是目标完成成功率至少达到 $80\%$:
$$
\mathrm{SuccessRate}(L_{i,j}^{*})\geq0.8
$$
### 5. 地形质量分数
地形质量分数由最大难度和该难度下的执行质量共同决定:
$$
S_{i,j}
=\alpha(L_{i,j}^{*}-1)
+\beta Q_{i,j}(L_{i,j}^{*})
$$
论文附录设置:
$$
\alpha=0.09,
\qquad
\beta=0.19
$$
因为 $\beta>\alpha$,一个较低难度但执行质量很高的策略,可以与一个较高难度但质量较差的策略形成平滑比较。
### 6. 多随机化和多地形聚合
对同一地形的 $M$ 组随机化取平均:
$$
\bar S_i=\frac{1}{M}\sum_{j=1}^{M}S_{i,j}
$$
再对 $N$ 个地形取平均,得到最终 RoboGauge 分数:
$$
\bar S=\frac{1}{N}\sum_{i=1}^{N}\bar S_i
$$
因此最终分数不是单一环境中的 reward,而是多个地形、难度、随机化和安全指标的综合结果。
---
## 十四、ZMP 与摩擦裕度的物理原理
RoboGauge 不只是神经网络指标,还加入了动力学稳定性指标。
### 1. 总力和总力矩
对于机器人所有刚体,设第 $i$ 个刚体的质量为 $m_i$,相对参考点的位置为 $p_i$,线加速度为 $\ddot p_i$,角速度为 $\omega_i$,角加速度为 $\dot\omega_i$,惯量张量为 $I_i$,则总力为:
$$
F_{\mathrm{total}}
=\sum_{i=1}^{N}m_i(g-\ddot p_i)
$$
总力矩为:
$$
M_{\mathrm{total}}
=\sum_{i=1}^{N}
\left[
p_i\times m_i(g-\ddot p_i)
-
\left(I_i\dot\omega_i
+\omega_i\times(I_i\omega_i)\right)
\right]
$$
### 2. ZMP 坐标
ZMP 满足:
$$
M=r_{\mathrm{zmp}}\times F_{\mathrm{total}}
$$
在水平面上令 $z_{\mathrm{zmp}}=0$,可以得到:
$$
x_{\mathrm{zmp}}=-\frac{M_y}{F_z}
$$
$$
y_{\mathrm{zmp}}=\frac{M_x}{F_z}
$$
设机器人默认姿态下支撑跨度的对角线为 $D_{\mathrm{norm}}$,则归一化 ZMP 裕度为:
$$
m_{\mathrm{zmp}}
=\max\left(
0,
1-\frac{\|(x_{\mathrm{zmp}},y_{\mathrm{zmp}})\|_2}
{D_{\mathrm{norm}}}
\right)
$$
ZMP 越靠近支撑区域中心,裕度越大,说明姿态越安全。
### 3. 库仑摩擦裕度
设第 $i$ 个接触点的切向力为 $f_i^{\mathrm{tangent}}$,法向力为 $f_i^{\mathrm{normal}}$,地面摩擦系数为 $\mu$。摩擦锥要求:
$$
\|f_i^{\mathrm{tangent}}\|_2
\leq
\mu f_i^{\mathrm{normal}}
$$
论文定义法向力加权的摩擦裕度:
$$
m_{\mathrm{friction}}
=\sum_{i=1}^{N_c}w_i
\max\left(
0,
1-\frac{\|f_i^{\mathrm{tangent}}\|_2}
{\mu f_i^{\mathrm{normal}}}
\right)
$$
其中:
$$
w_i=\frac{f_i^{\mathrm{normal}}}
{\sum_{j=1}^{N_c}f_j^{\mathrm{normal}}}
$$
法向载荷越大的足端,对整体摩擦稳定性的贡献越大。
---
## 十五、实验结果:RoboGauge 是否比训练 reward 更可靠
### 1. 与基线方法比较
论文比较了四种方法:
- Ours:本文提出的 CTS + MoE + RoboGauge 框架;
- CTS:Concurrent Teacher-Student;
- HIM:Hybrid Internal Model;
- DreamWaQ:基于隐式地形想象的鲁棒四足运动方法。
RoboGauge 结果如下:
| 方法 | 总分 | Tracking | Safety | Quality | Level |
|---|---:|---:|---:|---:|---:|
| Ours | 0.6713 | 0.6669 | 0.7857 | 0.7392 | 7.85 |
| CTS | 0.5786 | 0.5755 | 0.7066 | 0.6624 | 6.83 |
| HIM | 0.5379 | 0.5453 | 0.6476 | 0.6050 | 6.19 |
| DreamWaQ | 0.5054 | 0.5105 | 0.6149 | 0.5730 | 5.74 |
本文方法在综合得分、跟踪、安全、质量和最大地形等级上均优于对比方法。
### 2. 训练环境和 RoboGauge 的误差
论文将真实机器人运动捕捉结果作为 ground truth,对比 MuJoCo RoboGauge 和 Isaac Gym 训练环境的误差。
平均误差如下:
| 环境 | Tracking Error | Safety Error | Quality Error |
|---|---:|---:|---:|
| MuJoCo,Ours | 0.0558 | 0.0117 | 0.0120 |
| Isaac Gym,Training | 0.0883 | 0.0333 | 0.0380 |
这说明 RoboGauge 的指标与真实机器人测量结果更接近,而训练环境本身的指标误差更大。因此,RoboGauge 可以作为训练环境和真实部署之间更可靠的预测性评估层。
### 3. 消融实验
论文比较了以下变体:
- **MoE-NG**:从 MoE 输入中去掉运动命令信息,只使用观测;
- **AC-MoE**:把 MoE 放到 Actor-Critic 网络,而不是学生编码器;
- **MCP**:使用乘法组合方式组合 Actor 动作;
- **MoE**:论文完整方法。
| 方法 | 总分 | Tracking | Safety | Quality | Level |
|---|---:|---:|---:|---:|---:|
| MoE | 0.6713 | 0.6669 | 0.7857 | 0.7392 | 7.85 |
| AC-MoE | 0.6509 | 0.6442 | 0.7644 | 0.7149 | 7.52 |
| MoE-NG | 0.6519 | 0.6447 | 0.7639 | 0.7186 | 7.56 |
| MCP | 0.6399 | 0.6355 | 0.7542 | 0.7058 | 7.41 |
实验说明:
1. 去掉运动命令后,专家更难区分当前任务;
2. 直接把 MoE 放到 Actor-Critic,性能下降;
3. 直接组合动作的 MCP 得分最低;
4. 潜表示层 MoE 能更好地形成地形和命令相关的表示。
论文还观察到 AC-MoE 和 MCP 训练中容易出现 loss divergence。原因可能是:门控网络和多个动作专家同时变化,直接作用于动作空间,会产生剧烈控制信号和不稳定步态。
### 4. 真实机器人生存率
Unitree Go2 真实测试包括:
- $80$ 到 $100\ \mathrm{N}$ 的横向冲击或拉力;
- $15.5\ \mathrm{cm}$ 台阶;
- $30\ \mathrm{cm}$ 障碍物。
| 方法 | 横向冲击 | 15.5 cm 台阶 | 30 cm 障碍 |
|---|---:|---:|---:|
| Ours | 18/20 | 85/85 | 17/20 |
| Built-in RL | 5/20 | 85/85 | 0/20 |
| CTS | 11/20 | 18/85 | 0/20 |
| HIM | 8/20 | 24/85 | 0/20 |
| DreamWaQ | 7/20 | 12/85 | 0/20 |
本文方法是唯一成功通过 $30\ \mathrm{cm}$ 障碍的策略,并且在外力扰动测试中表现最好。
### 5. 速度跟踪和高速运动
真实机器人实验结果包括:
- 在楼梯上平均速度约为 $1.31\ \mathrm{m/s}$,速度跟踪误差约为 $0.15\ \mathrm{m/s}$;
- 在 $30^\circ$ 木质斜坡上平均速度约为 $1.53\ \mathrm{m/s}$;
- 在平地上达到 $4.01\ \mathrm{m/s}$ 峰值速度;
- 达到峰值速度约需 $2.16\ \mathrm{s}$;
- 高速测试中的速度误差约为 $0.20\ \mathrm{m/s}$;
- 机器人自主形成窄基步态,减少高速运动中的横向质心摆动。
### 6. 扰动恢复和环境泛化
论文还展示了:
- 连续 $25$ 到 $40\ \mathrm{N}$ 横向拉力下保持稳定;
- 突然 $85$ 到 $100\ \mathrm{N}$ 外力冲击下完成恢复;
- 从约 $60\ \mathrm{cm}$ 高度落差中恢复;
- 在沙地、冰面、斜坡和不平整户外地形中完成测试;
- 户外测试取得 $100\%$ 成功率,且没有意外终止。
这些结果说明 MoE 不只是提高了仿真 reward,而是帮助策略在多种真实运动模式下形成更可靠的潜表示。
---
## 十六、论文真正解决了什么问题
### 问题一:学生策略容量不足
CTS 的 Student 只能看到本体感觉观测,信息比 Teacher 少,单一编码器容易成为性能瓶颈。
**解决方式:** 用多个专家分解地形和命令相关表示,再由门控网络自适应融合。
### 问题二:不同地形之间存在表示冲突
平地高速、楼梯、斜坡和障碍需要不同的运动特征。一个共享表示可能无法同时保留所有细节。
**解决方式:** 专家网络形成不同子空间,门控网络根据历史观测选择或组合专家。
### 问题三:缺少外部视觉时难以判断环境
只依赖本体感觉时,机器人无法直接看到地形几何结构。
**解决方式:** 利用历史角速度、重力投影、关节状态和速度指令,通过 MoE 学习隐式的地形和运动模式表示。
### 问题四:训练 reward 无法预测真实部署
训练环境中的 reward 可能掩盖关节超限、功率过高、姿态不稳定和打滑风险。
**解决方式:** RoboGauge 引入跟踪、安全、质量、ZMP 和摩擦等多维指标,而不是只看 reward。
### 问题五:直接上真实机器人验证代价太高
策略选择错误可能导致机器人摔倒或损坏执行器。
**解决方式:** 使用 MuJoCo RoboGauge 做并行 Sim-to-Sim 预测性筛选,再选择更可靠的策略进行硬件测试。
### 问题六:动作级专家组合容易不稳定
直接融合多个专家动作,门控和专家同步变化时可能引起动作突变。
**解决方式:** 将 MoE 放在潜表示层,先融合抽象特征,再通过统一 Actor 输出动作。
---
## 十七、本文方法的完整闭环
将训练、表示学习、评估和部署串起来,可以得到:
```text
本体感觉观测序列 o_{t-H:t}
↓
MoE 学生编码器
↓
门控网络计算 ω_k
↓
专家特征加权融合 z_s
↓
CTS 学生 Actor / Critic
↓
Isaac Gym 多地形训练
↓
MuJoCo RoboGauge 评估
↓
选择高预测性的策略
↓
Unitree Go2 真实部署
↓
真实指标反馈训练和策略选择
```
这不是一个单独的网络模块,而是一个闭环框架:
- MoE 提升策略表示能力;
- PPO/CTS 提供强化学习优化;
- 域随机化提高对动力学变化的鲁棒性;
- RoboGauge 判断仿真性能是否可能迁移到真实世界;
- 真实测试结果验证预测评估是否可靠。
---
## 十八、与普通 MoE-PPO 实现的区别
需要把本文论文和一般意义上的 MoE-PPO 区分开来。
### 普通 MoE-PPO
普通实现通常是:
$$
a=\sum_{k=1}^{K}\omega_k\pi_k(o)
$$
或者让 MoE 直接替代 Actor/Critic 的 MLP:
```text
观测 → 多个 Actor 专家 → 门控加权 → 动作
```
### 本论文的 MoE
本文主要采用:
$$
z_s=\sum_{k=1}^{K}
\omega_k E_k(o_{t-H:t})
$$
再由统一的学生 Actor 生成动作:
```text
观测历史 → MoE 表示编码器 → 潜表示 → Actor → 动作
```
因此本文的核心贡献是:
> 用 MoE 提升学生策略的潜表示能力,而不是简单地对多个动作策略求加权平均。
这也是为什么论文中的消融实验表明潜表示 MoE 比 AC-MoE 和动作乘法组合更稳定。
---
## 十九、局限性与需要谨慎理解的地方
### 1. MoE 不等于故障检测器
这篇论文主要解决多地形和复杂运动模式下的鲁棒 locomotion,并没有建立一个明确的执行器故障分类器。
MoE 的门控权重可以反映当前输入更接近哪种运动模式,但它不能直接等价为:
- 哪条腿发生故障;
- 哪个电机已经损坏;
- 哪个传感器失效;
- 故障发生概率是多少。
如果要做 Fault Detection,需要额外的故障状态估计器、残差模型或分类头。
### 2. 论文更关注预测性评估,而非严格安全认证
RoboGauge 能够提高策略筛选可靠性,但它仍然是仿真评估。它不能完全替代真实机器人测试,也不能保证所有未见故障和未见环境都安全。
### 3. 负载均衡不保证专家一定形成可解释分工
负载均衡只约束平均使用率。某个专家最终对应平地、楼梯还是障碍,通常需要通过潜空间可视化、门控分析或额外监督进行解释。
### 4. 本体感觉策略仍然存在部分可观测性
只使用 IMU 和关节信息时,策略需要通过历史序列推断环境状态。对完全未知或观测不可辨识的地形,MoE 仍然可能无法正确区分。
---
## 二十、总结
这篇论文的核心不是单纯增加一个 MoE 层,也不是简单地把 PPO 改成 MoE-PPO,而是构建了一个面向真实四足机器人部署的完整方法:
1. 用 CTS 解决训练时特权状态和部署时本体感觉之间的信息差异;
2. 用 MoE 学生编码器提升多地形、多指令运动表示能力;
3. 用门控网络根据历史观测动态组合专家特征;
4. 用负载均衡损失避免单一专家垄断;
5. 用域随机化模拟真实动力学变化;
6. 用课程学习和动态命令采样提高训练稳定性;
7. 用 RoboGauge 从跟踪、安全、质量和物理稳定性等角度评估策略;
8. 用 Sim-to-Sim 结果筛选更可能成功迁移到真实机器人的策略。
本文方法的关键公式可以概括为:
$$
z_s=\sum_{k=1}^{K}\omega_kE_k(o_{t-H:t})
$$
其中专家负责提取不同运动模式的特征,门控网络负责决定不同专家的贡献。
负载均衡损失为:
$$
L_{\mathrm{load\ balance}}
=
\sum_{k=1}^{K}
\left(
\frac{1}{B}\sum_{j=1}^{B}\omega_k^{(j)}
-\frac{1}{K}
\right)^2
$$
RoboGauge 的总体分数则由不同地形、随机化和指标共同决定:
$$
\bar S
=
\frac{1}{N}\sum_{i=1}^{N}
\left[
\frac{1}{M}\sum_{j=1}^{M}
\left(
\alpha(L_{i,j}^{*}-1)
+\beta Q_{i,j}(L_{i,j}^{*})
\right)
\right]
$$
最终,这篇论文解决的是一个比“如何训练高 reward 策略”更实际的问题:
> 如何让一个仅依赖本体感觉的四足机器人策略,在多种复杂地形和高速运动条件下形成足够强的表示能力,并且在真正部署之前,能够通过可靠的仿真评估判断它是否值得上真实机器人。
这也是 MoE 与 RoboGauge 结合的价值:MoE 提升“策略会不会做”,RoboGauge 评估“策略能不能可靠地迁移到真实世界”。
---
## 参考文献
本文主要依据:
```text
Tianyang Wu, Hanwei Guo, Yuhang Wang, Junshu Yang, Xinyang Sui,
Jiayi Xie, Xingyu Chen, Zeyang Liu, Xuguang Lan.
Toward Reliable Sim-to-Real Predictability for MoE-based Robust Quadrupedal Locomotion.
arXiv:2602.00678v4, 2026.
```
论文页面:
```text
https://arxiv.org/abs/2602.00678
```
项目页面:
```text
https://robogauge.github.io/complete/
```
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)