展开全部
MATLAB 2006b之后的版本提供了航空航天工具箱(Aerospace Toolbox),其中有quat2angle函数,就是用于实现四元数到欧拉角转换的。
基本调用格式32313133353236313431303231363533e58685e5aeb931333332626137:[r1 r2 r3] = quat2angle(q)
[r1 r2 r3] = quat2angle(q, s)
其中q为四元数,r1-r3为欧拉角,s为欧拉转序(rotation sequence,有的资料译成“顺规”)。
说明几点:
1、输出的欧拉角单位是弧度;
2、欧拉角的定义有很多种,应用在不同的领域(有时用的名字,例如 Tait-Bryan角)。确切点说,一共有12种定义——第一次旋转可以绕任何一个坐标轴进行(3),第二、第三次旋转要绕除上一次旋转之外的另外两个坐标轴(2x2),所以,一共可以有3x2x2=12种定义。quat2angle支持这全部12种定义,并以三次旋转的坐标轴表示,例如'ZYX', 'ZYZ', 'ZXY',等等。默认的转序是ZYX。
3、上面说的转序涉及到坐标系的定义,该函数的坐标系定义为Z轴为竖轴,可能与某些领域的习惯不同,需要特别注意。
示例:>> [yaw, pitch, roll] = quat2angle([1 0 1 0])
yaw =
0
pitch =
1.5708
roll =
0