Ориентация устройства iOS / Android (тангаж, рыскание, крен).Это лучше с акселерометром или гироскопом? - PullRequest
0 голосов
/ 16 февраля 2012

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

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

Поскольку это для меня новость, последние несколько часов я читал стеки и статьи в Википедии, и все же я в замешательстве.

Я ориентируюсь на обе платформы (iOS и Android) и разрабатываю их с помощью Appcelerator Titanium. С помощью Titanium я легко могу получить значения акселерометра (x, y, z) и trueHeading.

Поскольку iPhone 3GS не имеет гироскопа, очевидно, я не могу использовать его на этом устройстве. У более новых iPhone и устройств Android есть это.

Итак, вопросы:

  1. Достаточно ли данных акселерометра XYZ и Compas TrueHeading для того, чтобы я мог рассчитать шаг, крен и рыскание устройства? Но это должно быть точно.

  2. Точнее ли использовать TrueHeading из компаса и использовать значения гироскопа вместо акселерометра?

  3. Разумно ли совмещать акселерометр и гироскоп с TrueHeading?

Если я выберу первый путь, мне не придется писать модуль Titanium для извлечения данных гироскопа, поскольку он дает мне только данные акселерометра, и я могу использовать его также на iPhone 3GS.

Если я выберу второй путь, мне придется написать два модуля (iOS и Android) для получения данных гироскопа, и я потеряю поддержку 3GS.

Если я выберу третий путь, мне снова придется писать модули Titanium, и я теряю поддержку 3GS.

1 Ответ

3 голосов
/ 16 февраля 2012

Прежде всего, если у вас нет огромной установленной базы пользователей 3GS, но вы пишете новое приложение, вам нет дела до старого оборудования. ИМО, это не имеет смысла с экономической точки зрения, но сократит количество альтернатив в архитектуре системы.

То, что вы ищете, называется сенсорным синтезом. Следовательно, для этого требуется некоторая сложная математика, такая как Kalman Filters и т. Д. Хорошая новость заключается в том, что она существует на iPhone ( Core Motion ) и AFAIK на Andriod (звучит так, как будто это Слияние сенсоров, реализованное на Android ).

Я не знаю много о appcelerator, кроме названия, и поэтому не могу ничего сказать о простом способе его использования. В любом случае, если он не реализован на абстрактном уровне, я предполагаю, что appcelerator предоставляет вам возможность делать нативные вызовы API. Таким образом, вы должны иметь возможность встраивать нативный API (после некоторого перебора ;-).

В общем, это зависит от ваших требований. Чем быстрее вам нужен точный результат, тем больше я бы порекомендовал реальное слияние датчиков, включая все 3 датчика. Если у вас все в порядке с более медленным временем отклика, подойдет комбинация компаса и акселерометра.

...