1. 定义
旋转矩阵构成了特殊正交群
S
O
(
3
)
SO(3)
SO(3),齐次变换矩阵构成了特殊欧氏群
S
E
(
3
)
SE(3)
SE(3),但是旋转矩阵和变换矩阵对于加法是不封闭的,也就是两个旋转矩阵的和不再是一个旋转矩阵。这导致了很难对旋转矩阵进行直接求导,由此需要引入李代数。旋转矩阵R构成了一种李群
S
O
(
3
)
SO(3)
SO(3),即
S
O
(
3
)
=
{
R
∈
R
3
×
3
∣
R
R
T
=
I
,
d
e
t
(
R
)
=
1
}
SO(3)=\{R\isin\reals^{3{\times}3}| RR^T=I,det(R)=1\}
SO(3)={R∈R3×3∣RRT=I,det(R)=1}
其对应的李代数为定义在
R
3
\R^3
R3空间中的向量
ϕ
\bm\phi
ϕ,即
s
o
(
3
)
=
{
ϕ
∈
R
3
,
Φ
=
ϕ
∧
∈
R
3
×
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 = e x p ( ϕ ∧ ) = e x p ( θ a ∧ ) = c o s θ I + ( 1 − c o s θ ) a a T + s i n θ 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+(1−cosθ)aaT+sinθa∧
其中 θ \theta θ和 a \bm a a分别为向量 ϕ \bm\phi ϕ的模和方向。 - 对数映射
是指把旋转对应的李群转换为李代数,即旋转矩阵转换为旋转向量。
旋转向量的大小为: θ = a r c c o s t r ( R ) − 1 2 \theta=arccos \frac {tr(\bm R)-1} {2} θ=arccos2tr(R)−1
根据旋转轴上的向量在旋转后不变的性质,可得方向为旋转矩阵特征1对应的特征向量的方向。
每个旋转矩阵都对应一个旋转向量,但因为旋转具有周期性,可能多个旋转向量对应一个旋转矩阵,在 − π -\pi −π和 + π +\pi +π之间(一个旋转周期内)两者是一一对应的。
3. 李代数求导与扰动模型
- BCH近似
两个旋转矩阵(李群)相乘是否与对应的两个旋转向量(李代数)相加等同,答案是并不等同,两个旋转矩阵相乘后的对数映射(李代数)等于对应的两个旋转向量相加后再加上一些由李括号组成的余项,如果忽略二次及以上的余项,可以得到线性的近似公式BCH:
ln ( exp ( ϕ 1 ∧ ) exp ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2 当 ϕ 1 为小量, J r ( ϕ 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 为小量. J l = J = sin θ θ I + ( 1 − sin θ θ ) a T + 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+θ1−cosθa∧ J l − 1 = θ 2 cot θ 2 I + ( 1 − θ 2 cot θ 2 ) a a T − θ 2 a ∧ \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} Jl−1=2θcot2θI+(1−2θcot2θ)aaT−2θa∧ J r ( ϕ ) = J l ( − ϕ ) \bm J_r(\phi)=\bm J_l(-\phi) Jr(ϕ)=Jl(−ϕ) - 旋转求导
对于某个旋转矩阵 R R R(对应的李代数为 ϕ \bm\phi ϕ)进行微小的扰动,扰动量为 Δ R \Delta R ΔR(对应的李代数为 Δ ϕ \Delta\bm\phi Δϕ),如果在李群上进行左扰动,这对应了左乘的扰动模型,根据BCH近似公式,可得: e x p ( Δ ϕ ∧ ) e x p ( ϕ ∧ ) ≈ e x p ( ( ϕ + J l − 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((ϕ+Jl−1(ϕ)Δϕ)∧)如果在李群上进行右扰动,这对应了右乘的扰动模型,根据BCH近似公式,可得: e x p ( ϕ ∧ ) e x p ( Δ ϕ ∧ ) ≈ e x p ( ( ϕ + J r − 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((ϕ+Jr−1(ϕ)Δϕ)∧)如果直接在李代数上进行加法,这对应了李代数的求导,根据BCH近似公式,可得:
e x p ( ( ϕ + Δ ϕ ) ∧ ) ≈ e x p ( ( J l Δ ϕ ) ∧ ) e x p ( ϕ ∧ ) ≈ e x p ( ϕ ∧ ) e x p ( ( J r Δ ϕ ) ∧ ) 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Δϕ)∧)总结,对于旋转的求导,有李代数求导和左右扰动模型三种方式,常使用扰动模型进行求导,在求导时候可能还需要用到李群和李代数的一些性质,具体有:
伴随性质 R T e x p ( ϕ ∧ ) R = e x p ( ( R T ϕ ) ∧ ) R^Texp(\bm\phi^{\land})R=exp((R^T\bm\phi)^{\land}) RTexp(ϕ∧)R=exp((RTϕ)∧) R e x p ( ϕ ∧ ) R T = e x p ( ( R ϕ ) ∧ ) Rexp(\bm\phi^{\land})R^T=exp((R\bm\phi)^{\land}) Rexp(ϕ∧)RT=exp((Rϕ)∧) R T ϕ ∧ R = ( R T ϕ ) ∧ R^T\bm\phi^{\land}R=(R^T\bm\phi)^{\land} RTϕ∧R=(RTϕ)∧ R ϕ ∧ R T = ( R ϕ ) ∧ R\bm\phi^{\land}R^T=(R\bm\phi)^{\land} Rϕ∧RT=(Rϕ)∧
李群的逆等于对应李代数取负,即: ( e x p ( ϕ ∧ ) ) − 1 = e x p ( − ϕ ∧ ) (exp(\bm\phi^\land))^{-1}=exp(-\bm\phi^\land) (exp(ϕ∧))−1=exp(−ϕ∧)
在求导时李群可以进行一阶泰勒展开,即: e x p ( ϕ ∧ ) ≈ I + ϕ ∧ exp(\bm\phi^\land)\approx I+\bm\phi^\land exp(ϕ∧)≈I+ϕ∧