宁采儿 发表于 2013-11-10 23:04:15

匿名四轴里关于零偏数据的一点问题想请教一下

本帖最后由 宁采儿 于 2013-11-10 23:06 编辑

/**************************实现函数********************************************
//将iic读取到得数据分拆,放入相应寄存器
*******************************************************************************/
void MPU6050_Dataanl(void)
{
        MPU6050_ACC_LAST.X=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - ACC_OFFSET.X;
        MPU6050_ACC_LAST.Y=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - ACC_OFFSET.Y;
        MPU6050_ACC_LAST.Z=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - ACC_OFFSET.Z;
        //跳过温度ADC
        MPU6050_GYRO_LAST.X=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - GYRO_OFFSET.X;
        MPU6050_GYRO_LAST.Y=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - GYRO_OFFSET.Y;
        MPU6050_GYRO_LAST.Z=((((int16_t)mpu6050_buffer) << 8) | mpu6050_buffer) - GYRO_OFFSET.Z;
       
        if(!GYRO_OFFSET_OK)        //上位机发出矫正命令后才会运行一次的
        {
                static int32_t        tempgx=0,tempgy=0,tempgz=0;
                static uint8_t cnt_g=0;
                if(cnt_g==0)
                {
                        GYRO_OFFSET.X=0;
                        GYRO_OFFSET.Y=0;
                        GYRO_OFFSET.Z=0;
                        tempgx = 0;

                        tempgy = 0;
                        tempgz = 0;
                        cnt_g = 1;
                        return;
                }
                tempgx+= MPU6050_GYRO_LAST.X;
                tempgy+= MPU6050_GYRO_LAST.Y;
                tempgz+= MPU6050_GYRO_LAST.Z;
                if(cnt_g==200)
                {
                        GYRO_OFFSET.X=tempgx/cnt_g;
                        GYRO_OFFSET.Y=tempgy/cnt_g;
                        GYRO_OFFSET.Z=tempgz/cnt_g;
                        cnt_g = 0;
                        GYRO_OFFSET_OK = 1;
//                        EE_SAVE_GYRO_OFFSET();//保存数据
                        return;
                }
                cnt_g++;
        }


看到这里我就郁闷了,请问什么是零偏数据?为什么零偏数据是由读出的陀螺数据累加后取平均值得来的?还请大神指点一二。
还有一点:上位机里面有个数据校准,那么校准数据是怎么校准的

四轴飞行器 发表于 2013-11-10 23:05:51

呵呵你懂的

宁采儿 发表于 2013-11-10 23:07:41

四轴飞行器 发表于 2013-11-10 23:05 static/image/common/back.gif
呵呵你懂的

这么快就有人回复了,谢谢。不过我真不懂

qwe2231695 发表于 2013-11-10 23:46:56

{:lol:} 简单解答一下吧。陀螺仪,加速度计,根据安装偏差和温度等环境因素,静态输出不是0.这样直接用的话,算出来的数据就有问题。

所以要减去静止时的数度。静止时读回一些数据做平均,效果会更好。

宁采儿 发表于 2013-11-11 00:20:00

qwe2231695 发表于 2013-11-10 23:46 static/image/common/back.gif
简单解答一下吧。陀螺仪,加速度计,根据安装偏差和温度等环境因素,静态输出不是0.这样直接用的话 ...

意思明白些了,那校准是怎么回事啊,零偏数据指静止时陀螺仪读出的的数据么

宁采儿 发表于 2013-11-11 00:20:32

宁采儿 发表于 2013-11-11 00:20 static/image/common/back.gif
意思明白些了,那校准是怎么回事啊,零偏数据指静止时陀螺仪读出的的数据么 ...

灰常感谢
页: [1]
查看完整版本: 匿名四轴里关于零偏数据的一点问题想请教一下