欧拉角、旋转矩阵、四元数
这篇文章主要介绍了无人机系统技术中的姿态控制问题,重点讨论了欧拉角、旋转矩阵和四元数三种描述姿态的方法。文章指出欧拉角具有直观性和易理解性但存在万向锁现象;旋转矩阵虽然精确但计算复杂;而四元数则避免了奇点问题且计算简洁高效。文章还详细分析了每种方法的应用场景及其优缺点,并强调了四元数在姿态解算中的优势。通过总结可以看出,这三种方法各有特点,在无人机导航与控制中各有适用领域。
本文开篇发布于公众号:无人机系统技术。如需获取更多无人机技术相关内容,请订阅此公众号。如有关于无人机系统的技术问题,请通过此公众号底部提供的个人联系方式与我们联系。
本文开篇发布于公众号:无人机系统技术。如需获取更多无人机技术相关内容,请订阅此公众号。如有关于无人机系统的技术问题,请通过此公众号底部提供的个人联系方式与我们联系。
**
引言
在正式探讨导航系统与飞控算法(算法链接:
上篇 旋转矩阵与欧拉角
**
1.1引言
欧拉角与旋转矩阵是我们导航与控制算法中常见的知识工具。我们需要掌握的内容包括它们的定义、优缺点以及它们之间的转换关系。上期内容将向大家详细讲解我们常用的一些坐标系及其对应的欧拉角与旋转矩阵的定义方法。
欧拉角与旋转矩阵是我们导航与控制算法中常见的知识工具。我们需要掌握的内容包括它们的定义、优缺点以及它们之间的转换关系。上期内容将向大家详细讲解我们常用的一些坐标系及其对应的欧拉角与旋转矩阵的定义方法。
1.2坐标系
为了科学地反映物体的运动特性,在特定的坐标系中进行描述。一般情况下,在建模和设计控制律的过程中会常用到以下几种坐标系:第一种是大地坐标系统;第二种是地心固定坐标系统;第三种是本地北东地坐标系统;第四种是机载北东地坐标系统;第五种是机体轴坐标系统。其中第二种至第四种都是我们在建立模型和设计控制律时常用的坐标系。这些用于描述刚体位姿信息的六个自由度数据都源自这三个常用的空间参考系统中。

首先,在图中所示的位置上,机体轴坐标系的质心被固定在飞行器的核心部位上。其中:
- X轴朝向机身头部,
- Z轴延伸至机身尾部,
- X和Z两轴均位于纵向对称面内,
- Y轴朝向机身右侧方向,
并且这三个坐标轴构成了右手三维笛卡尔坐标系(body),其首字母缩写为b。
对于机载导航电子地磁(NED)坐标系而言: - 其质心也被固定在飞行器的核心部位上,
- X轴指向上方地理北极点,
- Y轴指向东方方向延伸,
- Z轴则垂直向下贯穿椭球面法线方向。
值得注意的是: - 这种坐标系统的命名来源于地理上的北、东、下方向特性,在实际应用中通常简称为北东地(North-East-Down)系统,并以n作为其缩写。
而本地NED坐标系与机载NED坐标系的主要区别在于: - 前者的质心被固定在地面上某特定位置上。
对于处理物体旋转运动问题时通常不涉及这个区别。
1.3 旋转关系
为了明确阐述飞行器的姿态信息,在建立两个坐标系的过程中需要达到的具体目标是什么呢?答案是:为了能够精确地描述飞行器的姿态信息。具体而言,描述飞行器姿态信息的方法主要包括三种:欧拉角、旋转矩阵和四元数。其中欧拉角作为一种经典的描述方式,在实际应用中具有重要的价值和广泛的适用性。在静态模式下(static mode),旋转过程始终围绕固定不变的惯性坐标系展开;而在动态模式下(dynamic mode),旋转轴会随着每次操作的变化而调整方向。值得注意的是,在动态过程中前两次旋转后的第三个动作会受到前面两次操作结果的影响:第一次动作基于惯性坐标系完成,后续两次则基于动态变换后的局部坐标系执行。这样一来,在不同的旋转顺序下所得到的结果也会有所不同:共有12种不同的组合方式可供选择包括XYZ、XZY、XYX等系列组合方式。尽管这12种组合涵盖了所有可能的情况但其中每一个方案都不可避免地面临着"万向锁"这一挑战:当使用欧拉角进行描述时可能会遇到万向锁现象这是因为每次旋转都会改变当前的坐标轴方向;为了避免这种问题在后续章节中我们将深入探讨如何有效规避这种现象带来的负面影响

在航空领域中,常用的旋转顺序通常是ZYX序列.如图所示,在飞行过程中,飞机按照ZYX组合完成了一系列旋转以生成欧拉角.其中ψ代表偏航角、θ代表俯仰角、φ代表滚转角.

通过下图具体分析各次旋转变换的过程:首先是以机体NED坐标系的Z轴为基准进行ψ角度的旋转操作,从而得出第一个中间坐标系1;接着以新获得的第一中间坐标系1的Y轴为基准执行θ角的旋转变换,得到了第二个中间坐标系2;最后再以第二个中间坐标系2的X轴为基准进行φ角的操作,最终建立了与机体相适应的空间直角坐标系统.所有上述旋转变换均遵循右手螺旋定则执行

1.4 旋转矩阵
旋转矩阵描述了不同坐标系中点或向量的位置关系。为了更好地理解这一概念,我们先来深入分析二维平面坐标系中的情况。

用数学公式表示就是:

而我们之前讨论的三个旋转变换尽管在三维笛卡尔直角坐标系下执行 均为平面旋转变换 它们各自的旋转变换矩阵依次为:
基于作用的次序,则从机载NED坐标系到机体轴坐标系的欧拉转换矩阵则是。

当θ≠±90°时,
θ能够精准地描述任何刚体的姿态和运动参数。
通常情况下,
其仰角不会达到极限值90°,
因此,
在大多数应用场景下,
采用欧拉角进行姿态控制是完全有效的。
然而,
对于那些对机动性能有特殊需求的飞行器,
为了防止出现数学上的奇点问题,
必须采用四元数替代欧拉角进行姿态控制。
同时,
在解算过程中,
欧拉角描述可能会遇到挑战,
因此,在解算过程中采用四元数方法更为稳妥和可靠。
1.5 小结
本节内容主要阐述了飞控中常用的空间坐标系及其用于描述飞行器姿态信息的不同方法,并详细探讨了欧拉角与旋转矩阵的基本概念及其物理意义。通过深入分析两者之间的内在联系及其适用场景差异性关系, 为后续学习打下理论基础显得尤为重要。
这些内容构成了导航与飞控理论体系的基础, 为了深入理解复杂系统的运动学特性, 学者们必须先熟练掌握这些基本原理。
随后我们将重点解析万向节锁定现象及其影响, 探讨如何借助四元数这一数学工具有效规避上述问题所带来的系统性能瓶颈, 同时对比分析三者各自的优劣特性以助于实际工程应用中的合理选择。
中篇 欧拉角与万向锁
**
2.1 引言
之前我们讨论了关于欧拉角和旋转变换的内容,在那个部分提出了一个问题:当俯仰角度达到正负90度时会出现万向锁定现象。这种现象表明了欧拉角在描述飞行器姿态方面存在一定的局限性。本篇文章我们将深入探讨这种局限性的成因,并介绍相应的解决方案
2.2 陀螺仪
为了更好地理解欧拉旋转导致的万向锁现象, 我们可以通过对一个三轴万向节装置的详细观察来进行深入分析

观察者可以看到,在中心位置有一根垂直轴穿过一个圆盘。该圆盘以高速旋转的状态运转。基于陀螺体的定轴特性,在惯性空间中其垂直轴即为陀螺自转轴的方向始终保持恒定。在此处需要强调的是:我们选择使用陀螺仪来阐述欧拉角中的万向锁现象,并非因为飞机使用的陀螺仪具有这样的构造特征。然而我们需要指出的是:这种旋转状态与我们在上一讲中讨论过的欧拉旋转原理存在完全一致的现象特征。具体来说,在分析这个机械系统时我们会发现:这个由三个环组成的装置实际上代表了三次连续旋转的过程。最外层环上的旋转并不会影响到内层两个环的位置配置;而中间环的转动也不会影响到最内层环的位置;但是外层环的位置变化会直接影响到中间与最内层环的状态;这种相互制约的关系与欧拉角理论中所描述的情况具有完全相同的逻辑关系模式。因此这也是我们采用这种机械装置来进行直观演示的原因所在:它能够清晰地反映出欧拉角理论中的关键问题——万向节锁定现象的本质成因机制
2.3 万向锁
首先聚焦于最外层环的旋转情况分析。本次操作中我们选用ZYX顺序来进行旋转变换操作,由此可知,最外层环所对应的运动方式即为绕Z轴方向进行。

对应的是飞行器的偏航运动:

中间那个环对应的就是绕Y轴的旋转:

对应的是飞机的俯仰运动:

最里面那个环对应的就是绕X轴的旋转:

对应的是飞机的滚转运动:

当飞机的俯仰角达到±90度时
2.4 数学解释
最后一个问题值得我们深入探讨:为了深入理解这一现象的本质,在上一篇中我们已经介绍了相关的旋转矩阵概念。

如果俯仰角为±90°,那么公式就变成了:

这表明通过调整φ和ψ的值能够实现相同的效果。然而,在旋转矩阵中可以看到第一行与最后一列始终保持不变这一特性。因此,在任意调整φ与ψ的过程中都不会影响旋转轴的位置始终位于Z轴方向这一事实。为了使φ与ψ产生不同的效果,则必须调整θ的值。以上阐述了如何运用数学方法解释俯仰角在±90°时出现欧拉角万向锁现象的过程。
2.5 小结
在欧拉角用于表示姿态时存在一个本质缺陷——万向锁现象,在这种情况下可能会导致计算上的不可逆性或者精度损失。因此,在对物体的姿态进行计算时通常会选择四元数这一更为有效的数学工具来进行处理。而本篇文章将深入探讨如何通过四元数来描述物体的姿态,并详细阐述其与欧拉角和旋转矩阵之间的转换机制。
下篇 四元数
**
3.1 引言
在上一篇中阐述了当使用欧拉角表示姿态时会出现万向锁现象。这一问题导致同一种空间状态可用多个不同的欧拉角来描述。特别地当仰俯角度接近90度时同一旋转可被无限多种不同的欧拉角组合所表示这使得利用欧拉角进行差值计算变得存在问题因此为了消除这些局限性数学上提出了四元数作为表征姿态的有效手段。
3.2 四元数由来
四元数是由爱尔兰数学家Hamilton发明的,是发明的不是发现的,数学上的很多东西跟物理不一样,它不一定是事物的发展规律,它有时候就是数学家们凭空想象出来的东西,有可能这个东西诞生以后就没有人再用过,也有可能过了很多年,有人发现这个理论可以解释很多现象,或者这个理论可以用来分析很多无法用现有知识解释的现象。所以,大家平常没事做的时候可以天马行空,头脑风暴一下,记得把你想到的东西记下来,没准几百年以后就会有用你名字命名的理论存在了。
回到四元数上来,对于导航飞控的算法,我们需要对四元数有什么了解,其实很简单,我们要知道它的基本运算规律,要知道它以什么样的方式表征姿态,要知道它跟其他两个表征姿态的欧拉角和旋转矩阵方式如何互相转换。除此之外,还有后续如何使用四元数进行建模和控制律设计,如何在导航算法中得到四元数的状态,这些在以后的篇幅中会进行解释,今天,我们先来看看上面几个问题是怎么解决的。
3.3 基本运算规律
由一个实部和三个复数组合成的数字称为四元数,在数学中通常用w+xi+yj+zk或(w,(x,y,z))的形式来表示其中的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中各变量之间的关系式中的指数运算符应写作上标形式而非下标形式

3.4 四元数的姿态表示
在掌握了四元数的基本运算规律之后,在探讨这种表示方式如何体现姿态特征时

其中u是旋转轴的单位向量,q是一个单位四元数。

那么上述四元数的用途何在?它作用于任意给定向量时会生成该向量绕u轴旋转σ角度后的结果。

关于这一结果的原因,则无需赘述。此处省略具体推导过程。即关键在于需证向量v与w之间的夹角为σ即可。这部分工作可交由专业的数学家完成。仅需认识到四元数以如此形式表达姿态其本质上描述的是旋转变换与之相似的是旋转矩阵的表现形式不过四元数仅需4个参数就能完整刻画一个三维空间中的旋转变换操作而旋转矩阵则需要9个参数来实现同样的目标因此在数据存储和计算效率上都体现出明显的优势
3.5 欧拉角、旋转矩阵、四元数:
四元数转旋转矩阵:
已知四元数:

旋转矩阵为:

旋转矩阵转四元数:
已知旋转矩阵:

则求解四元数时根据的方法就是从四元数转旋转矩阵的公式中得到:

但从上式中是无法确定正负号的,所以又有:

一旦获得q₀到q₄中的任何一个值,就可以利用上述关系式计算出其余三个分量的值.为了便于计算,我们可以首先计算q₀的值.

可以看出,在上述推导过程中会得到两个满足条件的四元数值。实际上这两个解所描述的旋转运动属于同一个几何旋转操作特性,在实际应用中需要同时求取这两个可能解中的最大值项(即q0到q4中的最大值),从而确保在遇到某一项分量为零时仍能顺利完成后续计算步骤以避免计算异常情况发生。

四元数转欧拉角:
已知四元数:

欧拉角为:

但是当β角度为90度时,在反向转换欧拉角的过程中会出现奇点情况;这种情况下无法进行计算。此时对应的简化后四元数的形式如下。

所以atan2中后面那一项就变成了0:

这时候我们通常令α=0,然后解出欧拉角的值。
**
总结
到这里为止,我们对欧拉角、旋转矩阵以及四元数之间的关系进行了较为全面的阐述。对于四元数而言,在深入理解其旋转机理方面并非我们的主要目标,在后续的研究中将重点放在其姿态表示特性上。为此我们需要系统地总结这三种方法各自的优缺点特点:
首先来看欧拉角的优势与不足:
它的优点在于具有极强的人机交互性,在实际应用中易于被理解和使用;然而也容易导致奇异点问题(即万向锁现象),这在后续涉及姿态控制和状态估计的过程中将会带来诸多数学上的复杂性问题。
其次分析旋转矩阵的特点:
作为典型的坐标变换工具之一,每个元素都对应着特定的空间变换信息;然而它具有的显著缺点是计算量较大且难以直观理解其空间变换特性(尤其是涉及到微分运算时)。
最后来探讨四元数的优势所在:
相比前两者它完全避免了奇点问题,并且能够以最简洁的形式描述任意角度的旋转变换;此外它只需要四个参数即可表征所有可能的姿态变化,在数据存储和计算效率上都具有明显优势。但这种表征方式由于缺乏直观的空间几何意义而显得不够直观易懂。
本文首发于官方订阅号:无人机系统技术。如需了解更多信息,请关注我们的公众号获取最新资讯。如需咨询,请在官方订阅号底部关注我们的客服号进行咨询。

