李代数求导
1) SLAM的过程就是不断的估计相机的位姿和建立地图,在此过程中会出现一定的误差,所以目的是寻找一个最佳位姿(通过优化方法,一般采用迭代优化方法,每次迭代都更新一个位姿的增量delta,使得目标函数最小。这个delta就是通过误差函数对T微分得到的。也就是说我们需要对变换矩阵T求微分),使得整体误差最小。
为此,可以列出关于变换矩阵T的目标函数,要求解方程需要对变换矩阵求导。
2) 就旋转矩阵而言,其矩阵加法不封闭,为此不满足导数定义中“加一个极小量”。所以,要使得矩阵满足求导运算,引出李群和李代数。
李群是具有连续性质的群,群上定义了某种矩阵的集合。对于旋转矩阵、变换矩阵都是满足李群的定义,例如旋转矩阵在旋转矩阵的集合中关于乘法运算满足李群。李群运算不满足求导,但与李群对应的李代数满足加法后保持性质。至此,将变换矩阵求导的问题转化为了求李代数的导数问题。
在讨论李代数的物理意义时,so(3)就代表了旋转向量组成的空间。实际上,so(3)是三维向量phi的集合,每个向量phi^表达了这个李代数对应的李群SO(3)上旋转矩阵R的导数。其中,R与phi是一个指数映射关系。
关于李代数和李群在几何意义上的关系:李代数对应李群的正切空间,描述了李群的局部导数。
李代数求导
BCH公式
ln(exp(A)exp(B))=A+B+12[A,B]+112[A,[A,B]]−112[B[A,B]]+...其中“[ , ]”为李括号。
考虑SO(3)上的李代数:
ln(exp(ϕ∧1)exp(ϕ∧2))∨={Jl(ϕ2)−1ϕ1+ϕ2当ϕ1为小量Jr(ϕ1)−1ϕ2+ϕ1当ϕ2为小量第一个近似描述了:对一个旋转矩阵R2(李代数ϕ2),左乘一个微小旋转R1,近似看作:在李代数ϕ2上加了一项Jl(ϕ2)−1ϕ1.
Jl=J=sinθθI+(1−sinθθ)ααT+1−cosθθα∧右乘:Jr(ϕ)=Jl(−ϕ)
至此,得到李群乘法和李代数加法的关系
BCH近似
旋转矩阵R,其李代数ϕ,微小旋转ΔR,其李代数Δϕ,李群乘法→李代数加法
exp(Δϕ∧)exp(ϕ∧)=exp((ϕ+J−1l(ϕ)Δϕ)∧)李代数加法→李群乘法
exp((ϕ+Δϕ)∧)=exp((JlΔϕ)∧)exp(ϕ∧)=exp(ϕ∧)exp((JrΔϕ)∧)李代数求导
两种思路:
1 导数模型 , 2 扰动模型
SO(3)上的李代数求导
位姿T,观察点的世界坐标p,产生的观测数据z,随即噪声w,对于N个观测误差e=z−Tp,(寻找一个最优T,使误差最小)
minTJ(T)=N∑i=1||zi−Tpi||22李代数求导
1)按照导数模型,(根据李代数的加法结合导数的定义来求旋转后点的坐标对于旋转的导数,或者说是求旋转很小时偏移的变化率),可以求得:
∂(exp(ϕ∧)p)∂ϕ≈−(Rp)∧Jl⇒∂(Rp)∂ϕ=(−Rp)∧Jl2)扰动模型,对旋转矩阵R进行一次扰动ΔR(对应的李代数为φ),看结果相对于扰动的变化率。
∂(Rp)∂ϕ=(−Rp)∧SE(3)上的李代数求导
空间点p,变换T(对应的李代数为ξ),扰动变换ΔT=exp(δξ∧),其李代数为δξ=[δρ,δϕ]T:
∂(Tp)∂δξ=[I−(Rp+t)∧0T0T]git参考资料:
- 视觉SLAM十四讲:从理论到实践(第2版). 高翔.
来做第一个留言的人吧!