jsfeng111 发表于 2012-7-16 10:13:28

【求教】MPU6050动态纠正零偏

用MPU6050做东西。初步学习了以后做了下静态下的零偏纠正。现在想求教一下怎么动态的纠正零偏。。就是MPU6050在移动的时候漂的很厉害啊。。有没有在移动的时候也能纠正零偏的办法?求教啊

Name_006 发表于 2012-7-16 20:37:20

加速度啊    跟陀螺数据融合                                                                     

werren 发表于 2012-7-20 14:08:20

Name_006 发表于 2012-7-16 20:37 static/image/common/back.gif
加速度啊    跟陀螺数据融合                                                                     ...

请教一下:gyro_xsensitivity,ysensitivity,zsensitivity这三个数的值是如何确定的呢。原文地址
http://www.botched.co.uk/pic-tutorials/mpu6050-setup-data-aquisition/

void Get_Gyro_Rates()
{
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_XOUT_H, &GYRO_XOUT_H, 1);
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_XOUT_L, &GYRO_XOUT_L, 1);
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_YOUT_H, &GYRO_YOUT_H, 1);
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_YOUT_L, &GYRO_YOUT_L, 1);
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_ZOUT_H, &GYRO_ZOUT_H, 1);
        LDByteReadI2C(MPU6050_ADDRESS, MPU6050_RA_GYRO_ZOUT_L, &GYRO_ZOUT_L, 1);

        GYRO_XOUT = ((int16)(GYRO_XOUT_H<<8)|GYRO_XOUT_L) - GYRO_XOUT_OFFSET;
        GYRO_YOUT = ((int16)(GYRO_YOUT_H<<8)|GYRO_YOUT_L) - GYRO_YOUT_OFFSET;
        GYRO_ZOUT = ((int16)(GYRO_ZOUT_H<<8)|GYRO_ZOUT_L) - GYRO_ZOUT_OFFSET;


        GYRO_XRATE = (float)GYRO_XOUT/gyro_xsensitivity;
        GYRO_YRATE = (float)GYRO_YOUT/gyro_ysensitivity;
        GYRO_ZRATE = (float)GYRO_ZOUT/gyro_zsensitivity;
}

Name_006 发表于 2012-7-20 19:38:25

gyro_xsensitivity,ysensitivity,zsensitivity这三个数据都是 选择相应量程的分辨率。。    GYRO_XRATE = (float)GYRO_XOUT/gyro_xsensitivity;GYRO_XRATE   得到的就是gyro测量得到的角速度

arda 发表于 2012-7-20 19:52:42

根据你设定的输出范围 查询手册 上面写了感度
页: [1]
查看完整版本: 【求教】MPU6050动态纠正零偏