RA-L 2024 | CTS: Concurrent Teacher-Student Reinforcement Learning for Legged Locomotion【文献解读】
标题:CTS: Concurrent Teacher-Student Reinforcement Learning for Legged Locomotion
作者:Hongxi Wang*, Haoxiang Luo*, Wei Zhang, Hua Chen(*共同一作)
单位:南方科技大学 / 浙江大学-伊利诺伊大学厄巴纳香槟校区联合学院 / LimX Dynamics
发表:IEEE Robotics and Automation Letters, 2024
项目主页:clearlab-sustech.github.io/concurrentTS
一、关键科学问题与技术挑战
1.1 腿式机器人运动控制的核心难题
腿式机器人在非结构化地形上的运动控制是机器人领域最具挑战性的问题之一,其困难主要源于以下方面:
- 复杂的接触交互:机器人与不平坦地形之间的接触动力学高度非线性且具有混合特性(连续动力学与离散接触事件耦合),使得精确建模极为困难。
- 部分可观测性:在真实部署中,机器人仅能获取本体感知信息(IMU、关节编码器),无法直接获取地形高度、摩擦系数等特权信息,导致状态推断不完整。
- 仿真到现实的鸿沟(Sim-to-Real Gap):仿真环境与真实世界之间存在惯性参数、摩擦、延迟等差异,直接将仿真中训练的策略部署到真实机器人上往往表现不佳。
1.2 传统教师-学生范式的固有缺陷
当前主流的教师-学生(Teacher-Student, T-S)学习范式采用两阶段训练:
- 第一阶段:利用强化学习(RL)训练拥有特权信息(地形细节、接触力、精确惯性参数等)的教师策略;
- 第二阶段:通过监督学习训练仅依赖本体感知的学生策略,使其模仿教师的潜在表示和/或动作输出。
该范式存在以下关键问题:
- 信息鸿沟导致模仿不完美:教师与学生之间的观测差异使得学生无法完美模仿教师,纯粹模仿教师的目标可能并非最优。
- 学生缺乏RL目标引导:学生策略仅以模仿教师为训练目标,缺少最大化期望折扣回报的强化学习目标,导致在面对扰动时鲁棒性不足——学生更倾向于"形似"教师而非"神似",缺乏对平衡维持的主动关注。
- 两阶段训练效率低:串行训练流程冗长,且教师训练完成后不再更新,无法利用学生反馈进行迭代优化。
1.3 已有单阶段方法的局限
Regularized Online Adaptation(ROA)方法虽将教师和学生编码器训练整合为单阶段,但在使用本体感知编码器输出的迭代中,策略网络本身不被更新,仅本体感知编码器进行监督学习。这意味着策略网络从未在基于本体感知编码器输入的条件下接受强化学习训练,限制了学生策略的性能上限。
二、研究方法与算法原理
2.1 问题建模:部分可观测马尔可夫决策过程(POMDP)
腿式运动问题被建模为无限期部分可观测马尔可夫决策过程,由元组 ⟨ S , A , O , T , Ω , R ⟩ \langle \mathcal{S}, \mathcal{A}, \mathcal{O}, \mathcal{T}, \Omega, \mathcal{R} \rangle ⟨S,A,O,T,Ω,R⟩ 定义:
| 组成要素 | 符号 | 描述 |
|---|---|---|
| 状态空间 | S ⊂ R n \mathcal{S} \subset \mathbb{R}^n S⊂Rn | 包含机器人及周围环境的所有动态信息的完整状态 |
| 动作空间 | A ⊂ R m \mathcal{A} \subset \mathbb{R}^m A⊂Rm | 每个驱动关节相对于标称位置的角度偏差 |
| 观测空间 | O ⊂ R o \mathcal{O} \subset \mathbb{R}^o O⊂Ro | 来自IMU和关节编码器的本体感知观测 |
| 状态转移函数 | T ( s ′ , s , a ) = p ( s ′ ∣ s , a ) \mathcal{T}(s', s, a) = p(s' | s, a) T(s′,s,a)=p(s′∣s,a) | 定义状态随时间和动作的变化 |
| 观测函数 | Ω ( o , s , a ) = p ( o ∣ s , a ) \Omega(o, s, a) = p(o | s, a) Ω(o,s,a)=p(o∣s,a) | 定义给定状态和动作下的观测概率 |
| 奖励函数 | R ( s , a , s ′ ) \mathcal{R}(s, a, s') R(s,a,s′) | 反馈指定动作的效果 |
目标:寻找最优策略 π ∗ \pi^* π∗ 以最大化期望折扣回报:
J ( π ) = E π ∑ t = 0 ∞ γ t R ( s , a , s ′ ) J(\pi) = \mathbb{E}_\pi \sum_{t=0}^{\infty} \gamma^t \mathcal{R}(s, a, s') J(π)=Eπt=0∑∞γtR(s,a,s′)
其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1] 为折扣因子。
状态空间详细定义
- 本体感知观测 o t ∈ R n o_t \in \mathbb{R}^n ot∈Rn:包含角速度、基座坐标系下的重力向量、关节位置与速度、速度指令、前一时刻动作。
- 速度指令:由期望线速度 v x c m d , v y c m d v_x^{cmd}, v_y^{cmd} vxcmd,vycmd 和期望角速度 ω z c m d \omega_z^{cmd} ωzcmd 构成。
- 完整状态 s t s_t st:包含本体感知观测 o t o_t ot、基座线速度 v t ∈ R 3 v_t \in \mathbb{R}^3 vt∈R3、地形高度采样 i t ∈ R m i_t \in \mathbb{R}^m it∈Rm 及其他特权信息(足部接触力、关节力矩、关节加速度等)。
动作空间
每个驱动关节的动作 a t ∈ R k a_t \in \mathbb{R}^k at∈Rk 表示关节相对于标称位置的角度偏差,关节PD控制器参考值为:
q t r e f = q n o m i n a l + K ⋅ a t q_t^{ref} = q_{nominal} + K \cdot a_t qtref=qnominal+K⋅at
2.2 并行教师-学生架构(CTS)
CTS架构的核心思想是将教师策略和学生策略在强化学习范式下并行训练,而非传统的先训练教师再蒸馏学生的两阶段流程。
架构组成
| 模块 | 符号 | 输入 | 隐藏层 | 输出 |
|---|---|---|---|---|
| 特权编码器 | E θ t E_\theta^t Eθt | 完整状态 s t t s_t^t stt | [512, 256] | 潜在表示 z t t ∈ R 32 z_t^t \in \mathbb{R}^{32} ztt∈R32 |
| 本体感知编码器 | E θ s E_\theta^s Eθs | 观测序列 o t − H : t s o_{t-H:t}^s ot−H:ts | [512, 256] | 潜在表示 z t s ∈ R 32 z_t^s \in \mathbb{R}^{32} zts∈R32 |
| 策略网络 | π θ \pi_\theta πθ | 本体感知观测 o t o_t ot + 潜在表示 z t z_t zt | [512, 256, 128] | 动作 a t a_t at |
| 价值网络 | V ϕ V_\phi Vϕ | 完整状态 s t s_t st + 潜在表示 z t z_t zt | [512, 256, 128] | 状态价值 V ^ t \hat{V}_t V^t |
关键设计要点
- 共享策略网络与价值网络:教师组和学生组的代理共享同一个策略网络 π θ \pi_\theta πθ 和价值网络 V ϕ V_\phi Vϕ,但通过不同的编码器生成潜在表示。
- 潜在表示归一化:潜在表示 z t z_t zt 被映射到单位超球面上(L2归一化),确保表示空间的规范性。
- 教师组:拥有完整状态 s t s_t st 的访问权限,通过特权编码器 E θ t E_\theta^t Eθt 将状态编码为潜在表示 z t t z_t^t ztt。
- 学生组:仅拥有本体感知观测,通过本体感知编码器 E θ s E_\theta^s Eθs 将观测序列 o t − H : t s = [ o t s , ⋯ , o t − H s ] T o_{t-H:t}^s = [o_t^s, \cdots, o_{t-H}^s]^T ot−H:ts=[ots,⋯,ot−Hs]T 编码为潜在表示 z t s z_t^s zts。
- 所有模块均采用MLP + ELU激活函数。
训练机制的双轨设计
- 特权编码器 + 策略网络:通过策略梯度(PPO)训练,最大化期望折扣回报。
- 本体感知编码器:通过监督学习训练,最小化与特权编码器输出之间的重构损失。
这种设计使得学生策略不仅仅是在模仿教师,同时还在强化学习目标的引导下主动探索更优策略。
2.3 训练流程与算法
PPO-Clip目标函数
由于代理被分为教师组和学生组,各自的PPO-Clip目标函数分别定义为:
教师组目标函数:
L p p o , t ( θ , θ t ) = 1 ∣ D t ∣ ∑ τ ∈ D t ∑ t = 0 T min ( r t t A ^ t t , clip ( r t t , 1 − ϵ , 1 + ϵ ) A ^ t t ) L_{ppo,t}(\theta, \theta^t) = \frac{1}{|\mathcal{D}^t|} \sum_{\tau \in \mathcal{D}^t} \sum_{t=0}^{T} \min\left(r_t^t \hat{A}_t^t, \text{clip}(r_t^t, 1-\epsilon, 1+\epsilon)\hat{A}_t^t\right) Lppo,t(θ,θt)=∣Dt∣1τ∈Dt∑t=0∑Tmin(rttA^tt,clip(rtt,1−ϵ,1+ϵ)A^tt)
学生组目标函数:
L p p o , s ( θ ) = 1 ∣ D s ∣ ∑ τ ∈ D s ∑ t = 0 T min ( r t s A ^ t s , clip ( r t s , 1 − ϵ , 1 + ϵ ) A ^ t s ) L_{ppo,s}(\theta) = \frac{1}{|\mathcal{D}^s|} \sum_{\tau \in \mathcal{D}^s} \sum_{t=0}^{T} \min\left(r_t^s \hat{A}_t^s, \text{clip}(r_t^s, 1-\epsilon, 1+\epsilon)\hat{A}_t^s\right) Lppo,s(θ)=∣Ds∣1τ∈Ds∑t=0∑Tmin(rtsA^ts,clip(rts,1−ϵ,1+ϵ)A^ts)
其中 D t \mathcal{D}^t Dt 和 D s \mathcal{D}^s Ds 分别为教师组和学生组的轨迹集合, r t t r_t^t rtt 和 r t s r_t^s rts 为重要性采样比率:
r t t ( θ , θ t ) = π θ ( a t t ∣ o t t , E θ t ( s t t ) ) π θ o l d ( a t t ∣ o t t , E θ o l d t ( s t t ) ) r_t^t(\theta, \theta^t) = \frac{\pi_\theta(a_t^t | o_t^t, E_\theta^t(s_t^t))}{\pi_{\theta_{old}}(a_t^t | o_t^t, E_{\theta_{old}}^t(s_t^t))} rtt(θ,θt)=πθold(att∣ott,Eθoldt(stt))πθ(att∣ott,Eθt(stt))
r t s ( θ ) = π θ ( a t s ∣ o t s , E θ s ( o t − H : t s ) ) π θ o l d ( a t s ∣ o t s , E θ s ( o t − H : t s ) ) r_t^s(\theta) = \frac{\pi_\theta(a_t^s | o_t^s, E_\theta^s(o_{t-H:t}^s))}{\pi_{\theta_{old}}(a_t^s | o_t^s, E_\theta^s(o_{t-H:t}^s))} rts(θ)=πθold(ats∣ots,Eθs(ot−H:ts))πθ(ats∣ots,Eθs(ot−H:ts))
价值函数损失
价值函数 V ϕ V_\phi Vϕ 通过回归训练,使用来自两组的轨迹,由GAE(Generalized Advantage Estimation)估计回报 R ^ t \hat{R}_t R^t:
L v a l u e ( ϕ ) = 1 ∣ D ∣ ∑ τ ∈ D ∑ t = 0 T ( V ϕ ( s t , z t ) − R ^ t ) 2 L_{value}(\phi) = \frac{1}{|\mathcal{D}|} \sum_{\tau \in \mathcal{D}} \sum_{t=0}^{T} \left(V_\phi(s_t, z_t) - \hat{R}_t\right)^2 Lvalue(ϕ)=∣D∣1τ∈D∑t=0∑T(Vϕ(st,zt)−R^t)2
重构损失
为使本体感知编码器学习特权编码器的表示能力,引入重构损失:
L r e c ( θ s ) = 1 ∣ D s ∣ ∑ τ ∈ D s ∑ t = 0 T ∥ E θ s ( o t − H : t s ) − E θ t ( s t t ) ∥ 2 2 L_{rec}(\theta^s) = \frac{1}{|\mathcal{D}^s|} \sum_{\tau \in \mathcal{D}^s} \sum_{t=0}^{T} \left\| E_\theta^s(o_{t-H:t}^s) - E_\theta^t(s_t^t) \right\|_2^2 Lrec(θs)=∣Ds∣1τ∈Ds∑t=0∑T Eθs(ot−H:ts)−Eθt(stt) 22
完整训练算法
Algorithm 1: Concurrent Teacher-Student Training
1: 初始化环境和网络
2: for k = 0, 1, ... do
3: 使用最新策略收集教师组轨迹 D^t 和学生组轨迹 D^s
4: 使用GAE计算 R̂_t 和 Â_t
5: for epoch i = 0, 1, ... do
6: θ ← θ + α_ppo ∇_θ (L_{ppo,t}^i(θ) + L_{ppo,s}^i(θ)) // 更新策略网络和特权编码器
7: ϕ ← ϕ - α_ppo ∇_ϕ L_{value}^i(ϕ) // 更新价值网络
8: end for
9: for epoch i = 0, 1, ... do
10: θ^s ← θ^s - α_ts ∇_{θ^s} L_{rec}^i(θ^s) // 更新本体感知编码器
11: end for
12: end for
关键洞察:与两阶段教师-学生范式中学生策略旨在模仿已训练好的教师策略不同,CTS充分利用教师策略和学生策略之间的交互。这种在线迭代训练方案看似使学生追踪一个移动目标,但由于变化是渐进的,最终能引导学生策略获得更优的性能。
2.4 奖励设计
统一奖励结构
论文设计了一套适用于不同尺寸四足机器人的统一奖励结构,对于点足双足机器人则复用所有奖励项并添加少量必要项。
| 奖励项 | 公式 | 权重 | 适用范围 |
|---|---|---|---|
| 线速度跟踪 | exp ( − 4 ∣ v x y c m d − v x y ∣ 2 2 ) \exp(-4|v_{xy}^{cmd} - v_{xy}|_2^2) exp(−4∣vxycmd−vxy∣22) | 1.0 | 四足+双足 |
| 角速度跟踪 | exp ( − 4 ( ω z c m d − ω z ) 2 ) \exp(-4(\omega_z^{cmd} - \omega_z)^2) exp(−4(ωzcmd−ωz)2) | 0.5 | 四足+双足 |
| Z方向线速度 | v z 2 v_z^2 vz2 | -2.0 / -0.5 | 四足/双足 |
| XY方向角速度 | ∣ ω x y ∣ 2 2 |\omega_{xy}|_2^2 ∣ωxy∣22 | -0.05 | 四足+双足 |
| 关节加速度 | q ¨ 2 \ddot{q}^2 q¨2 | -2.5×10⁻⁷ | 四足+双足 |
| 关节功率 | ∣ τ ∣ ∣ q ˙ ∣ T |\tau||\dot{q}|^T ∣τ∣∣q˙∣T | -2×10⁻⁵ | 四足+双足 |
| 关节力矩 | ∣ τ ∣ 2 2 |\tau|_2^2 ∣τ∣22 | -0.0001 | 四足+双足 |
| 基座高度 | ( h d e s − h ) 2 (h_{des} - h)^2 (hdes−h)2 | -1 | 四足+双足 |
| 动作变化率 | ∣ a t − a t − 1 ∣ 2 2 |a_t - a_{t-1}|_2^2 ∣at−at−1∣22 | -0.01 | 四足+双足 |
| 动作平滑度 | ∣ a t − 2 a t − 1 − a t − 2 ∣ 2 2 |a_t - 2a_{t-1} - a_{t-2}|_2^2 ∣at−2at−1−at−2∣22 | -0.01 | 四足+双足 |
| 碰撞 | n c o l l i s i o n n_{collision} ncollision | -1 | 四足+双足 |
| 关节限位 | n l i m i t a t i o n n_{limitation} nlimitation | -2 | 四足+双足 |
| 足端调节 | r f r r_{fr} rfr | -0.05 | 四足+双足 |
| 基座朝向(XY) | ∣ g x y ∣ 2 |g_{xy}|^2 ∣gxy∣2 | -5.0 | 双足 |
| 双足间距 | r f d r_{fd} rfd | -100 | 双足 |
| 足端接触力 | r f f r_{ff} rff | -2.0 | 双足 |
| 足端速度 | r f v r_{fv} rfv | -2.0 | 双足 |
足端调节奖励 r f r r_{fr} rfr
论文通过对比最优控制和强化学习下腿式机器人的运动特征,发现RL方法的摆动腿末端执行器倾向于沿最短轨迹运动、贴近地面,导致动作不够优雅且不适合非结构化地形。而最优控制方法通常规划平滑曲线使足端垂直起降。为此提出足端调节奖励:
r f r = ∑ f e e t ∥ v f o o t x y ∥ 2 2 exp ( − p f o o t z 0.025 h d e s ) r_{fr} = \sum_{feet} \|v_{foot}^{xy}\|_2^2 \exp\left(-\frac{p_{foot}^z}{0.025 h_{des}}\right) rfr=feet∑∥vfootxy∥22exp(−0.025hdespfootz)
其中 p f o o t z p_{foot}^z pfootz 为足端高度, v f o o t v_{foot} vfoot 为足端速度, h d e s h_{des} hdes 为期望基座高度。
双足专用奖励
-
双足间距惩罚 r f d r_{fd} rfd:防止双足过于靠近中线导致腿部碰撞:
r f d = max ( 0 , 0.1 − ∥ p x y l e f t − p x y r i g h t ∥ 2 ) r_{fd} = \max\left(0, 0.1 - \|p_{xy}^{left} - p_{xy}^{right}\|_2\right) rfd=max(0,0.1−∥pxyleft−pxyright∥2) -
足端接触力惩罚 r f f r_{ff} rff:惩罚支撑相中的足端接触力,鼓励学习指定的接触模式:
r f f = ∑ f e e t ( 1 − C i d e s ( ϕ i ) ) ( 1 − exp ( − 0.04 f f o o t , i 2 ) ) r_{ff} = \sum_{feet} (1 - C_i^{des}(\phi_i))\left(1 - \exp(-0.04 f_{foot,i}^2)\right) rff=feet∑(1−Cides(ϕi))(1−exp(−0.04ffoot,i2)) -
足端速度惩罚 r f v r_{fv} rfv:惩罚摆动相中的足端速度:
r f v = ∑ f e e t C i d e s ( ϕ i ) ( 1 − exp ( − 4 v f o o t , i x y 2 ) ) r_{fv} = \sum_{feet} C_i^{des}(\phi_i)\left(1 - \exp(-4 v_{foot,i}^{xy\,2})\right) rfv=feet∑Cides(ϕi)(1−exp(−4vfoot,ixy2))
其中 C i d e s ( ϕ i ) C_i^{des}(\phi_i) Cides(ϕi) 根据步态相位 ϕ i \phi_i ϕi 计算期望足端接触状态。
2.5 环境设置与课程学习
仿真环境
- 使用Isaac Gym仿真器,训练8192个并行代理
- 教师-学生代理比例3:1(教师6144个,学生2048个),保持教师在技能学习中的领导地位
- 每个回合最长20秒(1000个时间步,控制频率50Hz)
- 观测序列长度 H = 5 H=5 H=5
- 约需3000次迭代使策略获得处理楼梯等挑战性地形的能力(RTX 4090约105分钟)
地形课程
选择四种地形类型进行训练,每种地形分为0-9共10个难度等级:
| 地形类型 | 参数范围 |
|---|---|
| 斜坡 | 坡度 0° ~ 26.57° |
| 粗糙斜坡 | 坡度 0° ~ 26.57°,附加均匀噪声 5cm ~ 17cm |
| 楼梯 | 台阶高度 5cm ~ 23cm |
| 离散障碍物 | 障碍物高度 5cm ~ 24cm |
训练初期所有机器人分配最低难度,当成功穿越当前区域后提升至更高难度地形。
速度指令课程
- 初始速度指令从 [ − 1 , 1 ] [-1, 1] [−1,1] m/s均匀随机采样
- 当机器人穿越最高难度地形且速度跟踪良好时,逐步增大采样范围以培养更敏捷的运动技能
域随机化
为弥补仿真与现实的差距,对以下参数进行随机化:
| 随机化项 | 范围 |
|---|---|
| 连杆质量 | [0.8, 1.2] × 标称值 |
| 负载质量 | [-1, 3] kg |
| 基座质心 | [-7.5, 7.5] × [-5, 5] × [-5, 5] cm |
| 摩擦系数 | [0.2, 1.7] |
| 恢复系数 | [0.25, 0.75] |
| 关节Kp | [0.8, 1.2] × 标称值 |
| 关节Kd | [0.8, 1.2] × 标称值 |
| 电机强度 | [0.8, 1.2] × 标称值 |
| 动作延迟 | [0, 20] ms |
三、实验设计与结果分析
3.1 仿真对比实验
对比方法
| 方法 | 描述 |
|---|---|
| Oracle | 策略接收编码后的特权状态作为输入,通过PPO训练 |
| Baseline | 带本体感知编码器的策略,通过PPO训练 |
| EstimatorNet | 策略与显式估计网络(估计体速度和足端高度)并行训练 |
| Two-stage T-S | 两阶段教师-学生方法,学生通过重构损失和动作模仿损失训练 |
| ROA | 单阶段正则化在线适应方法 |
所有方法在相同的非对称Actor-Critic框架和训练配置下进行公平比较,使用相同网络规模和随机种子,评估采用第5000次迭代的策略。
地形等级学习曲线
- CTS教师策略的性能与Oracle几乎一致,说明与学生并行训练不会损害教师性能。
- CTS学生策略略逊于教师,但仍优于两阶段教师-学生方法中通过模仿教师训练的学生策略。
- Baseline与EstimatorNet最终性能相近,但EstimatorNet因有显式估计信号的引导,初始学习速度更快。
速度跟踪误差对比
在四种地形上均匀分布8192个机器人,线速度指令从 [ − 1.0 , 1.0 ] [-1.0, 1.0] [−1.0,1.0] m/s均匀采样,跟踪误差度量 ∥ v x y c m d − v x y ∥ 2 \|v_{xy}^{cmd} - v_{xy}\|_2 ∥vxycmd−vxy∥2:
| 地形类型 | CTS学生 vs 两阶段T-S改善幅度 |
|---|---|
| 斜坡 | 17.85% |
| 粗糙斜坡 | 19.12% |
| 楼梯 | 7.9% |
| 离散障碍物 | 21.85% |
楼梯地形上Baseline和EstimatorNet的速度跟踪性能相对较差,这是因为楼梯是维持良好速度跟踪最具挑战性的地形,更需要特权信息中的地形信息辅助决策。
推力恢复鲁棒性对比
对机器人基座施加随机方向推力(引起约2.5 m/s的速度变化),记录各地形上的存活率:
| 地形类型 | CTS学生 vs 两阶段T-S存活率提升 |
|---|---|
| 斜坡 | +5.04% |
| 粗糙斜坡 | +6.47% |
| 楼梯 | +4.76% |
| 离散障碍物 | +4.57% |
两阶段T-S学生策略对抗随机推力的鲁棒性最差,原因在于其训练目标仅为模仿教师,缺少最大化期望折扣回报的RL目标。由于信息鸿沟,学生无法完美模仿教师,最终导致对维持平衡的重视不足,更容易被推倒。
3.2 真实世界实验
实验平台
| 机器人 | 类型 | PD参数 |
|---|---|---|
| Unitree A1 | 四足 | Kp=20.0, Kd=0.5 |
| Unitree Aliengo | 四足 | Kp=40.0, Kd=1.0 |
| LimX Dynamics P1 | 点足双足 | Kp=40.0, Kd=2.5 |
四足机器人实验亮点
-
移动平台交互:Aliengo机器人与移动平台进行复杂交互——当前腿碰到障碍物时本能地收回并抬起踏上平台;当平台开始滑动时,后腿迅速调整以维持平衡;下平台时左后腿根据整体姿态动态调整落脚点,形成S形摆动轨迹。这些行为并非显式训练所得,体现了策略的泛化能力。
-
楼梯与缺失台阶适应:四足机器人在遇到楼梯时迅速抬起被绊到的腿踏上台阶;到达顶部边缘前腿踏入空空间时,立即感知地形变化并伸出前腿寻找支撑,保持质心在安全区域内;前腿接触后后腿跟随,安全返回地面。
双足机器人实验亮点
P1点足双足机器人在平面上维持稳定前进行走;当右腿在摆动相碰到台阶边缘时(髋关节角速度瞬时下降),摆动轨迹被迫改变导致足端提前着地;此时策略已通过本体感知检测到障碍物存在,随后左腿直接抬起越过障碍;左腿着地后策略感知到楼梯大致高度,使后续摆动轨迹具有足够高度以顺利上楼。
四、主要创新点与学术贡献
创新点一:并行教师-学生强化学习架构
核心创新:首次提出在强化学习范式下并行训练教师和学生策略的架构,打破了传统两阶段训练的范式壁垒。
- 传统方法先训练教师再蒸馏学生,学生仅以模仿教师为目标,缺乏RL目标引导。
- CTS使教师和学生同时与环境交互、同时收集数据、同时更新策略网络,学生策略在RL目标的引导下不仅能模仿教师,更能主动探索更优策略。
- 这种在线迭代训练虽使学生追踪"移动目标",但渐进的变化最终导向更优的学生策略性能。
创新点二:改进的PPO训练方案
核心创新:设计了基于修改版PPO的训练方案,有效利用教师和学生两组代理与环境交互收集的数据样本。
- 教师组和学生组的PPO目标函数分别定义,但共享策略网络和价值网络参数。
- 策略网络更新同时利用两组轨迹的梯度信息( L p p o , t + L p p o , s L_{ppo,t} + L_{ppo,s} Lppo,t+Lppo,s),提高了数据利用效率。
- 本体感知编码器通过重构损失与特权编码器对齐,确保学生能从本体感知中推断出接近特权信息的潜在表示。
创新点三:足端调节奖励设计
核心创新:通过对比最优控制与强化学习的运动特征差异,提出足端调节奖励 r f r r_{fr} rfr,引导RL策略产生更接近最优控制的优雅足端轨迹——使足端垂直起降而非沿最短路径贴近地面运动,提升非结构化地形上的通过性。
创新点四:广泛的硬件验证与跨平台泛化
核心创新:在多种硬件平台上验证了方法的通用性和优越性:
- 不同尺寸的四足机器人(A1、Aliengo)
- 更具挑战性的点足双足机器人(P1),具有更高的欠驱动度
- 室内外多种复杂地形(楼梯、斜坡、移动平台、缺失台阶等)
- 强外部扰动下的鲁棒性验证
量化结果表明CTS方法相比两阶段教师-学生方法,速度跟踪误差降低最高达20%,推力恢复存活率提升4-6%。
五、方法对比总结
| 特性 | 两阶段T-S | ROA | CTS(本文) |
|---|---|---|---|
| 训练阶段 | 两阶段(先教师后学生) | 单阶段 | 单阶段 |
| 学生训练目标 | 仅模仿教师 | 仅编码器监督学习 | RL目标 + 重构损失 |
| 策略网络是否基于本体感知编码器进行RL训练 | 否 | 否 | 是 |
| 教师-学生交互 | 无(串行) | 有限(切换式) | 充分(并行) |
| 速度跟踪误差改善 | 基准 | — | 最高20% |
| 推力恢复鲁棒性 | 基准 | — | 提升4-6% |
六、局限性与未来工作
局限性
- 依赖物理交互进行适应:当前方法需要机器人腿部与障碍物发生物理接触后才能进行适应,无法在接触前进行预判和规划。
- 纯本体感知的固有局限:仅依赖本体感知信息,无法获取远距离地形信息,限制了前瞻性步态规划能力。
未来方向
- 引入外部感知输入:将视觉等外部感知信息整合进运动系统,在物理接触前即可进行步态规划和障碍物规避。
- 结合显式状态估计:借鉴EstimatorNet的显式速度估计机制,进一步提升鲁棒性。
- 扩展至更复杂的运动任务:如跑酷、跳跃等高动态运动。
七、核心算法伪代码
# CTS: Concurrent Teacher-Student Training
Initialize environment, networks (E_t, E_s, pi, V)
for k = 0, 1, 2, ...:
# 数据收集
D_t = collect_trajectories(teacher_group, E_t, pi) # 教师组:特权编码器 + 策略网络
D_s = collect_trajectories(student_group, E_s, pi) # 学生组:本体感知编码器 + 策略网络
# 优势估计
R_hat, A_hat = GAE(D_t + D_s, V)
# PPO更新(策略网络 + 特权编码器 + 价值网络)
for epoch i:
theta += alpha_ppo * grad(L_ppo_t(theta) + L_ppo_s(theta)) # 两组PPO损失联合更新
phi -= alpha_ppo * grad(L_value(phi)) # 价值网络更新
# 重构损失更新(本体感知编码器)
for epoch i:
theta_s -= alpha_ts * grad(L_rec(theta_s)) # 最小化 E_s 输出与 E_t 输出的差距
八、CTS 架构深度解析:问答汇总
8.1 CTS属于模仿学习吗?
8.1.1 直接结论
不属于。 CTS本质上是一种强化学习与知识蒸馏相结合的方法,其中模仿(监督学习)只是辅助手段。
8.1.2 CTS vs. 传统模仿学习
| 维度 | 传统模仿学习 (如BC) | CTS |
|---|---|---|
| 学习目标 | 单纯模仿专家动作 | 最大化累积奖励(回报) |
| 监督信号 | 专家提供的“动作标签” | 环境提供的“奖励信号” |
| 探索机制 | 无探索,被动模仿 | 有主动探索(通过RL损失) |
| 能否超越专家 | 通常不能 | 能(若Student发现更好的latent) |
8.1.3 CTS的混合本质:RL为主,蒸馏为辅
CTS的更新过程包含两个部分:
8.1.3.1 PPO策略梯度更新(RL部分)
| 属性 | 说明 |
|---|---|
| 优化目标 | 最大化期望累积奖励 |
| 更新对象 | Actor网络、Critic网络、Teacher编码器 |
| 核心机制 | 裁剪的代理目标、GAE优势估计(与标准PPO完全一致) |
8.1.3.2 蒸馏更新(监督部分)
| 属性 | 说明 |
|---|---|
| 优化目标 | MSE(latent_t, latent_s) |
| 更新对象 | 仅Student编码器 |
| 作用 | 拉近Student的latent与Teacher的latent,实现知识迁移 |
关键洞察:即使没有蒸馏损失,Student分支仍然可以通过RL损失进行学习。蒸馏损失的作用是加速Student学会提取有用信息,而非唯一的学习来源。
8.1.4 CTS vs. 传统知识蒸馏(三阶段)
| 维度 | 三阶段蒸馏 | CTS(并行) |
|---|---|---|
| 训练流程 | 先训Teacher→固定→监督训Student | Teacher和Student同时在同一个RL循环中更新 |
| Student的梯度来源 | 仅来自监督损失 | 同时来自RL损失 + 蒸馏损失 |
| Student能否探索 | 不能(被动模仿) | 能(通过RL损失主动探索) |
| Student能否超越Teacher | 不能 | 理论上可能 |
8.1.5 正确分类
CTS属于Sim-to-Real迁移方法中的知识蒸馏/师生学习范式,可以视为一种具有辅助蒸馏损失的并行RL方法:
- 主要驱动力:RL损失(奖励信号)
- 辅助驱动力:蒸馏损失(对齐Teacher的latent)
8.2 GAE优势估计和latent是什么意思?
8.2.1 GAE(Generalized Advantage Estimation,广义优势估计)
8.2.1.1 通俗理解
GAE就是用来判断“刚才那步动作有多好”的评分系统。
在强化学习中,机器人每走一步,我们只知道“这一步得了多少分”(即时奖励)。但问题是:这个分数有多少是因为当前这一步动作好,有多少是因为之前的状态好?
GAE通过权衡两种极端情况,给出一个更合理的“动作优势评分”:
| 极端 | 思想 | 优点 | 缺点 |
|---|---|---|---|
| 只看当前步 | 这步得多少分就是多少 | 低偏差(真实) | 高方差(波动大) |
| 看未来全部 | 把这步之后所有得分都算上 | 低方差(平滑) | 高偏差(可能偏离) |
8.2.1.2 核心参数
| 参数 | 典型值 | 含义 |
|---|---|---|
| λ (lambda) | 0.95 | 控制“向后看多远”。λ=0时只看当前步,λ=1时看未来全部 |
| γ (gamma) | 0.99 | 折扣因子,未来的奖励要“打折”,因为不确定性高 |
8.2.1.3 计算公式(直观版)
优势(t) = 即时奖励 + γ×下步价值 - 当前价值 # 单步TD误差
+ γλ×(下步优势) # 向后递归
8.2.2 Latent(隐状态/潜在表示)
8.2.2.1 通俗理解
Latent就是信息的“压缩精华版”。
在CTS框架中,Teacher网络拥有263维的“特权观测”(地形高度、线速度、接触力等),但这些信息太冗余,直接传给Actor会过拟合。于是Teacher编码器把它们压缩成一个低维向量——这就是latent。
8.2.2.2 类比理解
| 场景 | 原始信息(高维) | Latent(低维精华) |
|---|---|---|
| CTS中的机器人 | 263维特权数据 | 约16-32维的隐状态 |
| 人脸识别 | 100万像素照片 | 128维特征向量(足够区分不同人) |
| 读一本书 | 10万字全文 | 300字摘要(保留核心观点) |
8.2.2.3 Latent里面“存”了什么?
在CTS中,latent编码了:
| 信息类型 | 具体内容 |
|---|---|
| 地形类型 | 是斜坡、楼梯还是平地? |
| 地形难度 | 坡度多陡?台阶多高? |
| 动态状态 | 机器人现在的“运动模式”是什么? |
8.2.2.4 为什么要用Latent?
| 方案 | 问题 | Latent方案 |
|---|---|---|
| 直接输入263维 | 过拟合、计算量大 | 压缩成32维,泛化更好 |
| 不用latent(纯PPO) | 无法利用特权信息 | latent携带了“上帝视角”知识 |
| 让Student直接输出动作 | 纯模仿,无探索 | latent作为中间表示,保留了灵活性 |
8.3 latent_t和latent_s只是通过蒸馏损失拉近的吗?
8.3.1 直接结论
是的,蒸馏损失(MSE)是唯一直接拉近两者的监督信号。 但还存在一个间接对齐机制。
8.3.2 两种对齐机制
8.3.2.1 直接对齐:蒸馏损失
L_distill = MSE(latent_t, latent_s)
| 属性 | 说明 |
|---|---|
| 更新对象 | 仅Student编码器 |
| 作用 | 让latent_s主动向latent_t靠拢 |
| Teacher编码器 | 不受此损失影响 |
8.3.2.2 间接对齐:共享Actor的RL损失
两者虽然独立编码,但最终latent_t和latent_s会送入同一个Actor网络输出动作。RL损失(最大化累积奖励)会同时影响两者:
| 对齐路径 | 机制 | 更新对象 |
|---|---|---|
| 直接 | MSE蒸馏损失强制latent_s → latent_t |
仅Student编码器 |
| 间接 | 如果某个latent带来更高奖励,Actor会“偏爱”它,通过RL梯度回传影响编码器 | Teacher编码器 + Student编码器 |
8.3.3 关键洞察
即使没有蒸馏损失,Student编码器也会通过RL损失学习——因为它采样的动作会得到奖励反馈。蒸馏损失的作用是加速收敛,防止Student从一开始就走偏。
8.4 有两个Actor吗?教师和学生分别执行动作?
8.4.1 直接结论
只有一个Actor网络,没有两个独立Actor。 这是CTS与两阶段蒸馏的关键区别。
8.4.2 实际架构图
┌─────────────────────────────────────────────────────────────┐
│ 同一个Actor网络 │
│ 输入:[latent, 基础观测] │
│ 输出:动作 (12维关节目标) │
└─────────────────────────────────────────────────────────────┘
↑ ↑
│ │
┌─────┴─────┐ ┌─────┴─────┐
│ Teacher路径 │ │ Student路径 │
│ (75%环境) │ │ (25%环境) │
└────────────┘ └────────────┘
8.4.3 两种“角色”的区别
两种“角色”的区别在于谁提供latent,而非谁执行动作:
| 角色 | 观测输入 | 编码器 | 生成的latent | 动作来源 |
|---|---|---|---|---|
| Teacher环境 | 特权观测(263维) | Teacher编码器 | latent_t |
同一个Actor |
| Student环境 | 本体感知历史(45维) | Student编码器 | latent_s |
同一个Actor |
8.4.4 为什么这样设计?
| 设计原因 | 说明 |
|---|---|
| 经验共享 | Teacher和Student采样的轨迹都存入同一个Replay Buffer,都用于更新同一个Actor |
| 自然对齐 | 如果latent_s编码的信息不如latent_t“好”,通过RL损失,Actor会倾向于奖励产生更好latent的编码器 |
| 推理简化 | 部署时只需Student编码器 + 同一个Actor,无需维护两套策略 |
8.5 教师环境和学生环境都在输出动作吗?
8.5.1 直接结论
是的,教师环境和学生环境同时都在输出动作,并行执行。
这不是“先教师教,后学生学”的两阶段流程,而是同一个训练过程中,两类环境同时运行、同时产出数据、同时用于更新网络。
8.5.2 并行执行的时间线
时刻 t:
┌─────────────────────────────────────────────────────────────────┐
│ IsaacGym 并行仿真环境 (共8192个) │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │
│ │ 教师环境 #1 │ │ 教师环境 #2 │ │ 学生环境 #1 │ │
│ │ 用 latent_t │ │ 用 latent_t │ │ 用 latent_s │ │
│ │ 输出动作 a_t │ │ 输出动作 a_t │ │ 输出动作 a_t │ │
│ └────────┬─────────┘ └────────┬─────────┘ └──────┬───────┘ │
│ ↓ ↓ ↓ │
│ 执行步进 执行步进 执行步进 │
│ 得到奖励 得到奖励 得到奖励 │
│ ↓ ↓ ↓ │
│ 存储数据 存储数据 存储数据 │
└─────────────────────────────────────────────────────────────────┘
↓
收集N步后
↓
时刻 t+N:
┌─────────────────────────────────────────────────────────────────┐
│ 策略更新(用所有环境的数据) │
│ 1. PPO损失更新 Actor + Critic + Teacher编码器 │
│ 2. 蒸馏损失更新 Student编码器 │
└─────────────────────────────────────────────────────────────────┘
8.5.3 环境分配的实际数字
num_envs = 8192 # 总并行环境数
teacher_env_ratio = 0.75 # 教师环境占比
teacher_envs = 8192 × 0.75 = 6144 个环境 → 使用 latent_t
student_envs = 8192 × 0.25 = 2048 个环境 → 使用 latent_s
8.5.4 为什么需要两类环境同时运行?
| 如果只有教师环境 | 如果只有学生环境 |
|---|---|
| 学生永远没有机会用自己的latent尝试 | 教师无法产生高质量的latent_t作为教学样本 |
| 无法收集学生轨迹的奖励信号 | 无法进行蒸馏对齐 |
| 学生只能被动模仿(传统两阶段蒸馏) | 学生缺少学习目标 |
8.6 动作是选谁的,看谁的latent好吗?
8.6.1 直接结论
动作来自当前环境所使用的latent——哪个环境产生的latent,就用哪个latent输入Actor输出动作。
不存在“选谁的latent更好”这个判断,因为每个环境独立运行,各自用自己的latent生成动作。
8.6.2 每个环境独立执行,没有“选择”环节
环境A(Teacher角色):
特权观测 → Teacher编码器 → latent_t → Actor → 动作A → 环境执行
环境B(Student角色):
本体感知历史 → Student编码器 → latent_s → Actor → 动作B → 环境执行
↑ ↑
两个环境独立并行 用的是同一个Actor网络的权重
8.6.3 “谁的latent更好”比较发生在训练更新时
当收集完一批数据后,PPO更新时会计算:
总体策略梯度损失 = Σ [ Advantage(动作) × log π(动作|状态) ]
↑
状态 = [latent, 基础观测]
关键洞察:
| 现象 | 说明 |
|---|---|
| Teacher的latent优势 | 如果latent_t能带来更高的Advantage,Actor网络会倾向于在有latent_t输入时输出高概率的动作 |
| Teacher编码器学习 | 通过梯度更新,学会产生更容易获得高Advantage的latent_t |
| Student对齐 | 通过蒸馏损失被迫向Teacher的latent空间靠拢,间接学习产生“好”的latent |
8.6.4 实验证据
| 指标 | 纯RL(无蒸馏) | CTS(有蒸馏) |
|---|---|---|
| Student编码器的latent质量 | 较差 | 接近Teacher |
| 最终运动性能 | 显著低于Teacher | 接近Teacher |
8.6.5 为什么教师环境不需要蒸馏损失?
| 网络 | 更新方式 | 梯度来源 |
|---|---|---|
| Teacher编码器 | PPO损失 | 奖励信号(通过GAE优势) |
| Student编码器 | PPO损失 + 蒸馏损失 | 奖励信号 + MSE对齐 |
Teacher编码器不需要蒸馏的原因:
| 原因 | 说明 |
|---|---|
| 1 | Teacher的输入本身就是“最优”的(特权信息) |
| 2 | 如果强制Teacher向Student对齐,反而会破坏Teacher的质量 |
| 3 | 蒸馏是单向的:Student模仿Teacher,而不是互相模仿 |
8.7 核心总结
8.7.1 一句话总结
CTS只有一个Actor网络。Teacher和Student的区别仅在于谁提供latent——Teacher用特权信息编码,Student用历史观测编码。两者通过同一个Actor执行动作,蒸馏损失让Student的latent向Teacher对齐,RL损失让两者的latent都趋向于能产生高回报的模式。教师环境和学生环境同时并行运行、各自输出动作、各自收集数据,所有数据汇集后统一用于更新网络。
8.7.2 CTS架构速览表
| 组件 | 作用 | 更新方式 |
|---|---|---|
| Teacher编码器 | 将263维特权信息压缩为latent_t | PPO损失 |
| Student编码器 | 将45维本体感知历史压缩为latent_s | PPO损失 + 蒸馏损失 |
| Actor网络(唯一) | 输入[latent, 基础观测],输出动作 | PPO损失 |
| Critic网络 | 评估状态价值 | PPO损失 |
| 蒸馏损失 | MSE(latent_t, latent_s),拉近两者 | 仅更新Student编码器 |
8.7.3 关键要点回顾
| 序号 | 要点 |
|---|---|
| 1 | CTS不属于模仿学习,而是以RL为主、蒸馏为辅的混合方法 |
| 2 | GAE是判断动作好坏的评分系统,通过λ参数平衡偏差与方差 |
| 3 | Latent是信息的“压缩精华版”,将263维特权信息压缩为32维 |
| 4 | 蒸馏损失是直接拉近latent_t和latent_s的唯一监督信号,但RL损失提供间接对齐 |
| 5 | 只有一个Actor网络,Teacher和Student共用 |
| 6 | Teacher环境和Student环境同时并行运行,各自输出动作 |
| 7 | 动作来自当前环境自己的latent,不存在运行时“选择” |
| 8 | 蒸馏是单向的:Student向Teacher对齐,Teacher不向Student对齐 |
总结:CTS通过将教师-学生范式从"先教后学"革新为"教学相长",在强化学习框架下并行训练教师和学生策略,使学生策略不仅模仿教师,更在RL目标的引导下主动优化,显著提升了腿式机器人在非结构化地形上的运动性能和鲁棒性。这一工作为腿式机器人运动学习提供了新的范式和切实可行的解决方案。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)