扰动_求导_积分
0.引言
经常查,总结一下。推导看原论文。
1.旋转的加减算子
S = R ⊕ θ ≜ R ∘ Exp ( θ ) R , S ∈ S O ( 3 ) , θ ∈ R 3 \mathrm{S}=\mathrm{R} \oplus \boldsymbol{\theta} \triangleq \mathrm{R} \circ \operatorname{Exp}(\boldsymbol{\theta}) \quad \mathrm{R}, \mathrm{S} \in S O(3), \boldsymbol{\theta} \in \mathbb{R}^{3} S=R⊕θ≜R∘Exp(θ)R,S∈SO(3),θ∈R3 q S = q R ⊕ θ = q R ⊗ Exp ( θ ) R S = R R ⊕ θ = R R ⋅ Exp ( θ ) . \begin{aligned} &\mathrm{q}_{\mathrm{S}}=\mathrm{q}_{\mathrm{R}} \oplus \boldsymbol{\theta}=\mathrm{q}_{\mathrm{R}} \otimes \operatorname{Exp}(\boldsymbol{\theta})\\ &\mathbf{R}_{\mathrm{S}}=\mathbf{R}_{\mathrm{R}} \oplus \boldsymbol{\theta}=\mathbf{R}_{\mathrm{R}} \cdot \operatorname{Exp}(\boldsymbol{\theta}) \text {. } \end{aligned} qS=qR⊕θ=qR⊗Exp(θ)RS=RR⊕θ=RR⋅Exp(θ).
θ = S ⊖ R ≜ log ( R − 1 ∘ S ) R , S ∈ S O ( 3 ) , θ ∈ R 3 \boldsymbol{\theta}=\mathrm{S} \ominus \mathrm{R} \triangleq \log \left(\mathrm{R}^{-1} \circ \mathrm{S}\right) \quad \mathrm{R}, \mathrm{S} \in S O(3), \boldsymbol{\theta} \in \mathbb{R}^{3} θ=S⊖R≜log(R−1∘S)R,S∈SO(3),θ∈R3 θ = q S ⊖ q R = log ( q R ∗ ⊗ q S ) θ = R S ⊖ R R = log ( R R ⊤ R S ) \begin{aligned} &\boldsymbol{\theta}=\mathbf{q}_{\mathrm{S}} \ominus \mathbf{q}_{\mathrm{R}}=\log \left(\mathbf{q}_{\mathrm{R}}^{*} \otimes \mathbf{q}_{\mathrm{S}}\right) \\ &\boldsymbol{\theta}=\mathbf{R}_{\mathrm{S}} \ominus \mathbf{R}_{\mathrm{R}}=\log \left(\mathbf{R}_{\mathrm{R}}^{\top} \mathbf{R}_{\mathrm{S}}\right) \end{aligned} θ=qS⊖qR=log(qR∗⊗qS)θ=RS⊖RR=log(RR⊤RS)
2.旋转的雅克比矩阵
2.1.对向量求导(被旋转的向量)
∂ ( q ⊗ a ⊗ q ∗ ) ∂ a = ∂ ( R a ) ∂ a = R \frac{\partial(\mathbf{q} \otimes \mathbf{a} \otimes \mathbf{q} *)}{\partial \mathbf{a}}=\frac{\partial(\mathbf{R} \mathbf{a})}{\partial \mathbf{a}}=\mathbf{R} ∂a∂(q⊗a⊗q∗)=∂a∂(Ra)=R
2.2.对四元数求导
∂ ( q ⊗ a ⊗ q ∗ ) ∂ q = 2 [ w a + v × a ∣ v ⊤ a I 3 + v a ⊤ − a ⊤ − w [ a ] × ] ∈ R 3 × 4 \frac{\partial(\mathbf{q} \otimes \mathbf{a} \otimes \mathbf{q} *)}{\partial \mathbf{q}}=2\left[w \mathbf{a}+\mathbf{v} \times \mathbf{a} \mid \mathbf{v}^{\top} \mathbf{a} \mathbf{I}_{3}+\mathbf{v} \mathbf{a}^{\top}-\mathbf{a}^{\top}-w[\mathbf{a}]_{\times}\right] \in \mathbb{R}^{3 \times 4} ∂q∂(q⊗a⊗q∗)=2[wa+v×a∣v⊤aI3+va⊤−a⊤−w[a]×]∈R3×4
2.3.对旋转向量求导
- SO(3)的右雅克比(十四讲上面使用的是左雅克比)
J r ( θ ) = I − 1 − cos ∥ θ ∥ ∥ θ ∥ 2 [ θ ] × + ∥ θ ∥ − sin ∥ θ ∥ ∥ θ ∥ 3 [ θ ] × 2 J r − 1 ( θ ) = I + 1 2 [ θ ] × + ( 1 ∥ θ ∥ 2 − 1 + cos ∥ θ ∥ 2 ∥ θ ∥ sin ∥ θ ∥ ) [ θ ] × 2 \begin{aligned} \mathbf{J}_{r}(\boldsymbol{\theta}) &=\mathbf{I}-\frac{1-\cos \|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|^{2}}[\boldsymbol{\theta}]_{\times}+\frac{\|\boldsymbol{\theta}\|-\sin \|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|^{3}}[\boldsymbol{\theta}]_{\times}^{2} \\ \mathbf{J}_{r}^{-1}(\boldsymbol{\theta}) &=\mathbf{I}+\frac{1}{2}[\boldsymbol{\theta}]_{\times}+\left(\frac{1}{\|\boldsymbol{\theta}\|^{2}}-\frac{1+\cos \|\boldsymbol{\theta}\|}{2\|\boldsymbol{\theta}\| \sin \|\boldsymbol{\theta}\|}\right)[\boldsymbol{\theta}]_{\times}^{2} \end{aligned} Jr(θ)Jr−1(θ)=I−∥θ∥21−cos∥θ∥[θ]×+∥θ∥3∥θ∥−sin∥θ∥[θ]×2=I+21[θ]×+(∥θ∥21−2∥θ∥sin∥θ∥1+cos∥θ∥)[θ]×2
- 对旋转向量的雅克比
∂ ( q ⊗ a ⊗ q ∗ ) ∂ δ θ = ∂ ( R a ) ∂ δ θ = − R { θ } [ a ] × J r ( θ ) \frac{\partial\left(\mathbf{q} \otimes \mathbf{a} \otimes \mathbf{q}^{*}\right)}{\partial \delta \boldsymbol{\theta}}=\frac{\partial(\mathbf{R} \mathbf{a})}{\partial \delta \boldsymbol{\theta}}=-\mathbf{R}\{\boldsymbol{\theta}\}[\mathbf{a}]_{\times} \mathbf{J}_{r}(\boldsymbol{\theta}) ∂δθ∂(q⊗a⊗q∗)=∂δθ∂(Ra)=−R{θ}[a]×Jr(θ)
3.旋转对时间的导数
3.1.扰动
扰动,使用 Hamilton convention, 右乘(十四讲使用的左乘,左扰动模型):
q ~ = q ⊗ Δ q L , R ~ = R Δ R L \tilde{\mathbf{q}}=\mathbf{q} \otimes \Delta \mathbf{q}_{\mathcal{L}}, \quad \tilde{\mathbf{R}}=\mathbf{R} \Delta \mathbf{R}_{\mathcal{L}} q~=q⊗ΔqL,R~=RΔRL q ~ L = q L ⊗ Exp ( Δ ϕ L ) , R ~ L = R L ⋅ Exp ( Δ ϕ L ) \tilde{\mathbf{q}}_{\mathcal{L}}=\mathbf{q}_{\mathcal{L}} \otimes \operatorname{Exp}\left(\Delta \phi_{\mathcal{L}}\right), \quad \tilde{\mathbf{R}}_{\mathcal{L}}=\mathbf{R}_{\mathcal{L}} \cdot \operatorname{Exp}\left(\Delta \phi_{\mathcal{L}}\right) q~L=qL⊗Exp(ΔϕL),R~L=RL⋅Exp(ΔϕL)
若扰动为小量,则(指数映射的近似):
Δ q L ≈ [ 1 1 2 Δ ϕ L ] , Δ R L ≈ I + [ Δ ϕ L ] × \Delta \mathbf{q}_{\mathcal{L}} \approx\left[\begin{array}{c} 1 \\ \frac{1}{2} \Delta \phi_{\mathcal{L}} \end{array}\right], \quad \Delta \mathbf{R}_{\mathcal{L}} \approx \mathbf{I}+\left[\Delta \phi_{\mathcal{L}}\right]_{\times} ΔqL≈[121ΔϕL],ΔRL≈I+[ΔϕL]×
3.2.旋转对时间的导数
与角速度对应:
q
˙
≜
lim
Δ
t
→
0
q
(
t
+
Δ
t
)
−
q
(
t
)
Δ
t
=
lim
Δ
t
→
0
q
⊗
Δ
q
L
−
q
Δ
t
=
lim
Δ
t
→
0
q
⊗
(
[
1
Δ
ϕ
L
/
2
]
−
[
1
0
]
)
Δ
t
=
lim
Δ
t
→
0
q
⊗
[
0
Δ
ϕ
L
/
2
]
Δ
t
=
1
2
q
⊗
[
0
ω
L
]
\begin{aligned} \dot{\mathbf{q}} & \triangleq \lim _{\Delta t \rightarrow 0} \frac{\mathbf{q}(t+\Delta t)-\mathbf{q}(t)}{\Delta t} \\ &=\lim _{\Delta t \rightarrow 0} \frac{\mathbf{q} \otimes \Delta \mathbf{q} \mathcal{L}-\mathbf{q}}{\Delta t} \\ &=\lim _{\Delta t \rightarrow 0} \frac{\mathbf{q} \otimes\left(\left[\begin{array}{c} 1 \\ \Delta \boldsymbol{\phi}_{\mathcal{L}} / 2 \end{array}\right]-\left[\begin{array}{l} 1 \\ \mathbf{0} \end{array}\right]\right)}{\Delta t} \\ &=\lim _{\Delta t \rightarrow 0} \frac{\mathbf{q} \otimes\left[\begin{array}{c} 0 \\ \Delta \boldsymbol{\phi}_{\mathcal{L}} / 2 \end{array}\right]}{\Delta t} \\ &=\frac{1}{2} \mathbf{q} \otimes\left[\begin{array}{c} 0 \\ \boldsymbol{\omega}_{\mathcal{L}} \end{array}\right] \end{aligned}
q˙≜Δt→0limΔtq(t+Δt)−q(t)=Δt→0limΔtq⊗ΔqL−q=Δt→0limΔtq⊗([1ΔϕL/2]−[10])=Δt→0limΔtq⊗[0ΔϕL/2]=21q⊗[0ωL]
令,
Ω
(
ω
)
≜
[
ω
]
R
=
[
0
−
ω
⊤
ω
−
[
ω
]
×
]
=
[
0
−
ω
x
−
ω
y
−
ω
z
ω
x
0
ω
z
−
ω
y
ω
y
−
ω
z
0
ω
x
ω
z
ω
y
−
ω
x
0
]
\boldsymbol{\Omega}(\boldsymbol{\omega}) \triangleq[\boldsymbol{\omega}]_{R}=\left[\begin{array}{cc} 0 & -\boldsymbol{\omega}^{\top} \\ \boldsymbol{\omega} & -[\boldsymbol{\omega}]_{\times} \end{array}\right]=\left[\begin{array}{cccc} 0 & -\omega_{x} & -\omega_{y} & -\omega_{z} \\ \omega_{x} & 0 & \omega_{z} & -\omega_{y} \\ \omega_{y} & -\omega_{z} & 0 & \omega_{x} \\ \omega_{z} & \omega_{y} & -\omega_{x} & 0 \end{array}\right]
Ω(ω)≜[ω]R=[0ω−ω⊤−[ω]×]=⎣⎢⎢⎡0ωxωyωz−ωx0−ωzωy−ωyωz0−ωx−ωz−ωyωx0⎦⎥⎥⎤
可类似推导得:
q ˙ = 1 2 Ω ( ω L ) q = 1 2 q ⊗ ω L , R ˙ = R [ ω L ] × \dot{\mathbf{q}}=\frac{1}{2} \boldsymbol{\Omega}\left(\boldsymbol{\omega}_{\mathcal{L}}\right) \mathbf{q}=\frac{1}{2} \mathbf{q} \otimes \boldsymbol{\omega}_{\mathcal{L}}, \quad \dot{\mathbf{R}}=\mathbf{R}\left[\boldsymbol{\omega}_{\mathcal{L}}\right]_{\times} q˙=21Ω(ωL)q=21q⊗ωL,R˙=R[ωL]× ω L = 2 q ∗ ⊗ q ˙ , [ ω L ] × = R ⊤ R ˙ \boldsymbol{\omega}_{\mathcal{L}}=2 \mathbf{q}^{*} \otimes \dot{\mathbf{q}}, \quad\left[\boldsymbol{\omega}_{\mathcal{L}}\right]_{\times}=\mathbf{R}^{\top} \dot{\mathbf{R}} ωL=2q∗⊗q˙,[ωL]×=R⊤R˙
这个结果也可由 q ∗ ⊗ q = 1 \mathbf{q}^{*} \otimes \mathbf{q}=1 q∗⊗q=1 与 R ⊤ R = I \mathbf{R}^{\top} \mathbf{R}=\mathbf{I} R⊤R=I 对时间求导推导出(十四讲就是从这个等式可是推导)。
- 性质:
[ R ω ] × = R [ ω ] × R T \left[\mathbf{R}\boldsymbol{\omega}\right]_{\times}=\mathbf{R}\left[\boldsymbol{\omega}\right]_{\times}\mathbf{R}^{T} [Rω]×=R[ω]×RT
4.旋转(rotation rates)对时间的积分
q
n
+
1
=
q
(
t
n
+
Δ
t
)
=
q
n
+
q
˙
n
Δ
t
+
1
2
!
q
¨
n
Δ
t
2
+
⋯
\mathbf{q}_{n+1}=\mathbf{q}(t_n+\Delta t) =\mathbf{q}_{n}+\dot{\mathbf{q}}_{n} \Delta t+\frac{1}{2 !} \ddot{\mathbf{q}}_{n} \Delta t^{2}+\cdots
qn+1=q(tn+Δt)=qn+q˙nΔt+2!1q¨nΔt2+⋯
其中,
q
˙
n
=
1
2
q
n
ω
n
q
¨
n
=
1
2
2
q
n
ω
n
2
+
1
2
q
n
ω
˙
.
.
.
\begin{aligned} \dot{\mathbf{q}}_{n} &=\frac{1}{2} \mathbf{q}_{n} \boldsymbol{\omega}_{n} \quad \\ \ddot{\mathbf{q}}_{n} &=\frac{1}{2^{2}} \mathbf{q}_{n} \boldsymbol{\omega}_{n}^{2}+\frac{1}{2} \mathbf{q}_{n} \dot{\boldsymbol{\omega}} \\ \end{aligned} \\...
q˙nq¨n=21qnωn=221qnωn2+21qnω˙...
注意省略了
⊗
\otimes
⊗符号,
q
n
=
1
2
q
n
⊗
ω
n
\boldsymbol{q}_{n}=\frac{1}{2} \boldsymbol{q}_{n} \otimes \boldsymbol{\omega}_{n}
qn=21qn⊗ωn。
4.1.四元数零阶时间积分
q n + 1 = q n ⊗ ( 1 + 1 2 ω n Δ t + 1 2 ! ( 1 2 ω n Δ t ) 2 + 1 3 ! ( 1 2 ω n Δ t ) 3 + ⋯ ) \mathbf{q}_{n+1}=\mathbf{q}_{n} \otimes\left(1+\frac{1}{2} \boldsymbol{\omega}_{n} \Delta t+\frac{1}{2 !}\left(\frac{1}{2} \boldsymbol{\omega}_{n} \Delta t\right)^{2}+\frac{1}{3 !}\left(\frac{1}{2} \boldsymbol{\omega}_{n} \Delta t\right)^{3}+\cdots\right) qn+1=qn⊗(1+21ωnΔt+2!1(21ωnΔt)2+3!1(21ωnΔt)3+⋯)
可以看出后半部分是 e ω n Δ t / 2 e^{\boldsymbol{\omega}_n\Delta t/2} eωnΔt/2 的泰勒展开,同时我们有 Δ θ = ω n Δ t \Delta \theta = \boldsymbol{\omega}_n\Delta t Δθ=ωnΔt,则有:
e ω Δ t / 2 = Exp ( ω Δ t ) = q { ω Δ t } = [ cos ( ∥ ω ∥ Δ t / 2 ) ω ∥ ω ∥ sin ( ∥ ω ∥ Δ t / 2 ) ] e^{\boldsymbol{\omega} \Delta t / 2}=\operatorname{Exp}(\boldsymbol{\omega} \Delta t)=\mathbf{q}\{\boldsymbol{\omega} \Delta t\}=\left[\begin{array}{c} \cos (\|\boldsymbol{\omega}\| \Delta t / 2) \\ \frac{\omega}{\|\boldsymbol{\omega}\|} \sin (\|\boldsymbol{\omega}\| \Delta t / 2) \end{array}\right] eωΔt/2=Exp(ωΔt)=q{ωΔt}=[cos(∥ω∥Δt/2)∥ω∥ωsin(∥ω∥Δt/2)]
即是:
q
n
+
1
=
q
n
⊗
q
{
ω
n
Δ
t
}
\mathbf{q}_{n+1}=\mathbf{q}_{n} \otimes \mathbf{q}\left\{\boldsymbol{\omega}_{n} \Delta t\right\}
qn+1=qn⊗q{ωnΔt}
4.2.四元数一阶时间积分
ω ˙ = ω n + 1 − ω n Δ t , ω ¨ = ⋯ = 0. \begin{aligned} \dot{\omega} &=\frac{\boldsymbol{\omega}_{n+1}-\boldsymbol{\omega}_{n}}{\Delta t} , \ddot{\omega}=\cdots &=0 . \end{aligned} ω˙=Δtωn+1−ωn,ω¨=⋯=0.
平均角速率:
ω ˉ = ω n + 1 2 ω ˙ Δ t \bar{\omega}=\omega_{n}+\frac{1}{2} \dot{\omega} \Delta t ωˉ=ωn+21ω˙Δt q n + 1 ≈ q n ⊗ ( q { ω ‾ Δ t } + Δ t 2 24 [ 0 ω n × ω n + 1 ] ) \mathbf{q}_{n+1} \approx \mathbf{q}_{n} \otimes\left(\mathbf{q}\{\overline{\boldsymbol{\omega}} \Delta t\}+\frac{\Delta t^{2}}{24}\left[\begin{array}{c} 0 \\ \boldsymbol{\omega}_{n} \times \boldsymbol{\omega}_{n+1} \end{array}\right]\right) qn+1≈qn⊗(q{ωΔt}+24Δt2[0ωn×ωn+1])