视觉SLAM中的李群&李代数基础

前言

在做SLAM研究的时候,会涉及到对旋转矩阵求导的问题。这时候需要使用矩阵李群的知识,将旋转或者变换等矩阵李群形式,映射到李代数上求解。本文主要涉及两个特殊矩阵李群:特殊正交群(special orthogonal group)SO(3),表示旋转;特殊欧几里得群(special Euclidean group)SE(3),表示位姿。

1 群的定义

群(Group)是一个集合加上一种运算所构成的代数结构。该运算将两个元素a和b组成另外一个元素,记为a·b或者ab。记集合为G,运算为· ,则当满足一下四个性质的时候,称(G, •)为一个群。

(1)封闭性(closure):任意a,b属于G,有a·b仍然属于G;

(2)结合性(associativity):任意a,b,c属于G,有(a·b)·c = a·(b·c);

(3)单位元(幺元)(identity):存在a0属于G,对任意b属于G,均有a0·b = b·a0= b;

(4)逆元(invertibility):任意a属于G,存在a-1属于G,使得a·a-1= a0


2 特殊正交群和特殊欧几里得群

特殊正交群:


特殊欧几里得群:

 

李群:

•    李群是一个微分流形,群上的操作是光滑的。

•    矩阵李群的元素是矩阵,群上的运算是矩阵乘法,元素的逆即矩阵的逆。

•    SO(3)和SE(3)都是李群,但是只对乘法封闭,对加法不封闭,不适合做微分、求导运算。


3 李代数

3.1 李代数定义

对于任意一个李群,都存在一个李代数与之对应。李代数是一种位于向量空间的代数结构。李代数包含一个集合V,一个数域F和一个二元运算[ , ]。如果它们满足一下四条性质(封闭性、双线性、自反性、雅克比等价),就称(V, F, [ , ]) 为一个李代数。

(1)封闭性(closure):[X, Y]属于V,

(2)双线性(bilinearity):[aX+bY,Z] = a[X,Z]+b[Y,Z], [Z, aX+bY]= a[Z,X]+b[Z,Y],

(3)自反性(alternating):[X, X] =0,

(4)雅克比等价(Jacobi identity):[X, [Y,Z]] + [Z, [X,Y]] +[Y, [Z,X]] =0


3.2 李代数的引出过程


3.3  旋转和变换的李代数so(3)和se(3)

与SO(3)对应的李代数是so(3):


与SE(3)对应的李代数是se(3):



4 指数映射和对数映射

4.1 指数映射

指数映射是从李代数映射到李群的一种方式。

为了定义矩阵指数运算,需要用到泰勒展开式。

,关于有如下性质:



关于 进行泰勒展开:



即罗德里格斯公式。这说明so(3)的物理意义就是旋转向量。

 

对于se(3)和SE(3),也能得到类似的指数映射关系。


4.2 对数映射

同理,给定旋转矩阵(李群元素),也能求出对应的李代数。

实际中可以采用下面的公式来求解。




小结

本文的内容参考了《state estimation for robotics》,以及高博(半闲居士)的SLAM公开课,如有错误,敬请指正。



posted @ 2017-04-07 17:03  雁回晴空  阅读(967)  评论(0编辑  收藏  举报