前言
这几个名词都是用来描述一个物体的位置和姿态的。它们之间可以相互转化,而且各有各的优点与缺点。我先把这几个名词之间的联系理清楚,然后再解释他们各自适合的领域以及为何需要他们。旋转矩阵的初衷就是人们希望给定一个向量x,然后我对它旋转,能直接通过矩阵乘法的形式得到旋转后的向量坐标。也就是说y=Ax。这个方便计算机计算,因此旋转矩阵常用于编程。旋转矩阵是一个正交矩阵( A T = A − 1 A^T=A^{-1} AT=A−1)而且行列式是1。既然有了旋转矩阵那么为何还要欧拉角呢?这是因为我给你一个旋转矩阵,人看不懂它到底转了多少角度啊。计算机很容易算出来,但是对人来说非常困难。比如飞机驾驶员你让他以旋转矩阵的形式给飞机下指令,那人家不得疯了。而欧拉角那就非常直观,欧拉角就是我飞机头抬头多少(俯仰角pitch),向左拐还是向右拐(偏航角yaw),以及滚筒动作的角度(滚转角roll)。因此欧拉角一般是方便用户操作,或者程序员检查运算结果是否正确。然后有了欧拉角为何还要四元数呢?因为欧拉角有问题,即万向锁问题可以看这个解释万向锁视频。欧拉角的意思是说旋转可以分解为绕机身,机翼,垂直机身三个轴旋转。注意了是依次旋转,每次旋转后的旋转轴姿态已经变化。看下图,比如你先绕机翼那个轴转90度,然后你会发现原先(第一幅图)的滚转角(即绕原先的机身转)与现在的偏航角(绕垂直机身的那个轴)重合了。也就是说滚转这个方向等与偏航了,两个自由度合并成一个了。这样一个麻烦就是如果一个给定旋转矩阵可能会计算出多个欧拉角。于是乎,数学家就用四元数来代替欧拉角。
旋转向量其实和欧拉角类似也会存在万向锁的,任何只用三个变量来描述姿态的方法都会产生万向锁。旋转向量就是方向与旋转轴相同,模为旋转角度的一个向量。之所以会用旋转向量是因为旋转矩阵用9个元素来描述三维的旋转,太浪费了。所以想用三个元素的向量来描述三维运动