飞控姿态解算理解

合集下载

姿态解算简介

姿态解算简介

作者:nieyong本文需要讲清楚在无人机飞行器算法中,什么是姿态,怎么表示姿态,如何得到姿态。

姿态就是指飞行器的俯仰/横滚/航向情况。

在咱们地球上,就是指飞行器在地球坐标系中的俯仰/横滚/航向情况。

飞行器需要实时知道当前自己的姿态,才能够根据需要操控其接下来的动作,例如保持平稳,例如实现翻滚。

下面是学术型的严密论述。

数学模型姿态是用来描述一个刚体的固连坐标系和参考坐标系之间的角位置关系,有一些数学表示方法。

很常见的就是欧拉角,四元数,矩阵,轴角。

地球坐标系又叫做地理坐标系,是固定不变的。

正北,正东,正向上构成了这个坐标系的X,Y,Z轴,我们用坐标系R表示。

四轴飞行器上固定着一个坐标系,我们一般称之为机体坐标系,用坐标系r表示。

那么我们就可以用欧拉角,四元数等来描述r和R的角位置关系。

这就是四轴飞行器姿态解算的数学模型和基础。

姿态有多种数学表示方式,常见的是四元数,欧拉角,矩阵和轴角。

他们各自有其自身的优点,在不同的领域使用不同的表示方式。

在四轴飞行器中使用到了四元数和欧拉角。

Crazepony开源四轴飞行器也是一样的。

四元数四元数是由爱尔兰数学家威廉·卢云·哈密顿在1843年发现的数学概念。

从明确地角度而言,四元数是复数的不可交换延伸。

如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。

四元数大量用于电脑绘图(及相关的图像分析)上表示三维物件的旋转及方位。

四元数亦见于控制论、信号处理、姿态控制、物理和轨道力学,都是用来表示旋转和方位。

相对于另几种旋转表示法(矩阵,欧拉角,轴角),四元数具有某些方面的优势,如速度更快、提供平滑插值、有效避免万向锁问题、存储空间较小等等。

以上部分摘自维基百科-四元数。

欧拉角莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向。

对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。

四轴飞行器姿态控制算法

四轴飞行器姿态控制算法

四轴飞行器姿态控制算法四轴飞行器姿态控制是指通过调整四个电机的转速,使得飞行器能够保持所需的姿态,例如平稳飞行、转弯、盘旋等。

姿态控制算法主要包括传感器采集、姿态估计和控制指令生成等几个部分。

以下将详细介绍四轴飞行器姿态控制的算法原理。

1.传感器采集:四轴飞行器通常会配备三个主要的传感器:加速度计、陀螺仪和磁力计。

加速度计用于测量飞行器的重力加速度,陀螺仪用于测量飞行器的角速度,磁力计用于测量地磁场强度。

这些传感器的数据将用于后续的姿态估计和控制。

2.姿态估计:姿态估计是根据传感器提供的数据计算出飞行器的当前姿态角。

一种常用的姿态估计方法是互补滤波器。

互补滤波器将加速度计和陀螺仪的数据进行融合,通过加速度计估计出的姿态角和陀螺仪估计出的姿态角进行加权平均,从而得到更准确的姿态估计。

3.控制指令生成:姿态控制器的目标是生成适当的转速指令,使得飞行器能够达到所需的姿态。

在四轴飞行器中,姿态控制通常分为俯仰控制、滚转控制和偏航控制三个方向。

俯仰控制用于调整飞行器的前后倾斜角度,滚转控制用于调整飞行器的左右倾斜角度,偏航控制用于调整飞行器的旋转角度。

在控制指令生成中,通常会采用PID控制器。

PID控制器根据目标姿态角和当前姿态角的误差,计算出相应的控制指令。

PID控制器包括三个参数:比例项、积分项和微分项。

比例项用于快速响应误差,积分项用于消除稳态误差,微分项用于抑制系统的振荡。

通过将三个方向的控制指令进行线性叠加,得到最终的转速指令。

转速指令将被发送到四个电机,控制它们的转速,从而实现飞行器的姿态调整。

值得注意的是,四轴飞行器还需要考虑到动力学和非线性因素。

动力学因素包括电机的动态响应和旋转惯量的影响,通常会使用动态模型进行补偿。

非线性因素包括旋翼的非线性动力学和空气动力学特性的影响,通常会采用非线性控制器进行补偿。

综上所述,四轴飞行器姿态控制算法主要包括传感器采集、姿态估计和控制指令生成等几个部分。

px4姿态解算 -回复

px4姿态解算 -回复

px4姿态解算-回复PX4姿态解算是无人机飞行控制的关键技术之一。

姿态解算是指将传感器数据转化为无人机的姿态信息,即飞行器在空间中的旋转角度,包括横滚、俯仰和偏航。

PX4姿态解算算法基于卡尔曼滤波(Kalman Filter)和四元数(Quaternion)方法,通过融合来自加速度计、陀螺仪和磁力计等传感器数据,精确地估计无人机的姿态。

以下将对PX4姿态解算进行详细介绍。

首先,我们需要了解PX4姿态解算的传感器数据来源。

在无人机中,常用的姿态解算传感器包括加速度计、陀螺仪和磁力计。

加速度计用于测量飞行器的线性加速度,陀螺仪用于测量飞行器的角速度,而磁力计用于测量地球磁场的方向。

这些传感器都会产生噪声和误差,而PX4姿态解算的目标就是通过融合这些数据,使姿态估计更加精确稳定。

PX4姿态解算算法的核心是卡尔曼滤波。

卡尔曼滤波是一种融合多个传感器数据的优秀方法,它可以通过预测和更新两个步骤来估计系统的状态。

在PX4姿态解算中,卡尔曼滤波用于融合加速度计和陀螺仪的数据,以估计无人机的姿态。

具体来说,卡尔曼滤波包括两个关键步骤:预测和更新。

在预测步骤中,我们通过使用陀螺仪的数据来预测无人机的姿态,并计算预测误差协方差矩阵。

在更新步骤中,我们使用加速度计的数据来对预测值进行校正,并计算更新后的姿态估计和误差协方差矩阵。

另一个重要的部分是四元数。

四元数是一种用于表示旋转的数学工具,它可以方便地进行旋转计算。

PX4姿态解算使用四元数来表示无人机的姿态,通过数学运算可以将传感器数据转化为姿态信息。

在姿态解算过程中,四元数可以通过陀螺仪的角速度进行更新,然后校正使用加速度计的数据。

最终,根据校正后的四元数可以计算出无人机的姿态角。

需要注意的是,PX4姿态解算算法还会使用磁力计的数据。

磁力计可以用于估计无人机的偏航角,即无人机的头部朝向。

通过将磁力计的数据与加速度计和陀螺仪的数据进行融合,可以更准确地估计无人机的姿态角。

德国4轴分析之一姿态解算及融合原理

德国4轴分析之一姿态解算及融合原理

修正后陀螺积分角度与加表角度之差 2. 修正后陀螺积分角度与陀螺积分角度之差。下面以
滚动轴为例说明原理,俯仰类似。
dw = dw1 + dw2
Rw =
255 0
r
RF =
255 0
Fr
dr = Rw − RF /256
dw1
=
dr 256
/k/GyroAccTrim
dw2 = (ro − r)/256/k 程序中对dw1和dw2的反馈位置并不一样(BiasHiResGyroRoll、AttitudeCorrectionRoll), 这2个量均用于修正陀螺的输出值。 BiasHiResGyroRoll的作用比较靠前,并采用了积分性修
正方式,所以修正时比较慎重,做了很多判断。
6.写在后面的 6.1 需要精确的角度么?
程序中对角度的处理比较模糊(程序中使用的大量近似处理)。其实在飞行控制过程中 是否真的需要精确的角度呢?仔细想想,没有什么环节要求角度必须精确的,若原角度为 x, 不精确角度为 y,记 y=f(x),只要 f(x)单调,用 y 或 x 参与控制都行的。 6.2 对误差角度进行反馈时进行了大幅衰减并限幅?
cos r × sin p − sin r cos p × cos r p −r 1
−p r 1
以此为变换阵则有如下关系
1)陀螺敏感量关系
wx 1 0 −p r wy = 0 1 r p wz p −r 1 h
r
1 0 p wx
p = 0 1 −r wy
h −p r 1 wzFy = 0 1 r 0 Fz p −r 1 −G

accnick += ADC; // get nick acc voltage 2nd sample

飞行姿态解算

飞行姿态解算

飞行姿态解算(一)喻时耕宇· 4 个月前大约半年前研究的东西,贴出来给大家分享下,不知到有没有同样想搞四轴飞控的朋友,可能会感兴趣。

如果有业内算法工程师能一起讨论就更好拉。

最近又来研究研究有关飞行姿态解算的算法,看看当时没搞懂的四元数算法。

主要也是学了网上几位大神的资源,才能小有所得。

在这先附上参考一些大神心得的网址:https:///wiki/四元數四元数维基百科https:///wiki/向量向量维基百科【Unity技巧】四元数(Quaternion)和旋转四元数和旋转学习笔记—四元数与欧拉角之间的转换四元数和欧拉角之间的转换[小应用]GD32F103+MPU9150 四轴飞行器第一步:9DOF姿态融合-GigaDevice GD32 MCU论坛 9DOF 姿态融合(需要登录)还有一些没有记录。

忘记地址了。

很多解释上面帖子里都有了。

我想从另一个方向来写这篇文章。

先来说说我了解这个东西的经过吧。

说起对飞行姿态的解算,其实是相当复杂的一个过程,并不像我们一般认为的那么简单。

首先,一开始(包括我自己)一般可能有个误区:姿态不就一个倾角嘛(类比斜面)?所以感觉只需要求一个倾斜角而已,感觉挺简单的。

仔细一想,发现其实有姿态有2个角度,可以想象一个滑梯再像侧面翻滚一下,这样其实对于空间思维不太好的人已经有一点难度了。

然后发现还需要再加一个是描述物体本身自旋的姿态。

那么最后的结论为,姿态总共有3个轴。

那么以我本身的知识来说,如何能够检测出物体姿态的这3个变量呢?总共需要3个传感器。

第一步:+加速度传感器。

说起测量倾斜角,一般能看见的都使用水泡,铅垂线之类的东西。

有传感器使用经验的第一感觉就会觉得使用重力传感器就OK啦。

首先说说重力传感器的原理,这里说的重力传感器又叫加速度传感器。

加速度计和陀螺仪指南(很详细的介绍)了解了这个东西以后,那么问题来了,仅仅靠加速度计能否完成角度的测量?答案是在静态情况下可以,在动态情况下不可以。

飞行器姿态控制系统的原理与性能改进

飞行器姿态控制系统的原理与性能改进

飞行器姿态控制系统的原理与性能改进一、引言随着航空技术的不断发展,飞行器的姿态控制系统在现代航空领域中扮演着至关重要的角色。

本文旨在介绍飞行器姿态控制系统的原理,并探讨如何改进其性能,以提高飞行器的飞行稳定性和操控能力。

二、原理1. 姿态控制系统的概述飞行器姿态控制系统是通过控制飞行器的姿态角来实现飞行器的稳定飞行。

姿态角通常包括滚转角、俯仰角和偏航角。

姿态控制系统通过传感器获取飞行器的当前姿态,然后根据设定的目标姿态角进行控制指令的生成,最终通过执行机构实现姿态控制。

2. 原理分析飞行器姿态控制系统一般采用闭环控制的方式,即通过比较目标姿态角和当前姿态角的差异来生成控制指令。

常用的控制方法包括PID控制和模糊控制等。

PID控制通过比例、积分和微分三个环节来生成控制指令,模糊控制则是利用模糊逻辑进行控制决策。

此外,姿态控制系统还需要考虑到飞行器的动力学特性和传感器的噪声等因素。

三、性能改进1. 姿态控制算法的优化为了提高飞行器姿态控制系统的性能,可以通过优化控制算法来实现。

例如,采用自适应控制算法可以根据飞行器的动力学特性动态调整控制指令,从而提高系统的鲁棒性和适应性。

同时,结合神经网络等人工智能技术,可以进一步提高控制算法的精度和稳定性。

2. 传感器的改进姿态控制系统所依赖的传感器对于准确获取飞行器的姿态信息至关重要。

为了提高系统的性能,可以改进传感器的灵敏度和精度,减小传感器的噪声和漂移等问题。

此外,采用多传感器滤波和融合技术可以进一步提高姿态信息的可靠性和精确性。

3. 执行机构的优化姿态控制系统中的执行机构负责将控制指令转化为实际的动力输出,影响着飞行器的响应速度和稳定性。

为了改善系统的性能,可以通过优化执行机构的设计和控制策略来提高响应速度和精度。

同时,合理选择执行机构的材料和结构,以提高其可靠性和耐久性。

四、结论飞行器姿态控制系统在现代航空领域中具有重要的意义。

本文系统介绍了姿态控制系统的原理,并提出了改进性能的方法。

无人机飞控技术最详细解读

无人机飞控技术最详细解读

无人机飞控技术最详细解读以前,搞无人机的十个人有八个是航空、气动、机械出身,更多考虑的是如何让飞机稳定飞起来、飞得更快、飞得更高。

如今,随着芯片、人工智能、大数据技术的发展,无人机开始了智能化、终端化、集群化的趋势,大批自动化、机械电子、信息工程、微电子的专业人才投入到了无人机研发大潮中,几年的时间让无人机从远离人们视野的军事应用飞入了寻常百姓家、让门外汉可以短暂的学习也能稳定可靠的飞行娱乐。

不可否认,飞控技术的发展是这十年无人机变化的最大推手。

无人机飞控是什么?飞行控制系统(Flight control system)简称飞控,可以看作飞行器的大脑。

多轴飞行器的飞行、悬停,姿态变化等等都是由多种传感器将飞行器本身的姿态数据传回飞控,再由飞控通过运算和判断下达指令,由执行机构完成动作和飞行姿态调整。

控可以理解成无人机的CPU系统,是无人机的核心部件,其功能主要是发送各种指令,并且处理各部件传回的数据。

类似于人体的大脑,对身体各个部位发送指令,并且接收各部件传回的信息,运算后发出新的指令。

例如,大脑指挥手去拿一杯水,手触碰到杯壁后,因为水太烫而缩回,并且将此信息传回给大脑,大脑会根据实际情况重新发送新的指令。

无人机的飞行原理及控制方法(以四旋翼无人机为例)四旋翼无人机一般是由检测模块,控制模块,执行模块以及供电模块组成。

检测模块实现对当前姿态进行量测;执行模块则是对当前姿态进行解算,优化控制,并对执行模块产生相对应的控制量;供电模块对整个系统进行供电。

悟四旋翼无人机机身是由对称的十字形刚体结构构成,材料多采用质量轻、强度高的碳素纤维;在十字形结构的四个端点分别安装一个由两片桨叶组成的旋翼为飞行器提供飞行动力,每个旋翼均安装在一个电机转子上,通过控制电机的转动状态控制每个旋翼的转速,来提供不同的升力以实现各种姿态;每个电机均又与电机驱动部件、中央控制单元相连接,通过中央控制单元提供的控制信号来调节转速大小;IMU惯性测量单元为中央控制单元提供姿态解算的数据,机身上的检测模块为无人机提供了解自身位姿情况最直接的数据,为四旋翼无人机最终实现复杂环境下的自主飞行提供了保障。

飞行器控制中的制导和姿态控制技术

飞行器控制中的制导和姿态控制技术

飞行器控制中的制导和姿态控制技术飞行器作为现代航空运输工具的重要组成部分,其安全性和性能指标的提高,关系到人类文明进步、国家安全以及人民幸福的重大问题。

而制导与姿态控制技术则是飞行器控制系统的两个核心技术,其是否合理、高效、可靠,直接关系到飞行的安全、舒适性、运输效率和经济效益。

一、制导技术制导是指飞行过程中,通过指挥飞行器在所期望的轨道上自动或半自动飞行的一种技术。

制导系统的任务是自动或半自动地进行导航、规划、跟踪飞行轨迹,以及在允许范围内对轨迹误差进行补偿和校正。

常见的制导技术有惯性制导、GPS制导、光电制导及组合制导等。

其中惯性导航是最为常见的一种,其系统通过测量飞行载体加速度与角速度,以及改变速度和方向的环境载荷,计算出自身的飞行状态,进而实现导航与姿态控制。

而GPS制导、光电制导等技术则通过卫星信号和目标识别等手段,对飞行状态进行测量和矫正。

二、姿态控制技术姿态控制技术是指在飞行过程中,保持飞行器的稳定状态和期望的位置、方向和速度等参数,防止受到外界扰动而出现姿态失控、飞行不稳定等情况。

姿态控制系统对飞行器的姿态控制进行监视,并对不稳定的姿态状态进行补偿或控制,以实现飞行器的平稳、稳定地运行。

常见的姿态控制技术有PID反馈控制法、模型预测控制法、自适应控制法等。

PID控制法是一种传统的控制技术,通过对姿态转角误差、偏差和积分项等要素进行测算和控制,从而实现对飞行器姿态的控制。

模型预测控制法则是一种基于预测模型的控制技术,通过对飞行器状态和扰动进行预测,并对姿态进行补偿和控制,逐渐实现从预测精度转向实际精度的实时控制。

自适应控制法则通过对飞行器的复杂、不确定的动态特性进行建模和控制,实现了对飞行器姿态控制的更加高效和准确。

三、制导和姿态控制的结合制导与姿态控制两个技术的结合,协同作战,对飞行器的控制系统进行完美的设计和优化,不但可提高飞行器的性能和安全性,还能更好地适应不同的任务需求和环境变化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姿态解算理解1、姿态的描述方法前几天在论坛里偶尔看到一个帖子,帖子的内容是问的为什么不用倾斜角表示姿态,我认为他说的倾斜角是指的斜面与斜面的夹角,或者说是物体与垂线的夹角吧,这种想法可能来源于我们日常生活的思维。

图1立方体比如有一个立方体,我们放在水平面上的时候它的底面是和水平面平行的,但是当我们把立方体的一个脚垫起一个角度时,这样一来,立方体的一条棱与水平面的垂线就有了一定的夹角了。

我们所说倾斜了多少多少度就是指的这个夹角,这是我们直观的反应。

我认为这样直观的反应甚至比欧拉角还要来的直观,因为欧拉角是基于旋转的,肯定不会说这个立方体X、Y轴各旋转了多少度(假设Z旋转无效),我们可能也没那个概念,我们直观的反应就是它倾斜了一定度数。

但是我们在姿态解算的时候为啥不用的这种描述方法呢,个人认为是虽然方便我们直观的表达但不适合数学上的计算,还有就是我们仅仅知道这个倾斜角我们怎么施加控制量呢?高中物理学习物体运动的时候我们知道,物体的运动是合运动,我们可以把它的运动矢量正交分解为几个运动的合成(不正交也是可以的,但那不是在自找麻烦吗),同样道理,我们可以把刚体的旋转分解为三个轴上的旋转,这个旋转的角度就是欧拉角,如图2。

图2zxz序规欧拉角欧拉角欧拉角的定义不仅仅和旋转角度有关系,还和旋转轴的旋转顺序有关系,任何一种旋转顺序都是合法的。

根据定义,欧拉角有12种旋转顺序(维基),一个物体通过任意一个旋转顺序都可以达到同样的姿态,在各个学科里所以为了统一,航空航天领域规定XYZ为欧拉角的旋转顺序。

上面已经说了欧拉角的定义。

欧拉角的定义也是很直观而且容易理解的,也利于我们的计算,因为我们用的惯性器件也是按照单个轴向运动来测量的。

定义上的欧拉角还和我们所说的Yaw、Pitch、Roll不是一回事。

因为定义上的欧拉角就是刚体绕三个轴的旋转角度,欧拉旋转和外界的东西(参考系)是没有关系的。

Yaw、Pitch、Roll就是载体对于参考系来说的了,这意味着第一次的旋转不会影响第二、三次的转轴,因为选的参考系都是地球了(这也是产生Gimbal Lock的原因,下面会讲到)。

我们现在说的飞机都是在近地表附近飞行,所以我们习惯是拿地球作为参考系,我们的飞机总是在一点起飞在另一点降落。

所以我们规定地理方位东、北、天为参考初始点,也就是说,我们的飞机头朝北水平放置时载体坐标系和参考坐标系是重合的,那么接下来我们绕飞机的Z轴旋转30°,这个旋转的欧拉角就是我们所说的Yaw,同样,绕飞机的X轴旋转30°,我们得到Pitch,绕飞机Y轴旋转得到Roll,如图3。

图3这和规定欧拉角的旋转顺序是一样的,所以说是和欧拉角是一一对应的,要注意欧拉角是基于飞机本身轴旋转得到的,但是得到的姿态却是对于参考坐标系而说的,要不然对我们来说也没有实际的意义,来个更直观的:欧拉角是有很多优点的。

但是也有致命的缺点,那就是Gimbal Lock(万向节死锁),要理解Gimbal Lock所说的情况,这可能有点不好理解,让我们看个现实中的场景。

假如我们有一个望远镜和一个用来放望远镜的三脚架,(我们将)三脚架放在地面上,使支撑望远镜的三脚架的顶部是平行于地平面(参考平面)的,以便使得竖向的旋转轴(记为x轴)是完全地垂直于地平面的。

现在,我们就可以将望远镜饶x轴旋转360度,从而观察(以望远镜为中心的)水平包围圈的所有方向。

通常将正北朝向方位角度记为0度方位角。

第二个坐标轴,即平行于地平面的横向的坐标轴(记为y轴)使得望远镜可以饶着它上下旋转,通常将地平面朝向的仰角记为0度,这样,望远镜可以向上仰+90度指向天顶,或者向下-90度指向脚底。

好了,万事俱备。

现在,天空中(包括地面上)的每个点只需要唯一的一对x和y度数就可以确定。

比如x=90度,y=45度指向的点是位于正东方向的半天空上。

现在,看看万向节死锁是怎么发生的。

一次,我们探测到有一个飞行器贴地飞行,位于望远镜的正东方向(x=90度,y=10度),朝着我们直飞过来,我们跟踪它。

飞行器飞行方向是保持x轴角度90度不变,而y向的角度在慢慢增大。

随着飞行器的临近,y轴角增长的越来越快且当y向的角度达到90度时(即将超越),突然它急转弯朝南飞去。

这时,我们发现我们不能将望远镜朝向南方,因为此时y向已经是90度,造成我们失去跟踪目标。

这就是万向节死锁!为什么说不能将望远镜朝向南方呢,让我们看看坐标变化,从开始的(x=90度,y=10度)到(x=90度,y=90度),这个过程没有问题,望远镜慢慢转动跟踪飞行器。

当飞行器到达(x=90度,y=90度)后,坐标突然变成(x=180度,y=90度)(因为朝南),x由90突变成180度,所以望远镜需要饶垂直轴向x轴旋转180-90=90度以便追上飞行器,但此时,望远镜已经是平行于x轴,我们知道饶平行于自身的中轴线的的旋转改变不了朝向,就象拧螺丝一样,螺丝头的指向不变。

所以望远镜的指向还是天顶。

而后由于飞行器飞远,坐标变成(x=180度,y<90度)时,y向角减小,望远镜只能又转回到正东指向,望'器'兴叹。

这说明用x,y旋转角(又称欧拉角)来定向物体有时并不能按照你想像的那样工作,象上面的例子中从(x=90度,y=10度)到(x=90度,y=90度),按照欧拉角旋转确实可以正确地定向,但从(x=90度,y=90度)到(x=180度,y=90度),再到(x=180度,y<90度),按照欧拉角旋转后的定向并非正确。

我的理解是坐标值的变化和飞行器空间的位置变化一一对应,但是从(x=90度,y=90度)到(x=180度,y=90度),再到(x=180度,y<90度)这个变化,飞行器位置是连续的变化,但坐标值的变化却不是连续的(从90突变到180),其原因在于(x=90度,y=90度)和(x=180度,y=90度)甚至和(x=任意度,y=90度)这些不同的坐标值对应空间同一个位置,这种多个坐标值对应同一个位置的不一致性是造成死锁的根源。

上面是2维坐标系中的例子,同样,对于3维的也一样。

比如有一个平行于x轴的向量,我们先将它饶y旋转直到它平行于z轴,这时,我们会发现任何饶z的旋转都改变不了向量的方向,即万向节死锁,所以说传统的欧拉角是不能做到全姿态解析的。

(抄的)方向余弦一个向量在坐标系中的位置也可以用方向余弦表示,也就是这个向量分别到三个坐标轴的夹角余弦值,实际上就是这个向量到各个坐标轴的投影啦,角度范围是0~π(维基)。

所以推广到载体坐标系和参考坐标系当中,我们就有了载体坐标轴xyz分别与参考轴XYZ的方向余弦,这里就是所说的方向余弦矩阵了,它是由两组不同的标准正交基的基底向量之间的方向余弦所形成的3x3矩阵。

方向余弦矩阵可以用来表达一组标准正交基与另一组标准正交基之间的关系。

余弦矩阵的列表示载体坐标系中的单位矢量在参考坐标系中的投影。

分量形式如下:第i行、j列的元素表示参考坐标系i轴和载体坐标系j轴夹角的余弦。

其实方向余弦和欧拉角没有本质上的区别,因为这是用欧拉角表示的方向余弦。

一个坐标系到另一个坐标系的变换,在《捷联惯性导航技术》、和《惯性导航》中都是有介绍的,特别是《惯性导航》有推导的过程。

推广到三轴的单次旋转,我们用矩阵表示为:这里要说一下矩阵的含义,C21表示坐标系1到坐标系2的变换矩阵,那么,这是绕Z轴的基本旋转,我们可以看到X2、Y2投影为0,Z2投影为1,这是为什么呢?自己想想。

咱们看下面的单位1,这是什么?所以说这就是上面说的坐标系2到坐标系1轴的三个方向余弦!对吧。

这在大家熟知的imu.c里面就有直接的计算。

那么单独旋转各个轴,我们得到:实际上,两坐标系任何复杂的角位置关系都可以看做有限次基本旋转的组合,变换矩阵等于基本旋转确定的变换矩阵的连乘,要是不知道矩阵和矩阵乘法,那就看线性代数吧,连乘的基本顺序依据基本旋转的顺序向右排列。

之所以有顺序是因为矩阵有“左乘”和“右乘”之分。

那么我们得到:按上面推论,此矩阵的下面三个就是三轴对应的方向余弦,γ、θ、ψ就是欧拉角,现在明白了欧拉角和方向余弦矩阵的关系了吧。

四元数四元数要说的实在太多,因为它的优点很多,利用起来很方便,但是理解起来就有点蹩脚了。

我们百度四元数,一开始看到的就是四元数来历,还有就是四元数的基本计算。

对于来历,还是想说一下,四元数(Quaternions)是由威廉·卢云·哈密尔顿(William Rowan Hamilton,1805-1865)在1843年爱尔兰发现的数学概念(百度百科)。

将实数域扩充到复数域,并用复数来表示平面向量,用复数的加、乘运算表示平面向量的合成、伸缩和旋,这就是我们熟知的复数的二维空间含义,所以人们会继续猜想,利用三维复数不就可以表达三维空间的变换了吗,历史上有很多数学家试图寻找过三维的复数,但后来证明这样的三维复数是不存在的。

有关这个结论的证明,我没有查到更明确的版本,据《古今数学思想》中的一个理由,三维空间中的伸缩旋转变换需要四个变量来决定:两个变量决定轴的方向,一个变量决定旋转角度,一个变量决定伸缩比例。

这样,只有三个变量的三维复数无法满足这样的要求。

但是历史上得到的应该是比这个更强的结论,即使不考虑空间旋转,只从代数角度来说,三维的复数域作为普通复数域的扩张域是不存在的。

并且,据《古今数学思想》叙述,即使像哈密尔顿后来引入四元数那样,牺牲乘法交换律,这样的三维复数也得不到。

经过一些年的努力之后,Hamilton发现自己被迫应作两个让步,第一个是他的新数包含四个分量,而第二个是他必须牺牲乘法交换律。

(《古今数学思想》第三册177页)但是四元数用作旋转的作用明显,简化了运算,而且避免了Gimbal Lock,四元数是最简单的超复数,我们不能把四元数简单的理解为3D空间的矢量,它是4维空间中的的矢量,也是非常不容易想像的(抄的)。

1、四元数的表示方式:2、四元数的计算:关于四元数的基本运算,加减乘除,大家从别的地方看看吧,维基百科/wiki/%E5%9B%9B%E5%85%83%E6%95%B0要注意的是,四元数的元的平方定义为-1,这点等同于复数,四元数不同元相乘得到另外一个,这点有点像向量叉乘。

可见,四元数相乘不是虚数相乘也不是向量相乘,这一运算特点是由四元数的性质决定的。

四元数由一个实数和三个虚数构成,所以是一个四维空间的向量,但是它的三个虚数又有三维空间的性质,因此,三维空间中的一个矢量,可以看作一个实部为0的四元数,这个四元数是这个三维空间的一个矢量在四维空间里的“映像”,或者叫做这个矢量的“四元数映像”。

这样,我们就把三维空间和一个四维空间联系起来,用四维空间中四元数的性质和运算规律来研究三维空间中刚体定点转动的问题。

相关文档
最新文档