四元数到旋转向量公式的补充

文章目录
  1. 1. 1. 旋转向量-----角轴
  2. 2. 2. 四元数到旋转向量

书中第60页(3.42-3.43)公式证明较为简略,补充一部分其他参考信息。

1. 旋转向量-----角轴

任意旋转都可以用一个旋转轴和一个旋转角来刻画。

于是,使用一个向量,其方向与旋转轴一致,长度等于旋转角,这种向量称为旋转向量,也称为角轴(Angle-Axis)。此时,只需要一个三维向量即可描述旋转;同样,使用一个旋转向量和一个平移向量即可描述一次变换,这时正好是六维向量。

表示一个旋转,可以用旋转矩阵 \(R\) 。假设旋转轴为单位向量 \(\vec n\) ,旋转角度为 \(\theta\) ,那么向量 \(\theta \cdot \vec n\) 也可描述该旋转。旋转矩阵和旋转向量如何转换?

  • 旋转向量 \(\longrightarrow\) 旋转矩阵:

  • $R= + ( 1-) n n^{T} + n^{} $

  • 旋转矩阵 $$ 旋转向量:

  • \(\theta =\arccos \frac{tr\left ( R \right )-1 }{2}\)

  • 转轴 \(\vec n\) 是旋转矩阵 \(R\) 特征值1对应的归一化特征向量

2. 四元数到旋转向量

设四元数: \(q=(s,\vec v)=(s,v_1,v_2,v_3)\) ,其中 \(s \in \mathbb R,\vec v=[v_1,v_2,v_3]^T \in \mathbb R\)

设旋转向量:旋转轴为单位向量\(\vec n=(n_x,n_y,n_z)\) ,旋转角度为 \(\theta\) ,旋转向量为 \(\theta \cdot \vec n=\theta \cdot (n_x,n_y,n_z)\)

因为 \(\vec n\) 为单位向量,所以 \(n_x^2+n_y^2+n_z^2=1\)

【非严格证】

根据三角函数公式 \(cos^2(\frac\theta 2) + sin^2(\frac\theta 2) = 1\)

将上式 $sin^2() $ 乘系数1(即 \(n_x^2+n_y^2+n_z^2=1\) ),有

\(cos^2(\frac\theta 2) + sin^2(\frac\theta 2) \times1= 1 \\ cos^2(\frac\theta 2) + sin^2(\frac\theta 2) \times(n_x^2+n_y^2+n_z^2)=1\)

展开,有

\(cos^2(\frac\theta 2) + sin^2(\frac\theta 2) \times n_x^2+sin^2(\frac\theta 2) \times n_y^2+sin^2(\frac\theta 2) \times n_z^2=1\)

这与单位四元数的形式类似:

\(|q|=s^2+v_1^2+v_2^2+v_3^2=1\)

对上述前两个式子的相似项同时开根号,对比有:

\(s=cos(\frac\theta2)\\ v_1=sin(\frac\theta2)\cdot n_x\\ v_2=sin(\frac\theta2)\cdot n_y\\ v_3=sin(\frac\theta2)\cdot n_z\)
证毕

参考资料