1. 定义

旋转矩阵构成了特殊正交群SO(3)SO(3)SO(3),齐次变换矩阵构成了特殊欧氏群SE(3)SE(3)SE(3),但是旋转矩阵和变换矩阵对于加法是不封闭的,也就是两个旋转矩阵的和不再是一个旋转矩阵。这导致了很难对旋转矩阵进行直接求导,由此需要引入李代数。旋转矩阵R构成了一种李群SO(3)SO(3)SO(3),即
SO(3)={R∈R3×3∣RRT=I,det(R)=1}SO(3)=\{R\isin\reals^{3{\times}3}| RR^T=I,det(R)=1\}SO(3)={RR3×3RRT=I,det(R)=1}
其对应的李代数为定义在R3\R^3R3空间中的向量ϕ\bm\phiϕ,即
so(3)={ϕ∈R3,Φ=ϕ∧∈R3×3}so(3)= \{\bm \phi\isin\R^3,\varPhi=\bm\phi^{\land}\isin\R^{3\times3}\}so(3)={ϕR3,Φ=ϕR3×3}
其中Φ\varPhiΦϕ\bm\phiϕ向量对应的反对称矩阵。

2. 指数映射和对数映射

  • 指数映射
    是指把李代数转换为李群,旋转矩阵的李代数本质上就是旋转向量,因此与旋转向量转换为旋转矩阵是一样的,即使用罗德里格斯公式进行转换:
    R=exp(ϕ∧)=exp(θa∧)=cosθI+(1−cosθ)aaT+sinθa∧\bm R=exp(\bm\phi^{\land})=exp(\theta\bm a^{\land})=cos\theta\bm I+(1-cos\theta)\bm a\bm a^T+sin\theta\bm a^{\land}R=exp(ϕ)=exp(θa)=cosθI+(1cosθ)aaT+sinθa
    其中θ\thetaθa\bm aa分别为向量ϕ\bm\phiϕ的模和方向。
  • 对数映射
    是指把旋转对应的李群转换为李代数,即旋转矩阵转换为旋转向量。
    旋转向量的大小为:θ=arccostr(R)−12\theta=arccos \frac {tr(\bm R)-1} {2}θ=arccos2tr(R)1
    根据旋转轴上的向量在旋转后不变的性质,可得方向为旋转矩阵特征1对应的特征向量的方向。
    每个旋转矩阵都对应一个旋转向量,但因为旋转具有周期性,可能多个旋转向量对应一个旋转矩阵,在−π-\piπ+π+\pi+π之间(一个旋转周期内)两者是一一对应的。

3. 李代数求导与扰动模型

  • BCH近似
    两个旋转矩阵(李群)相乘是否与对应的两个旋转向量(李代数)相加等同,答案是并不等同,两个旋转矩阵相乘后的对数映射(李代数)等于对应的两个旋转向量相加后再加上一些由李括号组成的余项,如果忽略二次及以上的余项,可以得到线性的近似公式BCH:
    ln⁡(exp⁡(ϕ1∧)exp⁡(ϕ2∧))∨≈{Jl(ϕ2)−1ϕ1+ϕ2 当 ϕ1 为小量, Jr(ϕ1)−1ϕ2+ϕ1 当 ϕ2 为小量. \begin{array}{c} \ln \left(\exp \left(\phi_{1}^{\wedge}\right) \exp \left(\phi_{2}^{\wedge}\right)\right)^{\vee} \approx\left\{\begin{array}{ll} \bm J_{l}\left(\phi_{2}\right)^{-1} \phi_{1}+\phi_{2} & \text { 当 } \phi_{1} \text { 为小量, } \\ \boldsymbol{J}_{r}\left(\phi_{1}\right)^{-1} \phi_{2}+\phi_{1} & \text { 当 } \phi_{2} \text { 为小量. } \end{array}\right. \end{array}ln(exp(ϕ1)exp(ϕ2)){Jl(ϕ2)1ϕ1+ϕ2Jr(ϕ1)1ϕ2+ϕ1  ϕ1 为小量  ϕ2 为小量Jl=J=sin⁡θθI+(1−sin⁡θθ)aT+1−cos⁡θθa∧\boldsymbol{J}_{l}=\boldsymbol{J}=\frac{\sin \theta}{\theta} \boldsymbol{I}+\left(1-\frac{\sin \theta}{\theta}\right) \boldsymbol{a}^{\mathrm{T}}+\frac{1-\cos \theta}{\theta} \boldsymbol{a}^{\wedge} Jl=J=θsinθI+(1θsinθ)aT+θ1cosθaJl−1=θ2cot⁡θ2I+(1−θ2cot⁡θ2)aaT−θ2a∧\boldsymbol{J}_{l}^{-1}=\frac{\theta}{2} \cot \frac{\theta}{2} \boldsymbol{I}+\left(1-\frac{\theta}{2} \cot \frac{\theta}{2}\right) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}-\frac{\theta}{2} \boldsymbol{a}^{\wedge}Jl1=2θcot2θI+(12θcot2θ)aaT2θaJr(ϕ)=Jl(−ϕ)\bm J_r(\phi)=\bm J_l(-\phi)Jr(ϕ)=Jl(ϕ)
  • 旋转求导
    对于某个旋转矩阵RRR(对应的李代数为ϕ\bm\phiϕ)进行微小的扰动,扰动量为ΔR\Delta RΔR(对应的李代数为Δϕ\Delta\bm\phiΔϕ),如果在李群上进行左扰动,这对应了左乘的扰动模型,根据BCH近似公式,可得:exp(Δϕ∧)exp(ϕ∧)≈exp((ϕ+Jl−1(ϕ)Δϕ)∧)exp(\Delta\bm\phi^{\land})exp(\bm\phi^{\land})\approx exp((\bm\phi+\bm J^{-1}_l(\bm\phi)\Delta\bm\phi)^{\land})exp(Δϕ)exp(ϕ)exp((ϕ+Jl1(ϕ)Δϕ))如果在李群上进行右扰动,这对应了右乘的扰动模型,根据BCH近似公式,可得:exp(ϕ∧)exp(Δϕ∧)≈exp((ϕ+Jr−1(ϕ)Δϕ)∧)exp(\bm\phi^{\land})exp(\Delta\bm\phi^{\land})\approx exp((\bm\phi+\bm J^{-1}_r(\bm\phi)\Delta\bm\phi)^{\land})exp(ϕ)exp(Δϕ)exp((ϕ+Jr1(ϕ)Δϕ))如果直接在李代数上进行加法,这对应了李代数的求导,根据BCH近似公式,可得:
    exp((ϕ+Δϕ)∧)≈exp((JlΔϕ)∧)exp(ϕ∧)≈exp(ϕ∧)exp((JrΔϕ)∧)exp((\bm\phi+\Delta\bm\phi)^{\land})\approx exp((\bm J_l\Delta\bm\phi)^{\land})exp(\bm\phi^{\land})\approx exp(\bm\phi^{\land}) exp((\bm J_r\Delta\bm\phi)^{\land})exp((ϕ+Δϕ))exp((JlΔϕ))exp(ϕ)exp(ϕ)exp((JrΔϕ))总结,对于旋转的求导,有李代数求导和左右扰动模型三种方式,常使用扰动模型进行求导,在求导时候可能还需要用到李群和李代数的一些性质,具体有:
    伴随性质RTexp(ϕ∧)R=exp((RTϕ)∧)R^Texp(\bm\phi^{\land})R=exp((R^T\bm\phi)^{\land})RTexp(ϕ)R=exp((RTϕ))Rexp(ϕ∧)RT=exp((Rϕ)∧)Rexp(\bm\phi^{\land})R^T=exp((R\bm\phi)^{\land})Rexp(ϕ)RT=exp((Rϕ))RTϕ∧R=(RTϕ)∧R^T\bm\phi^{\land}R=(R^T\bm\phi)^{\land}RTϕR=(RTϕ)Rϕ∧RT=(Rϕ)∧R\bm\phi^{\land}R^T=(R\bm\phi)^{\land}RϕRT=(Rϕ)
    李群的逆等于对应李代数取负,即:(exp(ϕ∧))−1=exp(−ϕ∧)(exp(\bm\phi^\land))^{-1}=exp(-\bm\phi^\land)(exp(ϕ))1=exp(ϕ)
    在求导时李群可以进行一阶泰勒展开,即:exp(ϕ∧)≈I+ϕ∧exp(\bm\phi^\land)\approx I+\bm\phi^\landexp(ϕ)I+ϕ
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐