SLAM技术系列之李群李代数简介

这篇短文将向大家介绍李群李代数的相关知识点,以及其在slam中具体的应用。

群(group)是一种定义在特殊集合以及在该集合上定义的一种运算的特殊代数结构,比如整数集合及加法运算满足群的定义,旋转矩阵和矩阵的乘法构成了特殊正交群,欧式变换矩阵(又称特殊欧氏群,n维空间的欧式变换矩阵为(n+1)*(n+1)的欧式变换矩阵,基于欧式变换的计算采用齐次坐标系)和矩阵的乘法构成了n维欧式变换群等,群的定义需要满足三个约束条件:1、结合律,2、存在幺元和可逆,3、封闭性。而李群是指具有连续光滑性质的群,如上述的SO(3),SE(3)。

每个李群都有其对应的李代数,拿特殊正交群来举例,根据旋转矩阵的正交性以及微分方程的求解,可以得出旋转矩阵随时间变化的函数可以表示为其正切空间(为反对称矩阵,代表角速度的李代数元)上的指数映射(通常用于描述从李代数到李群的映射,描述几何变换的动态过程),具体的解释如下图所示:

图1:李代数到李群的指数映射

通过将指数映射进行泰勒展开,由于旋转向量的大小和方向分别描述了旋转的角度和旋转轴。反对称矩阵是旋转向量的矩阵表示,通常通过叉乘矩阵来构造(待补充)。在SO(3)中,旋转向量和反对称矩阵等价,具体理解如图2所示。

图2:旋转向量和反对称矩阵的几何意义及相互的等价关系

具体的李群和李代数的指数映射的计算基于指数函数的泰勒展开,并且利用到了标准方向向量对应的反对称矩阵的一些计算性质,最后可以得出罗德里格斯公式。

两个李代数的指数映射的乘积和一般的标量的指数函数的乘积不同,根据泰勒展开以及多项式相乘的展开式,以及矩阵乘法的非交互性,计算过程如图3所示,由于BCH公式中在二次和更高阶的余项中只保留了非交换性的部分,因此BCH公式是对指数映射的乘积的一种近似。BCH公式为李代数的求导和扰动模型的计算提供了基础,而李代数的求导或扰动模型为优化非线性的变换矩阵(没有定义加法运算,不便求导)提供了基于李代数计算的导数优化。

图3:BCH公式的由来以及和基于李代数的求导

李代数的扰动模型比李代数求导更加简洁,基于李代数的扰动模型由于比李代数的求导更加方便,在实际中用的会更多。

图4:扰动模型的推导

李代数在slam中的使用主要作用体现在优化相机位姿和地图点的过程中,具体可以参考g2o优化库的相关优化方法,如g2o::VertexSE3Expmap,就是基于SE(3)的指数映射进行的。

修订:关于BCH的公式的理解有出入:后面的解释请参考最新的手册[2]

References


by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *