感谢您的回答,根据链接解决了问题,因为之前mpu竖起来初始化总不过,所以将自检的时候校准去掉了,下面是我的代码,加上accel_sens=0就是以绝对平面为坐标系,去掉就是以当前的姿态为平面,可以实现我说的水平旋转问题,希望能对遇到同样问题的有帮助。
float sens;
unsigned short accel_sens;
mpu_get_gyro_sens(&sens);
gyro[0] = (long)(gyro[0] * sens);
gyro[1] = (long)(gyro[1] * sens);
gyro[2] = (long)(gyro[2] * sens);
dmp_set_gyro_bias(gyro);
mpu_get_accel_sens(&accel_sens);
accel_sens=0;//去掉校准
accel[0] *= accel_sens;
accel[1] *= accel_sens;
accel[2] *= accel_sens;
dmp_set_accel_bias(accel);
还想再深入了解下,用的dmp不知道内部实现方式,能否探讨下自己融合数据怎么解决这个问题呢?
感谢您的回答,根据链接解决了问题,因为之前mpu竖起来初始化总不过,所以将自检的时候校准去掉了,下面是我的代码,加上accel_sens=0就是以绝对平面为坐标系,去掉就是以当前的姿态为平面,可以实现我说的水平旋转问题,希望能对遇到同样问题的有帮助。
float sens;
unsigned short accel_sens;
mpu_get_gyro_sens(&sens);
gyro[0] = (long)(gyro[0] * sens);
gyro[1] = (long)(gyro[1] * sens);
gyro[2] = (long)(gyro[2] * sens);
dmp_set_gyro_bias(gyro);
mpu_get_accel_sens(&accel_sens);
accel_sens=0;//去掉校准
accel[0] *= accel_sens;
accel[1] *= accel_sens;
accel[2] *= accel_sens;
dmp_set_accel_bias(accel);
还想再深入了解下,用的dmp不知道内部实现方式,能否探讨下自己融合数据怎么解决这个问题呢?
举报