书中第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\)
【证毕】