从机器人SLAM的角度理解流形

在现代机器人学(特别是状态估计、SLAM 和多智能体协同优化)中,“流形(Manifold)”是一个无法绕开的核心概念。理解流形,本质上是跨越经典欧氏几何,建立起对三维空间旋转和非线性优化的全新认知框架。

我们需要从最基础的物理直觉出发,逐步深入到李群(Lie Group)、李代数(Lie Algebra)的底层逻辑,并结合实际的多机协同 SLAM 后端算法(如 MESA)理解流形在工程中的具体应用。


1. 什么是流形?

要理解流形,只需记住:局部看起来是平的,但全局是弯曲的。

我们可以通过一个经典的“蚂蚁与地球”的思想实验来建立直觉: 假设有一只极其微小的蚂蚁在一个巨大的完美球体(例如地球)表面爬行。

  • 局部视角(微观):无论蚂蚁怎么观察,它脚下的这片土地都是一个平坦的二维平面。在这个局部小范围内,它可以建立直角坐标系,可以使用勾股定理计算距离,可以毫无障碍地做向量加减法。在数学上,这被称为“局部同胚于欧氏空间”。
  • 全局视角(宏观):如果以上帝视角从宇宙中观察,地球分明是一个三维空间里的弯曲球面。如果蚂蚁一直朝前走,它最终会绕回原点。

这就是流形的本质:一个复杂的几何体,如果将其放大到极小的局部去观察,它和我们熟悉的普通空间(欧几里得空间 $\mathbb{R}^n$)没有任何区别;但从整体来看,它拥有闭合或弯曲的复杂拓扑结构。

  • 一维流形:例如一个圆环。将其无限放大,它的一小段看起来就像一条笔直的一维线段。
  • 二维流形:例如球面环面(甜甜圈表面)。将它们无限放大,局部看起来就像一张平坦的二维白纸。

2. 为什么流形上不能直接做“加减法”?

在平坦的欧氏空间中,线性运算(加法、减法、数乘)是绝对安全且封闭的。例如,在二维平面上位置 A 往东走 5 米,往北走 5 米,两个向量相加必然得到平面上的另一个合法位置 B。

但是在流形上,直接做线性加法会发生“脱轨”现象。

以二维球面为例。假设地球是一个完美的圆球,中心为坐标原点。球面上每一个点都可以用一个三维向量表示,且其模长严格等于半径(假设为 1)。

  • 取球面上的一个点 $x_1$(例如赤道上某点)。
  • 取球面上的另一个点 $x_2$(例如北极点)。
  • 如果直接将它们在三维空间中进行向量相加:$x_3 = x_1 + x_2$。
  • 结果会怎样?向量 $x_3$ 的模长将大于 1,这个新点直接跑到了地球外面!

这个简单的例子揭示了流形计算中最致命的问题:在流形上,普通的线性运算会破坏流形本身的几何约束,导致结果不再属于该流形。


3. 机器人学中的流形:平移与旋转的割裂

将视角拉回到机器人学。机器人在三维世界中的运动状态(位姿,Pose)包含两个部分:平移(Translation)旋转(Rotation)

  1. 平移空间是欧氏空间:平移(XYZ 坐标)没有任何几何约束,属于标准的欧几里得空间 $\mathbb{R}^3$。可以直接做加减法,完全合法。
  2. 旋转空间是流形空间:机器人的三维旋转通常使用 $3 \times 3$ 的旋转矩阵来表示,这些矩阵构成了特殊正交群 $SO(3)$
    • $SO(3)$ 的约束条件非常严苛:矩阵必须是正交的($R^T R = I$),且行列式必须为 1($\det(R) = 1$)。
    • 如果有两个合法的旋转矩阵 $R_1$ 和 $R_2$,如果你强行将它们相加 $R_{new} = R_1 + R_2$,得到的新矩阵将彻底丧失正交性,它不再是一个合法的旋转矩阵

正因如此,在构建 SLAM 的后端优化器时,我们不能像处理普通变量那样,用简单的最小二乘法直接去减两个位姿。


4. 切空间、李群与李代数

既然不能在流形上直接做加减法,数学家和机器人学家们借用李群理论发明了一套绝妙的工具箱:切空间(Tangent Space)

想象在地球表面(流形)上,在蚂蚁当前所在的位置,我们拿一块绝对平坦的硬纸板相切贴在球面上。这块纸板就是该点处的“切空间”,在旋转流形 $SO(3)$ 中,它对应着李代数 $\mathfrak{so}(3)$

通过这种方式,我们可以在弯曲的世界里借用平坦世界的数学工具:

  1. 对数映射 (Log map):由于流形上不能做加减法,我们将流形上的点(例如另一个旋转矩阵),通过复杂的几何投影,映射到这块平坦的纸板(李代数空间)上。在纸板上,变量变成了普通的向量 $\mathbb{R}^3$,大家又可以愉快地进行加减法、求导和非线性优化了。
  2. 指数映射 (Exp map):在切空间(纸板)上算完梯度下降、更新了步长之后,我们再把纸板上的结果,像包糖果一样,重新卷回球面(流形)上,得到更新后的合法旋转矩阵。

5. 李代数里的加减法与 BCH 公式

理解了切空间,随之而来的是一个极易踩坑的问题:属于李代数的元素,能直接加减吗?

答案是:数学上可以加减,但物理意义并非简单的叠加!

李代数本质上是一个标准的平坦向量空间,向量加减法绝对合法。但陷阱在于:你在李代数里把两个向量相加,它们相加后的物理意义,并不等于它们在李群(真实位姿)里的级联(乘法)。

假设有两个真实的位姿 $T_1$ 和 $T_2$(属于 $SE(3)$ 流形)。通过 Log map 拍平到李代数空间,变成两个普通的 6 维向量 $\xi_1 = \log(T_1)$ 和 $\xi_2 = \log(T_2)$。

  • 天真的期望:在李代数里把向量相加 $(\xi_1 + \xi_2)$,然后用 Exp map 卷回流形,正好等于两个位姿的叠加 $\exp(\xi_1 + \xi_2) = \exp(\xi_1) \exp(\xi_2)$。
  • 残酷的数学现实:除非 $\xi_1$ 和 $\xi_2$ 的方向完全共线,否则上式绝对不成立!

真实的映射关系由著名的 BCH 公式 (Baker-Campbell-Hausdorff) 得到:

\[\log(\exp(\xi_1)\exp(\xi_2)) \approx \xi_1 + \xi_2 + \frac{1}{2}[\xi_1, \xi_2] + \frac{1}{12}[\xi_1, [\xi_1, \xi_2]] + \dots\]

公式中多出了一大堆复杂的“李括号”交叉项。

物理直觉解释:这就像是在地球的北极点放了一张二维平面地图(切空间)。

  • 如果你只在北极点附近走两步(微小扰动),直接在地图上做向量加减,误差很小,因为局部非常平坦。
  • 但如果你把北京的坐标和纽约的坐标强行投影到这张北极点的平坦地图上,然后直接把这两个二维坐标向量相减,算出来的距离和方向会被严重扭曲,根本不是地球表面上北京到纽约的真实大圆距离!

6. MESA 论文中的流形约束实践

理解了上述流形陷阱,我们就能深刻看懂前沿机器人论文中公式设计的精妙之处。在解决分布式多机协同 SLAM 问题的 MESA (Manifold, Edge-based, Separable ADMM) 算法中,机器人需要相互对齐自己的位姿。

论文定义了一个通用的流形约束函数 $q_s(\theta, z) = 0$。为了计算机器人全局位姿 $\theta$ 与虚拟相遇点 $z$ 之间的误差,论文对比了不同的流形距离计算方法:

6.1 错误示范:近似测地线约束 (Apx.-Geo.)

公式定义为:$Log(\theta) - z$

  • 做法:把机器人的全局位姿 $\theta$ 取对数映射到李代数,然后直接与虚拟相遇点的李代数向量 $z$ 做普通的向量减法
  • 后果:这种做法完全踩中了 BCH 公式的陷阱。强行把远距离的两个全范围位姿投影到同一个原点切空间上做减法,导致了严重的流形映射扭曲。实验证明,这种方法的残差极高,收敛极差。

6.2 正确解法:真正的测地线约束 (Geodesic)

公式定义为:$Log(z^{-1} \circ \theta)$

  • 做法
    1. 先在流形上算差异:不急着降维,先在弯曲的李群流形上,利用合法的群乘法和求逆运算,算出两者的“相对位姿差” $(z^{-1} \circ \theta)$。
    2. 再做李代数映射:算出的相对差异是一个非常接近单位阵(原点)的微小位姿。此时对这个微小位姿取 $Log$ 映射到李代数上。
  • 结果:此时的李代数向量完美代表了流形表面两点之间的“最短直线”(测地线)。实验证明,这种测地线约束的精度极高,确保了 ADMM 后端优化的严谨性和极快的收敛速度。

7. 总结

流形理论,本质上是一套 教我们如何在弯曲的现实世界里,安全地借用平坦世界的数学工具 的方法论。从机器人的角度理解流形,就是要时刻记住机器人的位姿不再是简单的数字向量。在进行任何状态更新、多机一致性对齐、或者优化求导时,绝对不能盲目地使用加号和减号,而是遵循“流形上相乘,切空间内加减”的原则。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra
  • Displaying External Posts on Your al-folio Blog
  • 多机器人协同感知1——问题建模
  • Asynchronous Distributed Smoothing and Mapping via On-Manifold Consensus ADMM
  • 基于Kalibr&Matlab的水下相机IMU联合标定