MPU3050+加速度计数据处理

MPU3050数据:三个方向角速度

确定精度:

(17条消息) 陀螺仪和加速度计MPU6050的单位换算方法_lgcjlu的博客-CSDN博客_mpu6050加速度

参数确定:

AccX,Accy,AccZ:加速度计三个方向加速度

GyroX,GyroY,GyroZ:陀螺仪三个方向角速度

accAngleX,accAngleY :由加速度计解算的角度值

gyroAngleX,gyroAngleY:由陀螺仪解算的角度值

roll,pitch,yaw:滚转,俯仰,偏航角

elapsedTime:时间差(大小由循环程序的频率决定)

主要公式:

accAngleX = (atan(AccY / sqrt(pow(AccX, 2) + pow(AccZ, 2))) * 180 / PI) - 0.58;

accAngleY = (atan(-1 * AccX / sqrt(pow(AccY, 2) + pow(AccZ, 2))) * 180 / PI) + 1.58;

gyroAngleX = gyroAngleX + GyroX * elapsedTime;

gyroAngleY = gyroAngleY + GyroY * elapsedTime;(对角速度积分,注意初值的设置和单位问题)

roll = GYRO_WEIGHT * gyroAngleX + ACC_WEIGHT * accAngleX;

pitch = GYRO_WEIGHT * gyroAngleY + GYRO_WEIGHT * accAngleY;

此处的权重可适当调整,实现互补滤波的作用,消除陀螺仪的漂移。网上给出的是0.96、0.04

yaw =  yaw + GyroZ * elapsedTime;

注意:由于无法从加速度计计算偏航角,所以yaw直接由陀螺仪得出(本次实验中也不会用到偏航角)

主要思路:

1. 求取初始纠错值

获得初始时刻的误差:保持在一个平坦静止的初始位置,计算一定数量的初始值(示例中为200次),求平均值即为误差(理论上应该是0)

2. 读取数据

每一次读取数据(角速度或加速度)后都要先进行一次纠错

3. 按照公式计算出当前的位姿

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值