三维旋转构成了三维旋转群 SO(3),其对应的李代数为 s o \mathfrak{so} so(3);三维变换构成了三维变换群 SE(3),其对应的李代数为 s e \mathfrak{se} se(3)。
李代数元素到李群元素的映射为指数映射,其中 s o \mathfrak{so} so(3) 至 SO(3) 的指数映射为:
exp ( ϕ ∧ ) = R = Exp ( ϕ ) \exp(\bm{\phi}^{\wedge}) = \bm{R} = \text{Exp}(\bm{\phi}) exp(ϕ∧)=R=Exp(ϕ)
具体计算公式由罗德里格斯公式给出:
R = cos θ ⋅ I + ( 1 − cos θ ) n n T + sin θ ⋅ n ∧ = exp ( ϕ ∧ ) \bm{R} = \cos\theta \cdot \bm{I} + (1-\cos \theta) \bm{n}\bm{n}^T + \sin\theta\cdot \bm{n}^{\wedge} = \exp(\bm{\phi}^{\wedge}) R=cosθ⋅I+(1−cosθ)nnT+sinθ⋅n∧=exp(ϕ∧)
其中 ϕ ∈ s o ( 3 ) \bm{\phi}\in \mathfrak{so}(3) ϕ∈so(3) 可以分解为 ϕ = θ n \bm{\phi} =\theta\bm{n} ϕ=θn.
从李群元素到李代数元素的映射为对数映射,记作
ϕ = log ( R ) ∨ = Log ( R ) \bm{\phi} = \log(\bm{R})^{\vee} = \text{Log}(\bm{R}) ϕ=log(R)∨=Log(R)
其中 ϕ ∈ s o ( 3 ) \bm{\phi}\in \mathfrak{so}(3) ϕ∈so(3) 可以分解为 ϕ = θ n \bm{\phi} =\theta\bm{n} ϕ=θn,具体的计算过程由下式给出:
θ = arccos ( t r ( R ) − 1 2 ) R n = n \theta = \arccos\left(\frac{tr(\bm{R}) - 1}{2}\right) \\ \bm{R}\bm{n} = \bm{n} θ=arccos(2tr(R)−1)Rn=n
其中 转轴 n \bm{n} n 是矩阵 R R R 特征值1对应的单位特征向量。
两个李代数指数映射乘积的完整形式,由 Baker-Campbell-Hausdorff 公式(BCH公式)给出,其展开式的前几项为:
ln ( exp ( A ) exp ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + ⋯ \ln\left(\exp(A)\exp(B)\right) = A + B + \frac{1}{2}[A, B] + \frac{1}{12}[A,[A,B]] - \frac{1}{12}[B,[A,B]] + \cdots ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]−121[B,[A,B]]+⋯
其中 [ ] 为李括号。特别地,考虑 SO(3) 上的李代数 ln ( exp ( ϕ 1 ∧ ) exp ( ϕ 2 ∧ ) ) ∨ \ln\left(\exp(\bm{\phi}^{\wedge}_1)\exp(\bm{\phi}^{\wedge}_2)\right)^{\vee} ln(exp(ϕ1∧)exp(ϕ2∧))∨,当 ϕ 1 \bm{\phi}_1 ϕ1 或 ϕ 2 \bm{\phi}_2 ϕ2 为小量时,小量二次以上的项可以忽略,此时 BCH 具有线性近似表达:
第一个近似公式表明,当对一个旋转矩阵 R 2 \bm{R}_2 R2(李代数为 ϕ 2 \bm{\phi}_2 ϕ2) 左乘一个微小旋转矩阵 R 1 \bm{R}_1 R1(李代数为 ϕ 1 \bm{\phi}_1 ϕ1)时,可以近似看作在原来的李代数 ϕ 2 \bm{\phi}_2 ϕ2 加上了一项 J l ( ϕ 2 ) − 1 ϕ 1 \bm{J}_l(\bm{\phi}_2)^{-1}\bm{\phi}_1 Jl(ϕ2)−1ϕ1。同理,第二个近似公式描述了右乘一个微小旋转的情况。
因此,李代数在BCH近似下分成了左乘和右乘近似两种,使用时需要注意区分。
BCH公式给出了李代数上的小量加法与李群上小量乘法之间的关系(李代数加法 ⇔ \Leftrightarrow ⇔ 李群乘法),其线性近似公式广泛应用于各种函数的线性化。
在SO(3)中,某个旋转 R \bm{R} R 对应的李代数为 ϕ \bm{\phi} ϕ,左乘一个微小旋转,记作 Δ R \Delta \bm{R} ΔR,对应的李代数为 Δ ϕ \Delta \bm{\phi} Δϕ,那么在李群上得到的结果就是 Δ R R \Delta \bm{R} \bm{R} ΔRR,而在李代数上,根据BCH近似,为 J l ( ϕ ) − 1 Δ ϕ + ϕ \bm{J}_l(\bm{\phi})^{-1}\Delta\bm{\phi} + \bm{\phi} Jl(ϕ)−1Δϕ+ϕ,合并后可以简单写成:
Δ R R = exp ( Δ ϕ ∧ ) exp ( ϕ ∧ ) = exp ( ( ϕ + J l ( ϕ ) − 1 Δ ϕ ) ∧ ) \Delta \bm{R} \bm{R} = \exp(\Delta \bm{\phi}^{\wedge})\exp(\bm{\phi}^{\wedge}) = \exp \left( (\bm{\phi} + \bm{J}_l(\bm{\phi})^{-1}\Delta\bm{\phi})^{\wedge} \right) ΔRR=exp(Δϕ∧)exp(ϕ∧)=exp((ϕ+Jl(ϕ)−1Δϕ)∧)
反过来,如果在李代数上进行加法,让一个 ϕ \bm{\phi} ϕ 加上小量 Δ ϕ \Delta \bm{\phi} Δϕ,那么可以近似为李群上带左右雅克比矩阵的乘法:
exp ( ( ϕ + Δ ϕ ) ∧ ) = exp ( ( J l ( ϕ ) Δ ϕ ) ∧ ) exp ( ϕ ∧ ) = exp ( ϕ ∧ ) exp ( ( J r ( ϕ ) Δ ϕ ) ∧ ) \exp((\bm{\phi} + \Delta \bm{\phi})^{\wedge}) = \exp((\bm{J}_l(\bm{\phi})\Delta \bm{\phi})^\wedge) \exp(\bm{\phi}^\wedge) = \exp( \bm{\phi}^\wedge) \exp((\bm{J}_r(\bm{\phi})\Delta\bm{\phi})^\wedge) exp((ϕ+Δϕ)∧)=exp((Jl(ϕ)Δϕ)∧)exp(ϕ∧)=exp(ϕ∧)exp((Jr(ϕ)Δϕ)∧)
其中SO(3)的左雅克比矩阵为
J l ( θ a ) = sin θ θ I + ( 1 − sin θ θ ) a a T + ( 1 − cos θ θ ) a ∧ J l − 1 ( θ a ) = θ 2 cot θ 2 I + ( 1 − θ 2 cot θ 2 ) a a T − θ 2 a ∧ \bm{J}_l(\theta\bm{a}) = \frac{\sin\theta}{\theta} \bm{I} + (1-\frac{\sin\theta}{\theta})\bm{a}\bm{a}^T+(\frac{1-\cos\theta}{\theta})\bm{a}^{\wedge} \\ \bm{J}^{-1}_l(\theta\bm{a}) = \frac{\theta}{2}\cot\frac{\theta}{2} \bm{I} + (1-\frac{\theta}{2}\cot\frac{\theta}{2})\bm{a}\bm{a}^T-\frac{\theta}{2}\bm{a}^{\wedge} Jl(θa)=θsinθI+(1−θsinθ)aaT+(θ1−cosθ)a∧Jl−1(θa)=2θcot2θI+(1−2θcot2θ)aaT−2θa∧
而SO(3)的右雅克比矩阵为
J r ( ϕ ) = J l ( − ϕ ) \bm{J}_r(\bm{\phi}) = \bm{J}_l(-\bm{\phi}) Jr(ϕ)=Jl(−ϕ)
值得注意的是,由于李代数 ϕ \bm{\phi} ϕ 可以和旋转矩阵 R \bm{R} R 简单地对应起来,因此有时也把 J r ( ϕ ) \bm{J}_r(\bm{\phi}) Jr(ϕ) 简单地记作 J r ( R ) \bm{J}_r(\bm{R}) Jr(R) 而不是 J r ( Log ( R ) ) \bm{J}_r(\text{Log}(\bm{R})) Jr(Log(R))。另外,在很多情况下,也会省略 J r ( ϕ ) \bm{J}_r(\bm{\phi}) Jr(ϕ) 括号里的内容,而直接记为 J r \bm{J}_r Jr 和 J l \bm{J}_l Jl,这都是为了让公式看上去更加简洁。