android – 带振动的加速度计数据不好

我正在做一个自行车电脑应用程序.我希望用加速度计计算斜坡的倾斜度,但事情并不顺利.

我已经输入了测试代码来获取传感器数据,我只是在UI速率下,并保持移动平均值超过128个样本值,大约6秒.有了手机,数据很好,我可以计算出与校准平面矢量相比较好的角度.

手机安装在自行车上的东西一点也不好.我希望得到一些噪音,但我希望在大时间窗口上的大量样品可以消除振动效应和一般的自行车运动.不幸的是,这只是不起作用,加速度矢量的幅度并没有真正保持在9.8左右,但正在下降,这表明某些事情在某个地方是不对的.

这是测试骑行的一部分数据图.

正如你可以看到在开始时静止时,幅度是可以的但是一旦我开始它就会下降.我很确定这个问题与振动有关,我最初下降,然后振动很大,然后振动,振动较小,震级回到9.8然后我在一条糟糕的道路上迅速下降,震级最终小于3 .

这是使用SonyErricson Xperia Active,它使用BMA250 sensor数据传感器看起来像传感器应该有能力.我对问题原因的唯一理论是,范围设置为2g范围,并且振动导致数据超出范围,这导致我的问题.

有没有人见过这样的东西?
有没有人对问题的原因有任何想法?
有没有办法改变我没有找到的灵敏度?

附加信息.

好的,我在过滤之前记录了原始传感器数据.这里介绍的很小一部分

主轴是绿色和平面,我相信这应该是没有振动应该是大约8.5.对数据没有明显的限制,但是我得到的值低于8.5值而不是8.5以上.即使传感器设置为最敏感的2g范围,看起来振动也可以正常我这里的最大值只有15以上且最小值为-10 ib a – 20 ragnge只是没有正确对准8.5它应该是.

我会挖出我的另一部手机,看起来有一个稍微不同的传感器BMA150并尝试使用它,但除非它是完美的,我想我将不得不放弃这个想法.

最佳答案 我怀疑加速度计在如此大的G范围内不是线性的.如果是这样,如果有任何不对称,它会做你所看到的.

解决方案是将加速度计安装座稍微垫一下,泡沫橡胶,笨重的绳索,无论如何,可能将其安装在较重的平台上以更多地过滤振动.

或者(不是一个好的解决方案)尝试对错误进行建模并对其进行补偿.

点赞