DECOWAM: Decoupled Whole-Body World-Action Model for Legged Mobile Manipulation
DECOWAM: Decoupled Whole-Body World-Action Model for Legged Mobile Manipulation
一句话总结
DECOWAM 把腿式移动操作里的底盘运动、手臂动作和相机自运动显式拆开,用少量参数把冻结的世界-动作模型改造成能在移动视角下同时预测未来画面并做全身协同控制的系统。
引言与摘要部分
腿式移动操作要求机器人能够预测基座移动和机械臂运动如何共同改变未来的观察与控制。现有的世界-动作模型(World-Action Models)大多针对固定基座平台开发,未明确区分摄像头的自我运动(Ego-motion)与基座及机械臂的动作
DECOWAM,这是一个全身世界-动作模型,通过专门的条件接口将这些因素进行解耦分离
推出了 ARMDOG,这是一个同步了视频、全身状态与动作以及语言指令的真实机器人数据集
问题定义: 给定指令 l、当前 RGB 观察 x0 以及机器人状态 s,全身世界-动作模型预测未来的动作块(Action Chunk)a^1:K 和未来的视频片段 x^1:T。在我们的设定中,a1:K∈RK×14 包含机械臂关节、夹爪状态、基座速度以及加载器兼容的填充通道
本文的核心思想是一种用于移动操作的解耦建模范式:世界-动作模型应将“基座移动到何处”、“机械臂如何操作”以及“摄像头自我运动如何改变未来像素”作为显式因子进行表示
构建了 ARMDOG,这是一个用于带 6 自由度机械臂的四足机器人平台的真实数据集,贡献在于完整体现具身特性的模型接口:每个转换后的 Episode 都同步了 15 Hz RGB 视频流、T×14 的全身状态/动作张量(带有显式的基座和机械臂通道)、自然语言指令文本以及预计算的语言嵌入
核心贡献:
- 将腿式移动操作形式化为解耦的世界-动作建模问题,其中基座控制、机械臂操作和摄像头自我运动通过显式、语义对齐的接口输入。
- 在 DECOWAM 中通过冻结残差适配、特权未来隐状态的因果蒸馏、对抗性基座/机械臂解耦以及基座速度条件化的视频预测实现了这一构想。
- 推出了同步的 ARMDOG 数据集,并通过控制重放和真实机器人实验评估了 DECOWAM,展示了高参数效率的预测能力、增强的全身协调性以及更强的抗干扰鲁棒性。
方法
图1. DECOWAM架构、训练与部署流程。(A) 冻结的广域网(WAN)骨干网络通过可训练的残差适配器、师生未来瓶颈、分离的基础/分支潜变量以及基础速度自运动条件进行增强;ActionDiT 生成未来的RGB片段以及一个48步、14维的动作块。(B) 部署阶段移除未来帧输入和特权教师路径,实现严格因果的14维动作推理。(C) 分阶段训练首先将预训练的FastWAM与ARMDO进行对齐,随后对解耦模块进行适配,以获得可部署的策略。
方法建立在 FastWAM 上。FastWAM 把 Wan-2.2 视频扩散骨干和 ActionDiT 动作分支接到同一套连续流匹配训练接口上。DECOWAM 保留这种“视频 + 动作”联合因式分解,再加四个机制,分别在参数空间、未来信息用法、动作因子和自运动条件上做解耦。
问题定义
令 l 表示语言指令,x0 表示当前 RGB 观察结果,s0∈R14 表示当前全身状态。学习如下条件联合模型:
pθ(x1:T,a1:K∣x0,s0,l)(1)
其中 x1:T 是未来的视频剪辑,a1:K∈RK×14 是动作块(action chunk)。本文实验中设置 T=8 和 K=48。每个动作包含如下语义分解:
ak=[akarm,akgrip,akbase,akpad],akbase∈R3(2)
其中,机械臂与夹爪占据通道 [0:7],底盘速度(base velocity)占据 [7:10],加载器兼容填充(loader padding)占据 [10:14]
分阶段、参数高效适配
训练过程将领域对齐与结构化适配分为两个阶段
阶段 1(Stage 1)中,FastWAM 的所有参数在 ARMDOG 数据集上微调 50k 步:
ϑ(1)=argΘminEE[Lvideo(Θ)+Laction(Θ)](3)
该阶段将预训练的视频先验、动作专家和本体感觉接口与移动相机观察以及四足机械臂的动作空间进行对齐。
阶段 2(Stage 2)冻结 Θ(1),仅优化可训练参数集 Φ={ϕadp,ϕq,ϕba,ϕego}:$$\Phi{*}=\arg\min_{\Phi}\mathcal{L}(\Theta,\Phi) \quad (4)$$
这四个参数组分别代表残差适配器(residual adapters)、动作等价未来瓶颈(action-equivalent future bottleneck)、底盘/机械臂因子分解(base/arm factorization)以及自身运动条件(ego-motion conditioning)。
冻结的 WAN 骨干网络在每个 Block 之后通过以下残差分支进行适配:$$h_{l}{+}=h_{l}+\alpha_{l}W_{up}\sigma(W_{down}^{(l)}LN(h_{l})) \quad (5)$$
其中 Wdown(l) 投影到 128 维的瓶颈层,Wup(l) 恢复隐藏维度,σ 为 SiLU 激活函数。残差分支在保留预训练视频先验的同时,学习紧凑且针对特定机器人的修正。
解耦条件接口
动作等价未来瓶颈 (Action-equivalent future bottleneck)

未来帧里有“动作会导致什么结果”的信息,单靠当前帧拿不到。作者用教师–学生蒸馏:教师能看当前和未来视觉摘要,学生只能看当前摘要和机器人状态;部署时只留学生。
令 e0=ψvae(x0) 和 e1:T=ψvae(x1:T) 为 WAN-VAE 隐变量。我们使用以下方式汇总每个隐张量:
c=\rho(e_{0}), \quad f=\rho(e_{1:T}), \quad \rho(e)=[\text{mean}(e),\text{std}(e)] \quad (6)$$ 教师与学生的嵌入向量表示为:$$z_{t}=q_{t}([c,f,s_{0}]), \quad z_{s}=q_{s}([c,s_{0}]), \quad z_{t},z_{s}\in\mathbb{R}^{d_{q}} \quad (7)$$ 在因果推理时,仅 $z_{s}$ 用于条件化动作专家:$$\tilde{u}^{a}=u^{a}+\eta_{q}B_{q}z_{s} \quad (8)
其中 ua 表示其上下文 token,ηq∈[0,1] 控制残差偏置。
瓶颈用三类损失训练:
- 动作重建:教师和学生都能从各自隐变量重建动作块
- 蒸馏:学生去对齐停止梯度后的教师隐变量
- 几何保持:动作相近的轨迹,在特权隐空间里也要靠近
\mathcal{L}_{rec}^{q}=\vert{}\vert{}r_{s}(z_{s})-a_{1:K}\vert{}\vert{}_{2}^{2} + \vert{}\vert{}r_{t}(z_{t})-a_{1:K}\vert{}\vert{}_{2}^{2}$$ $$\mathcal{L}_{q}=\lambda_{act}^{q}\mathcal{L}_{rec}^{q}+\lambda_{dist}^{q}\vert{}\vert{}z_{s}-\text{sg}(z_{t})\vert{}\vert{}_{2}^{2}+\lambda_{geom}^{q}\mathcal{L}_{geom} \quad (9)
Lgeom=(B(B−1))−1×i=j∑SL1(dzij,daij)(11)
底盘-机械臂因子分解 (Base-arm factorization)
动作上下文同时包含导航尺度(navigation-scale)与操作尺度(manipulation-scale)的信息。我们将池化后的表示映射为两个 16 维的因子:
z_{base}=b_{\phi}(u^{a}), \quad z_{arm}=m_{\phi}(u^{a}), \quad z_{base},z_{arm}\in\mathbb{R}^{16} \quad (12)$$ 它们的拼接特征通过以下方式条件化动作专家:$$\overline{u}^{a}=\tilde{u}^{a}+\eta_{ba}B_{ba}[z_{base},z_{arm}] \quad (13)
令 a1:Kb=a1:K,7:10(底盘通道)且 a1:Km=a1:K,0:7(机械臂通道)。
直接预测头要求:底盘隐变量预测底盘速度,手臂隐变量预测手臂/夹爪动作。交叉预测头则经过梯度反转层(GRL):用手臂隐变量去预测底盘动作、用底盘隐变量去预测手臂动作,但梯度符号反过来。结果是每个隐变量尽量只保留自己那一类控制信息,丢掉另一类。
视点自身运动感知的视频条件化 (Ego-motion-aware video conditioning)
对于车载相机,图像的视运动结合了场景动态、机械臂运动以及底盘引起的视点变化。我们使用当前归一化的底盘速度显式暴露最后一个成分:
v_{0}=\Pi_{base}(s_{0})=(v_{x},v_{y},\omega_{z})\in\mathbb{R}^{3} \quad (15)$$ 每个视频 token 均接收相同的投影自身运动条件:$$\tilde{h}_{i}^{v}=h_{i}^{v}+\beta B_{v}v_{0}, \quad i=1,...,N_{v} \quad (16)
其中 Bv 将速度映射到 WAN 的隐藏维度。该 token 不施加几何扭曲,而是为相机坐标系下的运动提供了一个显式的解释变量。因此,底盘速度既在公式 (2) 中作为动作预测目标,也在公式 (16) 中作为视觉条件。
训练目标与部署
动作与视频两个专家网络均使用条件流匹配(conditional flow matching)。对于目标 y∈{a1:K,e1:T}、噪声 ϵ∼N(0,I) 以及时间 τ∼U(0,1),定义:
y_{\tau}=(1-\tau)\epsilon+\tau y, \quad v^{*}(y_{\tau},\tau)=y-\epsilon \quad (17)$$ 对应的目标函数为:$$\mathcal{L}_{FM}(F_{\theta};y,c)=\mathbb{E}_{\tau,\epsilon}[\vert{}\vert{}F_{\theta}(y_{\tau},\tau,c)-v^{*}(y_{\tau},\tau)\vert{}\vert{}_{2}^{2}] \quad (18)
我们将此损失实例化为以 ua 为上下文的 Laction,以及以 hv 为上下文的 Lvideo。完整的 Stage 2 训练目标为:
L=λvLvideo+λaLaction+γqλqLq+γbaλbaLdisent(19)
设置权重参数 λv=λa=1.0,λq=0.2,λba=0.1。在 Stage 2 的训练过程中,γq、γba、ηq 和 ηba 均设为 1。 在推理部署阶段,教师网络 qt 以及所有辅助预测头均被移除。模型仅根据当前输入计算 zs、(zbase,zarm) 和 v0,然后仅利用 (x0,s0,l) 条件采样两个流(动作与视频)。
流程图
flowchart LR
x0["当前图 x0"] --> vae["WAN-VAE"]
xt["未来图 x1:T<br/>仅训练"] --> vae
vae --> c["当前摘要 c"]
vae --> f["未来摘要 f"]
s0["状态 s0"] --> student
s0 --> v0["底盘速度 v0"]
c --> teacher["教师 Encoder_t"]
f --> teacher
c --> student["学生 Encoder_s"]
teacher --> zt["z_t 特权"]
student --> zs["z_s 因果"]
hact["动作上下文"] --> zbase["z_base 16d"]
hact --> zarm["z_arm 16d"]
zs --> action["ActionDiT 动作专家"]
zbase --> action
zarm --> action
v0 --> ego["e_ego"]
ego --> video["WAN 视频专家"]
action --> ak["未来动作 a1:K"]
video --> xtpred["未来视频 x1:T"]- 参数接口:残差 adapter,把“机器人专用修正”从预训练视频先验里拆出去 第一阶段先把 FastWAM 全量在 ARMDOG 上训 5 万步,对齐移动相机和四足–机械臂动作空间。第二阶段把这 60 亿参数冻住,只训 2595 万适配参数。 冻住的 WAN 每个 block 输出 (h_l) 后,再加一条很窄的残差: [ h_l^{+}=h_l+\alpha_l W_{\mathrm{up}}\sigma!\left(W_{\mathrm{down}}\mathrm{LN}(h_l)\right) ](W_{\mathrm{down}}) 先压到 128 维,SiLU 后再升回去。主网络继续当通用视频先验,adapter 只学“这台腿式操作机器人看起来该怎么改”。这是参数空间解耦:通用世界知识和本体专用知识不再抢同一组权重。
- 因果接口:未来瓶颈 (z_s),只进动作专家 未来画面里有“这一步动作会造成什么结果”,但部署时不能看未来。于是做成教师–学生:
- 教师看当前摘要 (c) 和未来摘要 (f),得到特权隐变量 (z_t)
- 学生只看 (c) 和当前状态 (s_0),得到因果隐变量 (z_s)
- 两边都要能从各自隐变量重建动作块
- 学生还要对齐 stopgrad(z_t),所以未来里的因果结构会被蒸馏过来
- 动作相近的轨迹,在 (z_t) 空间里也要靠近 关键接口是:只有 (z_s) 会变成残差偏置,加到 ActionDiT 的因果上下文上。教师、未来帧、辅助重建头部署时全部丢掉。这样“动作会导致什么视觉后果”被压成一个因果 token,而不是把整段未来视频灌进动作模型。
- 动作接口:(z_{\mathrm{base}}) / (z_{\mathrm{arm}}),把“往哪走”和“手怎么动”拆开 动作上下文先池化成 (c_{\mathrm{act}}),再编成两个 16 维因子: [ z_{\mathrm{base}}=E_{\mathrm{base}}(c_{\mathrm{act}}),\quad z_{\mathrm{arm}}=E_{\mathrm{arm}}(c_{\mathrm{act}}) ]然后把 ([z_{\mathrm{base}};z_{\mathrm{arm}}]) 拼起来条件化 ActionDiT。光分开还不够,还要用两组头把信息挤干净:
- 直接头:(z_{\mathrm{base}}) 预测底盘速度,(z_{\mathrm{arm}}) 预测手臂/夹爪。逼每个因子保留自己那一类控制信息。
- 交叉头:经过梯度反转层 GRL。前向照传,反向把梯度乘 (-1)。用手臂因子去预测底盘、用底盘因子去预测手臂。最小化这个交叉损失,对编码器来说等于最大化交叉误差,于是 (z_{\mathrm{base}}) 里尽量不含手臂信息,(z_{\mathrm{arm}}) 里尽量不含底盘信息。 这才是语义解耦:导航尺度速度和操作尺度关节,不再挤在同一个未分化隐变量里。
- 视觉接口:底盘速度 (v_0),只进视频专家 机载画面里的运动混了三样东西:场景在变、手臂在动、底盘把相机带走。作者把第三项单独抽出来。从当前归一化状态里取出 (v_0=(v_x,v_y,\omega_z)),投影成 (e_{\mathrm{ego}}),加到每一个视频 token 上: [ \tilde{u}i=u_i+e{\mathrm{ego}} ]这不是做几何 warp,只是告诉 WAN:“相机正在这样动”。于是像素位移不必全部被理解成场景动态。 同一条底盘速度因此走了两个接口:在动作公式里是要预测的目标 (\hat{\mathbf{a}}^{\mathrm{base}}),在视频公式里是解释自运动的条件 (e_{\mathrm{ego}})。这就是论文说的 dual-use。
ARMDOG 数据集
ARMDOG 是一个面向模型的真机数据资源,专门服务腿式移动操作。它在一台轮式四足机器人上,把移动相机 RGB-D、本体感知、IMU、底盘状态、全身指令和语言指令同步记录到同一时间轴
这台机器人有 16 个腿关节、一个 6 自由度机械臂,以及一个 1 自由度夹爪。转换成 FastWAM 可用格式后,原始 HDF5 流被对齐到 15 Hz,每个回合存成
ei=(Vi,Qi,ℓi,ϕ(ℓi))
分别是 RGB 视频、结构化的 (T_i\times 14) 状态/动作张量、指令文本,以及预先算好的语言嵌入。训练时模型看到的是:当前帧、后续 8 帧 (384\times 320) 图像、初始状态,以及归一化后的 48 步动作块。
图3. ARMDOG的组成与面向模型的结构。(a) 质量过滤语料库中四个任务家族的情节分布:抓取与放置瓶子(56%)、放置积木(39%)、物体抓取与放置(4%)以及爬坡(1%)。(b) 时间戳对齐与质量过滤后的语料库规模:1487个情节、343550张RGB帧、321.3分钟,帧率为15赫兹。(c) 模型接口:文本、当前RGB图像与机器人状态构成输入,未来RGB图像和14维动作作为预测目标。动作向量分为6维机械臂、1维夹持器、3维基座速度及4维加载器填充通道。
ARMDOG 的关键不是回合特别多,而是把移动视角视频、底盘速度、手臂动作和语言对齐到同一条 15 Hz 时间轴,并把全身控制写成固定的 14 维接口
实验
做了什么实验
- 离线回放:在固定 23 条箱子操作数据上,看未来 8 帧画面和 48 步全身动作预测得准不准。
- 消融:在冻住 FastWAM 的前提下,分别拿掉未来瓶颈、底盘速度条件、底盘/手臂解耦,看这三条通路各自有没有贡献。
- 横向对比:跟只出动作的 VLA(π₀.₅、X-VLA、GR00T),以及同样预测视频+动作的 WAM(FastWAM、Motus、X-WAM、UVA)比。
- 真机闭环:每种方法 79 次试验,看任务能不能做完,以及底盘和手臂能不能协同、抗扰动。
- 效率:看第二阶段到底要训多少参数、推理慢多少。
验证了什么
- 解耦之后,移动视角下的未来画面和全身动作预测是否更好。
- 三条专用接口是不是都必要,还是只加 adapter 就够。
- 作为世界–动作模型,会不会为了预测视频而把动作做差。
- 离线变好能不能变成真机上的全身协同和鲁棒性,而不只是 MSE 更好看。
- 这些收益是不是用很少参数就能拿到。
效果怎么样 离线预测是最干净的胜利。相对最强 FastWAM,画面误差降 15%,动作误差降 22%;在同类 WAM 里视频和动作都第一。消融也站住了:三条通路拿掉任何一条都会变差,说明不是只靠冻骨干微调。 跟纯 VLA 比就要诚实一点:X-VLA 的动作误差最低,DECOWAM 不是最强动作模型,但动作仍处在第一梯队,同时还多预测了未来画面。 真机上,任务成功率几乎没拉开:DECOWAM 58.2%,FastWAM 57.0%。真正拉开的是作者最关心的全身能力——协同 44.3% vs 34.2%,底盘被推开后的鲁棒性 30.4% vs 12.7%,而且更快(49 秒 vs 65 秒)。典型失败是基线在该站住抓东西时底盘还在乱动,DECOWAM 更能稳住底盘再伸手。 代价很小:第二阶段只训 2595 万参数,大约是 FastWAM 全量微调的 1/232,推理只慢约 11%。
总结
提出了 DECOWAM,一种全身世界–动作模型,它显式分离底盘运动、手臂操作和相机自运动,这是一个能把有竞争力的控制,和全身运动下场景演化的显式预测耦合在一起的联合模型。
设定上还没解决的
- 只有一台四足 + 6 自由度臂,换机器人、换场景能不能用,论文没验证。
- 只预测 8 帧画面和 48 步动作,短时域,做不了长程规划。
- 推理还比 FastWAM 慢约 11%。
局限很清楚:这是单平台、短时域、小数据上的解耦适配,能让底盘和手臂更会配合,但还不是通用移动操作基础模型。