文章目录
- 前言
- 一、零漂问题
- 二、上位机监控界面
- 总结
前言
https://blog.csdn.net/zhuzhuo1995928/article/details/155819218?sharetype=blogdetail&sharerId=155819218&sharerefer=PC&sharesource=zhuzhuo1995928&spm=1011.2480.3001.8118
在此前的文章中我们对项目进行了优化,但是发现MPU6050的姿态解算数据不是很理想,存在较大的偏航角零漂问题,本文针对此问题进行优化,并设计上位机界面进行姿态监控。
一、零漂问题
MPU6050的偏航角零漂是指传感器在静止状态下,航向角(yaw)输出值随时间持续偏离真实零值的现象。 这主要是由于陀螺仪的角速度零偏在积分过程中累积所致,环境温度变化、传感器噪声等因素也会加剧漂移。
零漂的主要原因包括:
- 陀螺仪积分误差:陀螺仪测量的角速度存在微小零偏,即使设备静止,积分后也会导致角度持续漂移。
- 温度影响:传感器内部元件对温度敏感,温度变化会改变零偏稳定性,例如在30°C环境下漂移可达2°。
- 缺乏绝对参考:MPU6050仅包含加速度计和陀螺仪(6轴),无磁力计提供绝对航向参考,导致航向角只能依赖陀螺仪积分,漂移不可避免。
之前iFlow使用的是互补滤波算法,实际应用下来偏航角还是有零漂,在不增加硬件磁力计的情况下查阅到了可以使用卡尔曼滤波对零漂进行优化。
在读取了项目之后直接在对话框中输入需求。
烧录后测试一下实际情况。
发现在静止条件下偏航角随着时间递增的程度降低了,但实际还是有偏移,只能说卡尔曼滤波的效果是不错的。
二、上位机监控界面
使用Arduino的串口监视器观察数据还是不太直观,所以可以直接让iFlow设计一个上位机图形化界面来观察数据的变化。
直接在对话框中输入需求“设计一个上位机界面读取欧拉角数据”
AI生成了一个HTML文件,打开文件,点击上面的串口连接后就可以实时看到姿态数据。
观察实时的角度数据发现在静止状态下偏航角的零漂问题已经解决,但是发现数据更新和实际状态有一定的延迟,后续将进行数据更新速度的优化。
进一步可以让上位机监控界面显示实时的三维姿态。
直接在对话框中输入需求“在上位机界面中显示3D姿态”
总结
本文对MPU6050的零漂问题进行了优化,生成了上位机图形化监控界面以直观的观察数据变化。