1. SLAM中的因子图建模与优化
作为一名从事机器人定位与建图多年的工程师,我经常需要向新人解释SLAM(同步定位与建图)背后的数学原理。今天我想分享一个特别重要的工具——因子图(Factor Graph),它不仅是SLAM问题的直观表达方式,更是现代SLAM算法的数学基础。
1.1 从玩具案例到真实SLAM
在入门阶段,我们通常会用一个简化的"3个位姿+2个地标"的玩具案例来理解因子图。但真实SLAM场景要复杂得多。想象一下:一个机器人在未知环境中移动100个时间步,同时观测到20个不同的地标。这种情况下,因子图会呈现出怎样的结构?

这张图展示的就是一个典型的2D SLAM因子图。我们可以看到两个核心组成部分:
- 变量节点:包括100个机器人位姿(x₁到x₁₀₀)和20个地标位置(l₁到l₂₀)
- 因子节点:包括三类约束——里程计因子(连接相邻位姿)、观测因子(连接位姿和地标)和先验因子(固定初始位姿)
1.2 因子图的核心结构特征
真实SLAM因子图有几个关键特征:
- 链状骨干结构:由里程计因子串联起来的位姿节点形成一条明显的"轨迹链",这是因子图的主干
- 稀疏侧支连接:观测因子从位姿节点向两侧的地标节点延伸,形成稀疏的侧支
- 无地标间连接:地标节点之间没有直接连接,这是SLAM问题的典型特征
这种结构不是偶然的,它直接反映了SLAM问题的物理本质:
- 里程计因子编码机器人的运动连续性
- 观测因子编码机器人与环境的交互
- 先验因子提供全局参考,避免解的不唯一性
实际工程中,我经常提醒团队成员:理解因子图的结构比记住公式更重要。因为结构决定了问题的可解性和计算效率。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 从概率推断到非线性优化
2.1 MAP推断的数学表达
SLAM的核心问题是最大后验概率(MAP)估计:在给定所有观测Z的条件下,找到最可能的机器人位姿X和地标位置L。数学上表示为:
Xᴹᴬᴾ = argmaxₓ P(X|Z) ∝ ∏ϕᵢ(Xᵢ)
这里ϕᵢ(Xᵢ)是各个因子,包括:
- 运动模型因
