李群李代数(一)
文档维护:Arvin
网页部署:Arvin
▶
写在前面:这篇的内容主要来自于《slam十四讲:从入门到实践》中的第三、四章,是为了引出李群李代数,文章大多记录了一些结论,如果对推导有兴趣可以去看书中详细的过程。
基础知识
三维空间刚体运动
旋转矩阵
1.反对称矩阵
设$A=(a_{ij})_{n \times n}$,若其中元素满足$a_{ij}=a_{ji},\forall i,j\Leftrightarrow A^T=A$,则称$A$是对称矩阵;若其元素满足$a_{ij}=-a_{ji},\forall i,j\Leftrightarrow A^T=-A$,则称$A$为反对称矩阵。
若$A$是反对称矩阵,则$a_{ij}=-a_{ij}$,当$i=j$时,便有$a_{ij}=0$,即反对称矩阵对角线上的元全为零,而位于主对角线两侧对称的元素反号。
2.旋转矩阵
欧氏变换由旋转和平移组成。我们首先考虑旋转。设某个单位正交基$(e_1, e_2, e_3)$经过一次旋转变成了$(e^{\prime}_1, e^{\prime}_2, e^{\prime}_3)$。那么,对于同一个向量$a$,它在两个坐标系下的坐标分别为$[a_1, a_2, a_3]^T$和$[a^{\prime}_1, a^{\prime}_2, a^{\prime}_3]^T$。有:
左乘$\begin{bmatrix}e_1^\mathrm{T}\\e_2^\mathrm{T}\\e_3^\mathrm{T}\end{bmatrix}$,得到:
我们称$R$为旋转矩阵,也叫做方向余弦矩阵。
旋转矩阵是一个行列式为1的正交矩阵。反之,行列式为1的正交矩阵也是一个旋转矩阵。所以,可以将$n$维旋转矩阵的集合定义如下:
$SO(n)$是一个特殊正交群。
3.变换矩阵
欧式变换中,除了旋转还有平移。用公式表示:
其中$R$为旋转矩阵,$t$为平移向量。但若经过多次变换,这里并非完全线性关系,如:
为了化简,我们引入齐次坐标和变换矩阵:
在一个三维向量的末尾添加1,将其变成四维矩阵,成为齐次坐标。矩阵$T$成为变换矩阵。这种矩阵又被称为特殊欧式群:
旋转向量和欧拉角
1.旋转向量
任意旋转都可以用一个旋转轴和一个旋转角来刻画。我们使用一个向量,其方向与旋转轴一致,而长度等于旋转角,这种向量称为旋转向量。
假设有一个旋转矩阵$R$。假设旋转轴为一个单位长度的向量$n$,角度为$\theta$,那么$\theta n$也可以描述这个旋转。从旋转向量到旋转矩阵的转换过程有罗德里格斯公式表明:
从旋转矩阵到旋转向量:
因为
所以
关于转轴$n$,旋转轴上的向量在旋转后不发生改变,说明:
因此,转轴$n$是矩阵$R$特征值1对应的特征向量。
2.欧拉角
欧拉角使用了3个分离的转角,把一个旋转分解成3次不同轴的旋转。一般情况下,我们使用”偏航-俯仰-滚转“(yaw-pitch-roll)3个角度来描述一个旋转。它等价于ZYX轴的旋转:
- 绕物体的Z轴旋转,得到偏航角yaw。
- 绕旋转之后的Y轴旋转,得到俯仰角pitch。
- 绕旋转之后的X轴旋转,得到滚转角。
四元数
1.定义
在二维情况下,旋转可以由单位复数来描述。类似地,我们用四元数描述三维旋转:
一个四元数$q$拥有一个实部和三个虚部:
其中,$i,h,k$为四元数的三个虚部。满足:
2.转换成旋转矩阵
用四元数表示旋转
把三维空间点$p$用一个虚四元数来描述:
则旋转后的$p^{\prime}$可表示为:
我们换另一种写法,先定义如下的符号$\boldsymbol{q}^+$和$\boldsymbol{q}^\mathrm{\oplus}$
有:
则:
得:
3.转换成旋转向量
对式(1)两侧求迹,得
由旋转向量和旋转矩阵之间得转换公式得
即
所以
总之,四元数到旋转向量的转换公式如下:
李群李代数
群
上式分别为三维旋转矩阵集合和三维变换矩阵集合,分别构成了特殊正交群SO(3)和特殊欧式群SE(3)。
群是一种集合加上一种运算的代数结构。我们把集合记作$A$,运算记作$\cdot $,那么群可以记作$G=(A,\cdot)$。群要求这个运算满足以下几个条件:
- 封闭性:$\forall a_1,a_2\in A,\quad a_1\cdot a_2\in A$
- 结合律:$\forall a_1,a_2,a_3\in A,\quad(a_1\cdot a_2)\cdot a_3=a_1\cdot(a_2\cdot a_3)$
- 幺元:$\exists a_0\in A,\quad\mathrm{s.t.}\quad\forall a\in A,\quad a_0\cdot a=a\cdot a_0=a$
- 逆:$\forall a\in A,\quad\exists a^{-1}\in A,\quad\text{s.t.}\quad a\cdot a^{-1}=a_0$
李群是指具有连续光滑性质的群。
李代数
李代数描述了李群的局部性质。准确的讲是单位元附近的正切空间。
李代数由一个集合$V$、一个数域$F$和一个二元运算$[,]$组成。如果满足以下几条性质,则称$(\mathbb{V},\mathbb{F},[,])$为一个李代数,记作$\mathfrak{g}$。
封闭性:$\forall X,\boldsymbol{Y}\in\mathbb{V},[\boldsymbol{X},\boldsymbol{Y}]\in\mathbb{V}$
双线性:$\forall X,Y,Z\in\mathbb{V},a,b\in\mathbb{F}$,有
自反性:$\forall X\in\mathbb{V},[X,X]=\mathbf{0}$
雅可比等价:$\forall X,Y,Z\in\mathbb{V},[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=\mathbf{0}$
李代数$\mathfrak{so}(3)$
$SO(3)$对应的李代数是定义在$\mathbb{R}^3$上的向量,我们记作$\phi$,其反对称矩阵为:
此定义下,李括号为:
则$\mathfrak{so}(3)$为:
三维旋转矩阵$R$(李群)与l李代数$\mathfrak{so}(3)$的关系由指数映射恒定:
李代数$\mathfrak{se}(3)$
与旋转矩阵类似地,对于$SE(3)$也有对应的李代数$\mathfrak{se}(3)$。其定义为:
我们把每个$\mathfrak{se}(3)$元素记作$\xi$,它是一个六维向量。前三维为平移(但含义与变换矩阵中的平移不同),记作$\rho$;后三维为旋转,记作$\phi$,实质上是元素$\mathfrak{so}(3)$。同时,我们拓展了^符号的含义。在$\mathfrak{se}(3)$中,同样使用^符号,将一个六维向量转换成四维矩阵,但这里不再表示反对称:
李括号定义为:
指数映射与对数映射
其中,由于$\phi$是三维向量,我们可以定义它的模长和方向,分别记作$\theta$和$a$
BCH公式与近似形式
以第一个近似为例。该式告诉我们,当对一个旋转矩阵$R2$(李代数为$\phi_2$)左乘一个微小旋转矩阵$R1$(李代数为$\phi_1$)时,可以近似地看作,在原有的李代数$\phi_2$上加上了一项$\boldsymbol{J}_l(\boldsymbol{\phi}_2)^{-1}\boldsymbol{\phi}_1$。同理,第二个近似描述了右乘一个微小位移的情况。于是,李代数在BCH近似下,分成了左乘近似和右乘近似两种,在使用时我们须注意使用的是左乘模型还是右乘模型。
以左乘为例:
它的逆为:
所以在$SO(3)$中,有
同样的在$SE(3)$中,有
李代数求导
SO(3)上的李代数求导:
扰动模型(左乘):
SE(3)上的李代数求导