上述公式中,最让我不能理解的就是这个
d
R
d
t
=
R
[
ω
]
×
\frac{dR}{dt} = R \left[ \omega \right]_{\times}
dtdR=R[ω]×,这个式子的推导需要矩阵微分的知识。我也在网上看到很多推导,但都让我很难理解,在我和GPT的交流中,意外获得了一些推导思路,在这里整理下来。推到过程不保证正确,但是很通顺流畅,欢迎批评指正!
二、推导
首先,我们可以将旋转矩阵
R
R
R 表示为旋转向量
ω
\omega
ω 的指数函数形式,即
R
=
e
[
θ
]
×
R = e^{\left[ \theta\right]_{\times}}
R=e[θ]× 然后,对
R
R
R 求导数,得到
d
R
d
t
=
d
d
t
(
e
[
θ
]
×
)
\frac{dR}{dt} = \frac{d}{dt} \left( e^{\left[ \theta \right]_{\times}} \right)
dtdR=dtd(e[θ]×) 根据矩阵微分与链式法则,可以将上式写成
d
R
d
t
=
d
(
e
[
θ
]
×
)
d
[
θ
]
×
d
[
θ
]
×
d
t
=
e
[
θ
]
×
d
[
θ
]
×
d
t
\frac{dR}{dt} = \frac{d \left( e^{\left[ \theta \right]_{\times}} \right)}{d \left[ \theta\right]_{\times}} \frac{d \left[ \theta\right]_{\times}}{dt}= e^{\left[ \theta \right]_{\times}} \frac{d \left[ \theta\right]_{\times}}{dt}
dtdR=d[θ]×d(e[θ]×)dtd[θ]×=e[θ]×dtd[θ]× 对于
d
[
θ
]
×
d
t
\frac{d \left[ \theta \right]_{\times}}{dt}
dtd[θ]×,根据导数定义和反对称矩阵性质
d
[
θ
]
×
d
t
=
lim
Δ
t
→
0
[
θ
(
t
+
Δ
t
)
]
×
−
[
θ
(
t
)
]
×
Δ
t
+
O
(
Δ
t
)
=
lim
Δ
t
→
0
[
θ
(
t
+
Δ
t
)
−
θ
(
t
)
]
×
Δ
t
+
O
(
Δ
t
)
=
[
ω
]
×
\frac{d \left[ \theta \right]_{\times}}{dt}= \lim_{\Delta t \to 0} \frac{\left[ \theta(t+\Delta t) \right]_{\times}- \left[\theta(t) \right]_{\times}}{\Delta t} + O(\Delta t) = \lim_{\Delta t \to 0} \frac{\left[ \theta(t+\Delta t) - \theta(t) \right]_{\times}}{\Delta t} + O(\Delta t)=\left[ \omega \right]_{\times}
dtd[θ]×=Δt→0limΔt[θ(t+Δt)]×−[θ(t)]×+O(Δt)=Δt→0limΔt[θ(t+Δt)−θ(t)]×+O(Δt)=[ω]× 将
[
ω
]
×
\left[ \omega \right]_{\times}
[ω]× 的定义代入上式,可以得到
d
R
d
t
=
R
[
ω
]
×
\frac{dR}{dt} = R \left[ \omega \right]_{\times}
dtdR=R[ω]× 其中,
R
R
R 表示旋转矩阵,
[
ω
]
×
\left[ \omega \right]_{\times}
[ω]× 表示的叉乘矩阵,具体形式为
[
ω
]
×
=
[
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
]
\left[ \omega \right]_{\times} = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix}
[ω]×=0ωz−ωy−ωz0ωxωy−ωx0
三、提醒
需要注意的是,这里的
R
\mathbf{R}
R是
G
R
˙
I
\mathbf{^G}\dot{\mathbf{R}}_I
GR˙I,即世界坐标系下 IMU 系的姿态R对时间t的导数,这里的
ω
\mathbf{\omega}
ω是imu传感器的三轴角速度测量值
b
o
d
y
ω
^{body}\omega
bodyω