最近看了Multiple View Geometry的课程,结合slam14讲,以自己的理解写了以下关于李群和李代数的总结.
我觉得这部分的难点一部分在于数学公式的推导,一部分在于他们的内部逻辑关系,即推导的意义.
关于一些概念的部分可以参照14讲,本文将不再阐述.
我们知道,在slam当中,较为关键的步骤是计算T,即变换矩阵,那么在当中,各个量之间会有约束,且其对于加法不封闭,会影响到求导,所以,如果能够找到一种在加法上封闭,且可以用几个相互独立的变量来代表T那就好了.
为了寻求这样的表达方式,有人利用了一种比较巧妙的数学变换,如下:
我们知道任意旋转矩阵满足:
两边对t求导并做变换可以得到,其中a表示三维向量,表示由a生成的反对称矩阵,之所以可以这么表达是因为,是一个反对称矩阵.在这里我们就可以看到,利用a的三个分量,就可以与R产生关联.如果将R(t)作泰勒展开,我们可以看到a反应了R的导数性质,称它在SO(3)附近的正切空间上(这个我有些不理解,位于正切空间又有什么意义呢?),我的理解是a在一定程度上可以表征R的变化.具体来说,R可以表示如下:
我们可以利用这个表达式来将a与R对应起来,其中a就是R这个SO(3)群对应的李代数so(3),其中它就满足
1.各个分量相互独立 2.对于加法封闭. 达到了我们的目的.
假如将a表示为模长和方向的形式,可以推导出:
此即为罗德里格斯公式,因此我们可以看到so(3)其实是旋转向量组成的空间,这也是SO(3)的指数映射.
下面让我们转到特殊欧式群SE(3),令
可以计算得到
通过分析,可以令一个三维向量
此时
上式也被记为,我们可以得到
因此利用也可以表征g,在泰勒展式中:
说明在g(t)的正切空间上.
我们就得到了与SE(3)对应的李代数,具体来讲:
类似地,我们可以得到
便得到了SE(3)与se(3)的相互转换关系.
类似于SO(3)的指数映射,我们也可以得到SE(3)的指数映射.