Inertial Measurement Unit
1、旋转矩阵求导
考虑从世界坐标系 { W } \{W\} {
W}原点出发的向量 p \mathbf{p} p绕单位轴 u \mathbf{u} u旋转,角速度矢量可以表示为 ω = θ ˙ u \boldsymbol{\omega}=\dot{\theta}\mathbf{u} ω=θ˙u。易得向量 p \mathbf{p} p末端点的速度矢量,即 p \mathbf{p} p对时间的一阶导数为
d p d t = ω × p \frac{\mathrm{d}\mathbf{p}}{\mathrm{d}t}=\boldsymbol{\omega}\times\mathbf{p} dtdp=ω×p
事实上,当角速度大小和方向随时间改变时,上式仍然成立。
设机体坐标系 { B } \{B\} {
B}到世界坐标系 { W } \{W\} {
W}的旋转矩阵 R w b = [ i B , j B , k B ] \mathbf{R}_{wb}=\left[\mathbf{i}_B,\mathbf{j}_B,\mathbf{k}_B\right] Rwb=[iB,jB,kB],若三个轴 i B , j B , k B \mathbf{i}_B,\mathbf{j}_B,\mathbf{k}_B iB,jB,kB以角速度 ω \boldsymbol{\omega} ω旋转,则根据上式,三个轴对时间的一阶导数为
d i B d t = ω × i B , d j B d t = ω × j B , d k B d t = ω × k B \frac{\mathrm{d}\mathbf{i}_B}{\mathrm{d}t}=\boldsymbol{\omega}\times{\mathbf{i}_B},\quad\frac{\mathrm{d}\mathbf{j}_B}{\mathrm{d}t}=\boldsymbol{\omega}\times{\mathbf{j}_B},\quad\frac{\mathrm{d}\mathbf{k}_B}{\mathrm{d}t}=\boldsymbol{\omega}\times{\mathbf{k}_B} dtdiB=ω×iB,dtdjB=ω×jB,dtdkB=ω×kB
故 R w b \mathbf{R}_{wb} Rwb对时间的一阶导数为
R ˙ w b = [ ω × i B , ω × j B , ω × k B ] = ω × R w b \dot{\mathbf{R}}_{wb}=[\boldsymbol{\omega}\times{\mathbf{i}_B},\,\boldsymbol{\omega}\times{\mathbf{j}_B},\,\boldsymbol{\omega}\times{\mathbf{k}_B}]=\boldsymbol{\omega}\times\mathbf{R}_{wb} R˙wb=[ω×iB,ω×jB,ω×kB]=ω×Rwb
这里的角速度 ω \boldsymbol{\omega} ω为机体坐标系 { B } \{B\} {
B}相对于世界坐标系 { W } \{W\} {
W}的角速度,且是在世界坐标系下表达的,故也记为 ω w b w \boldsymbol{\omega}_{wb}^{w} ωwbw
由叉乘运算和反对称矩阵乘法的对应关系得到
R ˙ w b = ( ω w b w ) ∧ R w b (1) \dot{\mathbf{R}}_{wb}=(\boldsymbol{\omega}_{wb}^{w})^{\wedge}\mathbf{R}_{wb}\tag1 R˙wb=(ωwbw)∧Rwb(1)
机体坐标系 { B } \{B\} {
B}相对于世界坐标系 { W } \{W\} {
W}的角速度,在机体坐标系下的表达为 ω w b b = R b w ω w b w {\boldsymbol{\omega}}^{b}_{wb}={\mathbf{R}_{bw}}\boldsymbol{\omega}^{w}_{wb} ωwbb=Rbwωwbw,故有 ω w b w = R w b ω w b b \boldsymbol{\omega}^{w}_{wb}=\mathbf{R}_{wb}\boldsymbol{\omega}^{b}_{wb} ωwbw=Rwbωwbb
R ˙ w b = ( R w b ω w b b ) ∧ R w b (2) \dot{\mathbf{R}}_{wb}=(\mathbf{R}_{wb}\boldsymbol{\omega}^{b}_{wb})^{\wedge}\mathbf{R}_{wb}\tag2 R˙wb=(Rwbωwbb)∧Rwb(2)
根据§1, ( 2 ) (2) (2)可写为
R ˙ w b = R w b ( ω w b b ) ∧ (3) \dot{\mathbf{R}}_{wb}=\mathbf{R}_{wb}(\boldsymbol{\omega}^{b}_{wb})^{\wedge}\tag3 R˙wb=Rwb(ωwbb)∧(3)
若 ω b \boldsymbol{\omega}_{b} ωb为定值,给定 t 0 t_{0} t0时刻初始旋转矩阵为 R ( t 0 ) \mathbf{R}(t_{0}) R(t0),则微分方程 ( 3 ) (3) (3)的解析解为
R ( t ) = R ( t 0 ) e x p ( ( ω w b b ) ∧ ( t − t 0 ) ) \mathbf{R}(t)=\mathbf{R}(t_{0})\mathrm{exp}\left((\boldsymbol{\omega}^{b}_{wb})^{\wedge}(t-t_{0})\right) R(t)=R(t0)exp((ωwbb)∧(t−t0))
简便起见,可以将上式写成
R ( t ) = R ( t 0 ) E x p ( ω w b b ( t − t 0 ) ) \mathbf{R}(t)=\mathbf{R}(t_{0})\mathrm{Exp}\left(\boldsymbol{\omega}^{b}_{wb}(t-t_{0})\right) R(t)=R(t0)Exp(ωwbb(t−t0))
2、车体坐标系与世界坐标系的速度,加速度转换关系
车的运动速度指的是车体坐标系 { B } \{B\} { B}相对于世界坐标系 { W } \{W\} { W}的速度在世界坐标系下的表示,记作 v w b w \mathbf{v}^{w}_{wb} vwbw,车体坐标系原点在车体坐标系下一直为原点,速度为零,所以不谈论该点在车体坐标系下的速度,我们谈论的是车体坐标系 { B } \{B\} { B}相对于世界坐标系 { W } \{W\} { W}的速度在车体坐标系下的表示
v w b b = R b w v w b w \mathbf{v}^{b}_{wb}=\mathbf{R}_{bw}\mathbf{v}^{w}_{wb} vwbb=Rbwvwbw
这个速度可以通过轮子、电机等设备测到。实际上, v w b b = p ˙ w b b \mathbf{v}^{b}_{wb}=\dot{\mathbf{p}}^{b}_{wb} vwbb=p˙wbb的值与世界坐标系的选取无关, v w b w = p ˙ w b w \mathbf{v}^{w}_{wb}=\dot{\mathbf{p}}^{w}_{wb} vwbw=p˙wbw的取值依赖于世界坐标系的选取
为方便推导,可将上式改写为
v w b w = R w b v w b b \mathbf{v}^{w}_{wb}=\mathbf{R}_{wb}\mathbf{v}^{b}_{wb} vwbw=Rwbvwbb
对上式进行求导,可以得到
v ˙ w b w = R ˙ w b v w b b + R w b v ˙ w b b = R w b ( ω w b b ) ∧ v w b b + R w b v ˙ w b b \begin{align*} \dot{\mathbf{v}}^{w}_{wb}&=\dot{\mathbf{R}}_{wb}\mathbf{v}^{b}_{wb}+\mathbf{R}_{wb}\dot{\mathbf{v}}^{b}_{wb}\\ &=\mathbf{R}_{wb}(\boldsymbol\omega^{b}_{wb})^{\wedge}\mathbf{v}^{b}_{wb}+\mathbf{R}_{wb}\dot{\mathbf{v}}^{b}_{wb}\tag1\\ \end{align*} v˙wbw=R˙wbvwbb+Rwbv˙wbb=Rwb(ωwbb)∧vwbb+Rwbv˙wbb(1)
记 a w b b \mathbf{a}_{wb}^{b} awbb为车体坐标系下的位移加速度,而车体坐标系下的总加速度 v ˙ w b b \dot{\mathbf{v}}^{b}_{wb} v˙wbb除位移加速度外,还包含了因车体坐标系以角速度 ω w b b \boldsymbol{\omega}^{b}_{wb} ωwbb旋转而产生的加速度,该旋转亦可看作 v w b b \mathbf{v}^{b}_{wb} vwbb以 ( − ω w b b ) (-\boldsymbol{\omega}^{b}_{wb}) (−ωwbb)的角速度绕车体坐标系旋转,故车体坐标系下总加速度为
v ˙ w b b = a w b b − ω w b b × v w b b (2) \dot{\mathbf{v}}^{b}_{wb}=\mathbf{a}_{wb}^{b}-\boldsymbol{\omega}^{b}_{wb}\times\mathbf{v}^{b}_{wb}\tag2 v˙wbb=awbb−ωwbb×vwbb(2)
故 ( 1 ) (1) (1)式可以写为
v ˙ w b w = R w b ( ω w b b ) ∧ v w b b + R w b ( a w b b − ω w b b × v w b b ) = R w b