视觉SLAM14讲-第四讲笔记
优化问题
为什么使用李代数:实际SLAM中,相机位姿R,T未知,需要进行估计,估计的过程可以看做最小误差的优化问题。由于旋转矩阵和变换矩阵有约束(正交、det=1),难以优化。转换成李代数,可以从有约束优化问题转变为无约束优化问题。
对于相机位姿T,观察到世界坐标系上的点P,在噪声w下,得到观测数据z。
- z=Tp+w
得到误差:
- e=z-Tp
对于n个点,要估计位姿T,即找到最优的T,似的误差∑e最小化。
- minJ(T)=∑e=∑(z-Tp)
J为T的函数,要优化,则要计算J关于T的导数。R、T是群,没有良好的定义加法,作为普通矩阵则有约束。转为李代数,则有良好定义的加法,无约束。
群
- 群:只对一种运算封闭。封结幺逆。
- 旋转矩阵和变换矩阵属于SO(3)和SE(3)群,它们对乘法封闭,对加法不封闭。
- 李群:在群基础上连续。
李代数
- ^:向量——>反对称矩阵
- ˇ:反对称矩阵——>向量
李代数的定义
每个李群都有与之对应的李代数,描述了李群的局部性质(导数关系,可以表达李群中矩阵的的导数)。
组成:
- 集合V
- 数域F
- 二元运算
李代数SO(3)_
哥特体打不出,用SO(3)_代表李代数,SO(3)代表李群
SO(3)_:3*1的向量。记为φ。φ对应的反对称矩阵,记为Φ。
** SO(3)中的元素是旋转矩阵R,旋转矩阵不一定是反对称矩阵。对应的李代数是三维向量φ。φ对应反对称矩阵Φ。即:Φ不是SO(3)。**
对应关系(指数映射与对数映射):
R=exp(φ^) 。
李代数SE(3)_
ξ=[ρ,φ]’。
- ρ:三维向量,平移。
- φ:三维向量:旋转,SO(3)_的元素。
李群和李代数的转换
- 李群=指数映射(李代数)
- 李代数=对数映射(李群)
- 李群与李代数对应:一对多。
SO(3)上
通过泰勒展开推导。
指数映射
- φ=θa
- 使用旋转向量表示SO(3)_中的向量ã‚
- R=exp(φ)=exp(θa)
推导得:
R=exp(θa)=cosθI+(1-cosθ)aa’+sinθa
即:
- SO(3)_是旋转向量组成的空间
- 指数映射是罗德里格斯公式(旋转向量到旋转矩阵的转换公式)。
对数映射
即旋转矩阵到旋转向量的映射。可通过泰勒推导得公式,也可分别计算转角和转轴。
SE(3)上
指数映射
T=exp(ξ^)=[R,Jρ,0’,1] ∈2*2
平移向量ρ经过指数映射,变为Jρ。
J可以通过φ计算得到。
对数映射
从T到ξ的映射,旋转向量φ=θa可以通过R计算得到,平移向量ρ可以通过解线性方程组(t=Jρ,t为T右上部分)得到。
李代数求导
BCH公式
目的:研究李群上两个矩阵相乘,与李代数上两个向量的加法的关系。
BHC公式:ln(exp(A)exp(B))=A+B+[……]
- A、B:李代数中向量(φ1,φ2)对应的反对称矩阵
两个李代数指数映射的乘积等于其相加再加上余项[……]。
可以近似得到:
- φ1很小时
- 左扰动:对R2左乘扰动R1。
ln(exp(φ1)exp(φ2))ˇ=Jl(φ2)^-1φ1+φ2
- φ2很小时:
- 右扰动:对R1右乘扰动R2。
ln(exp(φ1)exp(φ2))ˇ=Jr(φ1)^-1φ2+φ1
此处左Jl即为SE(3)_指数映射中J的计算。右扰动Jr(φ)=Jl(-φ)。
求导模型
使用李代数表示相机姿态,根据李代数加法对李代数求导。
对于∂(Rp)/∂R,转为李代数,计算∂(exp(φ^)p)/∂φ。
可得:
- ∂(Rp)/∂R=(-Rp)^Jl。
扰动模型
对李群左乘或右乘微小扰动φ_,对扰动求导。
- 左乘:∂(Rp)/∂φ_=-(Rp)^
SE(3)上李代数求导
求导后,齐次坐标的点变为4*6的矩阵。
来源:CSDN
作者:KylinQAQ
链接:https://blog.csdn.net/pikachu_777/article/details/82993414