STM32无人机-四轴四元数姿态解算与卡尔曼滤波

四轴四元数姿态解算

MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。

什么是四元数

这部分很难,新手知道四元数的功能是将 6 轴传感器数据转化为三轴姿态角度数据即可。

四元数解算程序店家已经封装成一个函数,输入 MPU6050 数值,解算周期 dt,输出三维姿态角信息。

事实上所谓 DMP 就是 MPU6050 内部的四元数解算,但是他们内部的解算精度低没有自己 做四元数解算精度高。

四元数具体的实现有下面几个步骤: 1)机体重力加速度计转换到地理坐标系后。 2)与四元数计算的地理重力加速度比较。 3)得到误差校正陀螺仪的输出。 4)然后用陀螺仪数据进行四元数更新。 5)再转换到欧拉角。

卡尔曼滤波

MPU6050的数据是有较大噪音的,若不进行滤波会对整个控制系统的精准确带来严重影响。MPU6050芯片内自带了一个数据处理子模块DMP,已经内置了滤波算法,在许多应用中使用DMP输出的数据已经能够很好的满足要求。关于如何获取DMP的输出数据,我将在以后的文章中介绍。

mpu6050 数据格式:我们感兴趣的数据位于0x3B到0x48这14个字节的寄存器中。这些数据会被动态更新,更新频率最高可达1000HZ。下面列出相关寄存器的地址,数据的名称。注意,每个数据都是2个字节。

0x3B,加速度计的X轴分量ACC_X
0x3D,加速度计的Y轴分量ACC_Y
0x3F,加速度计的Z轴分量ACC_Z
0x41,当前温度TEMP
0x43,绕X轴旋转的角速度GYR_X
0x45,绕Y轴旋转的角速度GYR_Y
0x47,绕Z轴旋转的角速度GYR_Z
————————————————
原文链接:https://blog.csdn.net/m0_71572576/article/details/125671907

将来参考:

四元数解算姿态角解析_四元数姿态解算_guanjianhe的博客-CSDN博客

MPU6050介绍及姿态解算_mpu6050姿态解算_哈巴奈拉的博客-CSDN博客 

基于一阶互补滤波的MPU6050姿态解算_白碳墨水的博客-CSDN博客 

基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)_stm32无人机_混分巨兽龙某某的博客-CSDN博客 

你可能感兴趣的:(STM32-无人机,stm32,无人机,嵌入式硬件)