Ориентация устройства iOS/Android (высота, рыскание, рулон). Лучше ли с акселерометром или гироскопом?

StackOverflow https://stackoverflow.com/questions/9304160

Вопрос

Я немного исследуюсь, и теперь я должен решить, какой путь пойти.

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

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

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

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

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

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

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

  3. Умно ли комбинировать как акселерометр, так и гироскоп с истинным головом?

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

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

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

Это было полезно?

Решение

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

То, что вы ищете, называется Sensor Fusion. Следовательно, требует такой тяжелой математики, как фильтры Калмана и т. Д. Хорошая новость заключается в том, что она существует на iPhone (Основное движение) и Afaik также на Андриоде (звучит так, как будто это в Sensor Fusion реализовано на Android?).

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top