当前位置:   article > 正文

如何处理电子陀螺仪MPU6050的零点漂移问题_mpu6050零点漂移处理

mpu6050零点漂移处理

在前面的小车视频中,我利用MPU6050输出的偏航角yaw作为反馈数据,对小车进行pid控制.就是刚开始的时候传感器输出的角度还挺准的,用着用着传感器输出的角度就不准了.而且时间越长误差越大,令人头疼.今天我们就来尝试的解决这一数据漂移的问题.

解决问题的主要的思路是:首先采集一定数量的yaw数据,然后对数据图形化看看是否可以发现问题,最后再依靠数学算法去解决问题.

首先是数据采集,我让小车保持不动,也就是yaw一直为0的状态下,测试传感器实际输出的yaw的漂移情况.我利用串口对mpu6050的yaw角进行了采集.100ms一次,采集了6000个数据样本,耗时是10分钟.然后利用matlibplot对数据进行了图形化.图形的x轴就是时间T,y轴就是传感器输出的角度值direct,也就是航片角yaw.经过10分钟的运行,可以发现,我所使用的传感器的零漂其实是比较严重的.在温度稳定在30°C左右的条件下,零点漂移就已经达到2°左右.这是非常糟糕的.

但是好的方面是,传感器零漂的曲线基本是线性的,基本是满足y=kx+b这一线性方程的规律的.于是我考虑如果计算出数学模型中的斜率k和偏置b,然后预测出不同运行时间下.零点漂移的值,yaw_zero_predict.然后用传感器的测量值yaw减掉预测值yaw_zero_predict也就能得到比较准确的实际值yaw1.

最后我们来解决问题.我使用这6000个数据,使用sklearn的线性回归算法,回归出mpu6050零点漂移的线性模型.y=kx+b.最终得到k=0.00040329,b=-48903838.

也就是mpu传感器零漂的规律大约是y=0.0004x-0.49. 接着在单片机程序里对mpu6050的航偏角测量值yaw进行插补修正得到实际值yaw1.也就是yaw1=yaw-0.0004T+0.49.T为mpu6050的运行的时间.经过补偿后的yaw的实际输出值,如下图所示.在开机之后的10分钟时间内,yaw基本保持在0线附近,误差在1°以内.应该能满足初涉小车控制的兄弟们的使用需求了.

下期视频我将对mpu6050的温度漂移的问题进行测试和分析.关注我,我们一起探索更多关于小车控制技术.

下期视频我将对mpu6050的温度漂移的问题进行测试和分析.关注我,我们一起探索更多关于小车控制技术.

如何处理电子陀螺仪MPU6050的零点漂移问题 - 知乎 (zhihu.com)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/824752
推荐阅读
相关标签
  

闽ICP备14008679号