Данные акселерометра и гирометра - PullRequest
0 голосов
/ 06 сентября 2010

Я использую Android SDK (2.2) с дроидом, и у меня есть доступ к 3-осевому акселерометру и гирометру.

Заранее прошу прощения, если это покажет мое незнание физики.Прошло некоторое время.

Чего я не понимаю, так это почему акселерометр выдает разные значения x, y, z, когда я наклоняю телефон.Он стоит на месте, по крайней мере, с незначительным ускорением и даже в основном с постоянной скоростью, он просто наклонен.Я думал, что это работа гирометра?

Я не хочу гравитации в уравнении ... Я просто хочу, чтобы другие силы влияли на телефон.Все должно быть лучше 0,0,0, если я не двигаюсь быстрее.Я хочу знать, как сильно я ударю телефон по столу, а также направление и величину сил x, y, z, когда я это делаю.До сих пор я не могу понять, как получить доступ к данным с помощью данных акселерометра и гирометра.Я пытаюсь принять гирометр за направление, а акселерометр за величину.К сожалению, данные для них на самом деле не синхронизированы (мне нужно настроить два события, чтобы получить каждую пару данных, и они могут приходить в разное время), но это может быть достаточно, чтобы просто буферизовать их и предположить, что-то вродесинхронизация.

Отчаянный, Андрей

1 Ответ

0 голосов
/ 07 сентября 2010

Боюсь, именно так работают акселерометры, здесь на земле всегда будет 9,8 Гс, указывающих на землю.

Если вы можете предположить, что у вас есть рабочий компас, просто возьмите вектор длины STANDARD_GRAVITY , поверните с текущей ориентацией, взятой из магнитометра, и вычтите ее из вектора вашего акселерометра.

Имейте в виду, что вы также должны ослабить значения, которые вы получаете от акселерометра, используйте скользящее среднее из последних нескольких значений.

...