假设四元数虚部在前,实部在后
1. 四元数与旋转变量
四元数和旋转向量有很直接的转换关系。绕单位轴u uu转了θ \thetaθ角度,用四元数表达为:
q = [ u sin θ 2 cos θ 2 ] \mathbf{q}=\left[\mathbf{u} \sin \frac{\theta}{2} \quad \cos \frac{\theta}{2}\right]q=[usin2θcos2θ]
2.四元数的共轭和逆
四元数的共轭就是让四元数的向量部分取负,记作:
q ⃗ ∗ = [ w ( − x − y − z ) ] \vec{q} *=\left.\left[\begin{array}{llll} w & (-x & -y & -z \end{array}\right)\right]q∗=[w(−x−y−z)]四元数的逆定义为四元数的共轭除以它的模:
q ⃗ − 1 = q ⃗ ∗ ∥ q ⃗ ∥ \vec{q}^{-1}=\frac{\vec{q} *}{\|\vec{q}\|}q−1=∥q∥q∗
2. 四元数的乘法
q ⊗ p = [ q 4 I 3 + v q ∧ v q − v q T q 4 ] [ v p p 4 ] = [ p 4 I 3 − v p ∧ v p − v p T p 4 ] [ v q q 4 ] \begin{aligned} \mathbf{q} \otimes \mathbf{p} &=\left[\begin{array}{cc}{q_{4} \mathbf{I}_{3}+v_{q}^{\wedge}} & {v_{q}} \\ {-v_{q}^{T}} & {q_{4}}\end{array}\right]\left[\begin{array}{c}{v_{p}} \\ {p_{4}}\end{array}\right] \\ &=\left[\begin{array}{cc}{p_{4} \mathbf{I}_{3}-v_{p}^{\wedge}} & {v_{p}} \\ {-v_{p}^{T}} & {p_{4}}\end{array}\right]\left[\begin{array}{c}{v_{q}} \\ {q_{4}}\end{array}\right] \end{aligned}q⊗p=[q4I3+vq∧−vqTvqq4][vpp4]=[p4I3−vp∧−vpTvpp4][vqq4]
注:上式分别代表了左乘和右乘
3. 四元数的求导
3.1 旋转矩阵的求导
R ˙ = ω ∧ R \dot{\mathbf{R}}=\boldsymbol{\omega}^{\wedge} \mathbf{R}R˙=ω∧R
注:这里速度w是参考系下的角速度
R ˙ = R ( B ω ) ∧ \dot{\mathbf{R}}=\mathbf{R}\left(^{B} \omega\right)^{\wedge}R˙=R(Bω)∧
注:这里速度是体坐标系的角速度
比较一下上述两式,可以发现一个很有趣的事实,角速度如果表达在参考坐标系下,负对称矩阵写在左边;如果表达在体坐标系下,负对称矩阵写在右边。这点微小的区别,读者在阅读文献时可以特别留意。
3.2 四元数的求导
q ˙ = 1 2 [ ω ∧ ω − ω T 0 ] q : = 1 2 Ω ( ω ) q = 1 2 [ q 4 I 3 − v ∧ − v T ] ω \begin{aligned} \dot{\mathbf{q}} &=\frac{1}{2}\left[\begin{array}{cc}{\boldsymbol{\omega}^{\wedge}} & {\boldsymbol{\omega}} \\ {-\boldsymbol{\omega}^{T}} & {0}\end{array}\right] \mathbf{q} :=\frac{1}{2} \boldsymbol{\Omega}(\boldsymbol{\omega}) \mathbf{q} \\ &=\frac{1}{2}\left[\begin{array}{c}{q_{4} \mathbf{I}_{3}-\boldsymbol{v}^{\wedge}} \\ {-\boldsymbol{v}^{T}}\end{array}\right] \boldsymbol{\omega} \end{aligned}q˙=21[ω∧−ωTω0]q:=21Ω(ω)q=21[q4I3−v∧−vT]ω
注:四元数的求导公式和旋转矩阵的求导很像,且这里面的w也是在参考坐标系下的测量。若w是在体坐标系下的测量(如IMU的测量值),则公式变为:
q ˙ = 1 2 [ − ω ∧ ω − ω T 0 ] q : = 1 2 Ω ( ω ) q = 1 2 [ q 4 I 3 + v ∧ − v T ] ω \begin{aligned} \dot{\mathbf{q}} &=\frac{1}{2}\left[\begin{array}{cc}{\boldsymbol{-\omega}^{\wedge}} & {\boldsymbol{\omega}} \\ {-\boldsymbol{\omega}^{T}} & {0}\end{array}\right] \mathbf{q} :=\frac{1}{2} \boldsymbol{\Omega}(\boldsymbol{\omega}) \mathbf{q} \\ &=\frac{1}{2}\left[\begin{array}{c}{q_{4} \mathbf{I}_{3}+\boldsymbol{v}^{\wedge}} \\ {-\boldsymbol{v}^{T}}\end{array}\right] \boldsymbol{\omega} \end{aligned}q˙=21[−ω∧−ωTω0]q:=21Ω(ω)q=21[q4I3+v∧−vT]ω
4. 四元数与旋转矩阵的转化
四元数乘法和其对应的两个旋转矩阵相乘物理意义是一样的,即:
R ( q ⊗ p ) = R ( q ) R ( p ) \mathbf{R}(\mathbf{q} \otimes \mathbf{p})=\mathbf{R}(\mathbf{q}) \mathbf{R}(\mathbf{p})R(q⊗p)=R(q)R(p)
四元数对应的旋转矩阵为:
R ( q ) = ( 2 q 4 2 − 1 ) I 3 + 2 q 4 v ∧ + 2 v v T \mathbf{R}(\mathbf{q})=\left(2 q_{4}^{2}-1\right) \mathbf{I}_{3}+2 q_{4} \boldsymbol{v}^{\wedge}+2 \boldsymbol{v} \boldsymbol{v}^{T}R(q)=(2q42−1)I3+2q4v∧+2vvT