视觉SLAM十四讲_4李群与李代数

本文为b站视频的一个笔记
在SLAM中,我们经常要解下面一个问题
F = m i n J ( T ) = Σ i = 1 N ∣ ∣ z i − T p i ∣ ∣ 2 F = minJ(T) = \Sigma_{i=1}^N||z_i - Tp_i||^2 F=minJ(T)=Σi=1N∣∣ziTpi2
这个问题中, T是位姿变量。对于求最小值问题,我们第一步就要求函数对于变量的偏导数,比如说我们对 y = x 2 y = x^2 y=x2这个函数来说,偏导数就是 y ′ = 2 x y' = 2x y=2x, 初始值 x = 10 x = 10 x=10, 设置步长为1,那就是逐步从10->0. 直到偏导数等于0的时候,收敛至稳定解x= 0.

这里我们要求F对T的偏导数
然后将小量 δ T \delta T δT 加到T上去迭代

因为表示旋转的李群SO(3)是不能直接相加的,所以这里要费一番功夫来介绍李代数的概念。

一、群的概念

用于机器人中表示位姿的是特殊正交群SO(3):
S O ( 3 ) = R ∈ 3 × 3 ∣ R R T = I , d e t ( R ) = 1 SO(3) = {R\in 3\times 3| RR^T=I, det(R) = 1} SO(3)=R3×3∣RRT=I,det(R)=1
严格的来说,群需要满足如下定义:

  1. 封闭性 ∀ a 1 , a 2 ∈ A , a 1 a 2 ∈ A \forall a_1, a_2 \in A, a_1a_2\in A a1,a2A,a1a2A
  2. 结合律 ∀ a 1 , a 2 , a 3 , a 1 a 2 a 3 = a 1 ( a 2 a 3 ) \forall a_1, a_2, a_3, a_1a_2a_3 = a_1(a_2a_3) a1,a2,a3,a1a2a3=a1(a2a3)
  3. 幺元 ∃ a 0 , s . t . ∀ a ∈ A , a 0 a = a a 0 = a \exists a_0, s.t. \forall a\in A, a_0a = aa_0 = a a0,s.t.∀aA,a0a=aa0=a
  4. ∀ a ∈ A , ∃ a − 1 ∈ A , s . t . a a − 1 = a 0 \forall a \in A, \exists a^{-1} \in A, s.t. aa^{-1}=a_0 aA,a1A,s.t.aa1=a0

上面四个条件用人话说一遍其实就是:1. 两个这种东西相乘,本质还是这个东西。2. 先乘后乘一样。3. 有一个单位阵。4. 有个相反的东西可以让它乘了就回去。可以简单的验证,旋转矩阵集合+矩阵乘法,它是构成群的。
李群是指连续性质的群,很显然,SO(3)是属于李群的。
SO(3)有个缺点,那就是它是由旋转矩阵+乘法构成的,它没有加法。因此直接在SO(3)上求偏导数不行,得想其他办法。而李代数,刚好能解决这个问题。李代数对应李群的正切空间,它描述了李群局部的导数。

二、李代数

首先对旋转矩阵的导数形式进行了探索:
视觉SLAM十四讲_4李群与李代数_第1张图片
视觉SLAM十四讲_4李群与李代数_第2张图片
也就是说,旋转矩阵是可以表示成指数形式的。那只要把 ϕ \phi ϕ找出来,就可以求旋转矩阵的导数了。

李代数的定义

每一个李群都有与之对应的李代数,李代数描述了李群单位元数的正切空间性质
三维空间向量 + R 3 R^3 R3 + 叉乘运算 构成李代数
其中,这个里面证明 ϕ \phi ϕ是一个单位向量与模长相乘,那么就可以说明它就是旋转向量。

三、李代数求导与扰动模型

BCH公式

这个公式的作用,就是解决 f ( x + δ x ) f(x+\delta x) f(x+δx)是多少的问题

KaTeX parse error: Got function '\hat' with no arguments as superscript at position 15: ln(exp(\phi_1^\̲h̲a̲t̲ ̲))

你可能感兴趣的:(SLAM,算法)