引言

想象一下,一架送货无人机正在繁忙的城市中穿梭。它接受过数千小时的飞行数据训练——蓝天、清晰的着陆点和标准障碍物。但今天,世界给它出了个难题。当无人机接近目的地时,它遇到了昨天还不存在的建筑工地。有一台起重机在不可预测地移动,一个人站在梯子上保持平衡,还有黄色的警戒带在风中飘扬。

对于人类来说,危险显而易见: “别飞到梯子上那个人附近。”但对于传统的机器人控制系统来说,这些只是未定义的障碍物,或者更糟,是令人困惑的传感器噪声。这就是 分布外 (Out-of-Distribution, OOD) 问题。机器人处于它并未接受过明确训练的情况中,其标准操作程序可能会导致灾难性的故障。

我们目前正在见证 基础模型 (Foundation Models, FMs) 的革命,例如大型语言模型 (LLMs) 和视觉语言模型 (VLMs)。这些模型拥有“常识”,能理解屋顶上的火灾或化学品泄漏是危险的。然而,这里有个问题: 它们很慢。查询一个 VLM 可能需要几秒钟——对于一架正在从空中坠落的无人机或一个在废墟上滑倒的四足机器人来说,这如同几个世纪般漫长。

我们如何将基础模型的语义智能与机器人安全所需的瞬间反应时间结合起来?

这也正是论文 “Real-Time Out-of-Distribution Failure Prevention via Multi-Modal Reasoning” 所回答的问题。研究人员介绍了 FORTRESS , 这是一个弥合慢速、高层推理与快速、低层控制之间差距的框架。在这篇文章中,我们将剖析 FORTRESS 如何让机器人提前“思考”安全问题,以便在实时中安全地“行动”。

展示 FORTRESS 实际运行的合成图像。左侧: 无人机避开施工和火灾。右侧: 机器人避开未授权区域。

核心问题: 智能 vs. 速度

要理解这项研究的重要性,我们需要审视当前的机器人安全领域。

传统上,安全是通过 硬编码约束 处理的。你告诉机器人,“与所有物体保持 2 米距离。”这很快且可验证,但缺乏细微差别。它不知道与混凝土墙保持 2 米距离是可以的,但与混乱的火灾保持 2 米距离可能就不行了。

在光谱的另一端,我们有使用像 GPT-4 或 Gemini 这样的模型进行的 语义推理 。 你可以给模型看一张图片并问: “在这里降落安全吗?”模型可能会正确地说: “不,那是建筑工地。”然而,将这个过程集成到控制回路中是危险的,因为:

  1. 延迟 (Latency): 如果机器人需要以 100Hz (每秒 100 次) 更新其控制,它不能等待 2 秒的 API 调用。
  2. 幻觉 (Hallucination): 生成式模型有时会编造事实。
  3. 动力学无关 (Dynamics-Agnostic): LLM 可能会建议一个安全的着陆点,但在物理上机器人无法在不坠毁的情况下到达那里。

FORTRESS (Failure Prevention in Real Time by Generating and Reasoning about Fallback Strategies,通过生成和推理回退策略实现实时故障预防) 通过解耦推理 (慢) 和执行 (快) 来解决这个问题。

FORTRESS 架构

该框架采用“慢-快”分层方法运行,类似于人类的认知——我们有缓慢、有意识的逻辑推理,也有快速、本能的肌肉记忆。

FORTRESS 框架概览,展示了慢速离线推理和快速在线规划循环。

如上图 2 所示,系统分为两条时间线:

  1. 正常运行 (低频/离线) : 当机器人正常运行 (甚至在部署之前) 时,它使用繁重的基础模型来“遐想”可能出什么错,并识别安全的回退目标。它本质上是将语义知识预编译成数学函数。
  2. 运行时响应 (高频/在线) : 当安全监视器触发警报 (例如,“出问题了!”) 时,机器人切换到回退模式。它使用预先计算的函数立即生成安全路径,避开早先识别出的语义危险。

让我们分解这个过程的三个主要模块: 生成目标安全推理合成规划

模块 1: 生成回退目标 (M1)

当机器人检测到故障时,它需要一个“B 计划”。它不能只是冻结在半空中。它需要一个要去往的具体位置——一个回退目标。

像“降落在屋顶上”这样的抽象指令对飞行控制器来说毫无用处;它需要 \((x, y, z)\) 坐标。FORTRESS 使用像 Molmo 这样的视觉语言模型 (VLMs) 将语义愿望转化为物理坐标。

无人机模拟场景,VLM 识别出的屋顶粉红点为安全着陆区。

如图 3 所示,系统向 VLM 提供场景图像和类似 *“Point to empty, horizontal building roofs” (指向空的水平建筑物屋顶) * 的提示词。VLM 返回像素坐标,然后利用机器人的深度传感器将其转换为 3D 世界坐标。

为什么要主动做这件事? 因为查询 VLM 需要时间。通过在正常运行期间以低频率 (例如,每几秒一次) 运行此过程,机器人保持着一个新鲜的“紧急出口”缓存。如果发生故障,它只需立即从缓存中抓取最近的有效坐标。

模块 2: 关于语义安全的推理 (M2)

这可能是论文中最具创新性的部分。如果一个机器人以前从未见过“梯子上的人”,它怎么知道那是危险的?

研究人员使用了一种称为 故障模式预测 (Failure Mode Anticipation) 的技术。他们不硬编码危险列表,而是让 LLM 生成它们。

第一步: 预测故障模式

机器人向 LLM 提供其环境的描述 (例如,“城市中的无人机”) 。LLM 生成潜在语义故障模式 \(\Phi\) 的列表,例如:

  • “Worker Injury” (工人受伤)
  • “High Temperature” (高温)
  • “Cable Entanglement” (线缆缠绕)

第二步: 嵌入危险

计算机无法计算到“工人受伤”概念的距离。但它们可以计算 嵌入空间 (Embedding Space) 中的距离。

嵌入允许我们将文本或图像表示为数字向量。在语义上相似的概念在这个向量空间中会靠得很近。系统计算生成的故障模式的嵌入 (\(e_\phi\)) 和“安全”正常数据的嵌入 (\(\Omega_s\))。

为了检查新的观测是否危险,系统测量当前观测的嵌入 (\(e_i\)) 与故障模式嵌入 (\(e_\phi\)) 之间的 余弦相似度 (Cosine Similarity)

观测嵌入与故障模式嵌入之间的余弦相似度公式。

如果当前场景在语义上比起“安全正常运行”更接近“工人受伤”,系统就会将其标记出来。

第三步: 校准阈值

多近才算太近?研究人员使用 共形预测 (Conformal Prediction) 来设定严格的数学阈值。

基于安全数据的共形预测定义的阈值 Delta 公式。

简单来说,这个方程查看“安全”的训练数据,并找到一个相似度得分阈值 (\(\Delta_\phi\)),使得绝大多数 (例如 95%) 的安全数据都低于该阈值。

最后,这创建了一个 语义安全代价函数 (Semantic Safety Cost Function) \(\theta_\phi(x)\):

定义语义安全代价函数的公式。

如果 \(\theta_\phi(x) > 0\),状态 \(x\) 被认为是语义上不安全的。这个函数的评估速度很快。它将抽象、模糊的“危险”恐惧转化为机器人可以在数学方程中使用的具体数字。

展示从故障模式预测到校准代价函数的流程图。

图 4 说明了这个流程。在左侧,“慢速”推理器设想故障模式。在右侧,“快速”运行时监视器使用这些嵌入即时将“梯子上的人”归类为危险,将其与通用 (且安全) 的“人”或“梯子”区分开来。

模块 3: 合成回退规划 (M3)

现在机器人有了一个物理目标列表 (来自 M1) 和一个数学函数 (来自 M2) ,如果路径太靠近语义危险,该函数就会尖叫“高代价”。

当触发回退时,FORTRESS 必须生成一条轨迹 \(\tau\) (一系列状态) ,该轨迹到达目标区域,同时保持安全代价低于零。这被公式化为一个 可达-避障优化 (Reach-Avoid Optimization) 问题:

寻找最小化最坏情况故障代价并到达目标的轨迹优化方程。

该方程寻找一条轨迹 \(\tau^*\),使路径上遇到的最大危险最小化 (\(\max \theta_h(x)\))。

  • 约束 1: 从机器人所在位置开始 (\(x_1 = b\))。
  • 约束 2: 最终到达目标区域 (\(\mathcal{B}_\rho(g)\))。
  • 约束 3: 遵守物理规律 (系统动力学 \(f\)) 。

为了实时解决这个问题,作者使用了由语义代价函数引导的 RRT (快速扩展随机树) , 随后是轨迹平滑控制器 (如 LQR 或 MPC) 。因为代价函数仅仅是嵌入空间中的几何检查 (已预先校准) ,所以这种规划发生在毫秒级。

实验与结果

研究人员在三个不同的领域验证了 FORTRESS: 合成数据分析、仿真和真实世界硬件。

1. 嵌入能检测到“语义”危险吗?

第一个假设是,嵌入模型 (通过生成的故障模式进行校准) 在检测不安全情况方面,比简单地即时提示 LLM 更好。

他们在涉及无人机、船只和自动驾驶汽车的数据集上测试了各种嵌入模型 (如 OpenAI 的 text-embedding-3、Voyage AI 等) 。

ROC 曲线展示了不同嵌入模型在无人机、船只和车辆数据集上的表现。

图 7 中的 ROC 曲线展示了真阳性率 (捕捉真实危险) 和假阳性率 (误报) 之间的权衡。结果令人印象深刻: 像 OpenAI (紫线) 和 Voyage AI (灰线) 这样强大的模型达到了非常高的准确率 (曲线下面积 > 0.90) 。这证明经过校准的嵌入方法能有效地将安全场景与不安全场景区分开来。

有趣的是,他们发现生成更多的故障模式 (最多约 50 个) 提高了准确率,如下所示。模型需要丰富的“可能出什么错”的词汇表才能有效。

图表显示,增加预期的故障模式数量通常能提高或稳定检测准确率。

2. 仿真结果 (CARLA)

团队在 CARLA 城市模拟器中测试了完整的流程。一架无人机必须在充满消防车、人群和交通等危险的城市中执行紧急降落。

他们将 FORTRESS 与以下方法进行了比较:

  • AESOP: 一个基线方法,能检测异常但规划通往固定目标的简单路径。
  • Safe-Lang: 一种使用语言进行安全保护的方法,但依赖于更简单的物体避障。

比较规划成功率的柱状图。FORTRESS 达到了超过 90% 的成功率。

结果 (图 6) 非常鲜明。 FORTRESS 达到了 92.2% 的成功率 , 而 AESOP 为 40%。为什么?AESOP 经常规划出一条在几何上可行但在语义上灾难性的路径 (例如,降落在有人群的屋顶上) 。FORTRESS 识别出“人”和“火”的语义属性为高代价区域,并规划绕过它们。

3. 真实世界硬件

最后,他们将系统部署在 四旋翼无人机ANYmal 四足机器人 上。

在一个实验中,ANYmal 机器人在一个正在施工的房间里导航。环境中有梯子、碎片和溢出物。

ANYmal 机器人检测结果。它正确地将“梯子上的人”识别为“工人受伤”隐患。

图 13 展示了实际的“语义感知”。

  • 左侧: 检测到一个梯子上的人。系统将其专门映射到“Worker Injury” (工人受伤) 故障模式。
  • 右侧: 碎片和溢出物被映射到“Chemical Spill” (化学品泄漏) 或“Uncontrolled Access” (未受控访问) 。

至关重要的是,这种检测是实时发生的。定义“工人受伤”的繁重工作是预先完成的。在运行期间,机器人只需将摄像头流匹配到那个预先计算的概念。

研究人员还展示了系统处理 动态重规划 的能力。在下面的序列中,一架无人机最初计划降落在地面上。然而,一名“跳伞者” (一个移动的语义危险) 进入了空域。系统检测到新的高代价区域,并立即重规划到次要目标 (建筑物屋顶) 。

3D 图展示了一架无人机重新规划轨迹以避开坠落的跳伞者和箱子。

结论

“开放世界”是混乱的。机器人无法针对每一个可能的建筑工地、天气事件或人类行为组合进行预编程。 FORTRESS 代表了在使机器人能够适应这种混乱方面迈出的重要一步。

关键的启示是 混合架构 的力量:

  1. 利用基础模型的长处: 广泛的语义推理和“想象”潜在故障 (慢思考) 。
  2. 利用控制理论的长处: 快速、几何精度和基于保证的规划 (快思考) 。
  3. 用嵌入连接它们: 使用向量空间作为两者之间的通用语言。

通过将大模型的“智慧”缓存到计算快速的代价函数中,FORTRESS 允许机器人在不牺牲保持安全所需的反应速度的情况下展现出常识。随着我们将自主系统进一步推向非结构化环境——从送货无人机到搜救四足机器人——像这样的框架将至关重要,以确保它们不仅在一切顺利时能工作,而且在出现问题时也能安全恢复。


对于那些对计算细节感兴趣的人,硬件实验 (使用 Jetson Nano) 表明,虽然“慢速”推理查询需要几秒钟,但“快速”安全推理和规划发生在毫秒级 (推理约 12ms,全规划 1.28s) ,使其在现实世界部署中切实可行。

显示计算时间的表格。快速推理耗时 0.011秒,而慢速查询需要数秒。