视觉slam十四讲学习笔记(2)

在SLAM中,位姿估计常构建为优化问题,但旋转矩阵有约束使优化困难。通过李群李代数转换可变为无约束问题。本文介绍了李群李代数基础,包括群、李代数引出与定义,还阐述了指数与对数映射,以及李代数求导和扰动模型,以简化位姿优化求解。

李群李代数

由于在slam中位姿是未知的,所以需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的R,t,使得误差最小化。
然而,旋转就很自身是存在约束的(正交且行列式为1)。当它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群李代数的转换,希望将其变为无约束的优化问题,简化求解。

李群李代数基础

三维旋转矩阵构成了特殊正交群SO(3),变换矩阵构成了特殊欧氏群SE(3):
在这里插入图片描述旋转矩阵以及变换矩阵对于加法是不封闭的,也就是说任意两个旋转矩阵相加,按照矩阵加法的定义相加,和不再是一个旋转矩阵:
在这里插入图片描述
所以针对这两种矩阵加法并没有良好的定义,然而,乘法相对就是一种较好的运算,SO(3)和SE(3)关于乘法是封闭的。
在这里插入图片描述
两个旋转矩阵相乘表示做了两次旋转,对于这种只有一个运算的集合, 称为群

群是一种集合加上一种运算的代数结构,将集合记做A,运算记做*,那么群可以记做G = (A,*)。群要求这个运算满足一下条件:
在这里插入图片描述
矩阵中常见的群一般有:
在这里插入图片描述
群结构保证了在群上的运算具有良好的性质。
李群指具有连续(光滑)性质的群。像整数群Z那样离散的群没有连续性质,不是李群。然而SO(n)和SE(n),在实数空间上是连续的。可以直观的想象一个刚体能够连续地在空间中运动,所以它们都是李群。

李代数的引出

对于任意旋转矩阵R,满足:
在这里插入图片描述
现在,假设R是某个相机的旋转,它会随时间连续地变换,即为时间的函数:R(t)。由于它仍是旋转矩阵所以有:
在这里插入图片描述
在等式两边对时间求导:
在这里插入图片描述
整理得:
在这里插入图片描述
可以看出它是一个反对称矩阵。
∧符号表示将一个向量做叉积,变为反对称矩阵。对于任意反对称矩阵,也能找到一个与之对应的向量,这个运算符是∨。
在这里插入图片描述
由反对称矩阵可得:
在这里插入图片描述
等式两边右乘R(t),由于R为正交阵,有:
在这里插入图片描述
所以每对旋转矩阵求一次导数,只需左乘一个Φ^(t)矩阵即可。
假设t0 = 0,并设此时旋转矩阵为R(0) = I。按照导数定义,可以把R(t)在0附近进行一阶泰勒展开:
在这里插入图片描述
Φ反映了R的导数性质,所以称它为SO(3)远点附近的正切空间(Tangent Space)。 同时在t0附近,设Φ保持为常数Φ(t0) = Φ0。 那么可以得到:
在这里插入图片描述
由于初始值R(0) = I,可以解得:
在这里插入图片描述
由于做了一定假设,所以只在t=0附近有效。
可以看到,旋转矩阵R与另一个反对称矩阵Φ0通过指数关系发生了练习,也就是说,对于某个时刻的R,存在一个向量Φ,满足这个指数关系。

李代数的定义

每个李群都有与之对应的李代数,李代数描述了利群的局部性质。
李代数由一个集合V,一个数域F和一个二元运算[,]组成。如果它们满足以下几个条件,称(V,F,[,])为一个李代数,记做g。
在这里插入图片描述
其中二元运算被称为李括号。
李括号表达了两个元素的差异,它不要求结合律,而要求元素和自己做李括号之后为零的性质。

李代数so(3)

Φ事实上是一种李代数。SO(3)对应的李代数是定义在三维空间上的向量,记做Φ。每个Φ都可以生成一个反对称矩阵:
在这里插入图片描述
在此定义下,两个向量的李括号为:
在这里插入图片描述
一般说so(3)的元素是3维向量或者3维反对称矩阵,不加区别。
在这里插入图片描述
它与SO(3)的关系由指数映射给定:
在这里插入图片描述

李代数se(3)

对于SE(3),也有对应的李代数,se(3)位于六维实数空间中:
在这里插入图片描述
把每个se(3)元素记做ξ,它是一个六维向量。前三维为平移,记做ρ,后三维为旋转记做Φ,实质上是so(3)元素。同时,扩展了∧符号的含义。在se(3)中,同样使用∧符号,将一个六维向量转换为四维矩阵,但这里不在表示反对称。
在这里插入图片描述
李代数se(3)也有类似于so(3)的李括号:
在这里插入图片描述

指数与对数映射

SO(3)上的指数映射

exp(Φ^)是一个矩阵的指数,在李群和李代数中,称为指数映射。
任意矩阵的指数映射可以写成一个泰勒展开,但是只有在瘦脸的情况下才会有结果,其结果仍是一个矩阵。
在这里插入图片描述
同样的,对so(3)中的任意一元素Φ,我们也可以按此方式定义它的指数映射:
在这里插入图片描述
由于Φ是三维向量,所以可以定义它的模长和方向,分别记做θ和α,于是有Φ = θα。这里α是一个长度为1的方向向量。首先对于α^,有以下两条性质。
在这里插入图片描述
这两个公式处理了α^高阶项的方法。利用这两个性质,我们可以把指数映射写成:
在这里插入图片描述
最终得到
在这里插入图片描述
这和罗德里格斯公式如出一辙,所以标识了so(3)实际上就是所谓的旋转向量组成的空间,而指数映射即罗德里格斯公式。通过它,我们将so(3)中任意一个向量对应到了一个位于SO(3)中的旋转矩阵。同样,利用对数映射,也可以完成反变换。
在这里插入图片描述
不过实际运算时,通常会通过旋转矩阵求解转角和转轴,可以很好的减少计算量。
指数映射只是一个满射。这意味着SO(3)中的元素,都可以找到一个so(3)z中的元素与之对应,但是可能存在多个so(3)中的元素与之对应;因为旋转具有周期性。但是,如果我们把旋转角度固定在正负180之间,那么李群和李代数元素就是一一对应的。
旋转就很的导数可以由旋转向量指定,指导着如何在旋转矩阵中进行微积分运算。

SE(3)上的指数映射

se(3)指数映射如下:
在这里插入图片描述
R是SO(3)中的元素,与se(3)当中的旋转部分Φ对应。J可以整理为:
在这里插入图片描述
李群李代数的转换关系
在这里插入图片描述

李代数求导与扰动模型

BCH公式与近似形式

研究SO(3)中的元素发生运算时so(3)发生了怎样的运算
两个李代数指数映射乘积的完整形式,又BCH公式给出。
在这里插入图片描述

其中[]为李括号。BCH公式可以看出,当两个矩阵指数乘积时,它们会产生一些由李括号组成的余项。
但是设定SO(3)上的李代数,当Φ1或Φ2为小量时,小量二次以上的项都可以被忽略掉。此时,BCH拥有线型近似表达:
在这里插入图片描述
李代数在BCH近似下,分成了左乘近似和右乘近似两种,使用时需注意,使用的是左乘模型还是右乘模型。
以左乘为例:
左乘BCH近似雅克比矩阵J1事实上就是前文的式子:
在这里插入图片描述
它的逆为:
在这里插入图片描述
右乘雅克比矩阵只需对自变量取负号即可:
在这里插入图片描述
左乘BCH也可以简单的写成:
在这里插入图片描述
在李代数上进行加法,也可以金思维李群上带左右雅克比的乘法:
在这里插入图片描述
这为李代数上的微分提供了基础。
对于SE(3),也有类似的BCH近似公式:
在这里插入图片描述

SO(3)李代数上的求导

在SLAM中,我们要估计一个相机的位置和姿态,该位姿是由SO(3)的旋转就很或SE(3)上的变换矩阵描述的。设某个时刻相机的位姿为T,它观察到了一个世界坐标位于p的点,产生了一个观测数据z,那么,由坐标变换关系如:
在这里插入图片描述
然而,由于观测噪声w的存在,z往往不可能精确地满足z = TP的关系。所以,我们通常会计算理想的观测与实际数据的误差:
在这里插入图片描述
假设一共有N个这样的路标点和观测,于是就有N个上式。那么,对于相机的位姿估计,相当于是找一个最优的T,使得整体误差最小化:
在这里插入图片描述
所以需要计算目标函数J关于变换矩阵T的导数。
我们经常会构建与位姿有关的函数,然后讨论该函数关于位姿的导数,以调整当前的估计值。
SO(3),SE(3)上并没有良好定义的加法,所以优化时必须加以约束。而从李代数的角度来说,由于李代数由向量组成,具有良好的加法运算。所以,使用李代数解决问题一般分为两种:
1.用李代数表示姿态,然后对根据李代数加法来对李代数求导。
2.对李群左乘或右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型。
第一种方式对应求导模型
第二种方式对应扰动模型

李代数求导

首先,对于SO(3)来说,假设对一个空间点p进行了旋转,得到了Rp,计算旋转之后坐标对于旋转的导数,不严谨的记做。
在这里插入图片描述
由于没有加法定义,所以转为李代数:
在这里插入图片描述
推导得:
在这里插入图片描述
推导出了旋转后的点相对于李代数的导数:
在这里插入图片描述
但是Jl仍然很复杂,所以引出了更为简单的扰动模型。

扰动模型(左乘)

以左扰动为例,对左微小扰动对应的李代数求导
在这里插入图片描述
形式比上面的更为简单
在这里插入图片描述

SE(3)上的李代数求导

假设空间点p经过依次变换T(李代数为ξ),得到Tp。现在左乘微小扰动。
在这里插入图片描述
最后的结果将一个齐次坐标的空间点变换成一个4×6的矩阵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值