l'orientation de l'appareil iOS / Android (tangage, lacet, roulis). Est-il mieux avec accéléromètre ou gyroscope?

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

Question

J'ai fait des recherches pour un peu maintenant et maintenant je dois décider quelle route prendre.

exigences Mine: Nécessité de connaître l'orientation de l'appareil par rapport à la vraie tête (pôle nord géographique, pas pôle magnétique). Pour cela, je dois utiliser la boussole et maintenant je dois décider quelle autre chose, accéléromètre ou gyroscope.

Comme il est une chose nouvelle pour moi, je l'ai passé quelques dernières heures de lecture des piles et des articles de wikipedia et encore je suis confus.

Je cible les deux plates-formes (iOS et Android) et je les développe avec Appcelerator Titanium. Avec I titane peut facilement obtenir les valeurs de l'accéléromètre (x, y, z) et trueHeading.

Depuis l'iPhone 3GS n'a pas gyroscopique évidemment je ne peux pas l'utiliser sur cet appareil. Les nouveaux iPhones et les appareils Android ont.

Ainsi, les questions sont:

  1. Est XYZ et de suffisamment de données TrueHeading COMPAS de l'accéléromètre pour moi pour calculer pas de dispositif, roulis et lacet? Mais il doit être précis.

  2. est-il plus précis d'utiliser TrueHeading de COMPAS et les valeurs de l'utilisation gyroscopique au lieu de accéléromètre?

  3. Est-il intelligent de combiner les deux accéléromètre et gyroscope avec TrueHeading?

Si je prends la première route que je ne dois pas écrire le module titane pour aller chercher les données gyroscopiques car il ne me donne que des données accéléromètre et je peux l'utiliser sur iPhone 3GS aussi.

Si je prends la deuxième route que je dois écrire deux modules (iOS et Android) pour me chercher Gyroscope données et je perds le soutien 3GS.

Si je prends la troisième route que je dois à nouveau pour écrire des modules titane et je perds le soutien 3GS.

Était-ce utile?

La solution

Tout d'abord, si vous ne disposez pas d'une énorme base installée d'utilisateurs 3GS mais écrire une nouvelle application, ne se soucient pas du vieux matériel. L'OMI, il n'a pas de sens d'un point de vue économique mais réduire votre nombre d'alternatives dans l'architecture du système.

Ce que vous cherchez est appelé fusion du capteur. Faire cela nécessite par conséquent un peu de mathématiques de lourds comme filtres de Kalman, etc. Les bonnes nouvelles sont qu'il existe sur iPhone ( base de mouvement ) et sur Andriod AFAIK aussi bien (sons comme il est dans La fusion des capteurs mis en œuvre sur Android? ).

Je ne sais pas beaucoup sur Appcelerator côté du nom et ne peut donc rien dire sur un moyen facile de l'utiliser. Quoi qu'il en soit, sinon implemtented sur une couche abstraite, je suppose que Appcelerator vous offre la possibilité de faire des appels d'API natives. Ainsi, vous devriez être en mesure d'intégrer l'API native (après bidouiller un peu de temps ;-).

En général cela dépend de vos besoins. Plus vite vous devez avoir un résultat exact plus je vous recommande de réelle fusion de capteurs, y compris les 3 capteurs. Si vous êtes bien avec un temps de réponse plus lente, une combinaison de boussole et accéléromètre fera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top