跳转至

论文阅读 Ctrl-World: A Controllable Generative World Model for Robot Manipulation

TL;DR

Ctrl-World = 一个面向机器人操作的可控生成式世界模型。

它的输入是:当前多视角图像、历史帧、机器人位姿、未来动作序列。

它的输出是:执行这些动作后的未来多视角视频。

它的用途是:让 VLA 策略在“想象环境”里闭环 roll out,用于低成本评估和生成成功轨迹来微调策略。

这篇论文的核心贡献不是单纯把机器人视频生成得更逼真,而是让视频生成模型具备 多视角、动作可控、长时序一致、能和策略闭环交互 这些机器人学习真正需要的能力。

痛点

评测一个机器人策略好不好要在真实机器人上反复rollout,这里把痛点写成了两点:

  • 严格的评估需要大量的现实世界的推出

Rigorous evaluation requires a large number of realworld rollouts

  • 系统的改进需要额外的纠正数据与专家标签

, while systematic improvement demands additional corrective data with expert labels.

过程慢、成本高、难以扩展

什么是 generalist robot policy?

IDEA

训练一个world model,让策略在"imagination space"里执行动作,即:

  • policy 输出动作给 WM
  • WM 生成动作执行后的多视图画面("multi-view")
  • 把画面喂回策略,继续输出下一步动作

这样就能在虚拟生成环境里测试和改进机器人策略

成果

在DROID数据集上训练了一个controllable multi-view world model, maintains long horizon consistency(长时序一致性)and

能够在新场景和新视角下生成超过20秒的空间和时间一致的轨迹

  • 可以准确地排名robot policies的表现,无需现实的机器人
  • 在想象中合成成果的轨迹用于监督微调,可以提高policy的成功率
他和普通的视频生成模型有什么不同?
  • 要可控,机器人向左移动3cm,生成画面里的末端执行器就要向左移动3cm
  • 要多视角一致(multi-view),覆盖死角
  • 要长时序一致,就是不能越来越偏

方法核心 三个模块

1. Multi-view joint prediction 联合预测多视角

Ctrl-World 同时预测多个摄像头,包括第三人称视角和腕部视角。通过把多个视角的图像token拼在一起,让模型联合建模这些视角之间的空间关系

2. Frame-level action conditioning 逐帧动作条件控制

最关键的地方

策略输出的是一个 action chunk,也就是一小段连续动作,Ctrl-World 不只是给视频生成模型一个粗略指令,而是把每一帧未来画面都和对应的机器人动作绑定起来

论文中训练时使用未来 15 个动作,对应 DROID 里的 1 秒 action chunk;模型根据这些动作预测未来画面。 进一步地,附录里写到模型会把 7 维笛卡尔空间动作通过一个 3 层 MLP 投影到 1024 维 latent embedding,并把 15 步动作下采样为 5 步以节省显存。

看不懂

Tip

普通视频模型像是在回答未来会发生什么,Ctrl-World 更像是在回答一个干预问题:如果机器人接下来按这个动作序列移动,画面应该如何变化?

这就是它能用于策略闭环 roll out 的原因。

3. Pose-conditioned memory retrieval 带位姿条件的记忆检索

长视频生成容易漂移,Ctrl-World的做法:不仅看当前帧,还把稀疏的历史帧放进上下文,并把对应的机器人位姿信息注入。

这样模型在预测未来时,可以回忆过去相似状态,避免物体、夹爪、场景布局越滚越不一致。论文称这个基址为稳定长时序 roll out,并保持时间一致性

模型怎么训练

Ctrl-World 初始化自 Stable Video Diffusion,即一个预训练视频扩散模型。

然后把他改造成动作条件的机器人 world model

推理时怎么用

1. 评估策略 plicy evaluation

  1. 给一个初始多视角观察和语言指令;
  2. VLA 策略根据观察和指令输出动作;
  3. Ctrl-World 根据动作生成下一段多视角未来画面;
  4. 把生成画面再喂给策略;
  5. 循环多次,得到完整的“想象轨迹”;
  6. 人类或未来的 reward model 判断这个轨迹是否成功。

论文明确提出,可以在 world model 里进行 policy-in-the-loop rollouts,也就是让策略和世界模型在想象空间中自回归交互。

2. 改进策略 policy improvement

让策略在 Ctrl-World 中生成很多轨迹,然后挑出成功轨迹,把这些生成数据拿来监督微调策略。论文中作者每个任务生成 400 条轨迹,基于人类偏好保留 25–50 条成功轨迹,再用这些合成数据微调策略 2k steps。

为了让生成轨迹更多样,作者还用了两种扰动方式:一种是用 LLM 改写任务指令,另一种是在 world model 中随机重置机器人初始状态。

图片解读

Figure 1: Ctrl-World is designed for policy-in-the-loop rollouts with generalist robot policies. It generates joint multi-view predictions (including wrist views), enforces fine-grained action control via frame-level conditioning, and sustains coherent long-horizon dynamics through pose-conditioned memory retrieval. These components enable (1) accurate policy evaluation in imagination, with alignment to real-world rollouts, and (2) targeted policy improvement through synthetic trajectories.

1783595743452

  • cam 1, 2, 3 指的就是 multi-view
  • Generalist Policy 是通用机器人策略,指 VLA 模型
  • Generalist Policy 一次生成一小段(一个 chunk)的动作,输入到 WM
  • WM 结合稀疏的历史记忆(稀疏就是指隔段时间传一个),生成未来的多视角画面 Pred 1, 2, 3
  • 这些 Pred 1, 2, 3会作为下一次输入
  • \(\times N\) 指的是这样会一直循环 \(N\)

  • Synthetic Trajectory 通过上面的循环会生成一条合成轨迹

给机器人策略一个语言指令和当前多视角画面,策略输出动作;Ctrl-World 根据动作生成未来多视角画面;生成的画面再喂回策略,循环多次得到合成轨迹;这些轨迹可以用来评估策略,也可以筛选成功样本来改进策略。

公式阅读

公式一:机器人策略怎么输出动作

首先定义:

\[o_t = [I_t^1, ..., I_t^n, q_t]\]

当前观测\(o_t\)由多个相机图像和机器人位姿组成

然后策略输出一个动作片段:

\[a_{t + 1}, a_{t + 2}, ..., a_{t + H} \sim \pi(· \mid o_t, l)\]

给策略 \(\pi\) 当前观察 \(o_t\) 和语言指令 \(l\),它输出接下来 \(H\) 步动作。

当前多视角图像 + 当前机器人位姿 + 语言指令
机器人策略 π
未来 H 步动作

公式二:world model 怎么预测未来

定义:

\[A_t = [a_{t + 1}, ..., a_{t + H}]\]

这只是把未来 \(H\) 步动作打包成一个动作片段,叫 \(A_t\)

然后是 WM 的公式

\[o_{t + 1}, ..., o_{t + H} \sim W(· \mid o_t, A_t)\]

给 world model 当前观测 \(o_t\),再给它机器人接下来要执行的动作片段 \(A_t\),它预测未来 \(H\) 个时刻的观测。

为什么感觉生成预测都喜欢用\(\sim\),是某种分布?

这里是 Ctrl World 的核心

普通视频生成模型:当前图像 \(\rightarrow\) 未来视频

Ctrl World:当前图像 + 机器人动作 \(\rightarrow\) 由这个动作导致的未来视频

所以他是 action-conditioned world model

论文接着说,最终预测出来的 \(o_{t+H}\) 可以再送回策略,让策略产生下一个动作片段 \(A_{t+H}\),于是策略和 world model 就能自回归地交互,形成长时序 imagined rollout。

换句话说:

\[o_t \rightarrow \pi \rightarrow A_t \rightarrow W \rightarrow o_{t + H} \rightarrow \pi \rightarrow A_{t+H} \rightarrow W ...\]

memory 公式:稀疏历史帧怎么进模型

\[o_{t+1:t+H} \sim W(· \mid o_{t-km}, ..., o_t, l)\]
  • \(o_{t-km}, ..., o_t\)表示历史帧
  • \(k:\) 取多少个历史帧
  • \(m:\) 每隔多少步取一帧

这就是稀疏历史帧。论文说,为了防止上下文太长,它们用 \(stride m\) 采样 \(k\) 个历史帧,并且把对应的机器人位姿:\([q_{t-km}, ..., q_t]\)也嵌入到这些历史帧中,让模型能根据机器人位姿找到相关的过去状态。

直觉

模型不是盲目看历史图片,而是看“当时机器人手臂在什么位置”。如果未来某个姿态和过去某个姿态相似,它就可以从那一帧取回有用信息。

action conditioning 公式:动作怎么变成 pose

一个细节:

\[[a_{t+1:t+H}] \rightarrow [a_{t+1:t+H}']\]

这里的 \(a\) 是原始动作,\(a'\) 是转换后的 Cartesian-space robot arm poses,也就是笛卡尔空间里的机械臂位姿。

然后把历史 pose 和未来 pose 拼在一起:

\[[q_{t-km}, ..., q_t, a_{t+1:t+H}']\]

最难的公式:diffusion training objective

训练目标:

\[x_0 = o_{t+1:t+H}\]

\(x_0\)是真实的未来视频,也就是模型应该预测的目标。

然后往 \(x_0\) 里加噪声:

\[\epsilon \sim \mathcal{N}(0, I)\]

从标准高斯分布里采样一个噪声 \(\epsilon\)

然后:

\[x_{t'} = \sqrt{\alpha_{t'}} x_0 + \sqrt{1-\alpha_{t'}} \epsilon_{t'}\]

diffusion model 的加噪公式

训练目标:

\[\mathcal{L} = \mathbb{E}_{x_0,\epsilon,t'} \left\| \hat{x}_0\left(x_{t'}, t', c\right) - x_0 \right\|^2\]

模型看到加噪后的未来视频 、噪声步 \(t'\)、条件信息 \(c\),然后预测干净视频 \(\hat{x_0}\)。训练目标就是让预测结果 \(\hat{x_0}\) 尽量接近真实干净视频 \(x_0\)

这里的条件 \(c\) 是:

\[c = [q_{t-km}, ..., q_t, a_{t+1:t+H}', 0_{t-km}, ..., o_t]\]

即:

历史机器人位姿
+
未来动作转换成的位姿
+
历史观测帧

局限性

  1. 复杂物理还不够准。论文自己提到,低层执行层面的复杂动力学,比如碰撞、物体滑动、旋转等,world model 仍有差距。
  2. 它对失败模式的覆盖依赖数据。如果真实策略产生了训练数据中没见过的失败行为,world model 可能模拟不好。论文也提到,收集更多 in-domain policy rollout data 可能能缩小这个差距。
  3. 成功轨迹筛选目前仍依赖人类偏好判断。论文虽然说未来可以用视觉语言 reward model 自动化,但这篇工作本身仍然用了人工判断。
  4. 算力门槛比较高。官方代码库中模型 checkpoint 大约 8GB,DROID 数据集约 370GB,训练说明也涉及多卡 H100/A100 环境。

评论