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

转载请注明出处:http://blog.csdn.net/hongbin_xuhttp://hongbin96.com/
文章链接:http://blog.csdn.net/hongbin_xu/article/details/55667899http://hongbin96.com/116

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

两个坐标系:
首先,在一个姿态航向参考系统(简称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的乘积为四元数公式15
则有:
这里写图片描述
或者这里写图片描述
从M(Q)中,第一列为四元数Q本身,第一行为四元数Q的共轭的转置,不管第一行和第一列,我们可以提取出一个3*3的矩阵VQ,称其为M(Q)的核。
这里写图片描述
同理可得,M(P)的核VP:
这里写图片描述

四元数的相关知识的准备差不多完成了,下面开始推导四元数的公式:
我们定义一个四元数这里写图片描述,用来表示从导航坐标系n和载体坐标系b之间的旋转变换:
这里写图片描述
这里写图片描述
代入求得:
这里写图片描述
可以得到旋转矩阵这里写图片描述的数学关系:
这里写图片描述

到这里我们就推出了使用四元数表示的旋转矩阵这里写图片描述
这里写图片描述
前面使用欧拉角也导出了一个旋转矩阵这里写图片描述
这里写图片描述
联立两者对应项相等,求解方程组即可。解方程的步骤就省略了,直接写出结果。
这里写图片描述
推出结果:这里写图片描述
前面我们用欧拉角推导出来的旋转矩阵这里写图片描述也可以叫做方向余弦矩阵(DCM),使用的是Z-Y-X顺规,不做赘述,有兴趣可以再去查找相关资料。
这里我们代入方向余弦矩阵对应项的值求出欧拉角与四元数的关系,并做一些三角函数的变换整理得到下面的形式:
这里写图片描述
上式是欧拉角用表示四元数的公式。
还是由方向余弦矩阵(DCM)可以得到:
这里写图片描述
这里写图片描述
这里写图片描述
这四个公式的意义是,给出了四元数与欧拉角之间的关系,我们可以很方便地使用这几个公式将欧拉角与四元数相互转换。还需要注意一点,因为方向余弦矩阵的定义不同,对应的欧拉角旋转方式不同,公式也会不同。

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

  • 46
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值