最近一段时间在推Jacobian,会用到一些关于李代数求导的知识。参考高博《视觉slam十四讲》一书,在此总结一些常用的关于李群与李代数相关的知识点。
前言
在SLAM中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的R,t,使得误差最小化。旋转矩阵自身是带有约束的(正交且行列式为 1)。它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。群(Group)是一种集合加上一种运算的代数结构,李群是指具有连续(光滑)性质的群,李群在相机姿态估计时具有重要意义,接下来主要讨论特殊正交群SO(n)与特殊欧式群SE(n)。
特殊正交群与特殊欧式群
SO(n)={R∈Rn×n∣RRT=I,det(R)=1}
SE(3)={T=[R0Tt1]∈R4×4∣R∈SO(3),t∈R3}
在李群中,我们使用矩阵来表达一个旋转和平移,这存在冗余的自由度。三维空间的旋转只有三自由度,旋转+平移有六自由度。因此,我们希望寻找一个没有冗余自由度(但是相应的存在奇异性)的表示,也就是李代数so(3)和se(3)。且无论是旋转还是变换矩阵,它们都是对加法不封闭的,但是对乘法是封闭的。
李代数的引出
关于李代数理论的介绍,包含李代数/切空间/李群的介绍,非常形象。
对于任意旋转矩阵R,它必定满足:
RRT=I.
考虑它随时间发生变化,即从R变为R(t),它仍然满足如下等式:
R(t)R(t)T=I
对两侧同时对时间求导数得:
R˙(t)R(t)T+R(t)R˙(t)T=0则有:R˙(t)R(t)T=−(R˙(t)R(t)T)T
可见R˙(t)R(t)T是一个反对称矩阵,将其记作A,于是:
AT=−A
所以它主对角线元素必为0,而非对角线元素则只有三个自由度。我们一定可以找到一个这样的向量a=[a1,a2,a3]T使得:
a∧=A=0a3−a2−a30a1a2−a10
其中∧符号表示由向量转换为矩阵,反之我们也可以用∨符号定义由矩阵转换为向量的方式:
A∨=a
现在,由于:
R˙(t)R(t)T
是一个反对称矩阵,所以我们一定可以找到一个三维向量ϕ(t)∈R3与之对应。于是我们有:
R˙(t)R(t)T=ϕ(t)∧
左右各右乘R(t),由于其正交性,有:
R˙(t)=ϕ(t)∧R(t)=0ϕ3−ϕ2−ϕ30ϕ1ϕ2−ϕ10R(t)
可以看到,每对旋转矩阵求一次导数,只需左乘一个矩阵ϕ(t)∧即可。由于ϕ(t)∧反映了导数性质,故称它在的正切空间(tangent space)上。同时在t0附近,设ϕ保持为常数:
ϕ(t0)=ϕ0
我们有:
R˙(t)=ϕ0∧R(t)
又因为初始值R(0)=I,对上式进行求解可得:
R(t)=exp(ϕ0∧t).
上式描述R在局部的导数关系。
李代数 so(3)
上文提及的ϕ是一种李代数,SO(3)对应的李代数是定义在R3上的向量,我们记作ϕ,它对应一个反对称矩阵:
Φ=ϕ∧=0ϕ3−ϕ2−ϕ30ϕ1ϕ2−ϕ10∈R3×3
由于它与反对称矩阵关系很紧密,在不引起歧义的情况下,就说元素是3维向量或者3维反对称矩阵,不加区别:
so(3)={Φ=ϕ∧∈R3×3∣ϕ∈R3}
李代数 se(3)
SE(3)对应的李代数为se(3),se(3)定义在R6空间,其具体形式如下:
se(3)={ξ=[ρϕ]∈R6,ρ∈R3,ϕ∈so(3),ξ∧=[ϕ∧0Tρ0]∈R4×4}
se(3)是一个这样的六维向量,前三维表示平移,记作ρ;后三维表示旋转,记作ϕ(有时候这两个参数会反过来,也可以)。
指数映射
so(3)以及se(3)的指数映射分别对应于SO(3)以及SE(3),它们之间的转换关系可以由下图表示:
李代数求导
对旋转矩阵李代数求导
对R进行一次扰动ΔR,假设左扰动ΔR对应的李代数为,对求导,得到:
∂φ∂(Rp)=φ→0limφexp(φ∧)可作泰勒展开exp(ϕ∧)p−exp(ϕ∧)p≈φ→0limφ(I+φ∧)exp(ϕ∧)p−exp(ϕ∧)p=φ→0limφφ∧Rp=φ→0limφ−(Rp)∧φ=−(Rp)∧
变换矩阵李代数求导
假设空间点p经过一次变换T(对应的李代数为ξ)后变为 Tp 。当给T左乘一个扰动ΔT=exp(δξ∧),设扰动项的李代数为δξ=[δρ,δϕ]T,有:
∂δξ∂(Tp)=δξ→0limδξexp(δξ∧)可作泰勒展开exp(ξ∧)p−exp(ξ∧)p≈δξ→0limδξ(I+δξ∧)exp(ξ∧)p−exp(ξ∧)p=δξ→0limδξδξ∧exp(ξ∧)p=δξ→0limδξ[δϕ∧0Tδρ1][Rp+t1]=δξ→0limδξ[δϕ∧(Rp+t)+δρ0]=[I0T−(Rp+t)∧0T]上式分块求导=(Tp)⨀
上式中运算符号⨀的含义:将一个齐次坐标的空间点变换成一个4×6的矩阵。
补充
SE(3)左扰
exp(Δξ∧)exp(ξ∧)≈(I+[Δξ]×)exp(ξ)=(I4×4+[[Δϕ]×0Δρ0])[R0t1]=[[Δϕ]×+I3×30Δρ1][R0t1]=[([Δϕ]×+I3×3)R0([Δϕ]×+I3×3)t+Δρ1]
SE(3)右扰
exp(ξ∧)exp(Δξ∧)≈exp(ξ∧)(I+[Δξ]×)=[R0t1](I4×4+[[Δϕ]×0Δρ0])=[R0t1][[Δϕ]×+I3×30Δρ1]=[R([Δϕ]×+I3×3)0RΔρ+t1]