A pedagogical survey · 1999 — 2026.05
当地图已经存在: 在数字孪生上做 SLAM
工厂、仓库、巡检场景里,99% 的几何结构十几年不动。与其每次开机
都临时跑一遍 SLAM,不如先一次性、超高精度地把场地扫成一份"数字
孪生",再让机器人在运行时只做定位 · 临时 delta · 偶尔
把真正的永久变化折回孪生 ——这一套思路在最近五年正式
长出了自己的论文家族。
预设读者:会基本的概率图模型、贝叶斯滤波、点云 / NeRF / 3DGS
的常识、本科线代和微积分。不会经典 SLAM 也没关系——
我们从 MCL 讲起 。
~53 篇论文 · 4 个交互演示 · 最后更新 2026-05-19
阅读路径建议
零基础 从 §1 开始顺读,primer 把 MCL + 渲染式
重定位的最小数学都补齐了。熟悉经典 SLAM 可以跳到
§14 (NeRF/3DGS 作为先验)或 §27 (终身更新)。只看最新
直接进 §47 (3D foundation models),那里有 MASt3R-SLAM / MASt3R-Fusion /
Reloc3r / VGGT。本站不设独立的 "frontier" 章——2025–2026 的工作
已按 lineage 散入各章,每张卡的管道位置
标签会告诉你它在第 §3 节那条管道上具体改进了哪一步。
怎么读 paper card
每张卡片现在有四件信息:YYYY-MM (venue + arXiv 都
压成同一刻度);role
标签(在第 §3 节"最小重定位循环"伪代码里指出该方法改进的是哪个
步骤——init / likelihood / map-repr / change-detect / fold-back /
front-end / dyn-handling / query-layer);痛 → 关键想法 → vs prior →
;最后是 局限 一句话——尤其点出已被后续工作明确
修复或绕开的限制。
§1 什么是 "数字孪生 SLAM"
经典 SLAM (Simultaneous Localization and Mapping ) 的承诺是:
机器人开机时一无所知,靠传感器在线同时估计自身轨迹和环境地图。这套
框架诞生于 1990s(EKF-SLAM、FastSLAM),在 2010s 视觉/激光时代达到
巅峰(ORB-SLAM、LOAM、Cartographer),是机器人学最美的章节之一。
但 "同时建图 + 定位" 在工业现场常常是个不必要的负担。把场景换成:
一个 8000 平米的物流仓库,过去十年只动过两台叉车的停放位、新增了
一条传送带、装了三个货架。地面、立柱、绝大多数货架都没变过 。
这种 99% 静态、1% 变化的环境,与其每次开机重新建图,不如:
一次性 用毫米级精度的全站仪 / TLS / 高密度无人机
摄影测量,把整座仓库扫成一份"超高精度数字孪生"(点云 / Mesh /
3DGS / BIM)。这一步很贵,但只做一次。
运行时 机器人只需要:(i) 把自己的位姿对到
这份孪生里去;(ii) 把新出现的人、叉车、暂存货物当作临时
delta;(iii) 当某个 delta 反复多次出现、跨越足够多天,把
它从临时 delta 晋升为对孪生本体的永久编辑 。
关键想法 · 一句话
数字孪生 SLAM = 先验地图上的贝叶斯定位 +
临时 / 永久 delta 的层级化更新 。
SLAM 的 "M" 几乎不再是问题;"L" 和 "$\Delta$" 才是。
这套思路不是新发明——它的祖师爷是 1999 年 Fox & Burgard 的
Monte Carlo Localization (在给定栅格地图里用粒子滤波找
机器人位姿)和 2007 年 Levinson & Thrun 的 Map-Based Precision
Vehicle Localization (在预先扫好的 LiDAR 反射率地图里把车开
出 10 cm 精度)。最近五年,三件事让它重新变成 hot field:
(a)3DGS / NeRF 让"先验地图"变成可微的稠密表示;
(b)DUSt3R / MASt3R / VGGT 这一代 feed-forward 3D foundation
model 可以一次前向就完成 "drop a scan, get the 6DoF";
(c)Khronos / CL-Splats / GaussianUpdate 把"折回数字孪生"
变成了可量化的工程问题。
§2 核心方程 · Bayes on a Prior
所有"数字孪生 SLAM"在最底层都是同一个方程:在已知地图 $m$ 下,给定
里程计 $u_{1:t}$ 和传感器观测 $z_{1:t}$,求当前位姿 $x_t$ 的后验。
$$ p(x_t \mid z_{1:t}, u_{1:t}, m) \;\propto\; \underbrace{p(z_t \mid x_t, m)}_{\text{观测似然}} \int \underbrace{p(x_t \mid x_{t-1}, u_t)}_{\text{运动模型}} \, p(x_{t-1} \mid z_{1:t-1}, u_{1:t-1}, m) \, dx_{t-1} $$
和经典 full-SLAM 相比,关键差别是地图 $m$ 出现在条件里而不是
联合估计里 ——它是 given,不是 unknown。这一个小小的语法变化,
把整个估计问题从 $\dim(m)$ 维(可能是几百万)降到 $\dim(x_t)$ 维(6)。
所有后面会讲到的方法,本质上都是怎样高效地表示 $p(z_t \mid x_t, m)$ 这个观测似然 :
方法家族 $p(z_t \mid x_t, m)$ 的形式 计算方式
MCL / AMCL 占据栅格 + 光线投射 per-particle ray cast
NDT-MCL / GICP 每 cell 一个高斯 point-to-distribution
iNeRF / 6DGS 差分渲染 vs 观测像素 反向传播
SCR (ACE) 2D→3D coordinate 回归 + PnP 一次前向 + RANSAC
MASt3R-SLAM 两视图 pointmap 直接预测对齐 前向 + 二阶优化
当地图 $m$ 真的不变时,这个公式就是终点。但工业现场的 $m$ 是慢变的 ——
有些区域今天和半年前一样,有些区域刚被改动。所以真正的形式应该是:
$$ p(x_t, m_t \mid z_{1:t}, u_{1:t}, m_0) \;=\; p(x_t \mid z_{1:t}, u_{1:t}, m_t) \cdot p(m_t \mid z_{1:t}, m_0) $$
后一个因子 $p(m_t \mid z_{1:t}, m_0)$——给定历史观测,地图相对原始
孪生 $m_0$ 漂移成什么样 ——是终身建图 (lifelong mapping) 的核心。
这就是为什么 Khronos、POCD、CL-Splats 这些工作必须存在:它们在维护
这个分布。
直觉
把数字孪生想成一张持久的、版本化的世界状态 。
机器人每次启动只需"login"到当前最新版本(重定位),运行中把不一致
的观测以 patch 的形式 commit 到本地(临时 delta),后台进程根据
patch 的频率和持久度,定期把稳定的 patch merge 回主版本
(永久折回)。这套 git-for-the-physical-world 的隐喻在文献里是
隐含的,CL-Splats 是第一个把它说成 "version-controlled 3DGS" 的。
§3 为什么这事在工厂里成立
"为什么不直接跑 SLAM?" 是这个领域必须正面回答的问题。答案有四点。
维度 从零 SLAM 数字孪生锚定
全局精度 受回环约束,长走廊 $\sim 10^{-3}$ 量级 drift 受先验精度约束,可达 $\sim 10^{-4}$(毫米级 TLS 扫描)
启动时间 分钟级建图收敛 秒级重定位
跨日一致性 每次坐标系不同 所有 session 共享孪生坐标系
动态干扰 动态物体污染地图本体 动态物体被识别为临时 delta,孪生不变
初始投入 很低(机器人自己扫) 高(一次性昂贵的离线建模)
边际新场景 低 需要一次离线建模 pipeline
所以这套方案的真正适用域 是 ①场景长期固定;②对全局
精度敏感(manipulation / 巡检 / 高速 AGV);③可以承担一次性离线建模
成本的工业现场。如果场景是开放道路或户外探索(autonomous driving 街道
更新例外),从零 SLAM 仍然是对的。
核心前向 · 教学伪代码
这段伪代码是整本 survey 的"管道总图"。后面每张卡片的
role
标签都对应到下面某一步——比如 likelihood = Step 3,
fold-back = Step 5 + 后台 merge。
# 数字孪生锚定的最小重定位循环 — 用 particle filter 的写法做演示
# (实际系统会用 PnP / 差分渲染 / feed-forward 网络替换 likelihood 计算)
def relocalize_in_twin(prior_map, sensor_stream, N=1500):
# Step 1 [init] — 在先验地图上铺一层均匀粒子 (6DGS / Reloc3r 改这里)
particles = sample_uniform_over_freespace(prior_map, N)
for z_t, u_t in sensor_stream:
# Step 2 [front-end] — 每个粒子按里程计 + 噪声前推
for p in particles:
p.x = motion_model(p.x, u_t)
# Step 3 [likelihood] — 把观测 z_t 在 prior_map 里渲染/匹配
# MCL: ray-cast 占据栅格 iNeRF: NeRF 差分渲染
# 6DGS: 反投 3DGS 椭球到图像 Reloc3r: 一次前向给 relative pose
# ACE: 神经网络回归 scene coord MASt3R: 两视图 pointmap 对齐
for p in particles:
p.w = sensor_likelihood(z_t, p.x, prior_map)
# Step 4 [front-end] — 重采样
particles = low_variance_resample(particles)
# Step 5 [change-detect] — 不能被先验解释的残差就是 delta candidate
delta = compute_residual(z_t, mean_pose(particles), prior_map)
push_to_delta_buffer(delta)
yield mean_pose(particles), delta
# 后台 [fold-back] — 反复出现的 delta 升级为对 prior_map 的永久编辑
# Khronos / CL-Splats / GaussianUpdate / LTGS / GS-LTS 都改这一步
maintain_twin(prior_map, delta_buffer)
Demo 1 · 痛点墙 / Drift Wall
per-step noise $\sigma$
▶ run
reset
点 run,看橙色(从零 SLAM)和墨绿(锚定数字孪生)两条
轨迹的 ATE 随时间发散。把 noise $\sigma$ 拉大,模拟更长的走廊:从零 SLAM
的开环漂移会迅速吞掉所有精度;锚定到先验的那条始终在 ~0.6 px 以内。
这就是为什么"先有数字孪生" ——不是为了省去 SLAM,
而是为了把 SLAM 从"积分误差"问题变成"每帧重定位"问题。
§4 四个痛点 a / b / c / d
即使你接受 "先建一次孪生再 localize" 是对的,剩下的几乎所有论文都在
回应下面四个痛点之一或多个。后面每一张 paper card 都会在 pain 句里
用 (a)/(b)/(c)/(d) 回指。
痛点 (a) · 冷启动 / Cold-start global pose
机器人开机时不知道自己在哪里。在 $100 \text{ m} \times 100 \text{ m}$ 的仓库里,6-DoF 位姿
空间太大,没法穷举。无 pose 先验的全局重定位 是
MCL → Loc-NeRF → 6DGS → Reloc3r 这一长串工作的主驱动力。一个好系统
应该能在 < 1 秒内、不依赖 GPS / WiFi 指纹的情况下,从全局先验里
直接给出 6-DoF 位姿。
痛点 (b) · 临时 vs 永久 / Transient vs Permanent
眼前这个货架今天不在原位——是因为有个叉车把它挡住了(临时),还是它
被搬走了(永久)?错把临时当永久会污染孪生;错把永久当临时则会让
机器人在"看不见的墙"上撞死。POCD、Khronos、CL-Splats、GaussianUpdate
这一支专攻这件事。
痛点 (c) · 外观漂移 / Appearance drift
同一个仓库角落,早班开灯、晚班关灯,照片差异巨大;同一面外墙,雨天
湿、晴天干,纹理也不同。几何上几乎没变,但 RGB / 描述子完全不一样。
Stenborg 的 semantic localization、Splatfacto-W、WildGaussians 这一线
专门处理这类外观不变性。
痛点 (d) · 持久折回 / Long-term fold-back
当某个 delta 出现了 N 次、跨越 T 天,应该不应该把它编辑回数字孪生?
N、T 怎么定?折回时是覆盖还是版本化?这是终身建图最难的一步——
Walcott-Bryant 的 Dynamic Pose Graph (2012)、Tipaldi 的 HMM (2013)、
Krajník 的 FreMEn (2017)、Schmid 的 Khronos (2024)、Ackermann 的
CL-Splats (2025) 是同一条 lineage 的不同阶段。
§6 MCL / AMCL · 在已知地图上做粒子滤波
Foundations 这一章不是 "经典 SLAM 列表",而是后面所有家族都
要回指的祖师爷锚点 。我们只挑必须解释清楚才能讲后续 lineage
的那 6 篇,再加 1 篇 2024 的 frontier (MS-Mapping) 作为"现代化封顶"。
MCL · AMCL
— Monte Carlo Localization + KLD-Sampling Adaptive Particle Filter
痛点 (a):在给定栅格地图里,无 pose 先验时如何稳定地估计位姿。
关键想法 :把"机器人在地图里的位姿"这个分布用
一组粒子表示——不假设高斯。每一帧用里程计前推、用激光观测重新
加权、然后重采样。KLD-MCL(即 ROS 里的 amcl)进一步
根据当前后验的不确定性自适应调整粒子数 :刚开机时铺几千
个,收敛后压到几百个。
奠定了"地图作为 condition,位姿作为 unknown"这一整套框架的工程
范式——所有后面的"在先验地图里定位"方法都是它的某种变体,只是
把观测似然换成了更花哨的东西。
占据栅格 likelihood 假设地图完全静态;动态物体(人、叉车)的反射
会被当作"墙错位",污染整个粒子分布——直接催生了 §9 DynaSLAM 那
一支动态过滤工作。
§7 Demo · MCL Collapse · 粒子从均匀分布坍缩到真位姿
scan noise $\sigma$
step ×3
reset
1500 个粒子被均匀撒在 floor plan 上。每点一次
step ×3
机器人前进 3 步,每步都用一组 16-beam 模拟 LiDAR 扫描 reweight + 重采样。
可以看到粒子云在 3-5 步内坍缩到真位姿附近——这就是
§6 AMCL 的算法
被压成的最小可视化。把 noise $\sigma$ 拉大模拟 LiDAR 不准,会看到粒子云
收敛更慢、更宽。
§8 GICP & NDT-MCL · 连续似然场上的对齐
GICP / NDT-MCL
— Generalized-ICP & Normal-Distributions-Transform MCL
痛点 (a):占据栅格的离散性让 sub-cell 精度受限,工业 AGV 要求毫米级。
关键想法 :把先验地图从"占据/空"的二值栅格升级
为每个 cell 一个高斯 (NDT)或每个点带局部协方差
(GICP)。观测点云对先验的对齐变成 point-to-distribution,似然连续
可导,特别适合 LiDAR 在结构化室内场景。NDT-MCL 把这个观测模型
塞进粒子滤波,是今天许多 AGV 系统的事实标准之一。
与 MCL 同样是 "在先验地图上的概率定位",但把观测似然从离散的
"射线命中"换成了连续高斯——精度从 cm 量级压到 mm 量级。
高斯局部模型对 reflective / 重复几何(长走廊、玻璃幕墙)的歧义
无能为力;非结构化室外场景下性能急速下降——这正是后续 §15 NeRF /
§47 DUSt3R 那条"换 likelihood"路线要解决的。
§9 DynaSLAM · 把动态物体从地图里删掉
DynaSLAM
— Tracking, Mapping and Inpainting in Dynamic Scenes
痛点 (b):动态物体(行人、车)混进 SLAM 地图,会让回环和重定位永久失败。
关键想法 :在 ORB-SLAM2 前端加两道滤波——
(i) Mask R-CNN 把 a-priori 可能动的类别(人、车)整片抠掉;
(ii) 几何一致性检查把剩下的"看起来不该动但实际在动"的
像素也抠掉。然后用历史关键帧把这些洞 inpaint 回静态背景,得到
一份干净的 keyframe map。
第一代"语义 + 几何"双判据动态滤除——后面所有 dynamic-aware SLAM
(DS-SLAM, MID-Fusion, WildGS-SLAM) 都是它这种"先认出动的,再把它
从地图里扣掉"的范式延续。
仅对 a-priori 动态类别(COCO 里的人/车)有效;陌生类别(堆放的
临时纸箱、新型 AGV)不被识别,依然会污染地图——§39 4DGS-SLAM
转向"双 Gaussian 集合"正是为了显式建模未知动态体。
§10 Panoptic Multi-TSDF · 把变化降到 object 粒度
Panoptic Multi-TSDF
— A Flexible Representation for Online Multi-resolution Volumetric Mapping and Long-term Dynamic Scene Consistency
痛点 (b)+(d):voxel 级的变化检测会把 "椅子动了一下" 拆成上千个 voxel update,无法支撑 object-level 决策。
关键想法 :把整张全景地图从"一份大 TSDF"重构为
每个 panoptic instance 一份独立的 submap TSDF ——背景一张,
每个椅子、桌子、机器各自一张。变化、删除、重新实例化都在 submap
粒度发生,配上每个 submap 的最后观察时间戳,object-level 终身一致
性成为可计算的属性。
把先前 voxel-级 long-term mapping (Pomerleau, FreMEn) 提升到
instance 级——Khronos 的 4D 时空 scene graph 即由此演化而来。
submap 间的接缝处易失配,需手工调节合并阈值;没有时间维度建模,
"椅子早 8 晚 6 在那里"这种周期性信息丢失——§29 Khronos 用因子图
+ 时序事件显式修了这两件事。
§11 BIM-PoseNet · 用纯合成图把 BIM 当作训练数据
BIM-PoseNet
— Indoor Camera Localisation Using a 3D Indoor Model and Deep Learning From Synthetic Images
痛点 (a)+(c):室内 BIM 模型存在,但拍不到真实带 pose 的训练图——人工标注成本爆炸。
关键想法 :BIM 自带几何 + 材质,可以渲染任意视角的
合成图 。把整套 PoseNet 完全用合成图训练,部署时直接吃真实相机
图回归相对于 BIM 坐标系的 6-DoF——零真实图标注。BIM 同时是"地图"
和"训练数据生成器",是数字孪生 SLAM 在 BIM 一支里最干净的早期
展示。
与 PoseNet/AtLoc 这类"真实图监督"的 APR 不同,把 BIM 当成 ground
truth 渲染源,绕开了真实数据采集。后面 MoLi-PoseNet(LiDAR 版本)
和 BIM2RDT(语义 + IoT 融合)都是同一种"BIM 作为可渲染先验"的思路。
完全依赖 BIM 与现实几何一致——as-built 偏差会让 pose 估计出现
系统性偏移。这正是 §42 Vega-Torres BIM-SLAM 引入"BIM 作为
session-0 + 真实 LiDAR 自动校正"的动机。
§12 3D Dynamic Scene Graphs · 永久与临时实体首次共一张图
3D DSG
— 3D Dynamic Scene Graphs: Actionable Spatial Perception with Places, Objects, and Humans
痛点 (b)+(d):从 mesh / voxel 这种"扁平"地图里看不出"哪些是永久结构、哪些是临时实体"。
关键想法 :把场景表示成一张多层 scene graph——
底层是建筑/房间/物体的几何,往上是语义关系,最上层放动态智能体
(人、移动物体) 作为一等节点。"永久结构"和"临时实体"第一次
在同一份数据结构里被区分对待。
把 SLAM 的"地图"从 mesh/voxel 升级为结构化、可查询、可推理
的图——Hydra / Hydra-Multi / Khronos / DAAAM 是这条 lineage 的直系
后代。
虽然 dynamic agents 是图里的一等节点,但每个节点仍只代表"当前
时刻"的状态,没有时间维度——"昨天此时这把椅子在哪里"必须等到
§29 Khronos 才被首次系统处理。
§13 MS-Mapping · LiDAR 多 session 终身建图的 2024 现代化封顶
MS-Mapping
— Uncertainty-Aware Large-Scale Multi-Session LiDAR Mapping
痛点 (d):把 Foundations 一节的 pose graph + atlas 思路推到现代大场景多 session 工程——graph bloat 是主要拦路虎。
关键想法 :用 Wasserstein 距离 做增量
keyframe 选取——只把"显著新增信息"的 frame 加进 graph;用
covariance-aware pose-graph merging 让多 session 融合时不会让
优化器 over-confident。结果是真正可工程化的"先验地图随每次 session
缓慢演进"流程。
与 §10 Panoptic Multi-TSDF 走"object-level submap"路线不同,
MS-Mapping 仍在 pose-graph 层面,但引入了不确定性度量来控制 graph
大小——是 LiDAR-only 工程化 lifelong SLAM 的 2024 当下范本。
仍是纯 LiDAR pose graph,无对象级语义、无 3DGS / NeRF 兼容
——object-level 查询和 photorealistic 渲染要等到 §29 Khronos 与
§33 CL-Splats 这两条线分别接管。
§14 iNeRF · 把渲染当成可微的位姿目标函数
这一章的所有方法共享同一个范式:先验地图是一个可微的渲染
器 (NeRF 或 3DGS),"找位姿"等价于"找让渲染最像观测的位姿" 。
区别只在于 (i) 怎么提供一个好的初始位姿、(ii) 怎么避免落入局部极小。
iNeRF
— Inverting Neural Radiance Fields for Pose Estimation
痛点 (a):有一个预训练好的 NeRF,能不能从一张新图直接 invert 回 6-DoF?
关键想法 :把相机位姿 $\xi \in SE(3)$ 也当作 NeRF
的可学习参数。固定 NeRF 权重,梯度下降 $\xi$ 让 rendered
pixels 像 observed pixels ——analysis-by-synthesis。
首次把 NeRF 反演成位姿估计器——所有后续渲染式重定位(iComMa、
GSplatLoc、6DGS)都是它的某种收敛域扩展。
收敛盆地极窄——需 $\lt 30^{\circ}$ / 25 cm 初始 pose,否则陷入局部极小,
冷启动不可用。§15 Loc-NeRF 用粒子滤波修了这一刀,§18 6DGS 直接
转为闭式求解绕开了它。
§15 Loc-NeRF · 全局初始化 = 在 NeRF 上跑 MCL
Loc-NeRF
— Monte Carlo Localization using Neural Radiance Fields
痛点 (a):iNeRF 的收敛盆地太窄,没有粗略位姿就完蛋。
关键想法 :把 iNeRF 的梯度下降换成 MCL 的粒子
滤波——每个粒子代表一个候选位姿,observation likelihood 由
NeRF 渲染该位姿下的图与观测图的颜色一致性给出 。配合粗略
motion 模型,可以从均匀全局初始化在几秒内收敛到正确 basin,
再做局部 refine。
本质上是把 §6 的 MCL 算法和 §14 iNeRF 的 NeRF-as-likelihood 拼一起——
这是"数字孪生 SLAM"领域非常典型的合成模式:经典定位算法 $\times$ 新一代
地图表示。
NeRF 渲染慢(每粒子一次完整 forward),粒子数受限,大场景仍易失败
——§18 6DGS 把这件事变成闭式后才真正解决冷启动问题。
§16 Demo · Render-and-Match · iNeRF / Loc-NeRF 的收敛盆地
re-init pose
gradient step
global init (Loc-NeRF 模式)
上半部分:墨绿是"观测像素",橙色虚线是"用当前估计位姿渲染的像素"。
下半部分:photometric loss vs 候选位姿的整条曲线——可以直观看到
iNeRF 的
多个局部极小 。
默认 init 故意放在一个 bad pose,反复点
gradient step
会卡在错误的局部极小(
§14 iNeRF 的痛)。打开
global init
切到 Loc-NeRF 模式:先撒 24 个粒子全局搜,选 loss 最小的当起点
再 gradient descent——一步到位。
这就是 §15 Loc-NeRF
相对 iNeRF 做的全部 。
§17 iComMa · iNeRF 思路移植到 3DGS
iComMa
— Inverting 3D Gaussian Splatting for Camera Pose Estimation via Comparing and Matching
痛点 (a):3DGS 比 NeRF 渲染快 $100\times$,能不能用同样的 invert 思路但更快地做重定位?
关键想法 :3DGS 的 splatting 渲染对相机位姿是可微的,
直接把 iNeRF 思路移植——梯度下降 $\xi$ 让 splatting 渲染像观测图。
为了缓解 photometric loss 的局部极小,额外引入一个 LoFTR 风格的
2D matching loss ,把渲染图和观测图先做特征匹配再回传梯度,显著
扩大了收敛盆地。
把 iNeRF 的范式带进 3DGS 时代——同样是 analysis-by-synthesis,但
渲染快 $100\times$,并且加入 explicit feature matching 抢救收敛域。
仍需要粗略初始位姿;纹理稀疏(白墙、纯地面)场景下 feature matching
失效,回退到纯 photometric——大场景冷启动仍依赖 §18 6DGS 或
§51 Reloc3r 给的 prior。
§18 6DGS · 闭式、无需初始位姿
6DGS
— 6D Pose Estimation from a Single Image and a 3D Gaussian Splatting Model
痛点 (a):分析-合成式方法都需要初始位姿,6-DoF 全局搜索代价依然不小。
关键想法 :反过来——不让位姿下降到匹配的渲染,而是
让 3DGS 的每个椭球反向投射"椭球射线"到观测图,三角化出相机
中心 。整个过程是闭式的、一次前向、无需任何初始位姿、无需迭代。
把 6DoF 估计从优化问题转成几何代数问题。
与 iComMa / GSLoc 这些梯度优化路线正好相反:6DGS 把整套 invert
pipeline 从迭代换成了 closed-form,是"无 pose 先验全局重定位"
最优雅的一种解法。
对 3DGS 的训练质量极敏感(椭球长得歪、覆盖稀疏,反投三角化噪声
爆炸);大场景下椭球数 $N^5$ 复杂度让闭式求解爆炸——是 §19 SplatLoc
转向"per-Gaussian 描述子 + PnP"的直接动因。
§19 SplatLoc / GSplatLoc · 给 3DGS 每个椭球装上描述子
SplatLoc · GSplatLoc
— 3DGS-based Visual Localization for AR + Grounding Keypoint Descriptors into 3DGS
痛点 (a)+(c):渲染式重定位对外观漂移敏感;想用稳定的 2D-3D 匹配,但 3DGS 没有传统意义上的"地图点"。
关键想法 :在每一个 Gaussian 椭球上蒸馏一个
XFeat / unbiased 3D descriptor ,让 3DGS 同时既是渲染器又是
feature 数据库。query 图先提 keypoint,跟 Gaussian 的描述子做
2D-3D 匹配,PnP 出粗 pose,再用渲染做光度 refine。
与 6DGS 走"几何反投"不同,SplatLoc 走"特征匹配 + PnP"——
完成了 3DGS 从"纯渲染器"到"可匹配地图"的身份转变,是 3DGS
重定位族在标准 benchmark 上的稳定 2024 SOTA。
描述子需 per-scene 蒸馏;跨场景泛化弱——把同一个 SplatLoc 模型
搬到新工厂要重训。§51 Reloc3r 直接用 foundation model 跳过了这件事。
§20 STDLoc / GSVisLoc · 2025 3DGS 重定位的当下 SOTA
STDLoc · GSVisLoc
— Sparse-to-Dense 3DGS Localization + NVIDIA's Visual Localizer
痛点 (a):SplatLoc / GSplatLoc / 6DGS 都需要某种 pose prior 或匹配阈值;想要彻底无先验、无 outlier 处理。
关键想法 :STDLoc 提出 sparse-to-dense 投票,完全
取消 pose prior 假设;GSVisLoc (NVIDIA Tel-Aviv) 把 3DGS 重定位
pipeline 整体收紧到能稳定 deploy 的工业级精度。两者都在 2024 年
GSplatLoc / SplatLoc 之上有可衡量的提升——iNeRF / 第一代 3DGS-loc
已基本不再被 SOTA 对比表使用。
Part 3 lineage 的 2025 收尾:把无 pose prior + 跨场景稳定的两件事
第一次同时做到了工业级。
仍依赖一份预训练 3DGS——外观漂移大、夜间/雨天,3DGS 本身就脆弱时
精度下降;终极方案需配合 §40 WildGS-SLAM 风格的外观鲁棒训练。
§21 GS-EVT · 把事件相机对到 3DGS 上
GS-EVT
— Cross-Modal Event Camera Tracking based on Gaussian Splatting
痛点 (c):高速 / 强光 / 弱光场景下,传统 RGB 相机失效;先验地图用 RGB-based 3DGS,运行时传感器换成事件相机。
关键想法 :把 3DGS 渲染一帧差分强度图,跟 event
stream 积分出的强度图做匹配——跨模态的渲染式跟踪 。证明
了 "数字孪生 = 一份固定的 3DGS、运行时可以换不同传感器去对" 这种
解耦是可行的。
把 3DGS 作为先验地图的概念扩展到非 RGB 传感器:先验是 RGB-3DGS,
query 是 event stream,证明孪生与传感器的解耦不止理论上成立。
事件相机噪声模型被简化为高斯,强光/弱光极端下匹配仍脆弱;尚未与
IMU 融合,高速运动下跟踪会丢——同 §50 MASt3R-Fusion 的多模态融合
思路尚未在 event modality 上完成。
§22 DSAC* · 把"图像→3D 坐标"塞进神经网络
SCR 这条 lineage 走的是另一种道路:先验地图被编码成一个
神经网络 ,输入一张 query 图,逐像素回归该像素对应的 3D
世界坐标 。然后 PnP+RANSAC 出 6-DoF。这条线在 city-scale 室外
有很强 SOTA。
DSAC*
— Visual Camera Re-Localization from RGB and RGB-D Images Using DSAC
痛点 (a):传统 SfM 重定位需要存大量描述子;想用一个紧凑神经网络代替整张特征地图。
关键想法 :训一个 CNN 把每个像素回归到对应的 3D
世界坐标("scene coordinate"),用 differentiable RANSAC 选出
inlier 假设,然后 PnP。整张地图被压缩成一个 ~30 MB 的网络,
重定位时间 < 100 ms。
完全跳过显式 SfM 地图——地图就是网络权重。但要为每个新场景重新训练
几小时~几天,这是后续 ACE 系列要解决的痛。
每个新场景训几天的部署成本,与"工业 deploy 时只接受几分钟"严重
不符——§23 ACE 把 per-scene 训练压到 5 分钟才把这条路线变得可
工程化。
§23 ACE / ACE-Zero · 5 分钟训完一个场景
ACE · ACE-Zero
— Accelerated Coordinate Encoding + Scene Coordinate Reconstruction
痛点 (a):DSAC* 每个新场景训几天,与"工业 deploy 时只接受几分钟"严重不符。
关键想法 :把 SCR 拆成场景无关的冻结 backbone
+ per-scene 训练的小 MLP head 。每个 gradient step 在一个
超大随机视角 buffer 上做,5 分钟收敛到 DSAC* 几天的精度。ACE-Zero
更进一步——把"训练"和"poseless SfM"合并:边训 relocalizer 边
posed image collection,连初始 pose 都不需要。
把"为每个场景部署一个 SCR 网络"从几天压到几分钟。让 SCR 范式从
研究玩具变成可工程化的孪生重定位方案。
室内单房间精度很好,户外 city-scale 上精度崩——§24 GLACE / R-SCoRe
引入全局描述子才把这件事修好。
§24 GLACE / R-SCoRe · 让 SCR 在户外大场景成立
GLACE · R-SCoRe
— Global-Local ACE + Robust SCR for Large-Scale Localization
痛点 (a):ACE 在小室内场景挺好,但在 Aachen Day-Night 这样的大户外场景训不动、精度崩。
关键想法 :在 ACE 的 local feature 上拼接一个
预训练 R2Former 全局描述子 ,让网络同时知道"这是哪条街"
和"这是这条街的哪一段"——一个网络压住了 city scale。R-SCoRe 接着
引入 covisibility-graph driven 全局编码和 depth-adjusted reprojection
loss,让 Aachen 上的精度比 ACE 高一个数量级,地图体积小 $5\times$。
把 SCR 从 indoor / 单个房间真正推到了 city scale——这是数字孪生
SLAM 在户外大场景的关键 enabler。
训练 backbone 大、需大量带 pose 训练数据;新场景部署虽快,但
"完全零 per-scene 训练"还要等 §26 SACReg / §51 Reloc3r。
§25 Marepo · 用 SCR 地图喂给 APR
Marepo
— Map-Relative Pose Regression for Visual Re-Localization
痛点 (a):APR (Absolute Pose Regression) 一直被诟病"对每个场景都要重新训",与 SCR 一样不通用。
关键想法 :把"场景"作为额外条件输入到 APR
——具体做法是 ACE 算出的 scene coordinate map 作为 conditioning。
这样 APR 网络本身就场景无关,新场景只需训一个 ACE head(几分钟)。
"在数字孪生上 deploy" 的工程门槛进一步降低。
与传统 APR 相比,把"场景特异性"挪到一个轻量级的 SCR head 里,APR
本身可以一次训完终身用。Conceptually 是 SCR 和 APR 的 hybrid。
APR 本身精度(cm 级误差不稳)不及 PnP 方案,工业 manipulation 仍
需要后接 §17 iComMa 风格的渲染 refine。
§26 SACReg · scene-agnostic 的 SCR transformer
SACReg
— Scene-Agnostic Coordinate Regression for Visual Localization
痛点 (a):连"per-scene 训 5 分钟"都嫌多——能不能彻底不训?
关键想法 :训一个跨场景通用 的 SCR
transformer——输入是少量带稀疏 2D-3D 标注的数据库图 + query
图,cross-attention 直接预测 query 的稠密 3D 坐标图。新场景
只需提供少量先验图,零训练 。
SCR lineage 的逻辑终点:从 per-scene 训几天 → 几分钟 → 完全
零训练。下一步就交给 §47 DUSt3R / §48 MASt3R 这种 3D foundation model。
仍需要稀疏 2D-3D 标注作为输入;纯"零标注 + 零训练"重定位要到
§51 Reloc3r 才实现。
§27 FreMEn · 把每个 cell 的占据当成时序信号
这一章是整本 survey 的心脏——四个痛点里的 (b) 临时 vs
永久 和 (d) 持久折回都集中在这里。从 Krajník 2017 一路打到
GaussianUpdate 2025 和 DAAAM 2025。
FreMEn
— Frequency Map Enhancement for Long-Term Mobile Robot Autonomy in Changing Environments
痛点 (b)+(d):占据栅格只记"当前状态",无法表达"这个 cell 早上 9 点常常被占、晚上常常空"。
关键想法 :把每个 cell 的占据序列展开成傅里叶
频谱 ,只保留几个主频。整张地图变成几百兆参数下的"周期性占据
预测器"——可以预测"明天上午 9 点该 cell 是否会被占",压缩比
$\sim 1:10^5$。
与"按观察次数滑窗 vote"的早期长期占据图相比,FreMEn 第一次让"周期
性 vs 非周期性占据"成为地图本身的属性——Khronos 的时空 scene
graph 可以看成 FreMEn 的 instance-level + 数据驱动版本。
假设变化是周期性的;非周期事件(突然搬走一台设备)不被频谱建模,
会被当噪声丢弃——§28 POCD 把"周期"换成"object-level Bayesian"
才修了这件事。
§28 POCD · object-level 概率变化检测
POCD
— Probabilistic Object-Level Change Detection and Volumetric Mapping in Semi-Static Scenes
痛点 (b)+(d):传统 TSDF 差分检测把"物体微移 5 cm"也当成变化,根本没法 trigger fold-back。
关键想法 :对每个物体 维护一个 stationarity
score 和 TSDF-change measure,通过 Bayesian update 把几何残差和
语义类别融成一个"该物体是否真的换位"的概率。低于阈值的视为同物体
略微观察噪声,高于阈值的明确触发 fold-back。
POCD 把 Panoptic Multi-TSDF 的 instance 级 submap 加上了一个明确的
"永久 vs 临时"贝叶斯判定准则——把第 4 节痛点 (d) 第一次形式化成
可阈值的工程量。
对象级 Bayesian 阈值需要良好 segmentation;非刚体物体(柔性管道、
布料)处理弱——§29 Khronos 加入时序事件因子图才能正确处理这类。
§29 Khronos · 时空 4D scene graph
Khronos
— A Unified Approach for Spatio-Temporal Metric-Semantic SLAM in Dynamic Environments
痛点 (b)+(d) 全部:动态前景 + 半静态家具 + 永久结构必须同时在一份地图里被一致地处理。
关键想法 :把 spatio-temporal SLAM 拆成两个进程:
(i) 短时程进程 负责跟踪当前帧的动态前景;
(ii) 长时程因子图进程 负责推断每个物体的出生 / 消亡 / 移动
事件。最终产出是一份4D 地图 ——可以查询任意过去
时刻的场景状态。
Panoptic Multi-TSDF 给出 instance-level static representation;
Khronos 在其上加了 time 维度,把"折回数字孪生"提升为"全时空
场景状态推断"——是这一章 lineage 在前 3DGS 时代的巅峰。
使用 TSDF + scene graph,无 3DGS / NeRF 表示兼容(不能 photorealistic
渲染);自然语言查询需外接 VLM——§30 DAAAM 在同一个组里把 language
head 集成进来修了第二件。
§30 DAAAM · Khronos 的语言-grounded 后裔
DAAAM
— Describe Anything, Anywhere, at Any Moment
痛点 (b)+(d):Khronos 给出 4D 地图,但回答"昨天下午 3 点货架 7 上有什么"还要外接 VLM。
关键想法 :在 Khronos 的 4D scene graph 之上,把每个
时刻、每个实体的语言描述 作为图节点的一等属性,由 localized
captioning model 实时生成。"你刚才看到的红色叉车 5 分钟前停在哪里?"
成为可结构化查询。
Khronos 解决 "4D 数字孪生";DAAAM 在其上加 language layer,让数字
孪生第一次支持自然语言时空查询——MIT-SPARK 的直接 lineage。
4D 表示存储成本高;语言层实时性受 captioning 模型瓶颈限制(当下
~几 Hz);与 3DGS-based 表示融合的工作尚未出现。
§31 C-NeRF · 用两份 NeRF 的差异定位 3D 变化
C-NeRF
— Representing Scene Changes as Directional Consistency Difference-based NeRF
痛点 (b):用 RGB 差分检测 2D 像素变化会把"光线变了"也当成变化;必须在 3D 里比较。
关键想法 :训两份不同时刻的 NeRF $f_0, f_1$,
定义方向一致性差异 ——同一 3D 点在两个 NeRF 下的密度 /
radiance 对相机方向变化的响应差异。这个差异在 3D 中定位真正的
几何变化,对光照漂移不敏感。
与基于 2D 像素差分的 change detection 相比,C-NeRF 在 3D 里
做差,对 §4 痛点 (c) 外观漂移天然鲁棒。
需要两份 NeRF(一份是旧孪生、一份是新观测训出的),新 NeRF 训练
慢使整个流程不实时——§33 CL-Splats 转为"在原 3DGS 上做局部
优化"绕开了重新训练。
§32 CL-NeRF · 把新观测往老 NeRF 上 patch 而不破坏旧区域
CL-NeRF
— Continual Learning of Neural Radiance Fields for Evolving Scene Representation
痛点 (d):在旧 NeRF 上直接 fine-tune 新观测会"灾难性遗忘"——旧区域被改坏。
关键想法 :给 NeRF 主体加一组轻量 expert adapter ,
只让 adapter 吸收新观测;用 conflict-aware distillation 让 adapter
的影响范围被空间局部化,不污染未观测区域。本质上是 LoRA 思想在
NeRF 上的对应。
与 C-NeRF 走"两份 NeRF 比差异"不同,CL-NeRF 走"在一份 NeRF 上做
增量编辑"——是 §4 痛点 (d) 持久折回在 NeRF 范式里的具象。
NeRF expert adapter 仍训练慢;adapter 数量随变化次数线性增长——
"终身"运行 1 年后会臃肿。§33 CL-Splats 把这套思路搬到 3DGS 上后
才真正轻量化。
§33 CL-Splats · 版本化的 3DGS
CL-Splats
— Continual Learning of Gaussian Splatting with Local Optimization
痛点 (d):每次有变化就重新 fit 整张 3DGS 既慢又会损失旧版本信息。
关键想法 :change-detection 模块把"被改动"和"保持
不变"的 Gaussian 分开——只对改动区域做局部优化 ,其它部分
冻结。同时保留历史 Gaussian 状态作为可恢复版本 ,
使得 "回滚到昨天的孪生" 成为一次 git checkout。
CL-NeRF 在 NeRF 里做局部编辑;CL-Splats 在 3DGS 里做局部编辑,
并且首次提出 "version-controlled 3DGS"——是 §2 直觉里的
"git-for-the-physical-world" 第一个具象实现。
局部优化仍可能影响相邻 Gaussian(边界 leakage);版本化存储开销
随时间累积——§35 LTGS 引入"per-object 模板"才让长时间存储变可控。
§34 GaussianUpdate · 把"变化类型"作为一等公民
GaussianUpdate
— Multi-Stage Updating of Pre-Built 3DGS with Type-Aware Continual Learning
痛点 (b)+(d):CL-Splats 处理"变了"和"没变",但不区分变化的种类——遮挡、重排、光度漂移要不同的对待。
关键想法 :在 3DGS 更新 loop 里把变化显式分类成
transient occluder · permanent rearrangement · photometric drift
三种,分别走不同 pipeline。配合 visibility-aware continual learning
+ 生成式 replay,不需要存历史图像 。这是当下离"工厂运营
需要"最近的一个 fit。
与 CL-Splats 的"分变 / 没变"二分相比,GaussianUpdate 把变化的
"类型"作为模型的一等输入,使决策能匹配 §4 痛点 (b) 的真实物理
语义。
三类变化分类粒度仍粗——photometric drift 与 rearrangement 共现
(灯坏了 + 货架被搬走)时易混淆;分类置信度本身的校准是 open
issue。
§35 LTGS · 跨周 / 跨月的稀疏视角孪生维护
LTGS
— Long-Term Gaussian Scene Chronology from Sparse View Updates
痛点 (d):CL-Splats / GaussianUpdate 假设新观测密集;现实是机器人每周才"路过"某区域几次。
关键想法 :为每个物体建立可复用结构 prior 模板 ,
时间演化退化成逐模板的轻量级变换 而不是稠密重优化。这样
每周几张新照片就能维持月级别的孪生时间线。
与 CL-Splats / GaussianUpdate 相比,LTGS 把"更新"从"逐 Gaussian"
抽象到"逐模板",是和真实工厂"稀疏巡检"调度匹配最好的方案。
假设场景由可复用模板组成;非物体化的渐变(漏水后墙面发霉这种连续
形变)不适用——需要继续等针对"非物体化"持续场的工作。
§36 GS-LTS · service robot 的 active 数字孪生维护
GS-LTS
— 3DGS-Based Adaptive Modeling for Long-Term Service Robots
痛点 (d):CL-Splats / GaussianUpdate / LTGS 都是被动等观测;service robot 应该主动去捕获变化。
关键想法 :robot 单图检测到场景变化后,自主规划
重采样视角 采集 multi-view 数据,再把新数据 in-place 编辑进
persistent 3DGS。这是数字孪生 SLAM 第一个完整的 "detect change →
actively recapture → fold-back into twin" 闭环。
Part 5 lineage 的执行端封顶:把"更新"本身从被动统计推到主动决策
——和 §35 LTGS 的稀疏视角策略互补(LTGS 等机器人路过、GS-LTS 让
机器人主动去)。
需要 service robot 主动控制权(manipulator + 移动底盘);被动
多机器人场景(固定 AGV 沿固定路径)不适用——仍是单机器人范式。
§37 Demo · Transient vs Permanent Fold-in
min observations N
min days T
每个圆点是仓库里观察到的一个 "delta"——可能是走过的行人、来回穿梭的
叉车、或一个被搬走的货架。拖动 N / T 阈值,看哪些 delta 被晋升为
permanent
(折回孪生),哪些保持
transient
(只跟踪不折回),哪些被当作
ghost 忽略。
试试把 T 拉到 15 以上:大部分 forklift 都会从 permanent 被降回
transient——这正是
§29 Khronos 长时程因子图在做的事。
§38 Dynamic 3D Gaussians · 持续追踪每个 Gaussian 的身份
这一章的所有方法都有同一个目标:从一段同时包含动态前景和
静态背景的视频,恢复出"持久数字孪生"那部分静态场 。前景被
single-out 出去后,剩下的就是 §27 那一章可以维护的 static field。
Dynamic 3D Gaussians
— Tracking by Persistent Dynamic View Synthesis
痛点 (b):dynamic-3DGS 大多重建一帧扔一帧,没有"跨时间稳定的 Gaussian 身份"。
关键想法 :所有 Gaussian 有持久 ID ——
每个 Gaussian 维护 6-DoF 时序轨迹,靠 local rigidity 正则把
"属于同一刚体的 Gaussian 一起动"。结果是每个 Gaussian
的运动可以被追踪、合成新视角的同时显式给出 6-DoF 跟踪 。
这种"持久身份"让"哪些是 static field"成为可计算属性。
与 4DGS / 4D-Gaussians 这种"每帧重新拟合"的 dynamic 3DGS 不同,
Luiten 让 Gaussian 跨时间保持身份——是 §27 章节"持久 fold-back"
的几何底座。
仅在 multi-view 同步视频上有效;单目部署还很弱——§40 WildGS-SLAM
把单目这件事推到了 SOTA。
§39 4DGS-SLAM · 静态 + 动态双 Gaussian set
4DGS-SLAM
— 4D Gaussian Splatting SLAM
痛点 (b):传统 dynamic-aware SLAM 都"扔掉"动态像素,但工厂里 AGV、人本身就是 task-relevant。
关键想法 :在 SLAM 内同时维护两组 Gaussian
集合 ——静态集合是数字孪生本体,动态集合用稀疏 control points
+ MLP 建模其时变变换。是数字孪生 SLAM 范式里"static-field-as-twin"
最干净的工程实现。
与 DynaSLAM 这种"动态像素丢弃"的 1st-gen dynamic SLAM 相比,
4DGS-SLAM 既保留了静态孪生又显式建模动态实体——为下游
manipulation/avoidance 提供 ready-to-use 的动态前景模型。
动态集合的稀疏 control points + MLP 对快速、非刚体运动(行人步态)
表达仍粗糙;高速 AGV 场景下时间分辨率不足。
§40 WildGS-SLAM · 单目 dynamic 3DGS-SLAM 的新 SOTA
WildGS-SLAM
— Monocular Gaussian Splatting SLAM in Dynamic Environments
痛点 (b)+(c):单目 + 动态环境是最难的组合——既没深度先验,动态像素又会污染 BA。
关键想法 :在 DINOv2 feature 上训一个 uncertainty
MLP,给每个像素打一个 "属于静态背景的可信度" 分数;tracking 和
mapping 都按此 mask 加权。WildGS-SLAM 的 ATE 在 MoCap benchmark
上 0.46 cm,对比 MonoGS 47.99 cm,Splat-SLAM 8.71 cm——一个数量级
的提升。
与 4DGS-SLAM 显式建模动态前景不同,WildGS-SLAM 干脆"算出每个像素
属于背景的概率"——纯单目下的新 SOTA,让"在普通相机上 deploy 数字
孪生 SLAM"变得现实。
单目精度受 DINOv2 特征质量限制;高速运动下 tracker 易丢——需配合
IMU / §50 MASt3R-Fusion 风格的多模态前端才能稳态部署。
§41 DG-SLAM / DGS-SLAM · 动态感知的 RGB-D 3DGS-SLAM
DG-SLAM · DGS-SLAM
— Robust Dynamic 3DGS SLAM with Motion-Mask Generation & Adaptive Gaussian Management
痛点 (b):把 §27 章的"用 3DGS 当持久孪生"做成可在 RGB-D + dynamic 上稳定跑的 SLAM 系统。
关键想法 :用 motion-mask 检测 + hybrid
point-to-point / point-to-plane tracking,让静态 3DGS field 在动态
环境里持续 grow 而不被污染。静态 field 即是 §33 CL-Splats 后续要
accumulate 的孪生本体。
与 WildGS-SLAM 单目不同,DG-SLAM 是 RGB-D 工程化路径——精度更
稳,是 BIM-anchored 工业部署最容易接入的一支。
需要 RGB-D(depth 传感器);纯 RGB 部署性能下降。在 LiDAR-only
设置下退化为 §13 MS-Mapping 路线。
§42 BIM-SLAM (Vega-Torres) · BIM 作为多 session SLAM 的 session-0
这一章的核心范式:数字孪生不一定是新扫的 3DGS,可能是建筑
设计阶段就有的 BIM/CAD 。BIM 自带语义、自带 geometry、自带
单位,是工业现场最现成的孪生来源。
BIM-SLAM
— Integrating BIM Models in Multi-Session SLAM for Lifelong Mapping using 3D LiDAR
痛点 (a)+(d):施工 / 巡检场景的"先验地图"应该直接是 BIM,但 BIM 是 as-designed,现实是 as-built——两者不一致。
关键想法 :把 BIM 合成成一份 "session-0" 的
pose graph + 描述子 ,让真实 LiDAR session 像普通 multi-session
SLAM 那样锚定到它。再用 multi-session 优化让 as-built 的差异通过
新 session 的观测自然 fold 回 BIM——施工进度即是 fold-back 的天然
trigger。
把 BIM 从"被动比较参考"变成"主动 session 0",让 BIM-anchored
SLAM 第一次直接套用 multi-session SLAM 的成熟工具链。
BIM 几何精度差使 session-0 描述子噪声大;BIM 中缺失的元素(临时
脚手架、新装设备)完全无法用——需 §46 BIM2RDT 的 IoT + agentic
框架补全缺失。
§43 Hendrikx · 语义 BIM 按技能动态生成地图
Hendrikx-BIM
— Connecting Semantic Building Information Models and Robotics
痛点 (a)+(c):把 IFC-BIM 转成一份"通用的占据栅格"会损失语义;不同 robot skill 需要不同的地图。
关键想法 :让 BIM 按 robot skill 动态生成"恰好够
用"的地图视图——导航用 traversability grid,对接用 ICP-friendly
mesh,clean-up 用 semantic label map。BIM 是 single source of truth,
地图是 query-on-demand 的物化。
与 BIM-PoseNet 把 BIM 当"渲染数据生成器"不同,Hendrikx 把 BIM 当
"可任意 view 的真理来源"——更接近工业部署里 BIM 的实际角色。
只演示了 2D LiDAR;3D / camera modality 不支持——§45 BIM-Informed
VSLAM 把这件事推到 RGB-D + BA factor 才补齐。
§44 Speak Same Language · 无 pose 先验的 LiDAR→BIM 全局对齐
Speak Same Language
— Global LiDAR Registration on BIM via Pose Hough Transform
痛点 (a):在 BIM 里冷启动 6-DoF——传感器是 LiDAR 点云,地图是 IFC,描述子甚至不在同一空间。
关键想法 :把"对齐"变成 6-DoF Hough 投票——
LiDAR 点云的每对几何特征,去 BIM 的特征空间投一票候选 transform。
投票最多的 transform 就是全局位姿。无需初始 guess、无需训练。
与基于特征匹配 + RANSAC 的传统点云对齐相比,Hough 投票天然
multi-modal,避免特征匹配在跨模态 (real LiDAR vs BIM mesh) 上的
脆弱性。
Hough 投票对场景规模二次复杂度;大型仓库($\gt 10000 \text{ m}^2$)下性能
受限——需要 Reloc3r-style learned 投票替代手工特征。
§45 BIM-Informed Visual SLAM · 把 BIM 墙塞进 BA
BIM-Informed VSLAM
— BIM Informed Visual SLAM for Construction Monitoring
痛点 (a):RGB-D SLAM 在大型空旷工地容易飘,BIM 的墙面是稳定的结构 prior 没用上太可惜。
关键想法 :从 RGB-D 实时检测出平面,把它们与 BIM
的墙面 IFC entity 匹配,作为 factor 注入 SLAM 后端
factor graph。BA 同时优化轨迹和"对齐到 BIM",trajectory error
下降约 24%。
与 BIM-SLAM (Vega-Torres) 把 BIM 当 session-0 锚定不同,这里把
BIM 元素当成软约束 factor ——更细粒度,与 ORB-SLAM3 式
BA 框架原生兼容。
仅利用 BIM 平面墙;曲面 / 复杂结构(管道、设备外壳)无对应约束
——非建筑结构密集的场景退化为普通 RGB-D SLAM。
§46 BIM2RDT · BIM + IoT + LLM 的 agentic 数字孪生
BIM2RDT
— BIM to Robot-Ready Site Digital Twins (Agentic AI Framework with Semantic-Gravity ICP)
痛点 (a)+(b)+(d) 全部:BIM 是 as-designed,传感器是 noisy real,IoT 提供活动 hint——这三个源得在 runtime 实时融合。
关键想法 :把 BIM 几何、IoT 活动流、机器人 LiDAR /
视觉一起喂给一个agentic LLM ,由 LLM 推理出 "哪些 BIM 元素
最可能仍然有效" 并驱动一种 Semantic-Gravity ICP ——
点云对齐时不再"几何最近邻",而是受语义先验"加重力"指引。
与传统 BIM-SLAM 把 BIM 当被动 prior 不同,BIM2RDT 把 BIM 当成 agent
决策的初始状态 ,并把 IoT 实时数据作为更新源——是当前最
接近 "runtime BIM-anchored autonomy" 的工作。
重度依赖 LLM 推理时延,runtime 性能未公开;IoT 数据可用性是强
假设——非数字化车间(无 IoT 部署)退化为 §45 那一支。
§47 DUSt3R · 一次前向出共享坐标系的稠密 pointmap
这一章是 2024–2026 整个领域被搅动最深的一支。
3D foundation model 让 "drop a scan, get the 6DoF" 第一次成为
现实 ——而且不需要 per-scene 训练,不需要相机内参,不需要
初始 pose。它正在悄悄重写 Part 3 / Part 4 两部 SCR 和 NeRF/3DGS-loc 的
许多假设 。
DUSt3R
— Geometric 3D Vision Made Easy
痛点 (a):传统 calibration + SfM + dense MVS 流水线脆弱、慢;想要"两张图扔进去出 3D"。
关键想法 :一个 transformer,输入任意两张图,
同时输出两张图各自在共享坐标系下的稠密 pointmap 。
Calibration、对应、对齐被一次前向收敛——没有显式 keypoint matching、
没有 essential matrix。
把"3D 几何视觉"从一长串脆弱的几何步骤,浓缩成一次前向。后面所有
MASt3R / VGGT / Pi$^3$ / CUT3R 都是它的迭代。
仅两视图;全场景需后续 global alignment 步骤——§52 VGGT 在
multi-view 上彻底替代了这一限制。
§48 MASt3R · 加上稠密 local feature 头
MASt3R
— Grounding Image Matching in 3D with MASt3R
痛点 (a):DUSt3R 给稠密 pointmap,但工业重定位还需要可匹配的稀疏特征。
关键想法 :在 DUSt3R 基础上加一个稠密 local
feature 头 和 fast reciprocal matching——一次前向同时给出度量
3D 和稳健 matching,赢下了 2024 年 Map-Free Visual Relocalization
挑战赛。
DUSt3R 是"几何代数 + dense";MASt3R 是"几何代数 + dense + matching"
——后面 MASt3R-SLAM / MASt3R-Fusion / Reloc3r 都是它的下游应用。
度量但只 up-to-scale;缺 IMU/GNSS 时绝对尺度不固定——是 §50
MASt3R-Fusion 接入 IMU+GNSS 才修了的痛。
§49 MASt3R-SLAM · 实时 SLAM 也走 foundation model
MASt3R-SLAM
— Real-Time Dense SLAM with 3D Reconstruction Priors
痛点 (a):foundation model 是离线工具——能不能直接当 SLAM 前端?
关键想法 :把 MASt3R 作为两视图 3D prior,在 SLAM
pipeline 里实时调用:描述子 retrieval 触发回环、相邻帧对的
pointmap 直接喂二阶全局优化。单 GPU 15 FPS、不需要固定相机模型。
与传统 ORB-SLAM3 / DROID-SLAM 这种"逐帧几何"的前端不同,
MASt3R-SLAM 的前端本身就是 foundation model—— SLAM 前端第一次
从手工几何切到 learned 3D prior。
尺度 up-to-scale;长时间运行仍会缓慢漂移——§50 MASt3R-Fusion 加
IMU/GNSS 才解决。
§50 MASt3R-Fusion · 加 IMU/GNSS 进入度量、无漂移 SLAM
MASt3R-Fusion
— Foundation-Model-Driven SLAM with IMU + GNSS Fusion
痛点 (a):MASt3R-SLAM 是 metric-up-to-scale;工业部署需要真实尺度 + 无漂移。
关键想法 :在 MASt3R 的视觉前端外接 IMU 和 GNSS,
用分层 Sim(3) / SE(3) 因子图 融合,重度依赖回环。
第一个 metric-scale、drift-free、跑在 foundation model 上的 SLAM
系统——"室外厂区 / 堆场" 的关键 enabler。
与 MASt3R-SLAM 相比,加了 IMU+GNSS 后从 "up-to-scale 单目视觉"
跨到 "真实尺度无漂移"。直接对接室外大场景 BIM-anchored 系统。
GNSS-denied 室内回退到 visual-only,回退后性能未公开量化;IMU
bias 校准对开机静止假设敏感——工业 hot-swap 部署仍要工程化封装。
§51 Reloc3r · 用 foundation model 直接回归相对位姿
Reloc3r
— Large-Scale Training of Relative Camera Pose Regression for Generalizable Visual Localization
痛点 (a):iNeRF / 6DGS / GSplatLoc 这些方法都依赖一份预训练的 NeRF/3DGS;能不能对任何新场景都直接重定位 ,无需训练?
关键想法 :用 8M posed image pair 训一个 DUSt3R 风
的相对位姿回归头 ,加最简 motion-averaging 给绝对位姿。
25 ms 推理、对 MegaDepth-1500 零样本 81% $\text{AUC}@20^{\circ}$。
与所有"先训地图再 deploy"的重定位方法相反——Reloc3r 让"地图就是
一组带 pose 的图"成为可能,凭借 foundation model 跨场景泛化。
这是数字孪生 SLAM 范式上一个值得警觉的范式转移。
仅相对位姿;密集 multi-view 全局约束尚未集成——大规模 warehouse
部署仍需配合 §52 VGGT 风格的全场景 SfM。
§52 VGGT · 一个前向出 cameras + depth + pointmaps + tracks
VGGT
— Visual Geometry Grounded Transformer
痛点 (a):DUSt3R 是两视图、MASt3R 是稠密两视图——大场景需要 100+ 视图同时对齐。
关键想法 :单一前向 transformer,输入 1 到几百张
图,同时输出相机参数、稠密深度、稠密 pointmap、跨视图 3D
tracks ,1 秒内完成。是 2024 DUSt3R 系列向 "scene-scale 一次
前向" 的总结性工作。
DUSt3R 解决两视图,VGGT 解决多视图——把"对一个场景的全部 SfM"
从分钟级算法链压成秒级前向,是数字孪生建立阶段
的关键基础。
视图数 $\le$ 数百;流式部署 (一辈子持续输入) 不行——§53 CUT3R 系列
把这件事推进 streaming 范式。
§53 CUT3R / $\pi^3$ / Fast3R · 流式、置换等变、超大规模
CUT3R · $\pi^3$ · Fast3R · MUSt3R
— Continuous / Permutation-Equivariant / Scaled-up Variants of the DUSt3R Family
痛点 (a)+(c):online 流式输入、不固定参考帧、大规模都是 DUSt3R/MASt3R/VGGT 还没完全解决的工程问题。
关键想法 :CUT3R 把状态持续 地维护起来,每来
一帧增量更新一个 persistent 3D state;$\pi^3$ 让模型对输入顺序置换
等变 ,没有"参考帧"概念;Fast3R 在 A100 上 251 FPS 处理 1000+
张图;MUSt3R 在 DUSt3R 之上加多层 memory,输出全局坐标。
这四篇是 DUSt3R lineage 不同方向的横向扩展——下一个 SLAM 前端
架构原型很可能就来自这里。
仍是研究原型,未在终身 SLAM 闭环(含 fold-back)中端到端验证——
把它们嫁接到 §33 CL-Splats 上是 2026 最值得做的工程。
§54 仍然没解决的问题
整本 survey 走完后,下面这几个 gap 是当下(2026 年 5 月)一篇好的
PhD thesis 可以瞄准的方向:
统一的"重定位 + 终身更新 + 动态处理"系统 。
当前最接近的组合是 WildGS-SLAM + CL-Splats 或 BIM2RDT + Khronos,
但没有一篇论文把三件事同时端到端做好。
真正 warehouse-scale 的 foundation-model 重定位 。
Reloc3r / MASt3R-Fusion 在房间 / 街道级很好,但还没有公开 demo 证明
能在 $5000 \text{ m}^2$ 仓库的全场景下稳定 deploy。"放一份 3DGS twin + 一个
Reloc3r 模型,机器人秒级 6-DoF" 是 2026 最该出现的 paper。
BIM-as-3DGS 的标准化 。BIM2RDT 已展示 "BIM + 实测
+ LLM",但 "把 BIM 自动渲染成同等精度的 3DGS twin" 这个 pipeline
还没有公认基础工作——这是建筑机器人量产的关键中间件。
"折回阈值"的工程学 。POCD 给出 Bayesian
formulation,但 N 和 T 在实际工厂的合理值取决于流水线节拍、班次、季节
——还没有跨行业的 benchmark。
跨传感器孪生 。GS-EVT 证明 RGB-3DGS + event camera
可以工作,但 LiDAR + 雷达 + IMU + camera 在同一份 twin 上的多模态
重定位还很零散。
2025-2026 的 lifelong-SLAM survey 。整个领域上一次
被系统综述是 Sousa et al. JFR 2023——三年内 3DGS / foundation model
完全改写了游戏规则,需要一篇新综述。
总结一句话
"数字孪生 SLAM" 的故事可以浓缩成两件事:
(a) 把先验地图做厚到能解释绝大多数观测
(TLS → BIM → 3DGS → foundation model 内化的 prior),
(b) 把剩下的不一致管成可治理的 delta 流
(transient ignore / temporary track / permanent fold-back)。
所有 §6 –§53 的论文都是在 (a) (b) 的某个角落"上一颗螺丝"——
每张卡片的 role 标签就告诉你那颗螺丝拧的是 §3 管道
伪代码里的哪一行。
§A 名词表 · Glossary
术语 解释
数字孪生 (Digital Twin) 对一个物理空间的高精度、可持久的 3D 表示——可以是 mesh / 点云 / BIM / 3DGS field。本文中特指 SLAM 的先验 。
先验地图 (Prior Map) SLAM 之外、提前建好的地图。在工业场景下数字孪生即是先验地图,但反之不必然。
重定位 (Relocalization) 给定先验地图和一帧观测,估计 6-DoF 位姿。包括冷启动 (无 pose prior)和跟踪 (有 pose prior)。
BIM (Building Information Model) 建筑设计 / 施工阶段的语义化 3D 模型,IFC / Revit 格式。as-designed,可能与 as-built 不一致。
TSDF (Truncated Signed Distance Field) 用截断符号距离场表达 surface 的体素表示。KinectFusion / Voxblox / Panoptic Multi-TSDF 的核心数据结构。
NeRF 用 MLP 表达 5D radiance field 的隐式场景表示,可微渲染。
3DGS (3D Gaussian Splatting) 用一堆带 SH 系数的椭球高斯表达场景,splatting 渲染。比 NeRF 快 $100\times$,是当下的主流可微稠密表示。
MCL / AMCL Monte Carlo Localization + adaptive 粒子数版本。ROS 里 amcl 包就是它。
SCR (Scene Coordinate Regression) 用神经网络对每个像素回归 3D 世界坐标,再做 PnP 重定位。DSAC / ACE / R-SCoRe lineage。
APR (Absolute Pose Regression) 用神经网络直接回归 6-DoF 绝对位姿。PoseNet / Marepo lineage。
Pointmap DUSt3R 系列的核心输出:把每个像素映射到一个 3D 点的稠密 $H \times W \times 3$ 张量。
Lifelong / Long-term mapping 跨天 / 周 / 月 / 年维护一份持续有效的地图。痛点 (d)。
Change detection 检测先验地图与当前观测的不一致,并将其分类(噪声 / 临时 / 永久)。
Fold-back 本 survey 自定义术语——把累计到一定频率/天数的 delta,编辑回数字孪生本体的动作。
Static field 4DGS-SLAM / Dynamic 3D Gaussians 等系统里的"持久背景 Gaussian 集合",即可被 fold-back 的孪生本体。
4D scene graph 带时间维度的 scene graph——每个实体在每个时刻的状态都可被查询。Khronos / DAAAM 提出的核心数据结构。
role 标签 本 survey 自定义——每张 paper card 上的小 tag,标明该方法改进的是 §3 管道伪代码里的哪一步(init / likelihood / map-repr / change-detect / fold-back / front-end / dyn-handling / query-layer)。
§B 推荐阅读顺序
不是按年份,是按教学价值。零基础进入这领域的人应该按下面这个顺序
读 8 篇原文:
Fox & Burgard 1999 (MCL) + Fox 2001 (KLD-MCL) — 整本 survey 数学的源头,理解一次粒子滤波就理解了 80%。
Cadena et al. 2016 "Past, Present, Future of SLAM" — 经典 SLAM 综述。让你知道我们绕开了什么、保留了什么。
Tipaldi 2013 "Lifelong Localization" — Lifelong SLAM 的祖师爷一篇,明白 §4 痛点 (d) 在十年前就被定义了。
iNeRF (Yen-Chen 2020) — 理解"渲染 = 似然 = 可微定位"这个范式转移。
ACE (Brachmann 2023) — SCR 这条路的工程化里程碑,5 分钟训一个场景。
Khronos (Schmid 2024) — 整本 survey 里 Part 5 的高峰,全方位看 "怎样把时间维度纳入 SLAM"。
MASt3R + MASt3R-SLAM (2024–2025) — 3D foundation model 的范式革命,理解 Part 8 为什么颠覆性。
CL-Splats (2025) — version-controlled 3DGS,Part 5 lineage 的当代落点,让你明白"git for the physical world"是认真的。
Made for learning. 完整 BibTeX、勘误、补遗欢迎以 issue 形式反馈。
最后更新 2026-05-19。
本站所有内容基于公开发表论文 / arXiv preprint / 项目页 / 官方代码仓。
交互演示是 Canvas2D 的教学玩具,数值不代表论文实际性能。
Mustard tag 标记的 2025–2026 frontier 论文为时间敏感引用——
deploy 前请自行核实当前最新版本。