【MPU6050】姿态传感器 工作原理

前言

笔者最近学习了mpu6050姿态传感器,现做以总结
推荐资料:
B站 铁头山羊【mpu6050寄存器讲解 PAL库解算 一阶互补滤波】
CSDN 卡尔曼滤波原理【卡尔曼滤波算法思想 公式理解】
CSDN 卡尔曼滤波原理【我总结的,基于CSDN 卡尔曼滤波原理
DMP库移植【STM32 HAL库】
卡尔曼滤波解算【STM32 HAL库】
一阶互补滤波解算【STM32 HAL库】

前置知识

欧拉角

在这里插入图片描述

MPU6050简介

简介

MPU6050内部整合了三轴陀螺仪三轴加速度计DMP数字运动处理器(Digital Motion Processor)和温度传感器,此外还可以外接一个第三方的三轴磁力计。
在不外接磁力计的情况下,MPU6050可作为六轴姿态传感器(包含三轴陀螺仪和三轴加速度计);若外接三轴磁力计,则可作为九轴姿态传感器。

陀螺仪
测得三轴的角速度
通过对时间积分,得到yaw、roll、pitch
在这里插入图片描述

加速度计
测得三轴角加速度。(也即重力加速度g在X、Y、Z三轴上的分量)
通过反正切,计算加速度计测得的三轴角加速度,得到yaw、roll、pitch
在这里插入图片描述

优缺点比较

加速度传感器陀螺仪
测量结果3轴加速度3轴角速度
短期噪声严重不受震动影响
长期无漂移漂移严重

DMP
在这里插入图片描述
DMP(Digital Motion Processor)是 MPU6050 内置的一个数字运动处理器,用于自动处理传感器数据并融合加速度计和陀螺仪的数据,进行姿态解算,输出稳定的角度信息(如四元数)。他可以减轻主控制器的计算负担(类似DMA)。

框图

在这里插入图片描述

引脚说明

在这里插入图片描述
使用 I2C1 进行通信

引脚说明
VCC接 3.3V
GND接 GND
SCLI2C1 的时钟引脚
SDAI2C1 的数据引脚
XDA辅助 I2C 数据引脚(未使用,悬空)
XCL辅助 I2C 时钟引脚(未使用,悬空)
AD0地址选择引脚,接 GND。I2C 地址为 0x68,硬件地址为 0xD0
INT中断引脚(未使用,悬空)

寄存器概述

寄存器英文名中文名作用描述
WHO_AM_I_REG设备识别寄存器用于读取设备 ID,验证连接的设备是否为 MPU6050
PWR_MGMT_1_REG电源管理 1 寄存器配置电源模式、选择时钟源、复位设备以及唤醒模块
SMPLRT_DIV_REG采样率分频寄存器设置数据输出速率的分频系数,影响采样速率
ACCEL_CONFIG_REG加速度计配置寄存器设置加速度计的量程范围(例如 ±2g、±4g 等)
ACCEL_XOUT_H_REG加速度计 X 轴数据寄存器存储 X、Y、Z 轴加速度的原始数据
TEMP_OUT_H_REG温度传感器数据寄存器存储内部温度传感器的高字节数据
GYRO_CONFIG_REG陀螺仪配置寄存器设置陀螺仪的量程范围(例如 ±250°/s、±500°/s 等)
GYRO_XOUT_H_REG陀螺仪 X 轴数据寄存器读取 X、Y、Z 轴角速度的原始数据

MPU6050 数据处理和姿态解算 概述

常见有三种MPU6050的姿态解算方式:一阶互补滤波、卡尔曼滤波、DMP库四元数解算
一阶互补滤波
一种简单的数据融合方法,用于融合加速度计和陀螺仪的数据,既保留加速度计的长时间稳定性,又利用陀螺仪的短期精度。通过低通和高通滤波器实现数据的互补,是一种易实现的姿态解算算法。
卡尔曼滤波
一直较为复杂的递归滤波算法,常用于姿态解算。卡尔曼滤波能高效地融合加速度计和陀螺仪的数据,抑制噪声并减少漂移误差,提供更加精准的角度和姿态信息。
DMP 库四元数解算
DMP库可以自动融合传感器数据并直接输出四元数,用于姿态计算。它减轻了主控制器的计算压力,提供稳定的姿态解算结果,适用于实时性要求较高的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值