我是直接利用dmp库里的四元数的,公式是根据原子求解state->acc.z的来算的:
accel_z=2*(q1q3-q0q2)*accel[0]+2*(q0q1+q2q3)*accel[1]+(q0q0-q1q1-q2q2+q3q3)accel[2];
还未减去重力加速度,量程是8G,水平静止时用这个公式算出来的重力加速度和直接用dmp读取的Z轴重力加速度值accel[2]差不多如图,左边是accel_z,右边是accel[2]
然后将飞机倾斜至90度静止,dmp读取的Z轴重力加速度值accel[2]应为与重力加速度垂直所以应该是0了,accel_z是通过旋转矩阵得到的所以应该还是有重力加速度的值,但是结果却如图:
accel_z不但不是接近重力加速度,反而差不多是负的重力加速度值,请问这是为什么呢?