想象一下你正走在一条拥挤的走廊上。一位朋友向你喊道: “嘿,追上 Alice,但一定要从 Bob 左边超过去,并且尽量走在地毯右侧。”
对于人类来说,这条指令虽然复杂但完全可以应付。我们会本能地将其分解:
- 定位 Alice (目标) 。
- 定位 Bob 并规划从左侧超车 (约束 A) 。
- 识别地毯并保持在右侧 (约束 B) 。
我们同时执行这些行为。然而,对于机器人来说,这是一场组合复杂性的噩梦。标准的机器人学习方法通常试图为每种可能的情况学习一个单一的策略。但是,随着潜在约束数量的增加——让行、跟随、避让、左/右侧通行——组合的数量呈指数级爆炸。针对每种可能的指令排列组合来训练机器人,在计算上是不可能的。
在这篇文章中,我们将深入探讨 ComposableNav , 这篇研究论文为这个问题提出了一个优雅的解决方案。ComposableNav 不是一次性学习所有内容,而是学习单独的“原子”技能 (运动基元) ,并在运行时利用 扩散模型 (Diffusion Models) 的数学特性将它们“相加”。

如上图 1 所示,该系统接收一条复杂指令,将其分解为基元 (如“左侧通行”和“右侧通行”) ,并将它们融合为一条能让各方都满意的平滑轨迹。
核心问题: 组合爆炸
在人类空间中运行的机器人 (社会导航) 需要遵循自然语言指令。目前的方法通常分为两类:
- 基于规则的系统: 这些系统很脆弱且难以扩展。
- 端到端学习 (RL/模仿学习) : 这些需要海量的数据集。
基于学习的方法的问题在于规范空间 (specification space) 。 如果一个机器人掌握了 5 种不同的技能,一条指令可能要求这些技能的任意组合。
- “做 A。”
- “做 A 和 B。”
- “做 A、C 和 D。”
如果你试图为“一边做 A 一边做 B”训练一个单独的策略,你很快就会耗尽数据和算力。
ComposableNav 颠覆了这一范式。其核心直觉是: 通过独立满足其组成规范来遵循指令。
如果我们把“左侧通行”和“给行人让行”视为可能的轨迹上的独立概率分布,我们能否直接组合这些分布?对于标准的神经网络来说,这很难。但对于扩散模型,这竟然出奇地优雅。
背景: 扩散模型与机器人技术
要理解 ComposableNav,我们需要快速了解一下机器人技术背景下的扩散模型。
标准的扩散模型 (如 DALL-E 或 Midjourney 中使用的那些) 通过逆转噪声过程来生成图像。它们从随机的高斯噪声开始,迭代地“去噪”以揭示结构。
在机器人技术中,我们将轨迹 (未来的 \((x, y)\) 位置序列) 视为图像。
- 前向过程: 选取一条好的轨迹并添加噪声,直到它变成随机垃圾数据。
- 逆向过程: 训练一个网络来预测每一步的噪声,从而允许我们将随机垃圾数据变回可行的轨迹。
在数学上,第 \(t\) 步的逆向过程被建模为高斯分布:

这里,\(f_{\theta}\) 是去噪网络 (“大脑”) ,负责预测要移除的噪声。
扩散模型的魔力在于它们可以被解释为基于分数的模型 (Score-Based Models) 。 “分数”本质上是数据对数概率的梯度。它指向“更高概率”样本的方向。这个属性至关重要,因为分数的和对应于概率的乘积。 这就是允许 ComposableNav 组合技能的数学基础。
ComposableNav 框架
研究人员提出的流程包含两个截然不同的阶段: 训练 (学习技能) 和部署 (组合技能) 。

第一阶段: 训练运动基元
机器人学习的最大障碍之一是获取数据。收集机器人“从左侧超车”的数据集很乏味。收集“在避开水坑的同时从左侧超车”的数据集更是难上加难。
ComposableNav 通过使用两阶段训练程序规避了这个问题,该程序不需要针对每项技能的特定演示。
第一步: 监督预训练 (基础模型)
首先,研究人员训练一个基础扩散模型 。 这个模型不懂社交;它只知道如何驾驶。
- 数据: 他们使用标准的几何规划器 (如混合 A*) 在动态环境中生成无碰撞轨迹的合成数据。
- 目标: 学习机器人的物理特性、平滑度以及基本的避障。
- 结果: 一个能生成有效路径的模型,但不会遵循特定的指令,如“让行”或“跟随”。
第二步: RL 微调 (技能学习)
这是系统变聪明的地方。他们不使用演示来学习“跟随”,而是使用强化学习 (RL) 。
为什么用 RL?因为验证一个行为比演示它更容易。编写一段代码说: 如果机器人在人身后,给予 +1 奖励,这非常简单。
研究人员使用去噪扩散策略优化 (DDPO) 。 他们将扩散去噪步骤视为马尔可夫决策过程 (MDP)。

每一步的“动作”是去噪后的轨迹片段。“奖励”仅在结束时 (\(t=0\)) 根据最终轨迹是否满足指令 (例如,是否真的从左侧超车了?) 给出。
微调的目标函数如下所示:

通过最大化这个目标,基础模型被“塑造”成不同的版本。一个版本成为“左侧通行”专家,另一个成为“让行”专家,还有一个成为“跟随”专家。这些就是运动基元 (Motion Primitives) 。
第二阶段: 通过组合进行部署
现在我们有一个扩散模型库,每个模型都专攻一项任务。在部署时,机器人接收一条复杂指令,例如:
“在保持道路右侧的同时超越行人。”
这条指令 \(I\) 被分解 (例如通过 LLM) 为规范: \(\phi^{(1)}\) (超车) 和 \(\phi^{(2)}\) (保持右侧) 。
机器人需要生成一条同时满足两者的轨迹 \(\tau\)。用概率术语来说,我们希望从联合条件分布中采样。ComposableNav 假设这些规范是条件独立的:

这个方程本质上是说: 一条轨迹同时满足两个条件的概率,正比于它分别满足每个条件的概率的乘积,并由基础分布进行缩放。
“分数”技巧: 因为我们使用的是扩散模型,所以我们在“分数空间” (对数概率的梯度) 中操作。当你将概率相乘时,你是在相加它们的对数。
因此,为了生成满足多个基元的轨迹,我们只需将相关扩散模型的噪声预测相加 。

在这个方程中:
- \(\hat{\epsilon}\) 是用于更新轨迹的最终组合噪声。
- \(f_{\theta}^{\phi^{(i)}}\) 是第 \(i\) 个基元 (例如“左侧通行”模型) 预测的噪声。
- 系统迭代地对轨迹进行去噪,同时受到每个所需技能的“梯度”引导。
实验: 它有效吗?
研究人员在严格的模拟环境和物理 Clearpath Jackal 机器人上对 ComposableNav 进行了评估。他们将其与直接使用视觉语言模型 (VLM) 进行规划 (如 VLM-Social-Nav) 或生成代价地图 (BehAV) 的基线方法进行了比较。
1. 它能在没有演示的情况下学会技能吗?
是的。两阶段训练 (预训练 + RL) 被证明非常有效。

如表 2 所示,基础 (预训练) 模型在特定社交任务 (如“跟随”,27%) 上的成功率很低,这是意料之中的——它没有为此接受过训练。经过 RL 微调后,基元在各自的任务上达到了近乎 100% 的成功率。
2. 它能处理未见过的组合吗?
这是论文的主要主张。研究人员测试了机器人同时应对 2、3 和 4 个约束的组合——这是模型在训练期间从未见过的组合。

图 4 描绘了一幅鲜明的画面。
- 1 个规范: 所有方法都表现得相当不错。
- 3 & 4 个规范: 基线方法崩溃了。基于 VLM 的方法成功率降至 0%,因为推理负担变得太重,或者生成的代价地图相互冲突。
- ComposableNav: 保持了稳健的性能 (例如,4 个规范时成功率约 35%,而基线低于 10%) 。虽然性能确实随着复杂性而下降,但它远比替代方案更可行。
我们可以在下面的轨迹中看到定性的差异。ComposableNav (蓝线) 创建了在约束之间穿梭的平滑路径,而基线方法经常卡住或违反安全规则。

3. 真实世界部署
团队在一台配备激光雷达和相机的 Clearpath Jackal 机器人上部署了该系统。

真实世界的实验凸显了一个关键优势: 可定制性 。 在一个场景中 (下图 5) ,机器人正接近一个门口和一个人。
- 指令 A: “跟随那个人。”机器人礼貌地跟在后面 (绿色路径) 。
- 指令 B: “在那个人之前进入。”机器人加速超车 (具体未在此裁剪图中显示,但模型支持) 。
这种能力允许用户根据社交偏好即时调整机器人行为,而无需重新训练。

该系统还可以实时运行。通过利用模型预测控制 (MPC) 跟踪扩散轨迹,并采用部分去噪先前计划的智能“重规划”策略,他们实现了适合动态交互的低延迟。

如表 4 所示,即使组合了 4 个基元,重规划步骤也仅需 0.060 秒 , 完全在机器人的 10Hz 控制循环内。
结论与启示
ComposableNav 代表了通用机器人自主性迈出的重要一步。关键的收获是,我们不需要教机器人任务的每一种可能组合。通过利用扩散模型学习稳健、独立的技能 (基元) ,我们可以像算术一样处理行为: 简单的加法就能创造出复杂、细致的结果。
该方法解决了两个主要瓶颈:
- 数据稀缺: 通过使用 RL 微调,我们避免了为每项技能通过复杂演示获取数据集的需求。
- 组合复杂性: 通过在推理时组合技能,我们可以用线性数量的模型处理指数级数量的指令。
虽然存在局限性——性能随着约束数量极多而下降,且系统目前依赖于为基元手工设计的奖励函数——但这种“组合式”思维很可能是适应性强、能遵循指令的机器人的未来。
](https://deep-paper.org/en/paper/2509.17941/images/cover.png)