一句话定位

只在仿真里训、真机不用微调:看局部 RGB-D + 导航目标,用扩散模型生成多条未来轨迹,再用与目标无关的 critic 挑最安全的一条——不需要全局地图,轮式 / 四足 / 人形都能用。

给机器人新人的直觉
想象你蒙眼只凭眼前几米画面走路:大脑会同时「脑补」好几条可能的近路(扩散采样),再凭经验判断哪条更可能撞墙(critic 打分),最后只走最安全的那条。NavDP 把这套直觉做成神经网络,而且数据全在仿真里批量生成,不用 expensive 的真机遥操作。

背景概念(读本文前需要懂)

术语白话
NavDPNavigation Diffusion Policy,本文方法
扩散策略(Diffusion Policy)像去噪图片一样,一步步把随机噪声「去噪」成机器人动作/轨迹;能表达多种合理走法
mapless 导航不依赖 SLAM 全局地图,只靠 onboard 局部传感器决策
特权信息(Privileged Information)只在训练时的仿真里能拿到的「上帝视角」——全局 ESDF、最优 A* 路径等;推理时不用
ESDF每个位置到最近障碍的距离场;本文用来给 critic 打「这条轨迹离墙多近」的分
sim-to-real仿真训练 → 真机部署;本文强调 zero-shot,即真机不 fine-tune
cross-embodiment同一策略换不同机器人(高度、相机视角不同)仍能用

相关概念卡:NavDP · ESDF · MPPI · TSDF

论文在干什么

痛点:

  • 经典模块化导航(建图 → 全局规划 → 局部规划 → 控制)链路长、误差累积、调参痛苦
  • 纯学习式方法要么依赖昂贵真机示教,要么 RL 样本效率低
  • 已有扩散导航(如 NoMaD)缺 test-time 轨迹选择,采样方差导致不安全

做法:NavDP = 扩散轨迹生成头 + goal-agnostic critic 头,共享 Transformer backbone,只吃局部 RGB-D token。

训练数据:全仿真脚本生成——1244 场景、56k 轨迹、363 km、1000 万 RGB-D 帧;约 2500 条轨迹/GPU/天,作者称比真机采集快 ~20×。

部署:真机 Go2 / Galaxea R1 / Unitree G1 等 零样本;输出相对位姿轨迹,再转成线速度/角速度给底层 locomotion。

1. 整体架构(两阶段推理)

阶段2 · 选择

阶段1 · 生成

编码

输入

RGB-D 单帧

导航目标

DepthAnything + Depth ViT

16 个融合 token + 目标 token

Transformer Decoder + DDPM

多条候选轨迹

Critic 头 · 不看目标

最高分轨迹

  • 输入:多帧 RGB(历史 (N),常用 8)+ 单帧 Depth + 四类目标之一
  • 骨干:共享 Transformer Decoder(生成 = 带噪轨迹当 query;评价 = 干净轨迹当 query 且 mask 掉目标)
  • 输出:24 步未来路点,每步相对位姿增量(实现里常为 3 维)
  • 扩散步:训练/推理约 10 步 DDPM
  • 推理:先采样一批候选再 critic 选优;深讲见 算法-NavDP原理白话深讲

2. 四种零标注导航目标(多任务训练)

目标类型含义训练里怎么自动得到
Point goal2D 平面相对坐标轨迹终点位姿
Image goal目标位置的第一视角 RGB终点帧图像
Trajectory goal期望路径投影到当前视角整条轨迹反投影
No goal无目标,安全漫游/探索把目标 token mask 掉

为什么重要
同一套权重覆盖「去某点 / 去某张图的样子 / 沿某条参考轨 / 随便逛别撞」——比单任务 policy 更鲁棒;其中 no-goal 任务对避障行为最关键(消融实验)。

3. 扩散策略头(Transformer Decoder + DDPM)

  • 共享 Decoder:轨迹点经 MLP 成 query;RGB-D / 目标 / 扩散时间步作 memory(K/V)
  • 生成:DDPM(约 10 步)让网络预测注入噪声 (\epsilon)
  • 训练:对 no-goal / point-goal(实现里还有 image/pixel)分别算噪声 MSE 再加权,例如 (\mathcal{L}{act}=\alpha\mathcal{L}{act}{ng}+\beta\mathcal{L}_{act}{pg})(默认 (\alpha=\beta=0.5))

旧版笔记曾写 Conditional U-Net
以论文 §IV 与 InternNav navdp_policy.py 为准:是 Transformer Decoder,不是 U-Net。

4. Critic 头 + 特权 ESDF 监督(核心创新)

问题:示教轨迹全是「完美不撞」的,policy 学不会分辨危险轨。

做法:

  1. 对专家轨做随机旋转等增强 → 得到可能撞墙的 (\hat\tau)
  2. 在仿真里用全局 ESDF 读每个路点距离 (d_m)
  3. 标签(论文式 (4) 精神):越靠近障碍((d_m<d_{safe}))越扣分;沿轨越走越开阔((d_{m+1}-d_m))越加分((d_{safe}=0.5,\mathrm{m}))
  4. (\mathcal{L}_{critic}):网络回归该标签;与 actor 一阶段联合训

推理时:critic mask 掉目标 token → 同一 RGB-D 下公平比较多条候选轨的安全性。

和 NoMaD 的关键差别
NoMaD 也做 goal-conditioned 扩散,但缺少「局部观测 + 轨迹 → 安全分」的 test-time 选择;NavDP 用仿真 ESDF 教会 critic,真机只靠 RGB-D 也能筛轨。

5. 仿真数据管线(Section 3)

  1. 跨本体抽象:圆柱刚体 + 差速模型;相机高度 hb∈(0.25,1.25)h_b \in (0.25, 1.25)hb​∈(0.25,1.25) m 随机 → 模拟不同机器人视角
  2. 轨迹:体素 ESDF → 降采样 A* → 局部 greedy 远离障碍 refine → 三次样条平滑
  3. 渲染:BlenderProc 光追 RGB-D;纹理/光照随机化
  4. 场景:3D-Front(1176)+ Matterport3D(68)

6. Real-to-Sim 微调(可选)

  • 用 Gaussian Splatting 重建真实实验室 → 再按同管线生成 ~4k in-domain 轨迹
  • 混合约 27% real-to-sim 数据:目标场景成功率 50%→80%,且不过度伤害泛化
  • 比例过大反而略降——需在「多样仿真」与「域内真实外观」间权衡

基准与指标

  • No-goal:Episode Time、Explored Area(撞即停,最长 120s)
  • Point-goal:Success Rate、SPL(到目标 1m 内且线速 <0.5 m/s)
  • 平台:Dingo / Go2 / Galaxea R1;仿真 + real-to-sim + 真机

主要结果(相对 prior learning-based)

任务NavDP 相对优势
No-goal探索时间/面积大幅领先 GNM、ViNT、NoMaD
Point-goalmSR ~70–83%(分平台),整体优于 iPlanner、ViPlanner
跨本体prior 方法换平台性能崩塌;NavDP 较稳定
真机零样本Go2 / R1 / G1 室内外 + 动态行人,无需 fine-tune

消融要点

  1. Critic 必不可少:既作训练辅助 loss,也作推理选轨;去掉后 point-nav 明显变差
  2. No-goal 任务对整体避障最关键
  3. Real-to-sim 少量混合可补视觉域差距

局限(作者自述)

  1. 不支持语言指令——和 VLA/VLN 还没打通
  2. 无 embodiment 编码—— cluttered 场景可能「头躲开了、身体撞上」
  3. 只出 2D 轨迹——仍依赖底层 locomotion 跟踪;复杂 3D 可通行性(钻桌底等)搞不定
  4. 离线模仿框架——难在线从失败中学习(后续 X-NavDP 用 RL post-training 补)

要点总结

  1. NavDP = 仿真大数据 + 特权 ESDF 训 critic + 扩散生成 + 推理选轨
  2. 推理输入只有 局部 RGB-D + 目标,不需要地图
  3. Critic 与 no-goal 多任务是安全泛化的关键,不是可有可无的附加头
  4. 跨本体靠 随机相机高度/俯仰 的数据增强,而非显式 robot ID
  5. 真机部署仍需 底层 locomotion + 外挂安全层(Collision Monitor 不能拆)

开放问题

  • InternNav 工具箱里 NavDP 与 InternVLA Sys1 的接口边界?
  • 和 MPPI 在同一 costmap 栈上 A/B 需要改哪些 topic?
  • 人形 G1 上 2D 轨迹 + WBC 跟踪的延迟实测?
  • X-NavDP(RL post-training)是否值得在 hard case 上跟进?
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐