生成式 AI 最近彻底改变了我们要创建图像、视频和文本的方式。像 DALL-E 和 Sora 这样的模型依赖于扩散模型——这种系统能够学习复杂的高维分布并生成多样化、高质量的输出。自然地,机器人学家开始思考: 我们能用同样的技术来控制机器人吗?
理想情况下,机器人可以像图像生成器“构想”日落一样轻松地“构想”出一条穿过复杂环境的路径。但这里存在一个问题。如果图像生成器给一只手画了第六根手指,那看起来很怪异。但如果机器人规划器让轨迹穿过墙壁,机器人就会坠毁。
标准的扩散模型缺乏显式的“约束感知”。它们生成的数据看起来像训练集,但它们本身并不理解物理硬定律或新出现的障碍物。这种局限性使得它们在自动驾驶等安全关键型应用中充满风险。
在这篇文章中,我们将深入探讨一篇弥补这一差距的论文: 约束感知扩散引导 (Constraint-Aware Diffusion Guidance,简称 CoDiG) 。 研究人员提出了一个框架,迫使扩散模型在推理过程中遵守安全约束,而无需为每一个新障碍物重新训练模型。为了证明其有效性,他们在最苛刻的环境之一进行了测试: 微型自动驾驶赛车。

挑战: 幻觉与坚硬的墙壁
要理解这项研究的重要性,我们首先需要了解扩散模型通常是如何工作的,以及它们在机器人技术中为何会失效。
扩散模型的训练旨在逆转一个破坏过程。在训练期间,它获取好数据 (如安全的驾驶轨迹) ,并逐渐添加噪声,直到数据变成随机静电噪声。模型学习如何逆转这一过程——从噪声开始,一步步去噪以恢复清晰的数据。
然而,在机器人技术中,“清晰的数据”是不够的。我们需要可行的数据。一条轨迹必须:
- 遵守车辆动力学 (你不能瞬间转弯) 。
- 避开障碍物 (你不能穿墙而过) 。
现有的解决尝试通常分为两类:
- 训练时约束: 在训练期间教模型识别障碍物。问题在于?如果机器人遇到了未曾训练过的新障碍物配置,它可能会失败。
- 推理时投影: 让模型生成路径,然后使用求解器将其“投影”回安全区域。这虽然有效,但计算量大,对于实时赛车来说通常太慢。
CoDiG 采取了不同的方法。它修改了数学上的“分数函数 (score function) ” (指导去噪的梯度) ,加入了一个“障碍函数”。可以将这个障碍想象成一个力场: 当扩散模型试图确定一条轨迹时,障碍函数会轻轻地 (或强力地) 将路径推离障碍物。
背景: 基于分数的生成模型
在介绍解决方案之前,让我们先建立数学基础。作者从随机微分方程 (SDEs) 的角度来看待扩散过程。
前向过程
想象一条清晰的轨迹 \(x_0\)。我们在 \(0\) 到 \(T\) 的时间 \(t\) 内逐渐破坏它。这由一个前向 SDE 建模:

这里,\(f\) 是漂移项 (拉动数据) ,\(g\) 是扩散项 (添加噪声) 。一个常见的选择是 Ornstein–Uhlenbeck (OU) 过程,它在添加噪声的同时将数据拉向均值 (通常为零) 。

由于这个过程定义明确,我们可以计算在任何时间 \(t\) 时噪声数据的概率分布。随着 \(t\) 接近 \(T\),数据变得与纯高斯噪声无法区分。
逆向过程
神奇的事情发生在逆向过程中。为了生成新数据,我们从噪声 (\(x_T\)) 开始,求解逆向时间 SDE 以回到 \(x_0\)。这个逆向过程的方程是:

仔细看括号内的项: \(\nabla_x \log p_t(x_t)\)。这就是分数函数 (score function) 。 它指向数据密度更高的方向——本质上是在告诉噪声如何重新排列自己以看起来像一条有效的轨迹。
由于我们不知道所有安全轨迹的真实分布,我们训练一个神经网络 (表示为 \(s_\theta\)) 来近似这个分数。

一旦训练完成,我们可以将这个网络插入逆向 SDE 并生成轨迹。然而,这个标准公式无法接受“新”的约束,比如赛道上突然出现的障碍物。
CoDiG 方法: 用数学来转向
这篇论文的核心贡献是改变了逆向采样的发生方式。研究人员并没有仅仅遵循学习到的分数 (它只知道训练数据) ,而是在过程中注入了关于约束的显式知识。
定义约束
设 \(\mathcal{C}\) 为“可行区域”——即赛道上安全驾驶的部分。

如果我们希望模型仅在该区域内生成样本,我们实际上是在寻求一个条件分布: \(p_t(x_t | \mathcal{C})\)。研究人员提出了一种无需重新训练即可对此进行建模的巧妙方法。他们将受约束的分布定义为原始分布乘以一个障碍函数 。

这里,\(V(x_t; \mathcal{C})\) 是一个障碍势能。它是一个数学函数,如果轨迹安全,其返回值接近于零;但如果轨迹撞上障碍物,其值会飙升。项 \(\gamma_t\) 是一个权重,控制这个“力场”在时间 \(t\) 的强度。
梯度偏移
这个公式的美妙之处在于当我们取“分数” (对数概率的梯度) 时发生的事情。

这个简单的方程是整个框架的关键。新的分数仅仅是原始学习到的分数减去障碍函数的梯度 。
- 原始分数 (\(\nabla_x \log p_t\)): “这看起来像是一条逼真的驾驶路径。”
- 障碍梯度 (\(\nabla_x V\)): “离那堵墙远点!”
通过结合它们,我们得到了一个可以在推理期间求解的修正逆向 SDE:

这个方程告诉我们在去噪循环的每一步如何更新轨迹。神经网络提供真实感,而障碍函数提供安全性。
为赛车设计障碍函数
对于自动驾驶赛车,约束是物理性的。汽车必须保持在赛道上并避开障碍物。研究人员设计了一个特定的障碍函数 \(V\),由两部分组成:

- 安全性 (第一部分) : 一个指示函数,如果横向位置 \(\hat{y}\) 超出可行区域 \(\mathcal{C}\) 就会激活。这将汽车推离障碍物。
- 可行性与最优性 (第二部分) : 该项惩罚偏离“标称”路径的行为。它有助于解释赛道曲率 (在局部坐标变换中丢失的信息) ,并鼓励汽车采取时间最优路线 (安全地切弯) 。
可视化影响
这个数学公式真的能改变轨迹吗?差异是惊人的。
在下图中,你可以看到去噪过程。在左侧 (a),标准模型生成了一个有效的环路,但它擦到了障碍物 (灰色方块) 。在右侧 (b),应用障碍函数后,轨迹在障碍物周围形成了一条清晰的曲线。

注意在过程的早期 (中间列) ,引导模型 (b) 已经开始重塑轨迹的“流向”以避开禁区。
实时执行: 对速度的需求
求解微分方程 1000 次来生成一条路径对于生成图像来说没问题,但高速移动的赛车需要即刻做出决定。标准的扩散过程可能以 0.25 Hz (每 4 秒一个计划) 运行——这对于躲避动态障碍物来说太慢了。
为了解决这个问题,作者引入了热启动策略 (Warm-Start Strategy) 。
洞察
在机器人技术中,世界不会瞬间改变。如果你在时间 \(T\) 规划了一条路径,你在时间 \(T + 0.01s\) 需要的路径可能非常相似。
CoDiG 不再每次都从纯粹的随机噪声开始扩散过程,而是提取上一次的解 , 向其中添加少量噪声,然后仅进行几步去噪过程。
这有两个目的:
- 速度: 它极大地减少了所需的步骤数 (例如,从 1000 步减少到 50 步) ,将频率提高到 2.5 Hz。
- 一致性: 它确保新计划与旧计划没有巨大差异,这对于平滑控制非常重要。

在上图中,你可以看到热启动轨迹 (红色) 虽然稍微粗糙一些,但在安全性和形状上与全扩散轨迹 (黑色) 实际上是相同的,同时计算成本低到足以用于实时应用。
实验设置与结果
团队在定制的 1:28 比例赛车上部署了 CoDiG。系统架构包含几个移动部分:
- 感知: 地图和障碍物检测器。
- 扩散规划器: CoDiG 模型生成参考路径 (\(y_{ref}\))。
- 跟踪 MPC: 模型预测控制器接收参考路径,并计算精确的转向和油门指令 (\(u\)) 以进行跟随。

数据集构建
为了训练模型,他们不仅仅是开着车到处跑。他们使用最优控制求解器为数千种随机障碍物配置生成数学上完美的“专家”轨迹。
为了提高数据效率,他们将全局赛道坐标转换为 Frenet 坐标系——这是一个相对于中心线将赛道拉直的坐标系统。

这种转换 (如面板 c 所示) 允许模型进行泛化。它不需要记住 3 号弯道的具体曲线;它只需要学会“如何从左侧绕过障碍物”。
现实世界避障
终极测试是在带有真实物理障碍物的赛道上部署该系统。结果令人印象深刻。该系统在实验试验中实现了 100% 的避障成功率 。

在上图中,你可以看到事件的序列:
- 侵入: 一个障碍物 (黑色圆圈) 阻挡了路径。
- 重规划: CoDiG 瞬间将红色参考线弯曲以绕过障碍物。
- 执行: 黑色虚线 (汽车的实际预测运动) 平滑地跟随红线。
该系统还与离线时间最优求解器进行了比较。CoDiG 生成的轨迹被发现是接近时间最优的,这意味着安全约束并没有迫使汽车驾驶得过于保守或缓慢。
结论
CoDiG 框架代表了生成式 AI 在机器人技术领域迈出的重要一步。通过将障碍函数直接集成到扩散采样过程中,研究人员创造了一种既能利用扩散模型强大的分布学习能力,又不会牺牲物理系统所需安全保障的方法。
这项工作的主要收获包括:
- 通过引导实现安全: 你不需要针对每一种可能的碰撞场景训练模型。你可以在推理过程中通过数学方式“引导”通用模型走向安全。
- 热启动至关重要: 对于实时机器人技术,复用上一次的解可以加速生成过程,足以使扩散模型在控制循环中变得实用。
- 泛化能力: 通过结合局部坐标变换 (Frenet 坐标系) 与约束引导,一个在有限数据上训练的模型可以导航复杂的、未曾见过的环境。
展望未来,像 CoDiG 这样的技术表明,生成式 AI 的“幻觉”问题可以通过将这些模型包裹在控制理论坚定的数学怀抱中来有效解决。对于自动驾驶赛车来说,这意味着开得快、看起来酷,而且——最重要的是——不会撞车。
](https://deep-paper.org/en/paper/2505.13131/images/cover.png)