1.前言
熬过了毕业设计,难逃提前到导师实验室打工噩运。导师最近又让我去了解一下四旋翼,以后可能会搞四旋翼挂个机械臂的东西……四旋翼建模看的朦朦胧胧的,突然被以前做机械臂时忽略了的刚体旋转给绕昏了,今天似乎懂了一些欧拉角和四元数的东西,特此记录一下,注意,本文仅为我自己的理解,可能会有错误,仅供参考,欢迎留言讨论。
2.欧拉角
欧拉角的定义网上有很多文章,无非就是分别绕一个三维坐标(多数是固定在刚体上的坐标系)各轴依次旋转,顺序各种排列组合,比如XYZ、ZYZ、ZYX等,这都不是什么重点,重点是,在进过了依次旋转后,会得到一个相对于惯性系的旋转矩阵,通过该旋转矩阵可以反求出欧拉角。本文采用XYZ顺序进行讲解,顺序都不是关键。
欧拉角虽然简单,但是存在一个奇异现象:当旋转顺序中的第二个旋转轴的旋转角度=90°,或者90°的倍数时,会产生奇异现象,此时旋转矩阵将会出现一个始终为常数的列,比如XYZ顺序下,当Y角度=90°时,旋转矩阵为
可见,旋转后的Z轴将与惯性系的X轴重合,且无论本次XYZ旋转过程中,X和Z轴的旋转角度为多少,最终Z轴都将与惯性系的X轴重合,失去了一个自由度。同时,这也将导致在根据旋转矩阵求欧拉角时,出现多解情况。
只要是在欧拉角旋