阐述欧拉角概念
目录
我第一次接触欧拉角的概念是20多年前,当时还在物理系上大二,学习刚体力学时学到了欧拉角。在数学和物理学领域,莱昂哈德·欧拉(1707-1783)是大名鼎鼎的人物。欧拉角显然也是由他提出的概念。参加工作以后,经常接触无人机,这才发现航空领域也有欧拉角的概念。但是航空领域的欧拉角与刚体力学的欧拉角有明显的区别。本文的目的就是对两者进行分别,避免在工作、学习中带来困惑。
刚体力学意义上的欧拉角--经典欧拉角
考虑一个陀螺。
首先它在自转。
其次,你会发现其实陀螺的自转轴也不是指向一个固定方向的,自转轴其实也有自己的“轴”,也在绕着这个“轴”转动,只不过比自转要慢很多。这种自转轴的运动叫做进动。陀螺的进动是由地球引力引起的,而进动轴的方向其实与重力场的方向是平行的。
第三,陀螺自转轴和进动轴的夹角也不是保持不变的。这个夹角的变化幅度很小,一般难以察觉。这种运动叫做“章动”。
不仅陀螺的运动状态可以用自转、进动、章动描述,太阳系的行星,以及行星各自的卫星的转动也可以分解为自转、进动、章动。以地球的卫星月球为例,它的自转周期是约30天(我没写错,月球的自转周期与公转周期相等,都是约30天,背后的物理机制叫做潮汐锁定);月球的进动则长达100多天,显著的慢于自转;月球的章动更加难以察觉,其幅度在角秒量级(来源:deepseek)。
刚体力学意义上的欧拉角(下图的α、β、γ)正好可以描述上述三个运动。按照维基百科的说法(拷贝2026-6-28的Euler angles - Wikipedia网页信息):


Precession, nutation, and intrinsic rotation are defined as the movements obtained by changing one of the Euler angles while leaving the other two constant. These motions are not all expressed in terms of the external frame, or all in terms of the co-moving rotated body frame, but in a mixture. They constitute a mixed axes of rotation system – precession moves the line of nodes around the external axis z, nutation rotates around the line of nodes N, and intrinsic rotation is around Z, an axis fixed in the body that moves.
翻译过来:
进动、章动和自转分别被定义为α、β、γ三个角度里一个变化,而另外两个不变化所表示的运动。这三种运动并不都是在外部参考系描述的(外部参考系指上图蓝色坐标系),而是分别在三个参考系里描述的--进动对应α角,在上图中对应蓝色坐标系绕自身Z轴的转动;章动对应β角,在第一幅图里对应绕绿色N轴的转动(N轴其实就是蓝色X轴转动α角得到的,也可以理解为绿色坐标系的X轴);自转对应γ角,对应第一幅图里绕红色Z轴的转动。上述三个坐标系都固定在刚体身上(也就是说,三个坐标系原点重合)。
上图里的转动次序是z-x'-z''。因为第一次绕z轴转动,第二次绕x'(第二次内部坐标系已经变化了,所以叫x'-y'-z'),第三次绕z''(第三次又变化,所以是x''-y''-z'')
航空领域的欧拉角--泰特-布莱恩角
考虑一架飞机,它的初始状态是机头指向正北,机腹面向下,两个机翼分别在机身的东西两侧。现在保持飞机处于水平面内,但是转动机头指向,则与正北的夹角称为偏航角。然后让飞机“抬头”,则机头与水平面的夹角称为“俯仰角”。最后,保持机头指向不变,飞机的左右翅膀可以绕着机头指向转动,这个转动的角度称为横滚角。

图片来源:Aircraft principal axes - Wikipedia(下载于2026-6-28)
用xyz坐标轴的语言再把上述概念解释一遍:
假定飞机机头朝向与x轴平行。按照Euler angles - Wikipedia的插图及描述,偏航(yaw/heading)、俯仰(pitch/elevation)、横滚(roll/bank)可以按照z-y'-x''的转动次序获取:

1 先绕蓝色的z轴转动,使y轴转到绿色的y'位置,而蓝色的x轴转到绿色的位置上。转过的角度是偏航角;
2 再绕y'转动,使得绿色的轴与红色的X轴重合。转过的角度是俯仰角;
3 绕着红色X轴转动,使得绿色的y'与红色的Y重合。转过的角度是横滚角。
正如维基百科Euler angles - Wikipedia插图后面所说:
These angles are normally taken as one in the external reference frame (heading, bearing), one in the intrinsic moving frame (bank) and one in a middle frame, representing an elevation or inclination with respect to the horizontal plane, which is equivalent to the line of nodes for this purpose.
绕外部坐标系旋转得到的是偏航角(所谓外部坐标系,指的是蓝色的xyz坐标系),绕内部运动坐标系转动得到的是横滚角(所谓内部坐标系,指的是红色的XYZ坐标系,这里尤指红色的X轴),绕中间坐标系转过的角度是俯仰角(中间坐标系指的是绿色的y')
总结
按照维基百科的说法(拷贝2026-6-28的网页信息Euler angles - Wikipedia):
there exist twelve possible sequences of rotation axes, divided in two groups:
- Proper Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y)
- Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z).
翻译过来:
欧拉角可以分成12种“顺规”(即绕坐标轴的旋转次序),而12个顺规又分为两大类:
真欧拉角(又称经典欧拉角,信息来源:欧拉角 | Wilde View):z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y
泰特-布莱恩角:x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z
我们在第一节里描述的欧拉角是先后绕z-x-z(站在世界坐标系的角度来说,是z-x-z,而不是前文说的z-x'-z''。但是两者等价,后面的博文从内旋到外旋(二)--用简单的外旋替代复杂的内旋-CSDN博客会解释)完成的,是真欧拉角里的第一种顺规。
我们在第二节描述的泰特-布莱恩角是按照z-y'-x''完成的。这里的y'与x''都是刚体坐标系(或者叫内部坐标系),不是世界坐标系(或者叫外部坐标系),绕内部坐标系z-y'-x''运动,本质上与绕外部坐标系x-y-z运动是等价的,我们后面会在从内旋到外旋(二)--用简单的外旋替代复杂的内旋-CSDN博客解释。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)