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

【MPU6050】姿态传感器 介绍

  • 前言
  • 前置知识
    • 欧拉角
  • MPU6050简介
    • 简介
    • 框图
  • 引脚说明
  • 寄存器概述
  • MPU6050 数据处理和姿态解算 概述

前言

笔者最近学习了mpu6050姿态传感器,现做以总结
推荐资料:
B站 铁头山羊【mpu6050寄存器讲解 PAL库解算 一阶互补滤波】
**** 卡尔曼滤波原理【卡尔曼滤波算法思想 公式理解】
**** 卡尔曼滤波原理【我总结的,基于**** 卡尔曼滤波原理
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
SCL I2C1 的时钟引脚
SDA I2C1 的数据引脚
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库可以自动融合传感器数据并直接输出四元数,用于姿态计算。它减轻了主控制器的计算压力,提供稳定的姿态解算结果,适用于实时性要求较高的应用。

上一篇:【MySQL必知会】事务


下一篇:java类的混搭,