四旋翼姿态解算之理论推导

今天转载一篇我们队长写的关于四旋翼的博客!

转载声明:转自http://www.cnblogs.com/xuhongbin/p/6538345.html

四旋翼姿态解算——基础理论及推导

对于每个像我一样入坑四轴飞行器不久的新手来说,最初接触也颇为头疼的东西之一就是四轴的姿态解算。由于涉及较多的数学知识,很多人也是觉得十分头疼。所以,我在这里分享一些我学习过程中的笔记和经验,以便大家学习。

两个坐标系: 首先,在一个姿态航向参考系统(简称AHRS)中,我们要定义两个坐标系:导航坐标系 n 和载体坐标系 b 。导航坐标系 n 指的是以地球为参考的坐标系,定义为东北天右手直角坐标系;载体坐标系 b 则是以四轴飞行器自身为参考的坐标系, 也定义为右手直角坐标系,取飞机向前的方向为 Y 轴正方向,取飞机向右的方向为X轴正方向,取飞机向上的方向为Z轴正方向。

四元数、欧拉角、方向余弦: 在百度百科中,欧拉角是这样被描述的:用来确定定点转动刚体位置的3个一组独立角参量,由章动角θ、旋进角(即进动角)ψ和自转角j组成,为欧拉首先提出而得名。简单点来说,就是:绕Z轴旋转为偏航角(YAW)ψ,绕Y轴旋转为横滚角(ROLL)θ,绕X轴旋转为俯仰角(PITCH)φ。

绕Z轴旋转ψ角(YAW):

定义导航坐标系 n 中某一点的坐标为(x,y,z),使用矩阵表示为:

。设该点在载体坐标系中坐标为(x’,y’,z’),使用矩阵表示为:

。对于该任意点,易得到两个坐标系下坐标之间的关系:

。 表示成矩阵的形式如下:

同理可得: 绕Y轴旋转θ角(ROLL):

两个坐标系下的转换关系:

绕X轴旋转φ角(PITCH):

两个坐标系下的转换关系:

由前面的结论可以得到进过三个欧拉角的旋转,得到导航坐标系下的向量

与旋转后的载体坐标系下的向量

之间的关系:

给出由

的坐标变换矩阵:

。 所以可以得到用欧拉角表示的坐标变换矩阵:

这样我们就得到了使用欧拉角表示的坐标变换矩阵,这个公式先放在这里,等会再用。

接下来我们来看看四元数: 先看看百度百科中对四元数概念的介绍:(四元数-百度百科 链接:http://baike.baidu.com/link?url=oQzRKzHEoKP6SgD9_qhBZKmsTU5NgSLqtxg4pXtw2hN0dXJQ9v9m11aNVW_M64b7vCeQ_9VNsKXQSnl2rR_FK0NVvGKcIF05d-N2_R9vQ0SLtrzKx9WQ19hHUvbYmd1z) 四元数是简单的超复数。 复数是由实数加上虚数单位 i 组成,其中i^2 = -1。 相似地,四元数都是由实数加上三个虚数单位 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 = -1, i^0 = j^0 = k^0 = 1 , 每个四元数都是 1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bk+ cj + di,其中a、b、c 、d是实数。 对于i、j、k本身的几何意义可以理解为一种旋转,其中i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转,j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转,k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。

这里已经讲得比较清楚了,我们可以把四元数看成一个常数加上一个三维矢量,即

四元数的乘法运算: 对于任意一个四元数

来说,q0、q1、q2、q3都是实数,i、j、k为互相正交的单位向量,也是虚单位

。 满足乘法关系如下:

举例: 假设有两个四元数,

。 则这两个四元数相乘结果为:

将上面的运算表示成矩阵形式: 设两个四元数Q和P的乘积为四元数

。 则有:

或者

从M(Q)中,第一列为四元数Q本身,第一行为四元数Q的共轭的转置,不管第一行和第一列,我们可以提取出一个3*3的矩阵VQ,称其为M(Q)的核。

同理可得,M(P)的核VP:

四元数的相关知识的准备差不多完成了,下面开始推导四元数的公式: 我们定义一个四元数

,用来表示从导航坐标系n和载体坐标系b之间的旋转变换:

代入求得:

可以得到旋转矩阵

的数学关系:

到这里我们就推出了使用四元数表示的旋转矩阵

前面使用欧拉角也导出了一个旋转矩阵

联立两者对应项相等,求解方程组即可。解方程的步骤就省略了,直接写出结果。 令

推出结果:

前面我们用欧拉角推导出来的旋转矩阵

也可以叫做方向余弦矩阵(DCM),使用的是Z-Y-X顺规,不做赘述,有兴趣可以再去查找相关资料。 这里我们代入方向余弦矩阵对应项的值求出欧拉角与四元数的关系,并做一些三角函数的变换整理得到下面的形式:

上式是欧拉角用表示四元数的公式。 还是由方向余弦矩阵(DCM)可以得到:

这四个公式的意义是,给出了四元数与欧拉角之间的关系,我们可以很方便地使用这几个公式将欧拉角与四元数相互转换。还需要注意一点,因为方向余弦矩阵的定义不同,对应的欧拉角旋转方式不同,公式也会不同。

到此结束。 这些是我前段时间的学习笔记,最近才开始整理。希望能对更多人的学习提供帮助。欢迎大家互相交流指正。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

keras学习笔记-黑白照片自动着色的神经网络-Alpha版

如今,上色都是人手工用Photoshop做的,一张图片要花好几个月才能完成,需要进行大量调查研究,光是其中的一张脸就需要多达20层图层。但是,基于深度神经网络的...

5555
来自专栏null的专栏

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)

引言 LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯...

43110
来自专栏AI科技评论

大会 | CVPR 18录用论文:利用量化提升医疗影像分割的准确度

AI 科技评论按:本文作者为圣母大学(University of Notre Dame)博士后徐小维,他为 AI 科技评论撰写了基于 CVPR 录用论文《Qua...

3805
来自专栏算法channel

数据降维处理:PCA之特征值分解法例子解析

请点击上面公众号,免费订阅。 《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,...

3397
来自专栏卢欣的专栏

Randomized SVD 算法介绍与实现

文本介绍一种Randomized SVD算法,相比于SVD,它更能适应大型矩阵分解的要求,且速度更快。

1.7K1
来自专栏机器学习算法原理与实践

文本主题模型之LDA(一) LDA基础

    在前面我们讲到了基于矩阵分解的LSI和NMF主题模型,这里我们开始讨论被广泛使用的主题模型:隐含狄利克雷分布(Latent Dirichlet Allo...

1802
来自专栏LhWorld哥陪你聊算法

【机器学习】--LDA初始和应用

LDA是一种 非监督机器学习 技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(b...

1263
来自专栏深度学习思考者

Vehicle Logo Recognition System Based on Convolutional Neural Networks With a Pretraining Strategy

论文笔记Ⅰ 基于卷积神经网络的车辆标记识别系统 考虑文章中一些语法以及用词还挺好,先记录一下,留下来以后可能用到自己的paper中。 Abstract 由...

2608
来自专栏Echo is learning

machine learning 之 Recommender Systems

1201
来自专栏ATYUN订阅号

深度学习要点:可视化卷积神经网络

AiTechYun 编辑:yuxiangyu 深度学习中最深入讨论的话题之一是如何解释和理解一个训练完成的模型,尤其是在医疗保健等高风险行业的背景下。“黑盒”这...

1.3K10

扫码关注云+社区

领取腾讯云代金券