0. 简介

这几个月,博主已经从SLAM算法的使用向着算法的数学推导进行了记录和分享,之前也分享了李群李代数关注核心一文,从现象中解释了李群和李代数表达的含义。但是这还不够,所以这次作者作为SLAM本质剖析的番外,来介绍李群李代数的微分和导数。

1. 旋转点求导

李群或者李代数上叠加微小量的情况呢?传统的求导过程中,我们常见的做法是对自变量添加一个微小值来进行:

SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系

但是这种形式对于旋转矩阵 SLAM本质剖析番外-李群李代数的微分和导数_线性代数_02 我们不能这么做,因为李群对加法不封闭,因此两个旋转矩阵相加不一定是旋转矩阵,但是利用李代数,根据下面两个方向的 BCH 近似不难看出我们有两种思路进行求导,分别是:

  • 用李代数(旋转向量)来表示姿态,然后利用李代数加法叠加微小量并对该微小量进行求导
  • 李代数求导:在李群对应的李代数的局部坐标上,即:(SLAM本质剖析番外-李群李代数的微分和导数_线性代数_03) 上添加扰动,即:SLAM本质剖析番外-李群李代数的微分和导数_线性代数_04,由于李代数本身对应旋转向量,因此对旋转向量添加扰动相当于同时改变旋转轴和旋转角度。
  • 用李群(旋转矩阵)表示姿态,然后左/右乘上一个扰动,然后对该扰动求导,即左扰动模型和右扰动模型
  • 旋转矩阵右扰动求导:由于旋转矩阵没有加法,因此要对旋转矩阵本身添加扰动,需要先通过指数映射将李代数转化为李群,然后根据李群的运算来添加扰动,即:SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_05,由于是旋转矩阵右乘扰动,因此相当于是在局部坐标系下对旋转矩阵进行更新
  • 旋转矩阵左扰动求导:和右扰动同理,我们也可以将扰动添加在旋转矩阵左侧,即:SLAM本质剖析番外-李群李代数的微分和导数_线性代数_06,由于是旋转矩阵左乘扰动,因此相当于在全局坐标系下对旋转矩阵进行更新

李代数这样的形式我们可以理解,Ceres也是通过这样的形式进行来实现李代数的累加。但是李群就需要根据BCH来进行计算了。 JR0是什么

为了明白在李群李代数公式中各个成员的含义,我们给出例子来解释不同的变量。假设我们对空间一个点 SLAM本质剖析番外-李群李代数的微分和导数_算法_07 使用旋转矩阵 ${R_0} $ 进行旋转得到SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_08
SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_09

该式子在实际计算时可以施加微小扰动 SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_10,通过最小化扰动来对误差进行线性化,并近似转换为,从而求出在SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_11SLAM本质剖析番外-李群李代数的微分和导数_矩阵_12的情况下SLAM本质剖析番外-李群李代数的微分和导数_算法_13的变化。此刻默认SLAM本质剖析番外-李群李代数的微分和导数_算法_14是已知的。

SLAM本质剖析番外-李群李代数的微分和导数_矩阵_15

得到基于 SLAM本质剖析番外-李群李代数的微分和导数_线性代数_16的偏导 --------也就是SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_17 是函数在SLAM本质剖析番外-李群李代数的微分和导数_矩阵_18的雅可比矩阵

3

对于李群而言,由于其没有向量空间上的加法操作,因此为了引入导数的概念,这里用一个映射将局部坐标 SLAM本质剖析番外-李群李代数的微分和导数_算法_19 映射到李群元素 SLAM本质剖析番外-李群李代数的微分和导数_线性代数_20,用来作为李群上的 “加法” 操作,所以常常会使用SLAM本质剖析番外-李群李代数的微分和导数_线性代数_21来表示李群的加法,如下所示:

SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_22

式中,SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_23SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_24 系下的局部坐标,这个也是我们所说的极小值右乘的做法,以李群 SO(3) 为例,局部坐标可以表示为 SLAM本质剖析番外-李群李代数的微分和导数_线性代数_25,其几何意义为以 SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_24

SLAM本质剖析番外-李群李代数的微分和导数_线性代数_27SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_28 的对应李代数,当然也可以像上面表示为SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_29

SLAM本质剖析番外-李群李代数的微分和导数_矩阵_30

SLAM本质剖析番外-李群李代数的微分和导数_矩阵_31 为李代数,李代数可以转化为反对称矩阵。通过SLAM本质剖析番外-李群李代数的微分和导数_矩阵_32来表示角度扰动(旋转轴+旋转角度)的旋转向量。

SLAM本质剖析番外-李群李代数的微分和导数_线性代数_33

4 由BCH得到的左扰动和右扰动基础公式

首先将旋转矩阵(李群 SLAM本质剖析番外-李群李代数的微分和导数_线性代数_02)转换为旋转向量(李代数 SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_35),并对旋转向量求导:

SLAM本质剖析番外-李群李代数的微分和导数_局部坐标系_36

最后我们得到以下结果:

SLAM本质剖析番外-李群李代数的微分和导数_算法_37

因为SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_38一般乘上的是极小值,所以在一般情况是可以省略的。这就可以根据类似的推导得到左扰动公式:

SLAM本质剖析番外-李群李代数的微分和导数_线性代数_39
不难看出来,利用左扰动模型计算的导数比使用李代数直接求导省去了一个 SLAM本质剖析番外-李群李代数的微分和导数_旋转矩阵_40

下面是右扰动公式:
SLAM本质剖析番外-李群李代数的微分和导数_线性代数_41

相比于左扰动的模型中计算 SLAM本质剖析番外-李群李代数的微分和导数_算法_42 的反对称矩阵,右扰动模型计算的是 SLAM本质剖析番外-李群李代数的微分和导数_算法_43

5 连乘李群的求导

…详情请参照古月居