NOTE / 2020/3/22
SLAM中李群、李代数常用公式
SLAM技术笔记SLAMVIO传感器融合
在SLAM问题中,旋转/姿态一般是旋转矩阵或者四元数的表达,并非纯向量。因此,在优化或者滤波时会引入李群/李代数。SLAM领域介绍这方面的经典论文有:
- Joan, Sola. A micro Lie theory for state estimation in robotics.
- E. Eade. Lie groups for 2D and 3D transformations.
- C. Forster. On-manifold pre-integration fo real-time visual-inertial odometry.
- T. D. Barfoot. State estimation for robotics.
- G. Chirikjian. Stochastic Models, Information Theory, and Lie Group.
个人感觉,Joan Sola的这篇文章写的很详细,非常适合理解概念,强烈推荐。对于李群/李代数处理姿态的应用,这篇文章基本能解决大部分的问题了。 这里对其中的一些公式进行一些摘抄,纯属抄书。
Key Properties of the exponential map
exp((t+s)τ∧)exp(tτ∧)exp(−τ∧)exp(Xτ∧X−1)=exp(tτ∧)exp(sτ∧)=exp(τ∧)t=exp(τ∧)−1=Xexp(τ∧)X−1
Two plus and minus operators
right-⊕:Y=X⊕Xτ=XExp(Xτ)∈Mright-⊖:Xτ=Y⊖X=Log(X−1Y)∈TXM
left-⊕:Y=ετ⊕X=Exp(ετ)X∈Mleft-⊖ετ=Y⊖X=Log(Y−1X)∈TεM
The Adjoint
AdX: m→m; τ∧Linear: AdX(aτ∧+bσ∧)Homomorphism: AdX(AdY(τ∧))=Xτ∧X−1=aAdX(τ∧)+bAdX(σ∧)=AdXY(τ∧)
The Adjoint Matrix
AdX:Rm→Rm;AdXτX⊕τAdX−1AdXAdYXτ→ετ=AdXXτ=(XτX−1)∨=(AdXτ)⊕X=(AdX)−1=AdXY
Jacobian
DXXDf(X)=τ→0limτf(X⊕τ)⊖f(X)=τ→0limτLog(f(X)−1f(XExp(τ)))=∂τ∂Log(f(X)−1f(XExp(τ)))∣τ=0
Relationship between different jacobian
DXϵDf(X)=Adf(X)DXXDf(X)AdX−1
Approximations
Exp(τ+δτ)Exp(τ)Exp(δτ)Log(Exp(τ)Exp(δτ))≈Exp(τ)Exp(Jr(τ)δτ)≈Exp(τ+Jr(τ)−1δτ)≈τ+Jr(τ)−1δτ
Exp(τ+δτ)Exp(δτ)Exp(τ)Log(Exp(δτ)Exp(τ))≈Exp(Jl(τ)δτ)Exp(τ)≈Exp(τ+Jl(τ)−1δτ)≈τ+Jl(τ)−1δτ
Relationship between left and right jacobian
AdExp(τ)Jr(−τ)=Jl(τ)Jr(τ)−1=Jl(τ)
Elementary Jacobian blocks
JXX−1JXX∘YJYX∘YJXLog(X)JXX⊕τJτX⊕τJXY⊖XJYY⊖X=−AdX=AdY−1=I=Jr−1(τ)=AdExp(τ)−1=Jr=−Jl(τ)−1=Jr(τ)−1
Uncertainty in manifolds, covariance propagation
ΣXεΣXΣY=E((X⊖Xˉ)(X⊖Xˉ)T)∈Rm×m=AdXXΣXAdXT≈DXDfΣXDXDfT
Discrete integration on manifolds
Xk=Xk−1⊕τk=Xk−1Exp(τk)
The 3D Rotation Groups SO3
Exp and log
R=Exp(θu)=I+sinθ[u]×+(1−cosθ)[u]×2∈R3×3
θu=Log(R)=2sinθθ(R−RT)∨,θ=cos−1(2trac(R)−1)
Adjoint
AdR=R
Elementary Jacobian blocks
JRR−1JQQRJRQRJRRvJvRvJRR⊕θJθR⊕θJQQ⊖RJRQ⊖RJlJl−1=−R=RT=I=−R[v]×=R=R(θ)T=Jr(θ)=Jr(θ)−1=−Jl(θ)−1=JrT=Jr−T
一般情况下,可以不用SE3,Sim3的李群。因为其中只有旋转是矩阵,平移和scale都可以说是向量吧。