飞行姿态解算笔记(一)

本文转自我qq空间。。 
大学毕业设计搞得四轴。
说来太惭愧,现在看来当时太菜了。。

最近又来研究研究有关飞行姿态解算的算法,看看当时没搞懂的四元数算法。
主要也是学了网上几位大神的资源,才能小有所得。在这先附上参考一些大神心得的网址:
https://zh.wikipedia.org/wiki/四元數    四元数维基百科
http://www.cppblog.com/heath/archive/2009/12/13/103127.html  四元数和欧拉角之间的转换
http://bbs.21ic.com/icview-605405-1-1.html    9DOF 姿态融合 (需要登录)
还有一些没有记录。。忘记地址了。。

很多解释上面帖子里都有了。我想从另一个方向来写这篇笔记,以防以后自己忘记以及大家参考。

心路历程。
说起对飞行姿态的解算,其实是相当复杂的一个过程。
但是一开始(包括我)一般可能有个误区:
      姿态不就一个倾角嘛(类比斜面)
      其实有姿态有2个。。 可以想象一个滑梯再像侧面翻滚一下。。 另外再加一个是描述自旋 也就是正向的。结论为, 合在一起是3个轴

第一步:+加速度传感器。
说起测量倾斜角,一般能看见的都使用水泡,铅垂线之类的东西。有传感器使用经验的第一感觉就会觉得使用重力传感器就OK啦。
首先说说重力传感器的原理,这里说的重力传感器又叫加速度传感器。
http://blog.csdn.net/lovewubo/article/details/9084291  加速度传感器与陀螺仪的介绍
了解了这个东西以后,就说说单靠这个东西的问题。
加速度传感器,从这个名字(以及上面的原理)也可以看出,他测不是重力,而是重力引起的类似加速度带来的效应。所以对于其他的加速度他也会有读数(运动状态),特别在震动的时候(震动状态),该传感器会有非常大的数据变化,此时的数据难以反应重力的实际值,所以结论是 单靠加速度传感器无法完成姿态解算

第二步:+陀螺仪
既然单靠加速度传感器无法完成姿态解算,那还需要添加哪些传感器?通过上面资料 我们可以找到至少还需要的一个传感器,陀螺仪。
陀螺仪的原理上面也有介绍,我就不多说了。总之,陀螺仪测量出的数据为绕各个轴的旋转角速度。通过高等数学的知识可以得出,对角速度进行积分,可以得到旋转角度。把旋转角度加到之前测出的姿态上,会得到一个新的姿态,设为姿态A,通过加速度传感器可以算出来一个姿态B,这样将这两个姿态一定算法 的融合,就可以得到一个比较准确的姿态,这也就是之后我了解到的可以进行姿态融合的基础。

MPU6050是一种6轴运动处理组件,它整合了3轴陀螺仪和3轴加速度计,并且还包含了数字运动处理器(DMP)硬件加速引擎。通过使用MPU6050的DMP功能,可以进行姿态解算,得到四元数,并通过转换得到欧拉,如俯仰、横滚和航向。\[2\] 在使用MPU6050进行姿态解算时,需要创建MPU6050对象,并设置相应的地址和I2C通信对象。可以使用MPU6050_Base构造函数来创建对象,并传入地址和I2C通信对象的指针。\[1\] MPU6050的速度感测范围可以设置为±250、±500、±1000或±2000°/sec,而加速度感测范围可以设置为±2g、±4g、±8g或±16g。此外,MPU6050可以通过I2C或SPI进行数据传输,最高传输速率分别为400kHz和20MHz。\[3\] 因此,通过使用MPU6050的DMP功能,结合相应的设置和参数,可以实现姿态解算。 #### 引用[.reference_title] - *1* [ESP32上手笔记 | 05 - 获取MPU6050数据进行姿态解算和展示(I2Cdev+MPU6050+Processing)](https://blog.csdn.net/Mculover666/article/details/123541279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [mpu6050+dmp姿态解算](https://blog.csdn.net/m0_58028719/article/details/125949274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32系列(HAL库)——F103C8T6通过MPU6050+DMP姿态解算读取度及温度](https://blog.csdn.net/lwb450921/article/details/123575209)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值