2013-09-19 3 views

ответ

0

Вы можете переописать один на основе акселерометров и гироскопов данных. Однако это непросто. Вы можете найти «фильтр ориентации калмана» и посмотреть, есть ли реализация для Android. Если вы найдете тот, который хорошо работает, сообщите нам об этом!

0

Там нет существующей платформы код, который вы могли бы легко портировать, как вычисление этих значений датчика делается на родном слое (here's Кодекса JNI и here's реализация Java для Sensor Manager, который получает обновления событий датчика от собственный код).

Таким образом, в зависимости от вашего случая использования, лучше всего может быть использовать TYPE_ROTATION_VECTOR датчик на Android 4.X, так как в соответствии с Android docs TYPE_GAME_ROTATION_VECTOR является:

константа, описывающая Некалиброванный вектор вращения тип датчика.

Идентичен для TYPE_ROTATION_VECTOR, за исключением того, что он не использует геомагнитное поле. Поэтому ось Y не указывает на север, а вместо этого на какую-то другую ссылку, эта ссылка позволяет дрейфовать тем же порядком величины, что и дрейф гироскопа вокруг оси Z.

В идеальном случае телефон, повернутый и возвращающийся в ту же реальную ориентацию, должен сообщать об одном и том же игровом векторе вращения (без использования геомагнитного поля Земли). Тем не менее, ориентация может со временем немного сойти.

Затем вы можете преобразовать ось Y вручную в соответствии с какой-либо другой ссылкой, которая будет работать до тех пор, пока не будет выполнен идеальный случай. Однако, если датчик начинает дрейфовать, тогда ваше преобразование начнет накапливать ошибки.

Смежные вопросы