具身智能论文学习7:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

具身智能论文学习7:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

第一部分:基本收录情况

项目内容
论文题目Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
中文译名《扩散策略:基于动作扩散的视觉运动策略学习》
原始会议Robotics: Science and Systems XIX
会议简称RSS 2023
会议时间2023年7月10日至14日
会议地点韩国大邱
会议论文集Proceedings of Robotics: Science and Systems
会议论文DOI10.15607/RSS.2023.XIX.026
原会议版实验规模4个机器人操作基准、12项任务
扩展期刊The International Journal of Robotics Research
期刊简称IJRR
期刊卷期Volume 44,Issue 10–11
页码1684–1704
在线发表2024年10月11日
正式期次出版2025年9月
你上传的版本IJRR扩展版,19页
扩展版实验规模4个基准、15项任务
论文类型模仿学习、视觉运动策略、机器人操作
是否VLA严格来说不是
是否扩散模型是,扩散对象是机器人动作序列

完成团队:Columbia University / Shuran Song 团队(联合 Toyota Research Institute、MIT)

第二部分:先前最核心的问题“连续”和“离散”

Diffusion Policy 没有“动作 token”这一步,也不是像 RT-2 那样把连续输出“离散化”并自回归地一个 token 一个 token 生成。它直接把“一整段连续动作数值”当作 Diffusion 要生成的对象,通过“加噪训练 → 从噪声逐步去噪”得到连续 Action Sequence

(1)RT-2

假设真实动作是:

RT-2 会先离散化:……

最终变成:

然后把这些当成 action token:

这是 自回归生成

(2)Diffusion Policy

假设机器人不是只预测一步,而是预测未来 4 步,每一步为了简单我们只考虑:

例如:真实动作 Action Sequence 是:

第1步:向右 0.10,向前 0.02 第2步:向右 0.12,向前 0.03 第3步:向右 0.14,向前 0.04 第4步:向右 0.16,向前 0.05

注意这里全部都是:“连续浮点数”没有:bin/token/vocabulary,训练时,Diffusion Policy 会往整段动作里加噪声。加噪后可能变成:

模型得到:

  • :当前图像/机器人状态;

  • :带噪声的动作序列;

  • :当前 diffusion step。

然后网络做的事情不是:

“下一个 action token 是什么?”

而是:

“这段动作里面加了多少噪声?我应该往哪个方向修正?”

也就是预测:,训练目标就是让网络预测加入动作数据中的 noise,并用均方误差 MSE 训练(衡量预测值和真实值的差距)

(3)推理例子

假设现在机器人看到一个苹果,要伸手过去。Diffusion Policy 一开始甚至没有动作

它先随机生成一整段 Gaussian Noise:,例如:

完全是乱的。根据当前摄像头画面,第一次去噪:,可能变成:

继续:,到最后:

这就是机器人真正执行的连续动作序列。

论文 Figure 2 描述的就是:

从 Gaussian noise 开始,反复减去 noise-prediction network 给出的修正,最终得到 denoised action sequence,Diffusion Policy 则没有这个 tokenization / de-tokenization 环节,可以直接交给机器人控制系统进行执行。

RT-2Diffusion Policy
原始动作ContinuousContinuous
是否离散化是,256 bins
是否 Action Token
输出方式自回归 token prediction迭代去噪
生成顺序token1 → token2 → …整个 Action Sequence 一起 refinement
最终输出token 再反离散化直接连续 action
核心思想Action as Language TokenAction as Diffusion Sample

第三部分:先前方法的不足“其他问题”

(1)动作分布具有多模态性

假设机器人要绕过物体去抓杯子,可以:

  • 从左侧绕;
  • 从右侧绕;
  • 从上方接近。

对于同一个观测,可能存在多种正确动作:可能有多个峰值。

如果使用普通均方误差回归:

模型可能把“向左”和“向右”平均成“向前”,结果撞上障碍物。

因此:多个正确动作不能简单平均

(2)单步动作缺少时间一致性

假设一条轨迹可以从左边绕,也可以从右边绕。

如果每一步都独立预测:

模型可能出现:

第1步:向左 第2步:向右 第3步:又向左

虽然每一步单独看都可能合理,但连在一起会产生抖动。

机器人需要的是:这里的 H 叫:prediction horizon(预测窗口)

整段轨迹选择同一个模式,并保持时间连续。

一次预测未来一整段动作。

(3)机器人动作要求高精度

图像识别中稍微偏一点可能不影响类别判断,但机器人末端位置稍微偏差就可能

  • 抓空;
  • 碰撞;
  • 倾倒失败;
  • 工具没有接触目标;
  • 夹爪闭合过早。

所以动作模型既要表达多种可能性,又必须输出精确的连续控制量。


第四部分:此前方法的不足

Explicit:直接预测动作;Implicit:搜索最低能量动作;Diffusion:从噪声逐步去噪生成动作。

①显式策略直接由观测预测动作,速度快但容易把多个合理动作“平均掉”;②隐式策略用能量函数对候选动作评分,能表示多模态但需要搜索且训练较复杂;③Diffusion Policy 则从随机噪声出发,根据观测反复预测去噪方向,经过次迭代生成最终动作,既能表示多模态动作,又适合高维连续动作生成。

方法模型输出什么最终动作怎样得到
显式策略直接输出最终动作或动作分布参数一次前向生成
隐式策略输出候选动作的能量分数搜索能量最低的候选动作
Diffusion Policy输出带噪动作的噪声或修正方向从随机噪声开始,多次去噪生成

1. 显式策略:直接输出动作

最简单形式是:,可以用:

  • 普通回归;
  • 混合高斯;
  • 离散分类;
  • 聚类后预测偏移。

优点是推理快,只需要一次前向传播。

问题是:

  • 普通回归会平均多个动作模式;
  • 混合高斯需要预设模式数量;
  • 离散化在高维空间中组合数量迅速增长;
  • 容易发生模式坍缩;
  • 单步预测缺少时间一致性。

OpenVLA的动作token分类也属于广义的显式动作生成路线,只不过利用了大语言模型和大规模预训练。


2. 隐式策略:学习能量函数

隐式策略学习:,给定当前观测,动作有多合适?

这里使用“能量”表示分数:能量越低,动作越好,

也就是:把很多动作拿来评分,最后选能量最低的一个
概率分布可写为:

推理时搜索低能量动作:

它能够表示多个低能量区域,因此理论上可以表示多模态动作。

为了把能量转成概率,训练需要估计归一化常数:

通常依赖大量负样本。负样本不充分会造成:

  • 训练不稳定;
  • checkpoint性能剧烈波动;
  • 高维动作搜索困难;
  • 推理成本较高。

3. 论文的思路:不直接学习能量值,而学习梯度场

Diffusion Policy不直接预测最终动作,也不直接最小化一个显式能量函数,而是学习:

也就是:

当前带噪动作应该向哪个方向修改,才能更接近真实动作分布?

随后从随机噪声开始,沿着学习到的梯度场逐步去噪。

这就是: 随机动作噪声→多次条件去噪→合理动作序列

第五部分:Diffusion Policy的总体结构

(1)详细推理流程

总体流程:视觉观测历史→视觉编码器ResNet-18→视觉特征;与机器人状态共同形成观测条件

同时:随机高斯动作序列观测条件+→Diffusion网络反复去噪→连续动作序列

反复迭代:执行前若干步动作→重新获取观测→再次预测动作序列

可以简写为:其中:

表示最近个观测,每个​ 是某一个时刻的 observation,一个时刻的观测可以理解成:当前时刻的 RGB 图像;当前时刻的机器人状态,例如末端位置、姿态、关节状态等,比如

表示未来一段动作序列,其中是第个时刻的单个动作,如:

代表的是输入当前的观测历史,模型预测未来一段动作序列

图2展示了 Diffusion Policy 的完整流程:在时刻,模型输入最近步观测(图像序列 + Robot Pose),并以此作为条件;动作生成从随机高斯序列开始,通过噪声预测网络反复去噪次,最终得到连续动作序列。模型一次预测长度为的未来动作,但只执行前步,然后获取新观测并重新规划的网络架构可以选CNN 或 Transformer:图2(b)用 1D CNN + FiLM 实现去噪,图2(c)用 Transformer + Cross-Attention 实现去噪,两者目标相同:建模,将随机动作噪声逐步转化为可执行的连续动作序列。

(2)训练过程

①取出真实动作序列:

②随机选择一个扩散等级:越大越模糊

③采样高斯噪声:

④根据对应的噪声强度,直接构造第级的带噪动作

⑤送给diffusion模型,让网络模型预测加入的噪声

⑥计算均方误差,训练目标就是让这个 MSE 尽可能小:

监督目标不是直接预测真实动作,而是:预测动作中加入了什么噪声

只要网络能够准确预测噪声,推理时就能从随机噪声逐步恢复真实动作分布

通过最小化预测噪声与真实噪声的误差,使网络学会去噪;推理时即可从随机高斯动作出发,逐步生成符合观测的动作序列

(3)三个时间范围参数

①观测范围

表示模型查看最近多少个时刻的观测。表示模型输入当前图像和前一时刻图像,还可以包含机器人本体状态,这能帮助模型判断:

  • 物体正在向哪里移动;
  • 机器人是在靠近还是离开;
  • 夹爪是否已经发生运动;
  • 当前动作阶段。

论文实验发现,视觉策略通常使用较短但大于1的观测历史,多数任务的良好折中

②预测范围

模型一次生成未来:个动作。则一次预测:

这就是Action Chunking或者动作序列预测的基础。

③执行范围

虽然预测了​ 步,但机器人只执行前:步,然后重新观察。例如:,即:

预测未来16步 → 执行前8步 → 丢弃或用于热启动剩余动作 → 获取新图像 → 再预测16步

所以一般有:

(4)滚动时域控制

这种机制称为:

Receding Horizon Control,滚动时域控制。

它平衡了两件事。

①动作序列带来的平滑性

一次生成多步动作:

使这些动作在同一次扩散采样中共同生成,因此具有时间一致性。

②闭环重新规划带来的响应性

机器人不会把全部16步都盲目执行,而是执行前8步后重新观察:→重新规划

环境被干扰时,策略可以改正方向。

因此:预测长序列保证一致性+只执行短前缀保证响应性

动作执行范围太短时,动作容易缺少连续性;太长时,机器人对环境变化响应迟缓。消融实验发现,在多数测试任务中效果较好

(5)视觉输入怎样进入扩散模型

Diffusion Policy不是将图像也作为需要扩散生成的变量,而是只把图像作为条件:

视觉编码器主要版本使用:ResNet-18而不是VLM或大型ViT。

(6)两种动作扩散网络

论文设计了两种噪声预测网络。

①CNN-based Diffusion Policy

使用一维时间卷积网络处理动作序列。输入:是带噪的时间动作序列。

观测特征通过FiLM进入每一层:

FiLM根据观测和扩散时间步,生成缩放参数与偏置,对卷积特征进行调制

优点:

  • 稳定;
  • 容易训练;
  • 超参数相对不敏感;
  • 多数任务上可以作为默认方案。

不足:

  • 时间卷积倾向平滑低频信号;
  • 对快速、急剧变化的速度命令容易过度平滑。

②Transformer-based Diffusion Policy

输入的每个带噪动作被转换为动作embedding。扩散时间步使用正弦位置编码后加入序列。

观测特征通过Cross-Attention提供条件:Action Queries↔Observation Features

动作token之间使用因果注意力,只能看到当前和之前的动作位置,不能偷看后面的“未来位置”。

优点:

  • 更适合复杂任务;
  • 能表示快速动作变化;
  • 在许多状态输入实验中效果更强。

不足:

  • 对超参数更敏感;
  • 训练难度更高;
  • 需要更多调参。

论文建议:

新任务优先尝试CNN版本;当任务复杂或动作变化频率很高时,再尝试时间序列Diffusion Transformer。

(7)噪声调度与推理加速

①噪声调度

论文采用iDDPM中的:Squared Cosine Schedule

噪声调度决定每一步加入和去除多少噪声,也影响模型对动作序列中高频与低频信号的学习。

②DDIM推理

标准DDPM通常需要很多次去噪

论文训练时使用约100个扩散步,但真实机器人推理时使用DDIM减少去噪次数

正文报告,10次DDIM推理在RTX 3080上可以达到约:0.1秒

附录中具体真实任务的超参数表则列出16次评估去噪步。因此可以理解为不同报告或实验配置采用了10—16次左右的快速采样,而不是完整执行100次。

(8)训练数据和评测任务范围

Diffusion Policy没有像OpenVLA那样使用97万条跨机器人轨迹预训练一个通用模型。

它通常针对每个任务单独训练。

训练样本大致为:,其中:

  • :图像历史与机器人本体状态;
  • ​:对应的连续动作序列。

它属于:基于任务示范数据的行为克隆

而不是:

  • Web图文预训练;
  • 大规模VLM预训练;
  • 跨机器人通用策略预训练。

部分任务的数据规模如下:

任务示范数量
RoboMimic各任务约200—300条PH/MH示范
Push-T仿真200条
BlockPush1000条脚本示范
Franka Kitchen656条
真实Push-T136条
酱汁倾倒50条
酱汁摊开50条
Mug Flip250条
Egg Beater210条
Mat Unrolling162条
Shirt Folding284条

因此它的定位是:少量到中等规模示范下的任务专用策略,而不是通用基础机器人模型。

表3说明了Diffusion Policy 的评测任务覆盖范围很广:它同时包含仿真和真实世界任务,涉及不同机器人数量、物体数量、动作维度、示范数据规模、最长执行步数,以及是否依赖图像输入和是否需要高精度操作。任务从简单的 Lift、Can、Push-T,到双臂 Transport、ToolHang、Kitchen,再到真实世界中的倒液体、摊煎饼和翻杯子等,说明作者不是只在单一任务上验证方法,而是在不同复杂度、不同动作维度、不同精度要求和不同环境类型下系统评估 Diffusion Policy 的通用性能。

第六部分:主实验效果

(1)RoboMimic综合操作能力

包含:

  • Lift;
  • Can;
  • Square;
  • Transport;
  • ToolHang。

每个任务包含不同示范类型:

  • PH:熟练人类示范;
  • MH:混合水平、多操作者示范。

部分任务同时测试:

  • 状态输入策略;
  • 图像输入策略。

对比方法包括:

  • LSTM-GMM;
  • IBC;
  • BET;
  • DiffusionPolicy-C;
  • DiffusionPolicy-T。

结果显示,Diffusion Policy在简单任务中通常接近满成功率,在Transport和ToolHang等复杂任务上优势更明显。

表1比较了不同策略在状态输入条件下的仿真任务表现,涵盖Lift、Can、Square、Transport、ToolHang和Push-T任务。PH表示熟练人类示范数据,MH表示由不同熟练程度操作者组成的混合人类示范数据。每个单元格均采用“最佳checkpoint性能/最后10个checkpoint平均性能”的格式,例如 1.00/0.981.00/0.981.00/0.98 表示最佳checkpoint成功率为100%,最后10个checkpoint的平均成功率为98%,因此该表既反映模型的最高性能,也反映训练后期的稳定程度。Lift和Can等简单任务已经接近饱和,而在Transport、ToolHang等复杂任务中,Diffusion Policy优势更加明显,例如ToolHang中DiffusionPolicy-T达到 1.00/0.871.00/0.871.00/0.87,明显高于LSTM-GMM的 0.67/0.310.67/0.310.67/0.31 和BET的 0.58/0.200.58/0.200.58/0.20。结果说明Diffusion Policy不仅能够达到更高的最佳性能,而且在多数任务上后期checkpoint也更加稳定。

表2将输入由环境真实状态改为摄像头图像,并继续采用“最佳checkpoint性能/最后10个checkpoint平均性能”的格式。与状态输入相比,图像策略还需要从像素中识别物体位置、姿态和空间关系,因此任务难度更高。结果显示,Diffusion Policy在视觉输入条件下依然普遍优于LSTM-GMM和IBC,尤其在Transport、ToolHang和Push-T等复杂任务中,CNN版本表现突出:Transport的PH和MH结果分别达到 1.00/0.931.00/0.931.00/0.93 和 0.89/0.690.89/0.690.89/0.69,ToolHang达到 0.95/0.730.95/0.730.95/0.73,Push-T达到 0.91/0.840.91/0.840.91/0.84。该表还说明CNN版本并不一定弱于Transformer版本,在包含复杂视觉信息的任务中,CNN-based Diffusion Policy往往更加稳定和易于训练。


(2)Push-T多模态 + 时序一致性​

任务是用一个圆形末端,将T形物体推到目标区域。

难点包括:

  • 接触动力学;
  • 精确推送;
  • 左右两条可行路径;
  • 高精度终态。

Diffusion Policy能表示左右两种模式,并在一次执行中保持一致。

图3比较了不同方法在 Push-T 任务中的多模态动作轨迹。末端执行器既可从左侧也可从右侧绕行,两种都是合理动作模式。Diffusion Policy 能同时学习左右两种模式,并在单次 rollout 中稳定保持一种路线;LSTM-GMM 和 IBC 更偏向单一模式,而 BET 虽能产生多种动作方向,却容易在模式间切换、缺乏时序一致性。因此,该图说明 Diffusion Policy既能建模多模态动作分布,又能保持整段动作轨迹的一致性


(3)BlockPush多目标 + 长时序规划​

如表4所示:机器人需要将两个方块分别推入两个目标区域。

可以先推任意一个方块,因此存在长时程多模态:先红后绿或先绿后红

DiffusionPolicy-T在完成两个方块的指标上达到约0.94,明显高于大多数基线。


(4)Franka Kitchen复杂连续任务 + 长时序控制

如表4所示:环境包含7个可交互对象,每条示范随机完成其中4项。

任务完成顺序不固定,因此具有长时程多模态性。

Diffusion Policy在完成4项子任务的困难指标上大幅超过基线,说明它不仅能表示短期左右选择,也能表示不同子任务顺序。

表4专门评估Diffusion Policy处理长时程、多阶段和多模态任务的能力。在BlockPush中,p1表示成功将至少1个方块推入目标区域的频率,p2​表示成功将两个方块都推入目标区域的频率;因为两个方块的完成顺序可以不同,p2​更能检验长时程多模态能力。DiffusionPolicy-T在BlockPush上取得 p1=0.99、p2=0.94,明显高于BET的 0.96、0.71。在Kitchen中,px表示一次rollout中完成至少 x个厨房子任务的频率,越靠右的指标越困难;DiffusionPolicy-C在 p2、p3、p4上分别达到 1.00、1.00、0.99,表现最佳。该结果说明Transformer版本更擅长BlockPush中的任务顺序多模态,而CNN版本在Kitchen多阶段任务中更强,也说明两种网络结构不存在绝对统一的优劣关系。

第七部分:视觉编码器消融

论文比较:

  • ResNet-18;
  • ResNet-34;
  • ViT-B/16。

每种结构采用三种训练方法:

  • 从头训练;
  • 冻结预训练视觉编码器;
  • 微调预训练视觉编码器。

结果:

视觉编码器从头训练冻结预训练微调预训练
ResNet-18,ImageNet-21k0.940.580.92
ResNet-34,ImageNet-21k0.920.400.94
ViT-B/16,CLIP0.220.700.98

主要结论:

  • ResNet从头训练已经很强;
  • 冻结视觉编码器普遍较差;
  • ViT从头训练因数据少而困难;
  • 预训练ViT经过微调后效果最好。

这与OpenVLA的结论相似:通用视觉特征不能直接满足精细控制,视觉编码器需要针对动作任务适配

表5在RoboMimic的Square-PH任务上比较了ResNet-18、ResNet-34和ViT-B/16三种视觉编码器,并分别测试从头训练、冻结预训练编码器和微调预训练编码器三种方案。ResNet-18和ResNet-34从头训练已经分别达到0.94和0.92,说明中等规模CNN可以在有限机器人数据上有效学习控制相关视觉特征;但冻结ImageNet预训练权重后,性能分别下降到0.58和0.40,表明通用图像分类特征不能直接满足精细机器人控制。ViT-B/16从头训练仅为0.22,说明有限示范数据不足以稳定训练较大的视觉Transformer;冻结CLIP编码器后提高到0.70,而对CLIP预训练ViT进行任务微调后达到全表最高的0.98。因此,该表的核心结论不是“预训练一定更好”,而是视觉预训练必须继续针对机器人动作任务进行适配和微调。

第八部分:真实Push-T实验

真实Push-T比仿真增加了:

  • 多阶段执行;
  • 推完T形块后,末端还要移到终点区域;
  • 最终时刻才计算IoU;
  • 需要细微调整;
  • 存在视觉遮挡与真实接触误差。

结果如下:

方法成功率
Human Demo100%
IBC position0%
IBC velocity0%
LSTM-GMM position20%
LSTM-GMM velocity10%
Diffusion Transformer,端到端65%
Diffusion CNN,冻结ImageNet15%
Diffusion CNN,冻结R3M80%
Diffusion CNN,端到端95%

端到端CNN Diffusion Policy:

  • 成功率95%;
  • 平均IoU约0.80;
  • 人类示范平均IoU约0.84。

它还能够在以下干扰下重新规划:

  • 相机被手遮挡3秒;
  • 推送过程中人为移动T形块;
  • 末端即将离开时再次移动T形块。

这说明滚动时域控制并不是纯开环执行,而具有持续反馈修正能力。

表6展示了真实Push-T实验的硬件配置、任务流程和量化结果。机器人控制使用前视摄像头和腕部摄像头,顶部摄像头仅用于最终评估;任务要求机器人先将红色T形物体精确推入目标轮廓区域,再将末端执行器移动到指定终点区域。表中IoU衡量T形物体终态与目标区域的重合程度,Succ%表示满足成功阈值的比例,Dur.表示平均任务时长。端到端CNN Diffusion Policy取得 IoU=0.80、成功率=0.95、平均时长=22.9IoU=0.80、成功率=0.95、平均时长=22.9IoU=0.80、成功率=0.95、平均时长=22.9 秒,已经接近人类示范的 0.84、1.00、20.30.84、1.00、20.30.84、1.00、20.3 秒;冻结R3M视觉编码器的版本达到 0.66、0.800.66、0.800.66、0.80,Transformer端到端版本达到 0.53、0.650.53、0.650.53、0.65,而冻结ImageNet视觉编码器仅达到 0.24、0.150.24、0.150.24、0.15。IBC的位置和速度控制版本成功率均为0,LSTM-GMM也只有20%和10%。该结果说明端到端视觉训练、动作序列生成和闭环重新规划共同构成了真实Push-T中的主要性能优势。

图7对比了端到端Diffusion Policy、使用R3M特征的Diffusion Policy、LSTM-GMM和IBC在真实Push-T任务中的执行过程。前四列展示各方法在关键阶段的动作轨迹,最后一列将多次rollout的最终图像叠加平均,用于观察终态的一致性:若不同rollout最终位置接近,平均图像会较清晰;若终态分散,则会出现明显重影。端到端Diffusion Policy能够将T形物体稳定推入目标区域,并正确前往终点位置,其平均终态最清晰;R3M版本虽然初始阶段可能卡住,但随后能够恢复并完成任务;LSTM-GMM在调整T形物体时未能正确到达终点区,机械臂还遮挡了评估视角;IBC则过早结束推动阶段。该图从轨迹和终态一致性两个方面解释了Table 6中不同方法成功率差异的具体原因。

图8测试了Diffusion Policy在三种外部扰动下的闭环恢复能力。左侧实验中,摄像头被手遮挡约3秒,机器人动作出现轻微抖动,但重新获得有效视觉信息后仍能继续完成任务;中间实验中,T形物体在推动阶段被人为移动,策略检测到物体位置变化后立即重新调整推动方向,并将其重新送入目标区域;右侧实验中,机器人已经准备前往末端终点区时,T形物体再次被移出目标位置,策略放弃原有“前往终点”的计划,重新返回并修正物体位置。最后一种恢复行为没有在示范中直接出现,说明滚动时域控制使策略能够根据新观测重新规划,而不是机械执行最初生成的整段动作。该图属于定性鲁棒性展示,能够证明存在恢复能力,但不能单独代表大规模统计意义上的扰动成功率。

第九部分:Mug Flipping实验

任务要求:

  1. 把随机姿态的杯子翻转,使杯口朝下;
  2. 调整杯柄,使其朝向左侧。

这个任务高度多模态,因为可以:

  • 直接抓取翻转;
  • 先推动再抓;
  • 正手抓;
  • 反手抓;
  • 重新抓取;
  • 推动杯柄调整方向。

结果:

方法成功率
Human100%
LSTM-GMM0%
Diffusion Policy90%

Diffusion Policy还出现了一些示范中没有明确出现的恢复行为,例如掉落后重新抓取、连续多次推动杯柄。

图9展示了六自由度Mug Flipping任务。机器人首先需要抓取随机姿态放置的杯子,并将其翻转为杯口朝下;随后还要继续旋转和调整杯子,使杯柄最终指向左侧。该任务不仅涉及三维位置与旋转控制,还允许抓取、推动、重新抓取和不同手腕姿态等多种合理动作模式,因此比二维Push-T更加复杂。实验中人类示范成功率为1.0,LSTM-GMM为0.0,Diffusion Policy达到0.9。结果表明Diffusion Policy能够将连续六自由度动作、多个中间阶段和多模态操作方式统一建模,并显著优于传统单步行为克隆策略。

第十部分:酱汁倾倒和摊开

两项任务测试:

  • 流体和非刚体对象;
  • 六自由度控制;
  • 周期性运动;
  • 自主判断何时结束。

结果使用覆盖率评价:

任务人类Diffusion Policy
倾倒酱汁0.790.74
摊开酱汁0.790.77

Diffusion Policy接近人类水平,并能在操作中有人移动披萨面团时重新调整。

LSTM-GMM常见问题包括:

  • 舀到酱汁后无法抬起;
  • 过度学习停顿动作;
  • 在周期性动作中卡住。

图10包含酱汁倾倒和周期性摊开两项真实机器人任务。左侧倾倒任务要求机器人依次完成用勺子舀取酱汁、移动至披萨中心、倾倒酱汁和抬起勺子结束任务四个阶段;右侧摊开任务要求机器人移动至酱汁中心、沿螺旋轨迹周期性摊开酱汁,并最终抬起勺子停止。倾倒任务使用IoU和成功率评估,Diffusion Policy达到 0.74、0.790.74、0.790.74、0.79,接近人类的 0.79、1.000.79、1.000.79、1.00,而LSTM-GMM仅为 0.06、0.000.06、0.000.06、0.00;摊开任务使用覆盖率和成功率评估,Diffusion Policy达到 0.77、1.000.77、1.000.77、1.00,同样接近人类的 0.79、1.000.79、1.000.79、1.00,LSTM-GMM则只有 0.27、0.000.27、0.000.27、0.00。该图说明Diffusion Policy不仅适用于刚体抓取和推动,也能处理液体、周期性运动、示范中的停顿和自主结束任务等连续控制难题。

第十一部分:扩展版新增双臂任务

1. Egg Beater

任务包括:

  • 调整碗的位置;
  • 右臂抓起打蛋器;
  • 放进碗中;
  • 左臂抓住摇柄;
  • 协调双臂转动至少三圈。

训练示范:

210条

成功率:

55%

主要失败包括:

  • 初始位置超出训练分布;
  • 没抓住摇柄;
  • 转动过程中失去抓握。

论文还发现,这项任务的数据采集非常依赖触觉反馈;没有触觉反馈时,专家在10次示范尝试中没有一次完整成功。

图11展示了双臂Egg Beater任务的完整操作流程:机器人首先在必要时推动碗,使其进入合适位置;随后右臂靠近并抓起打蛋器,将其放入碗中;左臂再靠近并抓住打蛋器的摇柄,最后双臂协同完成至少三圈旋转。该任务要求两条机械臂在不同阶段承担不同角色,同时保持打蛋器、碗和摇柄之间的接触关系,是典型的高维、长时程双臂协同任务。论文使用210条示范进行训练,最终成功率为55%,主要失败来自打蛋器初始位置超出训练分布、左臂未抓住摇柄或旋转过程中失去抓握。该图主要用于展示任务阶段和双臂协调要求,而不是多方法之间的定量比较。


2. Mat Unrolling

任务要求根据垫子初始卷曲方向,使用左臂或右臂开始展开,然后双臂协调摆正。

训练示范:

162条

成功率:

75%

主要失败模式是第一次抓取失败后,策略容易重复同样动作而无法恢复。

图12展示了双臂Mat Unrolling任务的六个阶段:机器人根据垫子的初始卷曲方向选择左臂或右臂抓住一侧,抬起并展开垫子;随后确保垫子两侧均被抓住,利用双臂抬起和调整垫子的整体姿态,最后将其平行于桌面、尽量居中放置并释放。由于垫子可能从不同方向卷起,机器人必须在任务开始时选择不同的手臂和展开路线,因此任务同时包含动作模式选择、非刚体操作和双臂协调。论文使用162条示范训练,成功率达到75%;主要失败模式是第一次抓取失败后,策略容易重复相似动作而无法有效恢复。


3. Shirt Folding

最长可包含9个阶段:

  • 抓取一侧袖子;
  • 折叠;
  • 拖近衣服;
  • 折另一侧袖子;
  • 调整朝向;
  • 从衣领处对折;
  • 移到桌面中央;
  • 整理衣服;
  • 双臂离开。

训练示范:

284条

成功率:

75%

主要失败包括:

  • 袖口初始抓取失败;
  • 颜色和形状变化;
  • 任务完成后仍持续调整,无法及时停止。

图13展示了扩展版中时程最长的双臂Shirt Folding任务。机器人首先使用双臂抓住距离最近的一侧袖子并完成折叠,必要时将衬衫拖近;随后抓取另一侧袖子并重复折叠,再调整衬衫朝向;之后从衣领位置抓取并将衬衫整体对折,将折叠后的衬衫拖至桌面中央,最后整理表面并移开双臂。完整任务最多包含9个连续阶段,需要处理布料形变、双臂同步抓取、任务阶段切换和最终停止判断。论文使用284条示范训练,成功率为75%;主要失败包括袖口初始抓取不准、衬衫颜色或形状超出训练分布,以及任务已经完成后策略仍继续调整。该图主要证明Diffusion Policy能够扩展到复杂非刚体和长时程双臂操作,但也暴露了失败检测与任务终止能力仍然有限。


第十二部分:关键消融结论

图5研究了动作执行范围与系统延迟对Diffusion Policy性能的影响。左图横轴为Action Horizon,即模型每次重新规划前连续执行的动作步数 Ta,取值从1增加到128;纵轴表示相对于每个任务最高成功率的性能变化,因此0代表该任务的最佳结果,负数表示相对于最佳结果下降了多少。Push-T和Square两个任务都在动作范围约为8步时取得最佳性能:当动作范围过短时,模型频繁重新规划,动作序列缺少时间一致性;当动作范围过长时,机器人长时间按照旧计划开环执行,对环境变化的响应能力下降,其中Square在64步和128步时下降尤其明显。右图横轴为延迟步数,即从最后一帧观测到第一个动作能够实际执行之间相隔多少个控制步;结果显示,在约0至4步延迟范围内性能下降较小,延迟继续增加后成功率开始明显下降,且Square比Push-T更敏感。这说明基于动作序列预测和位置控制的Diffusion Policy具有一定延迟鲁棒性,但过长的动作执行范围和过大的系统延迟仍会削弱闭环响应能力。

1. 动作范围

论文发现:

Ta=8

在多数测试任务中是较好的折中。

太短:

  • 动作缺少一致性;
  • 容易受单步噪声影响。

太长:

  • 响应环境变化慢;
  • 开环风险增加。

2. 延迟鲁棒性

位置控制的Diffusion Policy在仿真实验中可以承受约4个时间步延迟而保持较高性能。

3. 数据效率

在不同示范数量下,Diffusion Policy始终优于LSTM-GMM,但论文仍明确承认:示范不足时,它也会受到行为克隆的数据覆盖问题影响。

4. 视觉历史

状态输入对观测历史长度不太敏感;视觉输入通常偏好较短的历史,约2帧是良好折中。

5. CNN与Transformer

  • CNN:稳定,默认优先;
  • Transformer:复杂、高频任务上可能更强,但调参困难。

6. 训练稳定性

图6比较了Diffusion Policy和IBC在训练过程中的稳定性。左图是在真实Push-T图像输入任务上的动作预测均方误差,横轴为训练epoch,纵轴为利用当前模型推断训练动作时的MSE;Diffusion Policy的误差在训练早期快速下降并稳定接近0,而IBC的动作推断误差虽然在早期有所降低,但随后长期剧烈波动,说明其能量模型即使训练损失下降,也不一定能越来越准确地恢复专家动作。右图是在仿真Push-T状态输入任务上的实际成功率,Diffusion Policy很快接近100%并在后续训练中保持稳定,而IBC的成功率在约0.65至0.95之间持续振荡,并在部分checkpoint出现明显下降。该结果说明Diffusion Policy的训练性能和实际rollout结果更加稳定,后期checkpoint通常能够可靠使用;IBC则可能出现训练目标改善但实际控制性能波动的问题,因此需要在真实机器人或仿真环境中反复评估多个checkpoint,增加了模型选择的难度。

第十三部分:Limitation

Limitation ①:仍然是 Behavior Cloning

Diffusion Policy 只是把:

Policy Representation

做得更强。

但数据还是 demonstration。

所以:

Demonstration 不好 ↓ Diffusion Policy 也学不好

它没有从:

  • failure data
  • negative data
  • online interaction

里真正学。

论文明确指出 inadequate demonstration data 仍会导致 suboptimal performance。


Limitation ②:Diffusion 推理慢

这是以后特别重要的一个问题。

普通 regression:

forward once ↓ action

Diffusion:

Noise ↓ denoise ↓ denoise ↓ denoise ↓ ... ↓ action

必须多步 inference。

所以:

计算成本和 latency 更高。

论文实际用了 DDIM,把:

100 training diffusion steps

减少成:

10 inference steps,

在 NVIDIA 3080 上做到约:

0.1 s inference latency

但论文结论仍承认:

高频控制任务里 latency 可能不够。

这个 limitation 后面会非常重要。


第十四部分:Limitation → Next Paper:Octo

Diffusion Policy 解决的是:

Action 如何生成?

Observation ↓ Conditional Diffusion ↓ Continuous Multimodal Action Sequence

但是它基本还是:

task/domain-specific visuomotor policy

它没有解决:

  • cross-robot scaling
  • generalist policy
  • flexible task interfaces
  • 新 robot 快速 adaptation

而你刚刚看过 Open X:

Open X ↓ Cross-Embodiment Data ↓ 不同 Robot Experience 可以共享

于是 Octo 实际上是两条思想的结合:

Open X-Embodiment Cross-Robot Data Scaling \ \ → OCTO / Diffusion Policy Continuous Multimodal Action