2010-03-30 6 views
3

Je voudrais savoir comment obtenir des angles de cap, de tangage et de roulis qui déterminent la position d'un dispositif androïde, si cela est possible. Ne tenez pas compte des détails dépendants du périphérique. Les références à la documentation utile sont également utiles. Merci!cap, roulis, tangage

Répondre

2

Je n'ai pas la solution exacte à portée de main, mais la solution full bore implique l'algorithme TRIAD pour combiner le vecteur du magnétomètre (boussole) et de l'accéléromètre. This article wikipedia va dans le détail. D'un point de vue conceptuel, la meilleure façon de penser au problème est que votre vecteur accéléromètre représente «bas» et qu'il définit le plan dans lequel pointe l'appareil. L'inclinaison de cet avion vous donnera le "roll" et le "pitch". Vous pouvez ensuite utiliser votre vecteur de magnétomètre pour déterminer où votre appareil pointe dans ce plan, ce qui vous donnera le «cap».

Une solution robuste peut être implémentée avec un ensemble décent de bibliothèques vectorielles et de matrices/quaternions, mais vous devriez être capable de pirater quelque chose avec des fonctions trigonométriques. J'espère qu'une autre affiche l'a déjà fait.

EDIT: Trouvé quelque chose dans le Android docs qui cherche à fournir ce que vous voulez. Vous devez obtenir un objet Sensor de TYPE_ORIENTATION à partir du SensorManager. Il peut fournir l'azimut, le roulis et le tangage. Je ne sais pas quels appareils fournissent cette fonctionnalité.

+0

Merci ... j'espère qu'ils fonctionneront pour moi, d'ailleurs que sont les fonctions trigonométriques? –

+0

Il veut dire utiliser la trigonométrie, comme le cosinus et le péché. –

+0

Si la solution éditée fonctionne, veuillez répondre à la question, merci. –

Questions connexes