如何校准Android Accelerometer&减少噪音,消除重力
所以,我一直在努力解决这个问题,并且没有任何运气来利用互联网的智慧和相关的SO帖子。
我正在编写一个使用无处不在的加速度计的Android应用程序,但即使在休息时我似乎也得到了令人难以置信的“噪音”,似乎无法弄清楚如何处理它,因为我的读数需要相对较高准确。我想也许我的手机(HTC Incredible)功能失调,但传感器似乎与我玩过的其他游戏和应用程序配合得很好。
我试图使用各种“过滤器”,但我似乎无法围绕它们。我知道引力必须以某种方式处理,也许这就是我出错的地方。目前我已经尝试了这个,改编自SO答案,它引用了iPhone SDK的一个例子:
accel[0] = event.values[0] * kFilteringFactor + accel[0] * (1.0f - kFilteringFactor);
accel[1] = event.values[1] * kFilteringFactor + accel[1] * (1.0f - kFilteringFactor);
double x = event.values[0] - accel[0];
double y = event.values[1] - accel[1];
海报上写着“玩”kFilteringFactor值(示例中为kFilteringFactor = 0.1f),直到满意为止。不幸的是,我似乎仍然得到很多噪音,所有这一切似乎都是让读数以微小的小数形式出现,这对我没有多大帮助,而且它似乎只是让传感器不那么敏感。我的大脑的数学中心也因多年的疏忽而萎缩,所以我不完全理解这个过滤器是如何工作的。
有人可以详细解释如何从加速度计中获取有用的读数吗?一个简洁的教程将是一个令人难以置信的帮助,因为我没有找到一个非常好的教程(至少针对我的知识水平)。我感到沮丧,因为我觉得所有这一切对我来说都应该更加明显。任何帮助或方向将不胜感激,当然,如果需要,我可以从我的代码中提供更多样本。
我希望我不是要求过多地用勺子喂食;我不会问,除非我一直想把它弄清楚。看起来其他SO成员也有一些兴趣。
没有找到相关结果
已邀请:
3 个回复
拈吉勉犬姆
锯康
文档中有一些讨论关于将加速度计所说的重力分解出来的问题。你会注意到它与你发布的代码有很多相似之处,除了它更清楚它正在做什么。 :-) HTH。
粱委教