自主消防救援机器人开发纪实——基于 DGX Spark 的端侧多模态 AI Agent
Verystone
2026年07月22日 23:37

E-MARS:断网之后,智能仍要继续

——基于 NVIDIA DGX Spark 的端侧多模态 AI Agent 自主消防救援机器人开发纪实

E-MARS 全称为 Edge-deployed Multimodal Agent for Robotic Search-and-rescue,中文全称为“基于端侧多模态 AI Agent 的自主消防救援机器人”。它是一套面向建筑探索与消防救援的端侧多模态具身智能系统,也是一项关于研究型端侧算力如何改变机器人科研方式的实践。

本届赛事以“让 Agent 创作一切”为主题。我们对“创作”的理解并不限于文字、图像或视频生成。在物理世界中,Agent 同样可以根据目标与环境持续创作下一步行动:观察现场,理解空间,形成搜索策略,选择可通行方向,调用导航系统执行,再根据新的反馈修正计划。E-MARS 所创作的不是一段静态答案,而是一条能够执行、反馈并安全停止的行动链。

本次我们准备参赛的机器狗
侧视图
后视图

一、从一个更根本的问题开始:什么任务必须在现场计算

拿到 NVIDIA DGX Spark 后,我们首先思考的并不是“它能够运行多大的模型”,而是一个更根本的问题:在云计算、私有云和高速通信已经高度成熟的今天,究竟还有哪些人工智能任务必须依靠部署在现场的算力完成?

单纯的数据安全并不是唯一答案。企业可以通过自建机房、私有云和专用网络实现数据隔离;山区、湖泊等偏远区域的连接问题,也可能随着低轨卫星通信与专网建设逐步缓解。真正体现端侧算力不可替代性的场景,应当同时满足两个条件:任务需要 AI 持续自主决策,而通信基础设施又可能在任务发生时失效。

建筑火灾正是这样的场景。大型建筑的地下空间、走廊深处和核心区域,往往需要室内分布系统与微基站补充移动通信覆盖。一旦火灾造成全楼断电,这些设备可能与照明、电梯和其他信息系统同时失效;烟雾、障碍物与结构变化还会进一步降低无线链路的可靠性。此时,机器人不能假定公网、云端推理或连续遥控始终可用,却仍然需要观察环境、判断通道、寻找目标、选择搜索方向,并在危险或异常出现时安全停止。

因此,对 E-MARS 而言,本地算力并不是为了少调用一次云端 API,而是为了在基础设施失效后保留智能系统的连续性。视觉信息、任务上下文、机器人状态与决策模型都留在现场局域网内,核心决策链不依赖外部服务。即使建筑内部网络中断,机器人仍然可以完成“观察—理解—规划—执行—反馈”的自主循环。

二、消防救援之外:DGX Spark 也是研究型端侧工作站

消防救援回答了“为什么必须现场计算”,科研实践则回答了“为什么传统端侧计算还不够”。过去,机器人研究经常使用 Jetson 作为端侧计算核心。Jetson 在低功耗传感器处理、计算机视觉、实时控制和产品化部署方面依然重要,但当研究对象变为大型视觉语言模型、多模型常驻、长上下文推理,以及仿真、ROS 2 和模型服务并行运行时,内存容量和计算余量会在研究开始之前限制问题规模。

DGX Spark 的意义不是简单替代 Jetson,而是在嵌入式部署层之上增加一层“研究型端侧超算”。其 128GB 统一内存与 Grace Blackwell AI 算力,使我们能够先用接近完整能力的模型验证算法,再根据实际部署需求考虑量化、蒸馏、裁剪和下放,而不必先把问题压缩成传统端侧设备能够容纳的大小。

在 E-MARS 中,DGX Spark 同时承担两种角色:面向救援,它是断网环境中的现场推理节点;面向科研,它是能够随机器人系统进入实验现场的 AI 工作站。大型多模态模型、本地推理服务、仿真验证、机器人中间件和运行观测由此进入同一条快速迭代链。过去需要在云端服务器、实验室工作站和嵌入式设备之间反复迁移的研究流程,可以更完整地在端侧闭环中展开。

三、总体架构:语义智能与确定性执行分层协作

E-MARS 不是一个“大模型直接控制电机”的演示,而是一套分层的具身智能架构。模型负责理解任务、解释场景、发现目标证据并提出候选行动;身份与安全门负责判断建议是否属于当前任务、是否仍然新鲜、是否位于允许的动作集合内;ROS 2 与 Nav2 负责把合法候选转换为路径和有界运动;NVIDIA Isaac Sim 或真实 Unitree Go2 再把执行结果返回下一轮观察。

完整控制链由八个环节构成:

  1. 自然语言任务:操作员或评测系统给出搜索、探索、接近目标或撤离等任务,并建立唯一任务身份。

  2. 多模态观察:D435、环视相机、LiDAR、位姿与机身状态共同形成带时间戳的现场快照。

  3. 快速局部决策:InternVLA 或 InternNav 根据指令、RGB-D 和历史观测生成短程轨迹、离散动作或局部候选。

  4. 多视角语义理解:Step3-VL 解释多个方向的画面,提取场景摘要、目标证据、受阻方向与推荐候选。

  5. 高层任务规划:在双机构型中,Step 3.7 Flash 组织较长时间尺度的环境探索、任务分解与阶段性总结。

  6. 身份与安全解析:resolver 检查 episode、reset、sequence、snapshot、候选集合和结果时效,拒绝过期或越界输出。

  7. 确定性导航执行:ROS 2 / Nav2 完成坐标转换、可达性检查、路径跟随、局部避障、取消和停止。

  8. 反馈与恢复:机器人返回新观测和执行状态;无进展、路径不可达或观测变化会触发重新观察、恢复或重新规划。

这种分层方式让每个组件拥有清晰的责任边界。大模型擅长语义理解和策略选择,Nav2 擅长连续路径执行与局部避障,安全门擅长拒绝不属于当前状态的输出。系统因此既能利用多模态 Agent 的开放环境理解能力,又能保持机器人控制链的可解释性和确定性。

四、快慢双路径:让不同模型工作在合适的时间尺度

救援机器人既需要快速应对眼前障碍,也需要在路口、走廊和陌生房间中进行更完整的语义判断。如果让同一个大型模型处理每一帧导航、全局环境理解和所有任务规划,推理延迟会直接侵占运动控制的安全余量。E-MARS 因此采用快慢双路径,并设计了单机与双机构型。

快速路径由 InternVLA / InternNav 承担。它接收自然语言指令、RGB-D、机器人位姿和历史观测,生成局部轨迹、离散动作或短程候选。输出不会直接成为 cmd_vel,而是先经过动作适配器完成坐标转换、深度与几何检查、身份验证和时效过滤,再交给 Nav2 执行。模型负责“接下来倾向去哪里”,导航栈负责“如何连续、安全地到达那里”。

Step3-VL 是 E-MARS 的多视角语义路径。它读取左前、正前、右前和后视画面,并把自然语言目标与现场实体、门洞、通道、遮挡和可探索区域建立联系。它不仅能够描述画面,还能形成对控制链有用的结构化空间判断,例如场景摘要、目标证据、受阻方向、候选方向、置信度、是否发现目标,以及是否需要继续观察。

在单机构型中,Step3-VL 结合环视图像与 D435 深度信息,承担高实时性语义导航。它可以在紧凑部署中比较不同方向、识别与任务相关的空间线索、帮助机器人在关键路口选择下一观察点,并将结果交给确定性导航链执行。这样,模型的多模态理解能力不只停留在“看懂一张图”,而是成为连续导航闭环中的空间语义来源。

在双机构型中,Step 3.7 Flash 作为高层多模态 Agent,通过本地 vLLM 兼容服务接收任务、关键图像、结构化状态与阶段性环境摘要。它负责把“搜索建筑并协助救援”拆分成观察、探索、比较、复查、返回等子任务,决定下一阶段值得探索的区域,判断是否改变搜索顺序,并在较长时间尺度上组织自主环境探测。快速路径在另一计算节点持续执行和反馈,使复杂规划与实时运动互不阻塞。

五、身份合同:防止正确动作出现在错误时刻

多机通信、异步推理与机器人运动同时存在时,最危险的问题之一并非模型答案本身错误,而是旧答案在新状态下仍被执行。例如,机器人已经转过一个路口,上一帧模型给出的“向左”才延迟到达;这个建议在原场景中可能正确,在当前姿态下却可能造成错误运动。

为此,每次观察与决策都携带 episode_id、reset_id、sequence_id 和 snapshot_id。episode_id 标识当前任务,reset_id 标识任务中的重置代次,sequence_id 表示消息顺序,snapshot_id 将图像、位姿和候选集合冻结为同一个决策快照。跨 reset、超过时限、相机顺序不一致、候选集合不匹配或身份缺失的结果都会被 fail-closed 拒绝。

模型输出还必须通过固定 schema 解析。控制系统消费的是允许公开和验证的结构化字段,而不是自由文本中的隐含指令。无论 InternVLA、Step3-VL 还是 Step 3.7 Flash,都不能绕过 resolver 和 motion gate 直接拥有底层速度控制。模型超时、输出非法、传感器过期或通信异常时,默认动作是停止与回退,而不是猜测。

六、ROS 2 / Nav2:把语义目标变成可执行运动

E-MARS 使用 ROS 2 Jazzy 组织传感器、状态、决策与执行消息,以 Nav2 承担路径规划、局部避障、路径跟随和恢复。视觉语言模型生成的局部轨迹或离散候选会先进入适配层:系统将模型坐标转换到机器人或地图坐标系,检查深度、障碍和可达性,再创建 Nav2 goal 或受限动作 primitive。

地图与定位采用可切换方案。全局层可使用静态地图,局部层融合 LiDAR 代价地图;Nvblox 作为三维感知与建图路线接入,cuVSLAM 或 LiDAR/IMU 里程计作为定位候选。在仿真阶段保留 Isaac ground-truth pose 回退,以便将模型决策问题与定位误差分开诊断。

当系统检测到无进展、重复轨迹、路径不可达或动作超时时,恢复节点会取消旧目标、清理对应状态,执行有界观察或扫描,再请求新的候选。接近目标位置不等于语义任务已经完成;transport 异常、安全停止和模型主动 STOP 也必须分别记录。这样,系统不会用位置上的偶然接近掩盖控制链中的真实故障。

七、NVIDIA Isaac:先建立可复现世界,再逐级进入真机

具身智能系统很难只靠真机试错。真实机器人上的相机、网络、动力、电池和安全空间会同时变化,如果模型、坐标系和控制器一起调试,就很难判断失败来自哪一层。因此 E-MARS 先在 NVIDIA Isaac Sim 中建立可复现基线,再逐步迁移到 Unitree Go2。

Isaac 端负责加载 USD 场景、驱动物理世界、渲染相机、维护机器人位姿与 episode 生命周期。Omniverse USD 提供统一的场景与资产表达,PhysX 处理碰撞和运动反馈,ROS 2 bridge 则让仿真传感器与真实机器人使用尽量一致的消息边界。同一套模型服务、动作适配器和 Nav2 配置因此可以在仿真与真机之间复用。

开发过程采用逐级门禁:先检查场景尺度、相机位置和坐标方向,再使用确定性策略验证路径与停止条件;随后检查模型输入输出协议,最后才进入短闭环和更长运行。前置门禁失败时只修对应层,不通过增加运行次数掩盖工程错误。仿真先行的价值不只是减少真机风险,更在于把一个复杂 Agent 系统拆解成可以独立解释和逐项放行的模块。

八、传感器与机械改造:让多模态 Agent 真正看见现场

Unitree Go2 原装摄像头位置较低,适合观察脚下与近距离障碍,却不利于同时获取走廊结构、门口位置和远处通行情况。项目增加 Intel RealSense D435,并调整安装高度和俯仰角,使模型获得更适合导航的前向彩色视野及对应的深度信息。

D435 的深度信息既服务于多模态模型,也用于动作执行前的近场几何检查。系统可以据此拒绝明显穿过墙面、越过安全距离或落在不可达区域的候选。相机支架还需要同时考虑振动、线缆、重心、遮挡和视野,软件能力最终必须落到可制造、可固定、可重复安装的机械结构上。

单一前向图像无法解释侧后方通道和转向后的历史环境,因此项目又增加前、后、左、右方向的环境相机,为模型提供近 360° 的现场信息。进入模型的多路画面使用固定顺序、固定规格和固定外参身份,并冻结在同一决策快照中。Step3-VL 可以据此比较多个方向的空间语义,Step 3.7 Flash 则可以在更长时间尺度上形成环境摘要与探索计划。

LiDAR 提供局部障碍、代价地图和定位候选,机身状态、IMU 与里程计用于新鲜度检查、停止确认与执行反馈。视觉、深度、点云和机身状态不是简单堆叠,而是分别进入语义决策、几何检查、确定性导航和安全监控等不同环节,共同构成 E-MARS 的现场感知基础。

九、本地部署与大模型优化

E-MARS 的核心智能体不依赖云端 API。DGX Spark 运行 InternVLA、Step3-VL 与 Step 3.7 Flash 相关本地服务;Isaac 工作站运行仿真、相机渲染、ROS 2 bridge 与 Nav2;真机侧提供 Go2、D435、LiDAR 和环视相机数据;Operator Panel 通过允许列表投影展示相机、结构化决策、执行阶段与计算资源状态。整个系统可以在本地局域网内组成完整闭环。

为了提高端侧大模型的可用性,模型服务采用常驻方式,避免每个任务重复加载权重。Step3-VL 使用 BF16 推理,单次请求使用有界图像规格、确定性解码、有限 token 预算和稳定的结构化输出。多视角图像在进入模型前完成顺序、尺寸、哈希和身份检查,只传递当前决策真正需要的视觉内容。

算力调度遵循“高频动作走快速路径,复杂语义在关键事件触发”的原则。Step3-VL 聚焦目标证据变化、路口比较、观测受限、局部超时和恢复等节点;Step 3.7 Flash 聚焦任务拆分、区域优先级与阶段性环境探索。这样既充分发挥大模型作用,也避免所有控制周期都等待复杂推理。

系统还建立了双 Lane 资源隔离。不同在线任务使用独立 GPU、CPU、ROS_DOMAIN_ID、命名空间、端口、缓存与运行目录。远端重任务必须先获得 fail-closed 资源租约,同时申请模型和仿真资源时采用固定顺序,避免死锁。资源租约记录任务身份、进程、开始时间和运行根目录,退出时按照明确拥有的进程组清理,不使用模糊进程匹配。

这种编排看似与模型能力无关,却是端侧科研可复现的重要基础。只有明确哪段代码、哪组配置、哪项模型服务和哪台设备产生了当前行为,研究结论才有可解释性。DGX Spark 提供的不只是更大算力,也让多模型、仿真和机器人闭环能够以更接近完整系统的方式共同运行。

十、移动供电:黑客松周期中的工程取舍

开发过程中最直接的工程难题之一不是模型部署,而是 DGX Spark 的移动供电。团队原计划使用 STM32 设计电源控制系统,将电池输出转换为设备所需规格,并完成启停、电压监测、欠压、过流与状态保护。

但黑客松周期不足以覆盖电路设计、元器件选型、PCB 绘制、打样、焊接和高功率负载验证。启动瞬态、持续散热和保护策略中的任何一项未经充分验证,都可能造成计算节点重启,甚至影响整套原型的安全。

最终,我们在原型阶段选用成熟逆变器,将电池直流转换为交流,再通过 DGX Spark 原装适配器供电。它会带来额外的能量转换、体积和重量成本,却换来了可以验证的稳定性与交付速度。这个取舍体现了黑客松工程的核心:先用可靠方案证明完整系统,再把定制直流供电、功耗管理和机械集成作为下一阶段优化方向。

十一、从工程后台到可理解的 Agent 工作流

复杂具身系统不能只依靠终端日志。项目将运行状态整理为独立的 Operator Panel:中间区域固定显示 Go2、D435 与环视画面,两侧显示自然语言任务、Step3 结构化决策、ROS 状态、Nav2 阶段、事件流和 DGX 推理资源。操作员由此能够理解机器人正在接收什么任务、看见什么、模型建议什么,以及确定性执行链当前处于哪个阶段。

前端只读取允许列表中的结构化状态,不展示隐藏思维链、原始提示、凭证或内部文件路径;没有接入真实遥测的阶段会明确标注为未接入,而不会被推断为成功。展示层与 ROS telemetry sidecar 保持轻量边界,不将模型、仿真和机器人运行时的重型依赖带入前端。

项目开源同样遵循明确边界。GitHub 发布用于理解和复现系统所需的源代码、脱敏配置、接口合同、架构说明、部署步骤和示例,不上传实验结果、运行日志、原始相机画面、数据集、模型权重、内部地址、用户名、凭证、机器人身份材料或私有路径。GitHub Pages 作为统一的开发纪实和项目说明入口,控制核心与操作面板则按清晰职责组织代码。

十二、E-MARS 的核心价值

E-MARS 最终回答了两个问题。对于消防救援,端侧大模型的不可替代价值,是让智能系统在通信完全中断时仍然能够观察、理解、规划并采取行动;对于科研,DGX Spark 的价值,是把端侧从“部署已经压缩完成的小模型的终点”,变成“研究大型多模态 Agent 的起点”。

这套系统形成了一条清晰的技术主线:NVIDIA DGX Spark 提供现场 AI 研究与推理能力;Isaac Sim 建立可复现的仿真世界;Step3-VL 将多视角图像与自然语言任务组织为空间语义,并在单机构型中承担高实时性语义导航;Step 3.7 Flash 在双机构型中组织自主环境探测和高层任务规划;InternVLA 生成快速局部候选;ROS 2 / Nav2 将模型建议转换为可执行、可反馈、可恢复的机器人行动;D435、LiDAR 与环视相机持续向闭环提供现场证据。

当连接云端的道路被切断时,E-MARS 的目标不是让模型继续“回答”,而是让整个 Agent 系统继续理解、规划、行动与复盘。这正是我们对“让 Agent 创作一切”的具身回答。

技术栈说明

NVIDIA 平台与 SDK:NVIDIA DGX Spark、CUDA、PyTorch、NVIDIA Isaac Sim、Isaac Lab、Omniverse USD、PhysX、Isaac ROS、Nvblox、cuVSLAM。

NVIDIA 及相关模型路线:InternVLA / InternNav、Cosmos Reason2 研究路线。

StepFun 阶跃星辰模型:Step3-VL-10B,用于多视角语义理解、高实时性语义导航、目标证据提取与候选方向比较;Step 3.7 Flash,用于双机构型的高层多模态 Agent、自主环境探测、任务拆分与阶段性总结。

机器人与软件栈:Unitree Go2、Intel RealSense D435、LiDAR、环视相机、ROS 2 Jazzy、Nav2、vLLM、FastAPI、WebSocket。