全角度欧拉角与四元数转换的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
described in paper, a new Algorithm can complete the transformation in ± 180° , however not absolutely successful. In this paper a new Algorithm was presented to complete the transformation in ± 360°with the quadrant information, and is proved to be successful. Keywords: Quaternion, Euler Angle, attitude transf后,对转换公式(9)进行相应的修正,最终会获得符合控制利益的欧 拉角。 需要注意的是,为了准确描述飞行器的空间姿态,该方法需要知道给定初始时刻的期 望姿态角度信息。 5. 数字仿真 下面通过实例对本文关于姿态四元数到欧拉角转换的论述进行验证。仿真不仅验证三 通道姿态转换关系,还验证算法对双通道、单通道姿态转换的有效性。 由文中式(7)可知,在一般情况下,任意一个姿态四元数在 ( , ) 内均有两组欧拉 角与之对应。所以在仿真试验中,采用期望姿态角对姿态四元数到欧拉角的转换进行引 导,比较两组欧拉角与期望姿态的分布区间即可确定出对应于姿态四元数且符合姿态控制 利益的那组欧拉角。 三通道姿态验证: 给定仿真条件,仿真时长: t 10 s ,期望欧拉角: d 2 cos(t ) rad ,
2.2 四元数 在刚体定点转动理论中有一个著名的欧拉定理:刚体绕固定点的任一位移,可由绕通 [5] 过此点的某一轴转过一个角度而得到 。在单位时间间隔 t 内假设刚体角速度为 ,则该 转动轴的方向 n 及绕该轴转过的角度 分别为:, 相应四元数超复数形式为:
sin sin +cos sin cos cos sinsin sin cos cos cos
c ( c ) sgn( c ) ( c ) sgn( c ) ( c 2 ) sgn( c )
d [ , ] d [ , ) ( , ]
3 3 d [ , ) ( , ] 2 2 3 3 d [2 , ) ( , 2 ] 2 2 2 2
d 3sin(t ) rad , d 4 sin(t ) rad 。
区域 1
图 3 角度跨区域示意
当 c 和 c 在区域1内,且在零点附近,则先按照区域1的计算式(9)计算姿态角;当 出现事先给定的 d 不在 [ / 2, / 2] 姿态角范围内,则表示 c 、 c 应该落在区域1外, 因此应判断期望姿态角的实际输入范围来修正区域1外的算式。于是滚转角的修正算式确定 为:
(5)
2(q1q2 q0 q3 ) 2 2 q q12 q2 q3 2(q2 q3 q0 q1 )
2 0
2(q1q3 q0 q2 ) 2(q2 q3 q0 q1 ) 2 2 2 q0 q12 q2 q3
(6)
3. 欧拉角转换四元数 根据四元数的定义,可以将欧拉角式转换为四元数,以欧拉3-2-1转动为例: 第一次先绕 X 轴转动, 0 ,四元数表示为: Q1 cos(
c c c 2 c 2 c
根据算式(7)知道,两个欧拉角对应一个四元数 参考图2中俯仰角越过
(10)

2
时的角度变化,得到修正后的正确的当前角度:
c sgn(c ) c sgn(c ) c 2sgn(c ) c
d [ , ] d ( , ]
2 2 2
3 d ( , ] 2 3 d ( , 2 ] 2
(11)
对于滚转角与偏航角,为反正切函数,因此将± 360° 划分为五个区域,同时要考虑的是 在角度从一个区域跨越到另一区域时要进行判断并进行相应处理。 比较图2(a)和图2(c)中,若采用表述式(9),则所得到的欧拉角将在 、 2 发生突变,这样使得确定飞行器当前姿态角和期望姿态角关系时出现问题。故此需要权衡 姿态角与期望姿态角之间的相互关系,按照分区域(分区间)进行处理。
(1)
sin cos 0
最终的姿态矩阵还与三次转动的顺序有关,本文采用3-2-1的方法,即按照Z-Y-X轴的 顺序旋转。 [4] 于是可得姿态矩阵
R R3 R2 R1 cos cos sin sin cos cos sin cossin cos cos +sin sinsin sin sin cos



2

2
2
2
则绕三轴转动的合成为 Q Q3 Q2 Q1 ,有:
q0 cos( / 2) cos( / 2) cos( / 2) sin( / 2)sin( / 2)sin( q cos( / 2)sin( / 2)sin( / 2) sin( / 2) cos( / 2) cos( 1 q2 cos( / 2)sin( / 2) cos( / 2) sin( / 2) cos( / 2)sin( q3 sin( / 2)sin( / 2) cos( / 2) cos( / 2) cos( / 2)sin( / 2) / 2) / 2) / 2)
但这里存在一个问题, arcsin 函数的值域在 [

, ] 内, arctan 函数值域在 [ , ] 2 2
内,无法完成± 360° 内的角度转换。通过实例给定期望姿态 d 2 cos(t ) rad ,
d 3sin(t ) rad , d 4 sin(t ) rad ,转换得到姿态角如图1图2所示。
全角度欧拉角与四元数转换的方法
李益斌,王晓芳,林海
(北京理工大学宇航学院,100081北京)
摘 要: 对于四元数转换为欧拉角算法,普通的参考文献上都局限在±90°内,或是俯仰 角局限±90°在内其它两角局限于±180°内。本文利用给定期望的角度信息对当前角度进 行修正,成功地实现了±360°内的欧拉角与四元数互转算法,仿真效果证明本算法在 ±360°可行且效果好。 关键词:欧拉角;四元数;姿态转换
将式(4)代入可得欧拉角的四元数表述式:
2(q2 q3 q0 q1 ) 2 1 2(q12 q2 )
(9) (8)
arctan
arcsin[2(q1q3 q0 q2 )]
2(q q q q ) arctan 1 2 2 0 23 1 2(q2 q3 )
(2)
Q cos( / 2) sin( / 2)n
满足约束条件:
2 2 2 q0 q12 q2 q3 1
(3)
(4)
以四个单位元数表示有
Q q0 q1i q2 j q3k
利用式(3)和三角变换公式,可将姿态矩阵(2)转化成四元数。
2 2 2 q0 q12 q2 q3 R 2(q1q2 q0 q3 ) 2(q1q3 q0 q2 )
1. 引 言
欧拉角与四元数姿态表示方法是目前工程上最常用的两种方法。欧拉角表示法具有简 便、几何意义明显等优点,同时姿态敏感器可以直接测出这些参数,能较方便地求解用这 些姿态参数描述的姿态动力学方程。但采用欧拉角的姿态描述方法存在奇点问题,且需多 次三角运算。而采用四元数表示方法则可以避免这些问题,因此目前工程上开始采用四元 数来描述飞行器运动及动力学方程中的姿态,而在设计控制规律时,由于欧拉角的直观性 和几何意义,仍然采用欧拉角描述。但这里存在一个转换的问题,对于欧拉角转换为四元 数是一对一的关系,很容易运算,而四元数转换为欧拉角时并非一对一关系,常规的方法 [2][3] 只能完成以内的四元数转欧拉角± 90° 。 因此无法实现大姿态机动时的欧拉角表示。文献[1]提出了± 180° 内的转换程序,但不 稳定。本文设计了一个全新的算法,通过象限判断将四元数成功地在± 360° 内转换为欧拉 角。针对这个关键问题,本文提出一种合理的姿态角测量解算方式,提供稳定、准确的惯 性基准。
(7)
该式子所反映的为欧拉角到姿态四元数的映射关系。观察式(6)、(7),可以印证 四元数与欧拉角不存在一一对应关系的结论。 4. 四元数转欧拉角 为了验证算法本文建立仿真程序,先将原始欧拉角转换为四元数,再将四元数转换为 欧拉角。 根据式(2)可得欧拉角表述:
sin 2(q2 q3 q0 q1 ) 2 cos 1 2(q12 q2 ) sin 2(q1q3 q0 q2 ) sin 2(q1q2 q0 q3 ) 2 2 cos 1 2(q2 q3 )

第二次绕 Y 轴转动, 0 ,四元数表示为: Q2 cos( ) 0i sin( ) j 0k 第三次绕 Z 轴转动, 0 ,四元数表示为: Q3 cos( ) sin( )i 0 j 0k

) 0i 0 j sin( )k 2 2
Method of Large-scale Transformation Algorithm of Quaternion to Euler Angle
LI Yi-bin, WANG Xiao-fang, LIN Hai
School of Aerospace Engineering, Beijing Institute of Technology, Beijing,China Abstract : Usually, transformation between quaternion and Euler angle is restricted in ± 90° . As
(a) 期望滚转角
(a) 实际滚转角
(b) 期望俯仰角
(b) 实际俯仰角
(c) 期望偏航角
(c) 实际偏航角
图 1 原始欧拉角
图 2 转换后的欧拉角
在± 360° 内一个四元数可以对应不只一个欧拉角。这就需要采取修正,根据输入的期望 角度信息对当前得到的欧拉角度进行修正,来决定当前时刻的正确角度。在这里以俯仰角 为例,令 c 为由式(9)得到的角度, 为经修正后的角度。 因此在进行欧拉角的四元数转换时,需引入姿态控制所对应的飞行器期望姿态,进而 对四元数到欧拉角的转换结果进行引导。下面根据姿态四元数到欧拉角的映射关系,并参 照控制所需的期望姿态,分析姿态四元数到欧拉角的转换。 对于俯仰角,由于是反正弦函数,其值有以下几种可能性。
cos R3 ( ) sin 0
sin cos 0
0 0 cos 0 sin 1 0 R2 ( ) 0 1 0 R1 ( ) 0 cos 1 sin 0 cos 0 sin
2. 欧拉角与四元数
2.1 欧拉角 根据欧拉定理, 刚体绕固定点的位移也可以是绕该点的若干次有限转动的合成。 在欧拉 转动中, 将参与坐标系转动三次得到机体坐标系。 在三次转动中每次的旋转轴是被转动坐标 系的某一坐标轴,每次的转动角即为欧拉角。因此,用欧拉角确定的姿态矩阵是三次坐标转 换矩阵的乘积。这些坐标转换矩阵都有如下标准形式:
相关文档
最新文档