浅析欧拉角的定义及应用

2021-02-22 07:20刘锋李国平
数学学习与研究 2021年2期
关键词:欧拉角姿态

刘锋 李国平

【摘要】本文首先介绍了欧拉角的定义及其在不同学科的应用,然后分析了欧拉角作为表达刚体姿态方法的优缺点.

【关键词】欧拉角;姿态;偏航角;滚动角;俯仰角

【基金项目】湖南工学院教研教改项目(JY201841)

一、旋转矩阵

描述刚体在空间中的姿态,我们可以用旋转矩阵.假设参考坐标系(固定坐标系)为坐标系{A},固连于刚体的坐标系为{B},则刚体相对于参考坐标系的姿态可表示为

ABR=r11 r12 r13r21 r22 r23r31 r32 r33

其中ABR是正交矩阵,构成矩阵的每一列都是一个单位向量,且各列向量是互相正交的.对于右手坐标系,还有BAR=1.可以证明行列式等于1的所有3×3正交矩阵以矩阵乘法作为群运算构成一个群,称为特殊正交群,记为SO(3),SO(3)的最简表示需要3个参数.

旋转矩阵的9个元素,有6个约束,实际上只有3个自由变量.这就表示只需要3个独立的参数就可描述刚体在空间中的姿态.而且用旋转矩阵表示刚体的位姿,不直观,没有明显的物理意义.如果机器人操作人员要输入9个元素的矩阵来控制机器人到达预期的位置,这也是极不方便的事情.

鉴于旋转矩阵的缺点,我们介绍用含有三个角度参数的广义坐标来描述刚体位姿.

二、欧拉角的定义

1.欧拉定理

欧拉定理:有一不动点的刚体的一般位移是绕某一轴线的转动.

若把固连于刚体的坐标系的原点作为不动点,则刚体的位移不会包含坐标系的平移运动,只涉及坐标系的方向(刚体位姿)的变化.旋转运动有一个特征,就是旋转轴的方向不受旋转运动影响.因此,沿旋转轴方向的任何向量,在初始坐标轴和最终坐标轴上的分量相同,只要能够证明某个向量在初始坐标系和最终坐标系中坐标相同,就可证明欧拉定理.

欧拉定理实际上也给我们提供了一种表示刚体姿态的方法:等效轴角坐标系法.我们把欧拉定理中的旋转轴称为等效轴,绕轴的转角称为等效转角.这样刚体的任意姿态都可以选择适当的轴和角得到.物体绕轴旋转时姿态的变化,可用角位移描述.刚体的定点运动可看作刚体绕连续变化的转轴的转动过程,它对应一个角位移序列.所以,欧拉定理也可以表述为角位移序列等价于单个角位移.这样,角位移序列就可以表示任意旋转,从而欧拉角就诞生了.

2.欧拉角

欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列.三个相互垂直的轴一般选笛卡儿坐标系的三个坐标轴,顺序是任意顺序.但不能绕连续同一旋转轴两次,这个很容易理解.比如,先绕x轴转α角,再绕x轴转β角,根据复合旋转变换可知等价于一次绕x轴旋转(α+β)角,所以,一般要求不能绕同一轴连续转两次.欧拉角的定义方式不是唯一的,根据坐标系绕其轴的旋转顺序不同,存在多种定义方式:首先,绕三个坐标轴中的任意轴转动,有三种情形;其次,绕除第一次转轴之外的任意一轴转动,有两种情形;最后,绕除第二次转轴之外的任意一轴转动,又有两种情形.因此,总计存在3×2×2=12种定义方式.一般给出欧拉角参数表示坐标系旋转时,都需要指出欧拉角的定义方式.

这12种不同顺序的欧拉角可分为两类:欧拉式和卡尔丹式,分别以欧拉和卡尔丹的名字命名.欧拉式是可以繞同一轴旋转两次,但不是连续的:X-Y-X,X-Z-X,Y-X-Y,Y-Z-Y,Z-X-Z或Z-Y-Z.卡尔丹式的特点是绕三个不同的轴旋转:X-Y-Z,X-Z-Y,Y-Z-X,Y-X-Z,Z-X-Y,Z-Y-X.要强调的是,这里的坐标轴是指固连于刚体的坐标系的,习惯上称为动坐标系.

一般来说,欧拉角的顺序是任意选择的,但在特定领域,都有其独特的约定.在经典力学、天体力学、应用力学、分子物理学和固态物理学中经常采用Z-X-Z顺序来设定欧拉角.

首先,我们设参考(全局)坐标系为{G}(O-XYZ),刚体坐标系为{B}(O-xyz).为了找到从坐标系{G}到坐标系{B}的旋转矩阵,我们首先使用刚体坐标系B′(O-x′y′z′),在第一次旋转之前,坐标系B′与{G}重合,现在B′绕z′轴旋转角φ(如图1),因为这时Z轴和z′轴重合,故B′相对于{G}的姿态为:

GB′R=Rot(Z,φ)=cos φ-sin φ0sin φcos φ0001

图1

图2

经典力学中把绕Z轴旋转的角称为进动(precession)角,第一次绕Z轴转动的角φ就是进动角.

其次,考虑以坐标系B′为新的参考坐标系,现在引入坐标系B″(O-x″y″z″).在第二次旋转前B″和B′重合,现在考虑绕x″轴旋转θ角(如图2所示),因为x″轴和x′轴重合,所以B″相对于B′的旋转矩阵为:

B′B″R=Rot(x′,θ)=1000cos θ-sin θ0sin θcos θ

经典力学中把绕x轴旋转的角称为章动(nutation)角,第二次绕x″轴旋转的角θ就是章动角.

图3

最后,再考虑以B″作为新的参考坐标系,在第三次旋转前,{B}(O-xyz)和B″重合.现在{B}坐标系绕z″轴旋转ψ角(如图3所示),则{B}相对于B″的姿态为:

B″BR=Rot(z″,ψ)=cos ψ-sin ψ0sin ψcos ψ0001

经典力学中把绕z轴旋转的角称为自转(spin)角,第三次绕z″旋转的ψ角即为自转角.

由旋转矩阵的复合运算,我们可得刚体坐标系相对于参考坐标系的姿态矩阵:

GBR=GB′RB′B″RBB″R=cos φ-sin φ0sin φcos φ00011000cos θ-sin θ0sin θcos θcos ψ-sin ψ0sin ψcos ψ0001       =cos φcos ψ-cos θsin φsin ψ -cos φsin ψ-cos θcos ψsin φ sin θsin φcos ψsin φ+cos θcos φsin ψ -sin φsin ψ+cos θcos φcos ψ -cos φsin θ    sin θsin ψ         sin θcos ψ      cos θ

根据上面的讨论知,这种欧拉角定义方式为Z-X-Z顺序.上式给出了用欧拉角表示刚体姿态的矩阵,可以证明此矩阵仍然是正交矩阵,只要证明:GBRGBRT=E.

cos φcos ψ-cos θsin φsin ψ -cos φsin ψ-cos θcos ψsin φ sin θsin φcos ψsin φ+cos θcos φsin ψ -sin φsin ψ+cos θcos φcos ψ -cos φsin θ    sin θsin ψ         sin θcos ψ      cos θ

仍然是正交矩阵,它和刚体某个姿态对应的旋转矩阵相等,也就是说,知道Z-X-Z定义的三个欧拉角φ,θ,ψ,就可以写出对应的旋转矩阵.现在考虑它的逆问题,也就是知道旋转矩阵,求出Z-X-Z定义的三个欧拉角.假设旋转矩阵为:

R=r11 r12 r13r21 r22 r23r31 r32 r33

则有

cos φcos ψ-cos θsin φsin ψ -cos φsin ψ-cos θcos ψsin φ sin θsin φcos ψsin φ+cos θcos φsin ψ -sin φsin ψ+cos θcos φcos ψ -cos φsin θ    sin θsin ψ         sin θcos ψ      cos θ=r11 r12 r13r21 r22 r23r31 r32 r33.

由两矩阵相等,對应元素相等,可得

r11=cos φcos ψ-cos θsin φsin ψ, r12=-cos φsin ψ-cos θcos ψsin φr13=sin θsin φ, r21=cos ψsin φ+cos θcos φsin ψr22=-sin φsin ψ+cos θcos φcos ψ, r23=-cos φsin θ,r31=sin θsin ψr32=sin θcos ψ, r33=cos θ

在经典力学中,通常假设

0≤φ≤2π,0≤θ≤π,0≤ψ≤2π.

当sin θ≠0(θ=0或π)时,由r33=cos θ,得θ=arccos r33.由r13=sin θsin φ和

r23=-cos φsin θ,得

φ=-arctanr13r23或φ=π-arctanr13r23.

由r31=sin θsin ψ及r32=sin θcos ψ,得

ψ=arctanr31r32或ψ=π+arctanr31r32.

这样由r13r23确定的φ的正切值,利用反正切函数求出的φ有两个,不能确定哪一个是我们需要的φ.同理,求ψ时也会遇到这种情况.为了解决这个问题,我们需要知道sin φ和cos φ的符号.由正弦和余弦符号确定角所在象限的规则如下:

(1)sin φ为正,cos φ为正,φ在第一象限,且φ=arctansin φcos φ;

(2)sin φ为正,cos φ为负,φ在第二象限,且φ=π+arctansin φcos φ;

(3)sin φ为负,cos φ为负,φ在第三象限,且φ=π+arctansin φcos φ;

(4)sin φ为负,cos φ为正,φ在第四象限,且φ=arctansin φcos φ.

在matlab计算软件中,用双变量反正切函数atan 2(sin φ,cos φ)来计算arctansin φcos φ,这样做的好处就在于可以根据sin φ,cos φ的符号来确定φ所在的象限.例如,atan222,22=45°,而atan2-22,-22=-135°,利用单变量反正切函数计算结果一样,都是45°,不能区分这两个角.

在这里求欧拉角φ,θ,ψ时,我们也采用双变量反正切函数.因为已知r33=cos θ,

现在需要求出sin θ,由r312+r322=sin 2θsin 2ψ+sin 2θcos 2ψ=sin 2θ,得sin θ=r312+r322,所以

θ=atan 2r312+r322,r33.

因此,sin φ=r13r312+r322,cos φ=-r23r312+r322,所以

φ=atan 2r13r312+r322,-r23r312+r322.

同样可得,sin ψ=r31r312+r322,cos ψ=r32r312+r322,所以

ψ=atan 2r31r312+r322,r32r312+r322.

在求sin θ时,之所以取r312+r322的正平方根,是因为要求0≤θ≤π.若θ=0°或180°时,用上边的公式就不能求出φ和ψ了,这种情况称为解退化.这时,只能求出φ和ψ的和或差:

当θ=0°时,cos θ=1,由r11=cos φcos ψ-sin φsin ψ=cos (φ+ψ)和

r21=cos ψsin φ+cos φsin ψ=sin (φ+ψ),得φ+ψ=atan 2(r21,r11).

当θ=180°时,cos θ=-1,由r11=cos φcos ψ+sin φsin ψ=cos (φ-ψ)和r21=cos ψsin φ-cos φsin ψ=sin (φ-ψ),得φ-ψ=atan 2(r21,r11).

根据前面的旋转图可知,当θ=0°时,Ox′y′坐标平面和OXY坐标平面重合,x′轴的位置不确定,φ和ψ不确定,表明欧拉角在几何上具有奇点.当θ=180°时,Ox′y′坐标平面和OXY坐标平面也重合,只是y′轴和z′轴的正向与Y轴和Z轴正向相反.

基于Z-X-Z顺序欧拉角的特点,经常用来描述章动角θ不变,而进动角速度φ·和自转角速度ψ·为匀速运动的刚体.

在量子力学、核物理学和粒子物理学中,习惯上采用Z-Y-Z顺序定义的欧拉角,它和Z-X-Z顺序的区别在于第二次旋转是绕中间轴y″旋转的.对应的旋转矩阵为:

GBR=cos φ-sin φ0sin φcos φ0001cos θ0sin θ010-sin θ0cos θcos ψ-sin ψ0sin ψcos ψ0001 =cos φsin θcos ψ-sin φsin ψ -cos φcos θsin ψ-sin φcos ψ cos φsin θsin φcos θcos ψ+cos φsin ψ -sin φcos θsin ψ+cos φcos ψ sin φsin θ   -sin θcos ψ       sin θsin ψ        cos θ

同样假设

r11 r12 r13r21 r22 r23r31 r32 r33=cos φsin θcos ψ-sin φsin ψ -cos φcos θsin ψ-sin φcos ψ cos φsin θsin φcos θcos ψ+cos φsin ψ -sin φcos θsin ψ+cos φcos ψ sin φsin θ   -sin θcos ψ       sin θsin ψ        cos θ

则和Z-X-Z顺序类似,可以得到:

θ=atan 2(r132+r232,r33)

φ=atan 2r23r132+r232,r13r132+r232

ψ=atan 2r32r132+r232,-r31r132+r232

當θ=0°或180°时,也是无法求出φ和ψ角.

上面这两种顺序的欧拉角,当θ→0°时,即z轴接近Z轴时,φ和ψ角就无法区分开了.为了解决这个问题,可以使三次转动绕不同的轴转动.在航空、航天及航海领域,采用的就是绕三个不同轴旋转的欧拉角,即卡尔丹式欧拉角,也称泰特-布莱恩角或导航角.对于飞行器或地面车辆,通常定义x轴方向为前进方向,z轴方向为垂直向下方向,y轴方向为右手方向.飞机的坐标系如图4.

图4

图5

地理坐标系采用北-东-地坐标系,如图5.

我们采用Z-Y-X顺序的欧拉角描述飞机坐标系{B}相对于地理坐标系{G}的姿态.初始状态{B}和{G}重合,然后{B}坐标系绕zb轴旋转ψ角,接着再绕yb轴旋转θ角,最后绕xb轴旋转φ角.ψ,θ,φ习惯上称为偏航角、俯仰角和滚转角.则飞机坐标系{B}相对于地理坐标系{G}的姿态为:

GBR=cos ψsin ψ0

-sin ψcos ψ0

001cos θ0-sin θ

010

sin θ0cos θ100

0cos φsin φ

0-sin φcos φ

=cos θcos ψ sin φsin θcos ψ-cos φsin ψ cos φsin θcos ψ+sin φsin ψ

cos θsin ψ sin φsin θsin ψ+cos φcos ψ cos φsin θsin ψ-sin φcos ψ

-sin θ     sin φcos θ         cos φcos θ

同样给出一个姿态矩阵,可以确定相应的欧拉角,当cos θ≠0时,有:

θ=atan 2(-r31,r112+r212)

φ=atan 2r32r112+r212,r33r112+r212

ψ=atan 2r12r112+r212,r11r112+r212

当θ=±π2时,解不唯一,在几何上称为奇异点.当飞机在做垂直翻筋斗飞行时,该动作可以用俯仰角在-π<θ≤π范围内连续变化来表示,滚转角和偏航角都为0.实际上,我们可限制俯仰角在-π2≤θ≤π2内,因为在实际飞行中,飞机很少达到或超过这个范围飞行,在地面车辆和舰船中更不可能出现大的俯仰角.当飞机俯仰角达到π2时,允许滚转角和偏航角突然从0变为π弧度,这时飞机颠倒并且反向飞行.当飞机俯仰角达到π2时,机头竖直向上,通过姿态零点之后,俯仰角逐渐减小,当机头竖直向下时,俯仰角达到-π2,滚转角和偏航角又变回0.这样一来,除了俯仰角为±π2以外,欧拉角都是唯一确定的.

在描述机械手姿态时,也可使用RPY角,其中绕接近轴a 轴旋转称为滚动,绕方向轴o轴旋转称为俯仰,绕法线轴n轴旋转称为偏航.

除了上边介绍的绕刚体坐标系的坐标轴旋转的欧拉角之外,还有绕参考坐标系的坐标轴旋转的角坐标系.比如,X-Y-Z固定角坐标系,也就是固定RPY角坐标系.

欧拉角应用广泛,除了前边所提到的之外,它还可以用来描述3D游戏轴物体的姿态、导弹及卫星的姿态,是惯性导航中描述载体姿态的一种很重要的方法.

三、结 论

从前边的讨论知,欧拉角在描述姿态时有很多优点,它使用最少的参数,三个角度,而且具有明显直观的物理意义,符合人们思考姿态的方式.在使用计算软件计算时,也只要输入三个角度,很方便.但欧拉角也有表达方式不唯一,有奇点,当两连续旋转轴共线时还会出现万向节死锁类似的问题.另外,在进行欧拉角插值时也会出现很多问题.这些问题有些可以通过对欧拉角取值范围进行限制来解决,有些是采用这种最简表示法的一种不幸的后果,需采用其他方法描述姿态,才能避开这种问题.

【参考文献】

[1]Herbert Goldstein,Charles Poole,John Safko.经典力学:第3版[M].北京:高等教育出版社,2005.

[2]布赖恩·L.史蒂文斯,弗兰克·L.刘易斯.飞机控制与仿真:第2版[M]. 唐长红,等译.北京:航空工业出版社, 2017.

[3]Fletcher Dunn,Ian Parberry.3D数学基础:图形与游戏开发[M]. 史银雪,陈洪,王荣静,译.北京:清华大学出版社, 2005.

猜你喜欢
欧拉角姿态
攀爬的姿态
基于多传感器融合的老人跌倒检测
四旋翼无人机飞行控制中四元数与欧拉角的转换
“夜经济”要有“姿态”
全新一代宋的新姿态
跑与走的姿态
从CATIA位置矩阵求解欧拉角的计算方法分析
一种基于EGI和标准人脸模板的三维人脸点云拼合算法
大姿态角入水时的鱼雷半实物仿真方法研究
四元数与欧拉角刚体动力学数值积分算法及其比较