四元数的常见运算

假设四元数虚部在前,实部在后

1. 四元数与旋转变量

四元数和旋转向量有很直接的转换关系。绕单位轴 u u u转了 θ \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(xyz)]

  • 四元数的逆定义为四元数的共轭除以它的模:
    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} qp=[q4I3+vqvqTvqq4][vpp4]=[p4I3vpvpTvpp4][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[q4I3vvT]ω
注:四元数的求导公式和旋转矩阵的求导很像,且这里面的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+vvT]ω

4. 四元数与旋转矩阵的转化

四元数乘法和其对应的两个旋转矩阵相乘物理意义是一样的,即:
R ( q ⊗ p ) = R ( q ) R ( p ) \mathbf{R}(\mathbf{q} \otimes \mathbf{p})=\mathbf{R}(\mathbf{q}) \mathbf{R}(\mathbf{p}) R(qp)=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)=(2q421)I3+2q4v+2vvT

你可能感兴趣的:(四元数的常见运算)