Итак, я некоторое время боролся с этой проблемой, и мне не удавалось использовать мудрость интернетов и связанные с ними сообщения SO по этому вопросу.
Я пишу приложение для Android, которое использует вездесущий акселерометр, но я, кажется, получаю невероятное количество "шума" даже в состоянии покоя и не могу понять, как справиться с этим, поскольку мне нужны мои показания быть относительно точной. Я подумал, что, может быть, мой телефон (HTC Incredible) был дисфункциональным, но датчик, похоже, хорошо работает с другими играми и приложениями, которые я играл.
Я пытался использовать различные "фильтры", но, похоже, я не могу обдумать их. Я понимаю, что гравитацию нужно решать в некотором роде, и, может быть, там, где я ошибаюсь. В настоящее время я пробовал это, адаптированный из SO answer, который относится к примеру из 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 есть некоторый интерес.