文档维护:Arvin

网页部署:Arvin

写在前面:这篇的内容主要来自于《slam十四讲:从入门到实践》中的第三、四章,是为了引出李群李代数,文章大多记录了一些结论,如果对推导有兴趣可以去看书中详细的过程。

0

基础知识

三维空间刚体运动

旋转矩阵

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)$。群要求这个运算满足以下几个条件:

  1. 封闭性:$\forall a_1,a_2\in A,\quad a_1\cdot a_2\in A$
  2. 结合律:$\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)$
  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$
  4. 逆:$\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}$。

  1. 封闭性:$\forall X,\boldsymbol{Y}\in\mathbb{V},[\boldsymbol{X},\boldsymbol{Y}]\in\mathbb{V}$

  2. 双线性:$\forall X,Y,Z\in\mathbb{V},a,b\in\mathbb{F}$,有

  3. 自反性:$\forall X\in\mathbb{V},[X,X]=\mathbf{0}$

  4. 雅可比等价:$\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)$中,同样使用^符号,将一个六维向量转换成四维矩阵,但这里不再表示反对称:

李括号定义为:

指数映射与对数映射

1

其中,由于$\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)上的李代数求导