Diffusion Policy 代码讲解:用 DDPM 给机器人「生成」一连串动作

「Diffusion Policy 把『给一段观察、出一段动作序列』做成条件扩散生成:噪声动作被 ConditionalUnet1D 逐步去噪,训练是 DDPM 标准损失(预测加到数据上的噪声、MSE),推理是 DDIM 多步采样(20~100 步),归一化必做且推理要 unnormalize 回真实量纲。本文顺着 real-stanford 官方仓库,从名词速查、架构总览、项目结构,到 ConditionalUnet1D / diffusion / diffusion_unet1d_policy / base_dataset / train_diffusion_policy 逐文件逐函数细讲,并穿插『为什么多步动作更稳、为什么扩散天然多模态、为什么归一化是命门』等认知,最后落到它作为 DiffusionDrive / Diffusion Planner / pi0 方法论母体的位置,是一篇面向零基础、超详细、篇幅足够长的工程向代码讲解」

2026年7月20日 · 10 分钟 · 2044 字

pi0 代码讲解:通用 VLA 的「VLM 主干 + Flow Matching 动作专家」

「pi0 用 Google 的 PaliGemma 视觉语言模型当『懂场景、懂语言』的通用感知-语义主干,再并联挂一个独立的 Flow Matching 动作专家,通过 cross-attention 从 VLM 取特征,在 10 步 ODE Euler 积分内把随机噪声动作流到真实连续动作;本文顺着 Physical-Intelligence 官方 openpi 仓库,逐文件逐函数把 pi0.py 总装两塔、paligemma.py 封装主干、action_expert.py 的 Flow Matching 去噪、trainer.py 的向量场 MSE 损失、runtime.py 的 10 步 ODE 生成、transforms 里的动作 tokenize 与冻结策略讲透,并与 AutoVLA / DriveVLA-W0 做对照,最后把本系列九篇串成一条端到端自动驾驶与通用机器人 VLA 的演进线」

2026年7月20日 · 7 分钟 · 1330 字