2010-09-06 14 views
0

J'utilise le SDK Android (2.2) avec un Droid et j'ai accès à l'accéléromètre et au gyromètre à 3 axes. Je m'excuse d'avance si cela révèle mon ignorance de la physique. Cela fait longtemps. Ce que je ne comprends pas, c'est pourquoi l'accéléromètre donne différentes valeurs x, y, z lorsque j'incline le téléphone. Il reste immobile, au moins, avec une accélération négligeable et même une vélocité presque constante, il est juste incliné. Je pensais que c'était le travail du gyromètre? Je ne veux pas de gravité dans l'équation ... Je veux juste les autres forces qui affectent le téléphone. Tout vaut mieux être 0,0,0 sauf si je le déplace plus vite. Je veux savoir à quel point j'ai frappé le téléphone sur la table, et la direction et l'ampleur des forces x, y, z quand je le fais. Jusqu'à présent, je suis confus au-delà de la croyance sur la façon d'accéder à cela avec les données de l'accéléromètre et du gyromètre. J'essaie de prendre le gyromètre comme direction et l'accéléromètre comme grandeur. Malheureusement, les données pour ceux-ci ne sont pas vraiment synchronisées (je dois configurer deux événements pour obtenir chaque paire de données, et ils peuvent arriver à des moments différents), mais il pourrait être suffisant de les mettre en mémoire tampon et d'assumer une sorte de synchronisation.Données de l'accéléromètre et du gyromètre

Désespéré, Andrew

Répondre

0

Je crains que ce soit à quel point accéléromètres fonctionnent, sur la terre, il y aura toujours 9,8 Gs pointant vers le sol. Si vous pouvez supposer que vous avez une boussole de travail, prenez simplement un vecteur de longueur STANDARD_GRAVITY, tournez avec l'orientation actuelle prise du magnétomètre et soustrayez-le du vecteur de votre accéléromètre.

Gardez à l'esprit que vous devriez également amortir les valeurs que vous obtenez de l'accéléromètre, utilisez une moyenne courante des dernières valeurs.

+0

Merci. Oui, c'était ce que j'avais en tête. J'étais juste un peu incertain des maths et tout. Je posterai probablement un suivi quand j'ai le temps de le regarder. Fondamentalement, je ne savais pas comment soustraire les vecteurs. Comme, aurais-je juste soustraire un vecteur <0,0,-9.81>? Aucun droit? Parce que selon l'inclinaison, -9.81m/s^2 pourrait aussi être dans les répertoires x, y, z. Mais je ne sais pas comment configurer un vecteur pour cet azimut, tangage et roulis donnés. –

+0

Désolé, j'ai beaucoup modifié mon article ci-dessus. –