这篇文章旨在提供一个具体的例子,让机器人专家们对李代数及其在机器人领域的应用有所了解。我最初学习李代数时,感觉网上关于李代数的解释过于浅显,缺乏清晰易懂的数学细节。希望这篇文章能够弥合这种差距。让我们开始吧。

按回车键或点击查看完整尺寸的图片
图片截取自 MATLAB ICP 示例

本文仅考虑迭代最近点算法(Iterative Closest Point,ICP)。为简单起见,我们仅讨论旋转问题,不涉及平移。ICP 算法通过最小化对应点之间的距离来对齐两个点云。在本例中,它优化旋转矩阵 R 以减小平方差之和。

如同许多工程实践一样,我们希望使用一阶泰勒级数展开来近似函数,展开平方项,对 ΔR 求导,令导数为零,最终将问题表示为一个正规方程。求解该方程即可得到 ΔR,进而可以用它更新 R。ICP 问题正是通过多次重复此过程(假设收敛)来求解的,因此得名“迭代”。

按回车键或点击查看完整尺寸的图片
q_i 表示目标点云中的点;p_i 表示输入点云中的点。

然而,这里我们遇到了一个问题。如果我们把3x3旋转矩阵看作9个独立元素并求解,结果很可能不是旋转矩阵。旋转矩阵需要满足诸如det(R)=1RR^T=I单位矩阵之类的约束条件。而如何在满足这些约束条件的前提下建立一个可微的代价函数,这一点并不明显。

这就是李群和李代数发挥作用的地方。旋转构造属于李群,李群是一个具有流形结构的连续变换群。流形是一个光滑的广义曲面,可以局部地用线性空间(也称为切空间)逼近。这类似于地球的曲面可以局部地逼近为一个平面;虽然地球是一个三维球体,但其表面在任何一点都感觉像是一个二维平面。

按回车键或点击查看完整尺寸的图片
图片截取自“用于机器人状态估计的微观李理论”

关键在于切空间是线性的,而李代数能够局部地捕捉这种线性结构。如果我们能够以某种方式用李代数(具有3个自由度)来表达我们的目标函数,从而将其置于线性空间中,我们就可以(再次)构建一个优化问题,而无需考虑应用于旋转矩阵的约束。

按回车键或点击查看完整尺寸的图片

这里值得稍作停顿。为什么我们用不同的数学结构来表达最初的问题后,就不再需要担心旋转矩阵的约束了呢?这是因为这些约束是由流形或李群本身施加的。

想象一下等离子体被限制在球面上,例如地球磁层上的带电粒子。如果我们想求解它们的“流体动力学”,就无法在开放域(三维空间)中进行求解。解被限制在三维空间中的一个二维曲面上。因此,如果我们用 S²(代表球面的流形)来表达这个问题,那么问题本身就是有约束的。

类似地,我们可以想象三维旋转被限制在一个具有更复杂结构的三维几何曲面(位于九维空间中)上——即李群——形式上称为特殊正交群SO(3)。该群不仅具有流形结构,而且还具有一个光滑的群运算,该运算定义了旋转如何组合。

回到我们的ICP问题。我们知道,将问题表述在流形的切空间中可以简化我们的计算。但是,旋转群与其切空间之间究竟存在什么关系呢?换句话说,前面方程中的函数g()是什么?让我们再次审视(RR^T =I 单位矩阵)约束。求导后,我们发现Ṙ R^T 等于其转置的反矩阵,即Ṙ R^T 是一个反对称矩阵。在等式右侧乘以R,我们可以将其求解为一个常微分方程:R(t) = exp(phi * t) R0

按回车键或点击查看完整尺寸的图片

我们之前没有讨论过的一点是,李代数被定义为李群单位元处的切空间。了解这一点可以简化我们的方程,如下所示:

按回车键或点击查看完整尺寸的图片

由于 R 属于李群 SO(3),其导数 Ṙ 位于 R 的切空间中。由此我们可以推断,phi 是属于李代数 so(3) 的斜对称矩阵,即 SO(3) 在单位元处的切空间。

还记得我们希望用 3x1 向量而不是 3x3 矩阵来表示旋转(及其增量)吗?不难看出,3x1 向量和相应的反对称矩阵之间存在一一对应的关系。

我们可以将向量到反对称矩阵的转换定义为帽子符号 (∧),反向转换定义为三角符号 (∨)。那么我们知道函数 g() 具有 exp(. ∧) 的形式,它将一个 3x1 的向量映射到一个 3x3 的旋转矩阵。

按回车键或点击查看完整尺寸的图片

记住矩阵指数 exp(A) 可以近似为 I + A,并回想 a^b = -a^b,其中 a^b 可以理解为两个 3x1 向量 a 和 b 的叉积。然后我们最终可以将代价函数表示为 f(R + δr) ≈ f(R) + Jδr,其中 J 等于 [Rp]^。在求解 δr 的正规方程后,我们可以更新 R ← exp(δr) R。

按回车键或点击查看完整尺寸的图片

本文到此结束。当然,还有其他更直观的方法可以解决ICP问题。但在诸如扩展卡尔曼滤波(EKF)或同步定位与建图(SLAM)等应用中,由于涉及将三维旋转作为状态向量,推导雅可比矩阵并用李代数表示协方差会很有帮助。

李群既是流形又是群,其群运算——乘法和逆运算——是光滑(无限可微)映射。换句话说,它无缝地融合了代数结构(来自群论)和几何结构(来自流形)。这种几何框架自然地与线性代数和工程数学相结合,为分析连续变换(例如旋转和刚体运动)提供了强大的工具。

李代数 T_{ε}M(红色平面)是李群流形 M(此处用蓝色球面表示)在单位元 ε 处的切空间。通过指数映射,李代数上过原点的每条直线路径 vt 都会在流形上生成一条路径 exp(vt),该路径沿着相应的测地线延伸。反之,群中的每个元素在李代数中都有一个等价元素。图片和文字摘自“用于机器人状态估计的微观李理论”。

如需进一步阅读,我推荐阅读“用于机器人状态估计的微观李理论”。


标签: none

评论已关闭