iOS: могу ли я получить высоту / рыскание / крен из данных акселерометра? - PullRequest
6 голосов
/ 09 сентября 2011

Я хочу выяснить высоту, рыскание и крен на iPad 1. Так как устройство DeviceMotion отсутствует, могу ли я получить эти данные с акселерометра?Я предполагаю, что могу использовать вектор, который он возвращает, для сравнения с эталонным вектором, то есть гравитацией.

Определяет ли iOS, когда устройство неподвижно, и затем принимает это как вектор гравитации?Или я должен это сделать?Спасибо.

1 Ответ

5 голосов
/ 13 апреля 2012

Определенно возможно рассчитать Pitch and Roll по данным акселерометра, но Yaw требует больше информации (конечно, гироскоп, но, возможно, компас можно заставить работать).

Для примера посмотрите на Hungry Shark для iOS .Основываясь на том, как работает их пользовательский интерфейс калибровки наклона , я почти уверен, что они используют акселерометр вместо гироскопа.

Кроме того, вот некоторые формулы, которые я нашел в блоге сообщение от Taylor-Robotic a для вычисления шага и крена:

Теперь, когда у нас есть 3 выхода, выраженные в g, мы должны быть в состоянии вычислить высоту и крен.Для этого требуется еще два уравнения:

 pitch = atan (x / sqrt(y^2 + z^2))
 roll = atan (y / sqrt(x^2 + z^2))

Это произведет высоту и крен в радианах, чтобы преобразовать их в дружественные градусы, мы умножим на 180, а затем поделим на PI.

 pitch = (pitch * 180) / PI
 roll = (roll * 180) / PI

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

...