导引:
在笔记4中,我们提到:三维旋转矩阵构成了特殊正交群,三维变换矩阵构成了特殊欧氏群:
我们发现,这两个群对加法不封闭,对乘法(以及乘法意义上的求逆)是封闭的:
对于这种只有一个(良好的)运算的集合,我们称之为群。
一、李群与李代数基础:
1.群:
(1)群的定义:
群是一种集合加上一种运算的代数结构。集合记为A,运算记为∙,那么群可以记为=(,∙)。
(2)群的运算性质:
(s.t.即“subject to”,使得......满足......)
(3)矩阵中常见的群:
一般线性群GL(n),特殊正交群SO(n),特殊欧氏群SE(n)。
(4)群结构存在的意义:
保证了在群上的运算具有良好的性质。
(5)李群:
李群是指具有连续(光滑)性质的群。
SO(3)与SE(3)在实数空间上是连续的(三维空间的刚体运动是连续的),属于李群;整数群等则是离散的群,不属于李群。
2.李代数引入(了解由来):
3.李代数的定义:
4.李代数so(3):
5.李代数se(3):
二、指数与对数映射:
我们已经清楚so(3)的内容,它们是一个由三维向量组成的集合,每个向量对应一个反对称矩阵,可用于表达旋转矩阵的导数。so(3)与SO(3)的关系由指数映射给定。
接下来讨论如何计算exp(Φ^),显然它是一个矩阵的指数。
1.SO(3)上的指数映射:
(1)计算方式1(了解):
对于任意矩阵的指数映射,可以进行泰勒展开:
同样的,对于 (3) 中的任意元素 ,也可以按此方式定义指数映射 :
考虑到矩阵的无穷次幂难以计算,考虑另一种计算指数映射的简便方法。
(2)计算方式2:
接下来就可以将指数映射写为:
得到下式,它与罗德里格斯公式如出一辙:
这说明:
1)SO(3) 实际上是由旋转矩阵组成的集合;
2)(3) 实际上是由旋转向量组成的集合;
3) 旋转矩阵的导数由旋转向量指定;
这样,我们就把(3)中任意一个向量对应到了一个位于SO(3)中的旋转矩阵。同样,可以定义对数映射来表示李群到李代数的关系:
(3)转换关系图:
2.SE(3)上的指数映射:
这里不再作推导,直接给出转换关系图:
三、求导与扰动模型:
引入李代数的一大动机是进行优化,优化过程中,导数是非常重要的信息。李群中对于加法并不封闭,无法直接进行求导,因此尝试借助李代数来进行求导的相关研究。
在标量情况下,有:
同样,在标量情况下下式成立:
但在计算矩阵的指数函数时,上式是否成立?也就是说,李代数的加法是否对应着李群的乘法?
1.BCH公式与近似形式:
两个李代数指数映射乘积的完整形式由BCH公式给出:
其中[]为李括号。
BCH公式告诉我们:当处理两个矩阵的指数之积时,会产生一系列由李括号组成的余项。考虑 SO(3)上的李代数ln(exp(1∧)exp(2∧))∨,当1与2为小量时,二次以上的项都可以予以忽略。此时,BCH拥有线性近似表达:
2.李代数求导:
(1)求导模型(用李代数表示姿态,根据李代数加法对其进行求导):
(2)SE(3)扰动模型(对李群左乘或者右乘微小扰动,对该扰动求导):