本帖最后由 cacar 于 2015-6-6 22:21 编辑
不知道如下理解的对不对,请大家指教!
对原始数据而言,三轴加速度和角速度16位表示(0~65535),如果MPU6050给的是补码,那得到的a_z应该是16384附近(z轴向上静置,加速度量程设置为±2g,16384约对应1g),a_x和a_y应该在0附近(或接近65535)。——是这样么?
如果是这样,类似的,陀螺仪的三轴数据在静止状态下应该接近0或65535(三轴近似无角速度)。
但是实际读到的数据确是这种样子(上面的图分别是ax-蓝,ay-红,az-绿,下面的图分别是gx,gy,gz,颜色同前):
可以看到az在50000左右跳动,怎么也算不到1g加速度啊?而且ax,ay也并没有接近0或65535,而是ax≈30000,a_y≈45000。a_x和a_y的加速度值不应该接近0么?
此外,看了下输出的陀螺仪原始数据,g_x大概在55000左右,g_y≈1400,g_z≈3000。我设置的陀螺仪量程为±2000°,则对应16LSB/(°/s),这样转换过以后三个轴都有不小的角速度,为什么会这样呢?传说中的零漂这么大正常么?
最后一个问题:稍微一碰传感器,数据跳变非常剧烈,算正常么?是否加上Kalman滤波就可以解决问题了呢?
附上我的初始化和数据读取:
|