Je veux construire quelque chose de similaire à la boussole d'Euler et j'ai besoin d'un peu de guidance. En utilisant l'accéléromètre et les capteurs magnétiques, j'ai réussi à calculer les angles de lacet, de tangage et de roulis (radians). Maintenant, quelle devrait être la prochaine étape? J'ai cherché sur Internet pendant plusieurs heures et je ne trouve rien de pertinent. Dois-je composer les angles en fonction de l'axe de référence?Comment construire une boussole Euler?
Répondre
Je suppose que vous faites référence à Euler Compass sur Android Play Store?
Les lectures de l'accéléromètre et de la boussole magnétique sont très bruyantes. Vous obtiendrez de meilleurs résultats si vous prenez également en compte le Gyroscope, peut-être avec un filtre de Kalman, ou quelque chose de similaire. Sur les tablettes Windows, la plupart des calculs complexes sont déjà faits pour vous, mais sur Android et iPhone, vous devez le faire vous-même:
Je vous suggère de commencer par une matrice de transformation pour représenter l'orientation de l'appareil. Si vous êtes seulement intéressé par l'orientation, une matrice 3x3 fera, comme ceci:
1 0 0 (La première rangée est un vecteur pointant le long de l'axe X)
0 1 0 (La deuxième rangée est un vecteur pointant le long l'axe Y)
0 0 1 (La troisième ligne est un vecteur pointant le long de l'axe Z)
Appliquez d'abord les rotations du gyroscope à votre matrice.
Le Gyroscope vous donne une accélération autour de chaque axe.
Multipliez par le temps pour obtenir une vitesse angulaire. (vitesse)
Multiplier par le temps à nouveau, pour obtenir la distance angulaire. (degrés)
À court terme, le Gyroscope est très précis et stable, comparé aux deux autres capteurs, mais il n'a pas de point de référence fixe, comme les deux autres. c'est-à-dire qu'il ne vous donne que la distance angulaire que vous avez déplacée, depuis votre lecture précédente, donc au fil du temps, les erreurs d'arrondi l'amèneront lentement à dévier du cours. C'est là que les deux autres capteurs entrent ... (Utilisez-les pour contrer la dérive du gyroscope.)
L'accéléromètre et le magnétomètre sont très bruyants dans le terme de tri, mais vous pouvez obtenir un résultat plus précis en prenant la moyenne de plusieurs lectures consécutives. (filtre passe-bas) Cela les rend lents, mais plus précis à long terme ... la faiblesse opposée du Gyroscope. L'astuce consiste donc à les combiner pour tirer le meilleur parti des deux. ;)
L'accéléromètre représente un vecteur descendant et le magnétomètre représente un vecteur nord. Alors, regardez quelle est la différence entre votre matrice descendante et celle de l'accéléromètre, puis faites tourner votre matrice vers celle de l'accéléromètre. Pas tout le chemin ... juste de petites étapes, pour éviter d'introduire le bruit, mais juste assez pour contrer la dérive du gyroscope. (Ré-étalonnage continu.) Faites ensuite la même chose avec la boussole magnétique.
Maintenant, vous devriez avoir une matrice de rotation qui représente assez fidèlement l'orientation de votre appareil. Ensuite, il suffit d'ajouter une ligne et une colonne vides à la matrice, et de la passer à OpenGL, afin que vous puissiez afficher vos graphiques.
J'espère que cela aide.
Rene
Une très bonne et élaborée réponse. Je vous remercie! :) –
- 1. comment construire une boussole sass avec une haute efficacité
- 2. Comment écrire une fonction Euler dans Mathematica?
- 3. Essayer de construire une boussole qui pointe vers une ville en utilisant Swift 3
- 4. Comment installer une boussole dans mac?
- 5. Comment faire une boussole précise sur Android
- 6. Comment créer une boussole personnalisée dans Android?
- 7. comment ajouter une boussole à mapview
- 8. comment faire une boussole avec CoreLocation
- 9. Haskell, comprendre une solution pour euler # 3
- 10. Comment convertir euler xyz en euler zxy en utilisant javascript
- 11. Installer SASS et une boussole
- 12. Boussole avec une flèche WPF
- 13. comment utiliser boussole twitter bootstrap comme plan de boussole
- 14. Faire une boussole iPhone 3GS
- 15. Project Euler # 2 Ruby
- 16. Comment combiner la boussole avec blesser?
- 17. Comment mapper une collection de composants avec une boussole?
- 18. Comment faire pivoter une boussole une fois la dernière terminée?
- 19. comment arrêter boussole mon écrasera
- 20. (Project Euler) Somme Combinaisons
- 21. Euler en J
- 22. Ajouter une boussole au projet sass existant?
- 23. Projet Euler # 201
- 24. Django et une boussole avec plusieurs applications
- 25. projet Euler # 388
- 26. Généralisation Clojure Euler # 1
- 27. Projet Euler 8 Javascript
- 28. Boussole - Modification de la valeur par défaut de "boussole"
- 29. Numéro Euler avec filetage
- 30. Python Project Euler 3
Essayez de vérifier la physique de –