CoRL 2022 · arXiv 2210.10044 · CMU · maniploco.github.io
Deep Whole-Body Control: Learning a Unified Policy for Manipulation and Locomotion
Zipeng Fu*, Xuxin Cheng*, Deepak Pathak · Carnegie Mellon University
Whole-Body Control Unified Policy Advantage Mixing ROA · Sim2Real Go1 + WidowX 19 DoF · <6K USD VBC 前身
§ 01

它是什么:一个网络同时管 19 个关节

这一节解决什么

你已经读过 VBC,DeepWBC 就是它的直接前身(同一作者 Cheng、Pathak,早两年)。一句话:装了机械臂的四足狗(Go1+WidowX,19 DoF),不分层、不解耦,用单个神经网络策略 π 同时输出腿和臂的所有关节指令,让它们像人一样协调——弯腰够低处、伸腿稳重心。它首次提出了两个后来被 VBC 沿用的关键技术:Advantage Mixing(解决高自由度信用分配)和 ROA(单阶段 Sim2Real)。读懂它,VBC 的很多设计你会瞬间明白『原来是从这继承的』。

过去给『腿+臂』机器人做控制,标准做法是解耦:一个控制器管腿走路,一个管臂操作。问题:① 需要大量工程去协调两者;② 误差在模块间传播;③ 动作生硬不自然;④ 生物学上不合理——人类的手脚是强运动协同的(你单手去够书架,对侧腿会自动调整重心)。DeepWBC 主张:用一个统一策略学这种全身协同

高自由度全身控制为什么难(论文点出三大挑战)

High-DoF control:19 个自由度、动态、高频,搜索空间随轨迹长度指数爆炸。
Conflicting objectives / local minima:臂往右倾时腿要改步态配平,容易只学会『操作』或『走路』其一,陷局部最优。
Dependency(依赖):要捡地上的东西,末端必须靠腿弯下来支撑——操作能力上限被腿能否适配卡住

Figure 1: DeepWBC whole-body control teaser
Fig 1 · p.1 Whole-body control of a legged robot with arm. Left: leg bending/stretching achieves larger workspace. Right: real-world tasks (wiping, picking, pressing buttons, throwing). 左:腿弯曲/伸展扩大工作空间;右:多种真机任务。VBC 的『腿参与操作』思想正源于此。

硬件:低成本全板载(<6K USD)

四足Unitree Go1(12 DoF)
机械臂Interbotix WidowX 250s(6 DoF)+ 平行夹爪 → 共 19 DoF
相机RealSense D435,装在夹爪附近
算力/供电全部由 Go1 板载电池供电、板载推理,完全无外接(untethered)
成本约 6K USD(对比 Spot Arm / ANYmal+臂 >100K USD)
🧠 理解检查
DeepWBC 相对传统『腿臂解耦控制』的核心区别是?
§ 02

统一策略框架:观测、动作与训练-部署一图流

这一节解决什么

上一节说『一个网络管全身』,那它具体吃什么、吐什么?这一节看整张框架图(Fig 2)。注意一个和 VBC 最关键的区别:DeepWBC 的策略直接输出 6 个臂关节的目标角度(joint-space control),而 VBC 改成了『输出末端位姿 + IK 反解』。这个差异正是 VBC 论文里 Table 4 证明 IK 精度更高、从而推动改进的地方。

统一策略 π 的输入输出

策略是单个神经网络,输入当前状态 + 命令 + 环境隐向量,输出腿和臂的目标关节角:

观测(输入)逐项
$s^{\text{base}}_t \in \mathbb{R}^5$
机身 roll、pitch、机身角速度(无绝对高度——高度不变设计)。
$s^{\text{arm}}_t \in \mathbb{R}^{12}$
每个臂关节的位置和速度。
$s^{\text{leg}}_t \in \mathbb{R}^{28}$
每个腿关节的位置、速度 + 足端接触指示。
$a_{t-1} \in \mathbb{R}^{18}$
上一步动作(6 臂 + 12 腿)。
$[p^{\text{cmd}}, o^{\text{cmd}}] \in \mathbb{SE}(3)$
末端执行器的目标位置 + 朝向命令。
$[v^{\text{cmd}}_x, \omega^{\text{cmd}}_{\text{yaw}}]$
机身前向线速度 + 偏航角速度命令。
$z_t \in \mathbb{R}^{20}$
环境外在隐向量(摩擦、质量、电机强度…)。训练用特权编码器算,真机用适应模块估(见 §04)。
动作(输出)
$a^{\text{arm}}_t \in \mathbb{R}^6$
目标臂关节角(注意:直接关节角,不是末端位姿!)。
$a^{\text{leg}}_t \in \mathbb{R}^{12}$
目标腿关节角。两者都经 PD 控制器转力矩。腿臂都用关节空间控制,作者称这比操作空间控制(OSC)更易学、Sim2Real gap 更小、还能学避自碰撞。
Figure 2: Whole-body control framework
Fig 2 · p.2 Whole-body control framework. (A) Training: unified policy conditioned on env extrinsics, with Advantage Mixing. (B) Deployment: adaptation module reused without fine-tuning, commanded via teleop / vision / demo replay. (A) 训练:统一策略 + Advantage Mixing(红交叉)+ ROA(μ/φ 对齐 z)。(B) 部署:适应模块零微调复用,三种命令接口,50Hz 板载。
🪜 跟着信号走一遍
1 / 4

第 1 步:仿真里给『上帝信息』

训练时拿到真实物理参数 e_t(质量、摩擦、电机强度…),经特权编码器 μ 编成隐向量 z^μ,让策略知道『当前是什么环境』。

第 2 步:统一策略出全身动作

π 综合状态 + 命令 + z,单网络同时输出 6 臂关节角 + 12 腿关节角,PD 转力矩。腿臂共享同一套『身体认知』。

第 3 步:Advantage Mixing 引导学习

用两个 advantage(操作/移动)+ 课程 β,先让臂学操作、腿学走路,再逐渐混合,最终学到互相帮助的协调行为(详见 §03)。

第 4 步:ROA 让真机能用

适应模块 φ 学会只凭历史观测估出 z^φ,部署时顶替 z^μ。整套零真机微调 50Hz 板载跑,支持手柄/视觉/demo 三种命令(详见 §04)。

末端目标采样(VBC 直接继承的部分)

末端位置命令在球坐标 $(l,p,y)$ 采样,再在当前位置和采样目标间插值——和 VBC 一模一样的公式

$$p^{\text{cmd}}_t = \frac{t}{T_{\text{traj}}}p + \left(1-\frac{t}{T_{\text{traj}}}\right)p^{\text{end}}, \quad t\in[0,T_{\text{traj}}]$$ 末端目标插值 · §2, p.4
采样范围(Table 2,训练 / 测试)
$v^{\text{cmd}}_x$
训练 $[0,0.9]$ / 测试 $[0.8,1.0]$ m/s
$\omega^{\text{cmd}}_{\text{yaw}}$
训练 $[-1,1]$ / 测试 $[-1,-.7]\cup[.7,1]$
$l$(半径)
训练 $[0.2,0.7]$ / 测试 $[0.6,0.8]$
$p,y$(俯仰/偏航)
$[-2\pi/5,2\pi/5]$、$[-3\pi/5,3\pi/5]$
$p^{\text{end}}$ 重采样
到 $T_{\text{traj}}$ 或会引起自碰撞/触地时重采。$o^{\text{cmd}}$ 从 $\mathbb{SO}(3)$ 均匀采。
§ 03

核心创新①:Advantage Mixing 优势混合

这一节解决什么

§01 提过『高 DoF 信用分配难』:19 个关节一起动,得到一个奖励,到底是哪个关节的功劳/过错?标准做法是用课程学习(先简单任务后难任务),但要手调一堆课程参数。DeepWBC 的聪明做法:利用一个先验——操作主要靠臂、移动主要靠腿,把这个结构直接写进 PPO 的优势函数里。这就是 Advantage Mixing,是这篇最核心的算法贡献。

先看奖励:操作奖励 + 移动奖励(Table 1)

总奖励 $r = r^{\text{manip}} + r^{\text{loco}} + r_{\text{energy}} + r_{\text{alive}}$:

定义
manipfollowing$0.5\,e^{-\lVert[p,o]-[p^{\text{cmd}},o^{\text{cmd}}]\rVert_1}$
manipenergy$-0.004\sum_{\text{arm}}|\tau_j\dot{q}_j|$
locofollowing$-0.5|v_x-v^{\text{cmd}}_x| + 0.15\,e^{-|\omega_{\text{yaw}}-\omega^{\text{cmd}}_{\text{yaw}}|}$
locoenergy$-0.00005\sum_{\text{leg}}|\tau_i\dot{q}_i|^2$
locoalive$0.2 + 0.5\,v^{\text{cmd}}_x$
几点直觉
manip following 用 $L_1$ + 指数
末端位姿(位置+朝向)越接近命令,奖励越高(满分 0.5)。
腿能量用平方 $|\tau\dot q|^2$
对腿关节用二次方能量惩罚,鼓励更低、更均衡的能耗(来自作者另一篇 minimizing energy 的结论)。
alive 随命令速度增大
命令走得越快、存活奖励越高,避免策略为了省事原地不动。

Advantage Mixing 公式(核心)

把上面的奖励拆成两路 advantage:$A^{\text{manip}}$(来自 $r^{\text{manip}}$)和 $A^{\text{loco}}$(来自 $r^{\text{loco}}$),然后分别加权到臂动作和腿动作的策略梯度上

$$J(\theta_\pi) = \frac{1}{|\mathcal{D}|}\sum_{(s_t,a_t)\in\mathcal{D}} \log\pi(a^{\text{arm}}_t\mid s_t)\big(A^{\text{manip}}+\beta A^{\text{loco}}\big) + \log\pi(a^{\text{leg}}_t\mid s_t)\big(\beta A^{\text{manip}}+A^{\text{loco}}\big)$$ Advantage Mixing 训练目标 · §2.1, p.4
逐项拆解
$\log\pi(a^{\text{arm}}_t\mid s_t)$
臂动作的对数概率。它的梯度更新主要由后面括号的权重决定。
$(A^{\text{manip}}+\beta A^{\text{loco}})$ · 臂的权重
臂动作满权重吃操作优势 $A^{\text{manip}}$,只吃 $\beta$ 倍的移动优势。即:训练初期($\beta\approx0$)臂只关心『操作做得好不好』,不被走路干扰。
$(\beta A^{\text{manip}}+A^{\text{loco}})$ · 腿的权重
对称地,腿动作满权重吃移动优势 $A^{\text{loco}}$,初期不被操作干扰。
$\beta = \min(t/T_{\text{mix}}, 1)$
课程参数:从 0 线性增长到 1。$\beta=0$ 时臂腿各管各的(解耦、好学);$\beta=1$ 时两路优势完全混合,臂也开始为走路负责、腿也为操作负责 → 学出协调全身行为
整体直觉
先把难问题拆成两个简单子问题分别学(降低信用分配难度),再用 $\beta$ 平滑地『焊』成一个协调整体。只需调一个参数 $T_{\text{mix}}$,比传统多参数课程省心。用 PPO 优化。
类比

教双人三足跑:一开始让两人各自练好自己的腿(β=0,互不干扰),熟练后再慢慢要求两人配合节奏(β→1)。直接一上来就要求完美配合,俩人会互相绊倒(陷局部最优)。

效果(Fig 4)

没有 Advantage Mixing 时,统一策略会『只学会走路、忽略操作』(信用分配崩了);有了它,命令速度跟踪误差(vel error)随训练快速下降。Table 4 也显示统一策略(survival 97.1%)显著优于 separate / uncoordinated 基线。

🧠 理解检查
Advantage Mixing 里课程参数 β 从 0 增到 1 起什么作用?
§ 04

核心创新②:Regularized Online Adaptation (ROA)

这一节解决什么

策略观测里有个环境隐向量 z(编码摩擦、质量),仿真能算、真机算不出来。经典解法是 RMA 那种两阶段师生:先训特权策略,再单独训一个适应模块去模仿。但两阶段有个『realizability gap(可实现性鸿沟)』——教师用全状态预测的 z,学生只凭部分观测根本估不出来,导致监督信号无效。DeepWBC 提出 ROA:单阶段、双向对齐,让『教师的 z 也别太离谱、学生能估出来』。这个 ROA 后来被 VBC 原封不动沿用。

$$L(\theta_\pi, \theta_\mu, \theta_\phi) = -J(\theta_\pi, \theta_\mu) + \lambda\big\lVert z^\mu - \text{sg}[z^\phi]\big\rVert_2 + \big\lVert \text{sg}[z^\mu] - z^\phi\big\rVert_2$$ ROA 总损失 · §2.2, p.4
逐项拆解
$z^\mu$ · 特权编码器 μ 的输出
用真实物理参数 $e$ 编码的隐向量。训练时策略实际用它。
$z^\phi$ · 适应模块 φ 的输出
只用历史观测估的隐向量。真机部署用它。
$-J(\theta_\pi,\theta_\mu)$ · RL 项
联合优化『统一策略 + 特权编码器』(最大化 Advantage-Mixing 目标 J,故取负做最小化)。
$\lambda\lVert z^\mu - \text{sg}[z^\phi]\rVert_2$ · 正则项
特权编码器往适应模块拉——逼 z^μ 别学出『历史观测根本估不到』的信息。$\lambda$=拉格朗日乘子(正则强度),用对偶梯度下降自动调。这是 ROA 比 RMA 多出来的关键一项
$\lVert \text{sg}[z^\mu] - z^\phi\rVert_2$ · 模仿项
适应模块往特权编码器拉(φ 学 μ)。这一项 RMA 也有。
$\text{sg}[\cdot]$ · stop-gradient
梯度停止:保证两个方向各自单向更新,不互相打架。
$\lambda = 0$ 退化为 RMA
把正则项关掉,就是 RMA 的两阶段做法。ROA 是 RMA 的推广。论文实测:ROA 的 realizability gap = 2e-4,RMA = 0.31(差三个数量级),带来 20% 的末端误差下降(Table 6)。
为什么『双向』是关键

RMA 是单向的:教师怎么学,学生硬追。但教师可能学到『靠全状态才知道、历史观测推不出』的 z,学生追不上 → gap。ROA 加的正则项相当于告诉教师:『你也要照顾学生,别学些它学不会的东西』。两边各退一步,gap 就小了。这也顺带去掉了两阶段流程——一个 loss 端到端搞定。

网络结构与训练顺序

特权编码器 μ、适应模块 φ(吃历史 rollout,卷积网络)。三者交替优化:π+μ 若干步 → φ 若干步 → λ 用 $\lambda\leftarrow\lambda+\alpha\frac{\partial L}{\partial\lambda}$ 更新。适应模块在策略 π 和编码器 μ 收敛后才开始训。

🧠 理解检查
ROA 相对 RMA 多做了什么?
§ 05

实验与三种部署接口

这一节解决什么

两大创新讲完,看效果。三个问题:① 统一策略真的比解耦强吗?② Advantage Mixing 和 ROA 各自有用吗?③ 真机怎么发命令?

仿真消融(Table 4/5/6)

统一 vs 解耦(Table 4)
Unified 全面胜出
统一策略 survival 97.1%、vel error 0.31、EE error 0.63,均优于 Separate(腿臂各一策略)和 Uncoordinated(共享观测但 advantage 不混合)。相同能耗下协调更好。
全身协调的收益(Table 5)
臂腿互相帮忙
统一策略的臂工作空间 0.82 m³(vs separate 0.58)——腿帮臂够更远;受扰存活率 0.87(vs 0.77)——臂帮腿配平更稳。
ROA vs RMA/DR(Table 6)
gap 缩到 2e-4
ROA realizability gap 2e-4(RMA 0.31),EE error 比 RMA 降 20%。Domain Randomization 基线在难环境里干脆『原地站着不动』来保命。
真机抓取 vs MPC+IK(Table 7)
0.8 vs 0.1–0.3
视觉抓取成功率 0.8、TTC 更短、自碰撞率 0;MPC+IK 基线只有 0.1–0.3,常因 IK 奇异或自碰撞失败。

三种部署命令接口

① 遥操作手柄设末端增量:$p^{\text{cmd}}_{t+1}=p^{\text{cmd}}_t+\Delta p$,$\Delta p=(\Delta l,\Delta p,\Delta y)$ 由摇杆给。
② 视觉跟踪RGB 相机 + AprilTag 取物体位姿 $p^{\text{tag}}$,反馈控制 $p^{\text{cmd}}_t=K^Tp^{\text{tag}}$($K$=增益向量)闭环抓取。
③ 开环回放给一条预定义末端轨迹,边走边按轨迹动臂(Fig 7:草地上边走边够杯子)。
真机现象(Fig 5/7)

实测机身 pitch/roll 与末端命令强相关——命令末端够高/够远时,机身自动俯仰、侧倾去配合。这正是『全身协调』在真机上的直接证据:腿关节和臂关节一起参与『够到目标』。