精读笔记

Problem Setting

Occupancy-SLAM 解决的不是普通 2D LiDAR SLAM,而是 occupancy grid map 能否像 feature map 一样进入后端优化的问题。传统 occupancy SLAM 的默认假设是:轨迹先被估计好,然后 map construction 是条件于轨迹的 Bayesian update。这个假设在工程上方便,但会把 pose uncertainty 和 map uncertainty 的耦合关系丢掉。

真正困难点是 occupancy observation 与 map state 的关系很别扭。feature SLAM 中 observation 通常约束某个 landmark 参数;occupancy 中一个 beam 同时约束 endpoint occupied 和 ray 上 free space,而且这些约束落在哪些 grid cell 取决于当前 pose。pose 错一点,cell association 就错;cell association 错,map gradient 就错;map gradient 错,pose update 又会被带偏。

关键矛盾是分辨率:高分辨率 map 才能给边界提供精确几何约束,但它使状态维度、局部极小、梯度噪声同时增加;低分辨率 map 的优化 basin 大、计算便宜,但边界被模糊,最终精度受限。这篇论文基本就是围绕这个矛盾重写 occupancy SLAM 后端。

Motivation

已有路线不够的根本原因是它们把 map 当成 pose optimization 之后的产物,而不是 pose optimization 的参与者。Cartographer 这类系统即使有 submap、scan matching、loop closure,最终仍主要是在 pose graph 上优化几何关系;submap 内部的 mapping error 一旦形成,很难通过全局 pose graph 修正。

作者的核心观察是:occupancy grid 虽然不是显式 feature,但它可以被看成一个由有限参数控制的连续 evidence field。只要这个 field 可插值、可求梯度,laser sample 就可以通过投影位置对 pose 和 map 同时产生 residual。换句话说,occupancy map 可以从“统计累积表”变成“可优化的隐式场”。

关键缺口不是 lack of occupancy mapping,而是 lack of differentiable, tractable, robust joint optimization formulation。过去绕开这个问题,是因为直接把所有 grid cell 加进状态既难收敛又难扩展;这篇论文试图用平滑先验、多分辨率、边界变量选择和 submap joining 把这个 formulation 变成可运行系统。

Core Idea

论文真正核心的方法思想是:把 occupancy grid map 参数化为 cell-vertex log-odds/evidence 变量,通过双线性插值得到连续 map function;laser beam 被采样成 free/hit evidence 点,经过当前 pose 投影到 map 上,要求投影点的 normalized occupancy value 与该 sample 的 evidence 一致。这样一个 residual 同时依赖 pose 和 map value,形成 occupancy 版本的 bundle adjustment。

直觉上它可能有效,是因为 pose error 会造成多次观测的 occupied/free evidence 在地图中无法对齐,表现为 occupancy field 的边界模糊或冲突;joint optimization 可以通过移动 pose 和调整 map value 共同降低这种冲突。传统 pose graph 只能通过相对位姿约束间接修正,而这里 map boundary 本身变成了优化信号。

与 prior 的本质区别在于:它不再把 scan matching 产生的 relative pose 当作唯一几何约束,而是直接使用 beam-level occupancy evidence。新的 inductive bias 是 occupancy field 的局部平滑性与边界高梯度结构:先利用低频、平滑 field 提供稳定 pose gradient,再在高频边界区域恢复几何细节。

Method

1. Occupancy field as state:cell vertex 的 evidence 值进入状态向量,任意连续位置由双线性插值查询。这一步解决的是 occupancy map 不可直接作为优化变量的问题;核心变化是 map 从离散更新结果变为可微参数化场。

2. Beam sampling residual:每条激光束被等距采样,endpoint 是 occupied evidence,ray interior 是 free evidence。sample 通过 pose 投影到地图,残差比较 sample evidence 和 map evidence / hit number。它解决的是如何把 beam observation 变成 pose-map constraint;hit number 的作用是让累积 log-odds map 与单次观测 evidence 在量纲上对齐。

3. Hit map re-association:每轮迭代后根据当前 pose 重算 hit map,相当于隐式更新 occupancy data association。它不是传统 discrete correspondence,而是通过投影和插值连续更新 scan-to-map relation。

4. Smoothing prior:惩罚相邻 cell vertex evidence 差异。它的主要作用不是提升最终 map 美观,而是控制 occupancy field 的高频成分,让 pose gradient 在初值较差时仍有可用方向。没有这个项,joint formulation 很容易变成局部极小制造机。

5. Multi-resolution optimization:第一阶段用低分辨率 map 和下采样 observations 得到稳定位姿;第二阶段只选择高分辨率边界附近 cell 和相关 observations 细化。它解决的是高分辨率 joint optimization 的维度和收敛问题。这里的关键不是普通 coarse-to-fine,而是第二阶段主动丢弃低信息稳定区域。

6. Occupancy submap joining:对大尺度问题,先局部做 joint optimization 得到 submaps,再把 submap occupancy values 当作对 global occupancy map 的观测,联合优化 submap frames 和 global map。它把复杂度从全轨迹长度部分转移到 submap 数量和 global map size。

Key Insight / Why It Works

最重要的 insight 是:occupancy map 的边界其实可以提供类似 feature 的几何约束,但前提是 map representation 必须可微,并且优化过程必须避免早期被高频边界误导。论文有效的核心不只是“jointly optimize poses and map”,而是“用低分辨率平滑 occupancy field 做 pose basin capture,再用高分辨率边界变量做 refinement”。

真正驱动位姿修正的是 occupancy gradient。一个 sample 投影到 occupancy field 后,如果 pose 错,sample 会落在不匹配的 free/occupied 区域,残差通过 map gradient 对 pose 产生方向。低分辨率地图让这个 gradient 更平滑、更宽,类似把 scan matching 的 cost surface 做了低通滤波;高分辨率边界则恢复最终定位精度。这本质上是 curriculum / continuation method,而不是单纯 scaling。

第二个关键点是 representation alignment:observation 和 map 都用 evidence/log-odds 表示,并通过 hit normalization 对齐单次 observation 与累计 map value。这个设计让 residual 至少在工程上可解释。严格 probabilistic 解释并不充分,但作为 least-squares surrogate 足够产生有用梯度。

第三个关键点是信息选择。第二阶段只优化边界附近高分辨率 cell,表面上是效率技巧,实际也是一种强 inductive bias:pose 精度主要来自 occupancy discontinuity,而大面积 free/unknown/stable 区域对 pose refinement 信息量低甚至会稀释梯度。文中提到 full high-res 有时不如 selected high-res,我认为这不是偶然;uniform weighting 下保留大量低信息 residual 会改变优化目标,使有效边界信号被弱化。

哪些可能只是辅助:submap joining 是重要工程扩展,但思想上是把同一个 joint map-pose formulation 套到 submap level;keyframe 使用主要是 scaling;3D 扩展目前更像 proof of concept。真正的实质贡献仍是 occupancy evidence field 的 joint NLLS formulation 加 multi-resolution continuation。

需要警惕的是,增益并不一定全部来自“更正确的概率建模”。一部分增益可能来自更强的 batch test-time compute、更密集的 scan evidence 使用,以及 Cartographer 对比设置下 submap 内误差不可回修。也就是说,它确实比 pose graph 后处理更直接,但不应把结果完全归因于理论最优性。

Relation To Prior Work

最接近的谱系不是传统 occupancy mapping,而是 feature-based bundle adjustment / direct methods / scan-to-map optimization 的混合。它像 BA 一样联合优化 pose 和 map;像 direct visual odometry 一样依赖 field gradient;像 occupancy mapping 一样使用 log-odds evidence;像 coarse-to-fine registration 一样通过分辨率控制 basin。

相对 Cartographer/Karto/Hector 的本质差异是后端优化变量不同。Cartographer 优化的是 pose/submap graph,occupancy map 多数时候是优化后的构建结果;Occupancy-SLAM 把 occupancy value 本身放进状态,因此 map uncertainty 能参与 pose update。这是实质差异,不是换一个 scan matcher。

相对 FastSLAM/GMapping 这类 filter/particle 方法,它不是维护轨迹粒子下的 map posterior,而是离线 batch NLLS。优点是能做全局一致性优化,缺点是 batch compute 和状态维度压力。

相对 SDF/TSDF/mesh-based SLAM,思想相近:都在尝试让 non-feature map 参与优化。但 SDF/mesh 天然有几何表面和距离残差,occupancy grid 的观测语义更离散、更统计化,所以这篇的难点在于构造可微 evidence residual 和 hit normalization。

相对 Kimera-PGMO,二者动机类似,都是 joint pose-map optimization;但 Kimera-PGMO 的 mesh deformation graph 更接近几何图优化,而本文是在 occupancy grid 这种规划友好但优化不友好的表示上做 joint optimization。实质创新在于把 occupancy map 变成可优化 field,并处理分辨率带来的收敛/规模问题。

看似新的部分中,多分辨率、平滑正则、submap joining 都不是概念上全新;真正新增的信息是这些机制被组织成一个能让 occupancy-grid-as-state 可用的 pipeline。

Dataset / Evaluation

实验覆盖面在 2D 上比较充分:仿真、正常规模真实数据、大尺度真实数据、鲁棒初值测试、resolution ratio ablation、stage ablation 都有。它们基本验证了核心 claim:joint optimization 可以得到更清晰的 occupancy boundary 和更准确的 trajectory;multi-resolution 是收敛和效率的关键,而不是可有可无的工程优化。

对 Cartographer 的比较有现实意义,因为 Cartographer 是强工程 baseline,而且代表 pose-first/map-second 路线。不过这个比较也有结构性偏差:本文是离线 batch optimization,Cartographer主要是在线/增量 SLAM 系统;当评价目标是最终 map quality,batch method 天然占优。作者用时间对比说明其可接受,但这不等于在线部署等价。

仿真实验能支持误差归因,因为有 ground truth;真实 2D 实验更多依赖 map/point cloud visual quality,定量性弱一些。occupancy map classification 指标有用,但如果 ground truth map 是由 ground truth poses remap 得到,本质上仍偏向轨迹一致性,不完全等同真实环境几何真值。

3D 实验只能算初步证明方向可迁移。与 BALM2/HBA/Voxgraph 的比较展示了 occupancy 方法不依赖 planar features 的优势,但文中也承认 3D 稀疏性、可观性和计算负担仍未解决。因此 3D claim 不应过度解读为成熟 3D Occupancy-SLAM 系统。

Limitation

第一,方法依赖静态环境和相对可信的 beam occupancy labels。动态物体、玻璃、稀疏反射、系统性 range bias 都会直接污染 evidence field,而 formulation 里没有显式 outlier/robust semantic handling。

第二,hit normalization 的统计基础不够扎实。它把累计 occupancy evidence 除以 hit count 来匹配单次 observation evidence,这在一致重复观测下合理,但在 free/occupied 冲突、遮挡、不同视角观测密度不均时可能产生偏差。文中未充分说明这对优化目标的影响。

第三,忽略 hit map 对 pose 的导数是一个工程近似。每轮重算 hit map 相当于 alternating re-association,但 GN step 内把它当常量。通常可行,但在大 pose update 或低重叠场景下可能导致错误梯度。文中未充分说明其收敛性质。

第四,scalability 仍受 map size 限制。submap joining 把 trajectory length 降成 submap count,但 global occupancy map 仍是状态变量;2D 尚可,3D voxel 化后状态爆炸会非常明显。3D 部分没有真正解决这个上限,只是指出 octree/continuous representation 可能是未来方向。

第五,第二阶段边界选择是一把双刃剑。它依赖第一阶段 map 已经足够接近真实边界;如果第一阶段把结构性细节抹掉或边界位置偏移过大,selected high-res map 可能根本没有包含正确变量。这个失败模式文中没有充分展开。

第六,在线部署鸿沟仍在。论文把方法定位为 batch/offline high-quality mapping,这是诚实的;但如果要替代实际 SLAM front-end/back-end,还需要 incremental update、loop closure integration、latency control 和 dynamic scene robustness。

Takeaway

  • 1. Occupancy grid 不必只能作为 SLAM 后处理结果;只要参数化成可微 evidence field,它可以像 feature map 一样进入后端优化。
  • 这是本文最值得迁移的思想。
  • 2. 对 non-feature map 做 joint optimization 时,核心难点不是写出 residual,而是控制优化 landscape。
  • 低分辨率平滑 field 捕获 basin、高分辨率边界 refinement 恢复精度,是一个可迁移到 SDF、NeRF occupancy、Gaussian map 的设计模式。

一句话总结

Occupancy-SLAM 是把 occupancy grid SLAM 从 pose-first mapping 推向 occupancy-field bundle adjustment 的一次实质性尝试,真正贡献在于用可微 evidence map、多分辨率 continuation 和边界信息选择让 joint pose-map optimization 变得可收敛、可计算。