1.欧拉角
在四元数出现之前先看下欧拉角:
对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。为了后面的角度不混乱,我们要先区分参考系和坐标系的概念。
参考系即为大地参考系,是静止不动的。而坐标系则固定于四轴飞行器,随着四轴飞行器的旋转而旋转。
按照右图所示。设定 xyz-轴为四轴上的参考轴,XYZ-轴则是大地的参考轴。右图即为四轴相对地面进行了一定旋转, xy-平面与XY-平面的相交线为交点线,用英文字母(N)代表。我们可以这样定义欧拉角:
是 x-轴与交点线的夹角
是 z-轴与Z-轴的夹角 是交点线与X-轴的夹角
这样我们就可以用三个欧拉角:(,,)其取值为0-360来描述四轴飞行器 相对于大地的参考系的姿态角度了。
三个欧拉角:(,,)。蓝色的轴是 xyz-轴,红色的轴是 XYZ-坐标轴。绿色的线是交点线 (N) 。
2.轴角
欧拉角使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对大地参考系说的,这意味着第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身就失去了任意轴的自主性,这也就导致了万向节锁(Gimbal Lock)的问题。
什么是Gimbal Lock? 正如前面所说,因为欧拉描述中针对x,y,z的旋转描述是世界坐标系下的值,所以当任意一轴旋转90°的时候会导致该轴同其他轴重合,此时旋转被重合的轴可能没有任何效果,这就是Gimbal Lock,还有一种是轴角的描述方法,这种方法比欧拉描述要好,它避免了Gimbal Lock,它使用一个3维向量表示转轴和一个角度分量表示绕此转轴的旋转角度,即(x,y,z,angle),一般表示为(x,y,z,w)或者(v,w)。(x,y,z)为旋转轴,w为旋转角度。但这种描述法却不适合插值。