Comment fonctionne l'étalonnage de la boussole?


8

Je me demande comment fonctionne l'étalonnage de la boussole / pourquoi, par exemple, dessiner un 8 ou faire tourner le téléphone sur les 3 axes fonctionne (ou au moins fonctionnera) - Je veux dire que je comprendrais le processus d'étalonnage, si une application me disait: pointez vers le nord, puis appuyez sur ce bouton là-bas, mais vous pouvez commencer avec une connaissance pratiquement nulle pour l'application, simplement en tournant votre téléphone! Comment cela se fait-il? De plus, dois-je entrer dans un mode d'étalonnage spécial ou puis-je dessiner ces chiffres (comme le 8) directement dans Google Maps? Comment Google Maps sait-il que je ne bouge pas seulement le téléphone, mais que je souhaite calibrer la boussole? Merci pour tout indice!


Marqué comme dupe, veuillez ne pas poster deux questions distinctes pour le même problème. Modifiez votre question existante avec de nouvelles informations; android.stackexchange.com/questions/30328/…
pzkpfw

1
Déplacer un objet à travers un champ magnétique peut induire un courant électrique, qui, je suppose, est mesuré dans ce cas. La figure 8 garantit que le téléphone se déplace le long de tous les vecteurs possibles dans un plan 2D, ce qui devrait lui permettre de distinguer le nord du sud. Je pense. En ce qui concerne la détection de Maps, celle-ci est facile - à quelle autre heure faites-vous un mouvement aussi absurde avec votre téléphone? C'est assez différent des mouvements normaux et devrait être simple à détecter.
Matthieu lu

@ bigbadonk420 Ce n'est pas un doublon, c'est une question complètement différente.
Matthew Read

Réponses:


3

L'étalonnage de la boussole fonctionne en détectant l'intensité du champ magnétique de la terre. Mais parfois, en raison de fortes interférences provenant d'autres appareils électroniques tels que les transformateurs, le capteur de la boussole peut avoir une mauvaise idée des pôles magnétiques de la terre et peut pointer dans la mauvaise direction.

Pour cela, il demande aux utilisateurs de recalibrer la boussole en tournant dans le sens de la figure 8 afin de pouvoir juger de l'intensité magnétique dans toutes les directions. De ces données, il déduit les pôles réels de la terre.


1
C'est en fait une mauvaise réponse. L'étalonnage ne peut annuler que les distorsions provenant des objets fixés à l'appareil (tournant ainsi avec l'appareil pendant l'étalonnage). Si les objets sont dans l'environnement, le téléphone observera un champ magnétique fixe et il n'aura aucune idée de la distance à laquelle il est dirigé vers le nord vrai.
Marko Topolnik

5

Le but de l'étalonnage est de comprendre comment compenser la façon dont les composants de votre téléphone (vis, aimants de haut-parleur, etc.) interfèrent avec le champ magnétique mesuré.

Le processus d'étalonnage est basé sur le fait que vous pouvez séparer les contributions internes et externes au champ magnétique en regardant comment le champ change lorsque le téléphone tourne. Par exemple, dans une orientation, le champ magnétique de l'aimant dans le haut-parleur s'ajoutera au champ terrestre; mais lorsque le téléphone est orienté dans la direction opposée, les deux champs s'annulent partiellement.

Lorsque vous agitez le téléphone, le magnétomètre enregistre comment l'amplitude du champ mesuré change et l'utilise pour étalonner les capteurs de champ magnétique x, y et z. Voir la réponse de geometrikal à une question similaire pour plus de détails sur ce processus. Notez que ce calibrage ne vous permet pas de compenser l'influence d'autres objets externes (par exemple, votre réfrigérateur) sur le champ magnétique.

En ce qui concerne la mise en œuvre dans Google Maps: je crois que Google Maps n'a aucun contrôle sur l'étalonnage de la boussole car il n'y a pas une telle fonctionnalité dans l'API Android. Le magnétomètre se calibre probablement en continu, et Google Maps vous demande simplement de faire pivoter votre téléphone afin que le magnétomètre puisse collecter les données dont il a besoin pour obtenir un étalonnage précis.

En d'autres termes, vous pouvez étalonner votre boussole à tout moment lorsque le capteur de champ magnétique est utilisé simplement en agitant votre téléphone - il n'y a pas de "mode d'étalonnage".


Mais comment le système d'exploitation Android décide-t-il quand changer ses valeurs d'étalonnage, ma réponse au mouvement ou à intervalles réguliers ou les deux?
Hamish_Fernsby

Android doit simplement conserver un historique des lectures et continuer d'appliquer la correction de fer dur sur eux. Ceci est même spécifié dans la documentation .
Marko Topolnik

3

En tout point de l'espace, l'intensité et la direction du champ magnétique sont l'effet net de toutes les sources de champ magnétique affectant ce point. Le champ magnétique terrestre en fait partie. Des tournevis magnétiques, des voitures, des aimants de réfrigérateur, etc. produisent tous des champs. Les champs sont également produits par le courant traversant les fils. C'est comme verser de l'eau dans un verre à partir de plusieurs sources. Une fois qu'il est dans le verre, vous ne pouvez pas dire d'où il vient.

Aucun instrument ne peut déterminer les «pôles réels» de la terre en mesurant le champ magnétique en un point. Cependant, ce que le téléphone peut faire, c'est détecter le point où l'axe du téléphone est parallèle à la ligne de force magnétique N / S et déterminer quelle extrémité du téléphone pointe vers le nord. Si vous faites votre danse loin des objets qui pourraient être magnétisés, comme les voitures et les clôtures en acier, le champ que le téléphone mesure peut être principalement le champ terrestre et donc la boussole du téléphone sera correctement calibrée. Cependant, si vous placez le téléphone dans une voiture aimantée, il indiquera la mauvaise direction pour le nord. L'acier de chaque voiture est magnétisé à un degré ou à un autre.

De tels compas de haute précision sont utilisés sur les avions et les navires maritimes sérieux ont en fait de minuscules aimants de correction qui sont réglables avec des vis pour les erreurs N / S et E / W. Ils sont calibrés après l'installation en tournant le véhicule sur des caps connus (une rose des vents peinte par un géomètre sur une voie de circulation loin des bâtiments métalliques, par exemple) et en s'affairant avec les aimants jusqu'à ce que l'erreur de la boussole soit minimisée. Ensuite, les erreurs résiduelles sont enregistrées sur une "carte de correction de la boussole" pour une utilisation dans la correction des lectures indiquées. Recherchez "carte de correction de la boussole" pour voir les images.

En théorie, le GPS pourrait être utilisé pour calibrer la boussole lorsque vous marchez ou conduisez, car la trace GPS instantanée est précise. Je n'ai pas entendu parler de cela, bien que cela soit peut-être courant. Cela fonctionnerait même dans une voiture aimantée. Cependant, dans un avion ou un navire, cela ne fonctionnerait pas parce que le cap du véhicule est à un degré ou à un autre généralement légèrement accroché au vent et le GPS n'a aucune connaissance de cela.


Cela ne semble pas dire comment et pourquoi la procédure d'étalonnage courante dans Android fonctionne.
Ruslan

1

J'ai testé les mesures des champs de la boussole fournies par le téléphone Android et j'ai découvert que si je fais pivoter le téléphone de 180 degrés, le champ ne change pas exactement à l'opposé, ce qui doit être le cas si les capteurs sont corrects. Cela peut être dû au magnétisme interne des détails du téléphone ou à l'imprécision de la lecture du capteur.

Si vous ne compensez pas cela et utilisez simplement la lecture telle quelle et essayez de calculer la direction du Nord, vous découvrirez qu'elles sont incorrectes: la rotation du téléphone de 90 degrés autour de l'axe vertical n'entraîne pas la rotation du champ magnétique mesuré par le même angle (c'est vrai pour n'importe quel angle, il est juste plus facile de le vérifier à 90 degrés).

Le but de l'étalonnage est donc de développer une formule de compensation qui transformera les lectures erronées du capteur magnétique en valeurs plus réalistes, à partir desquelles nous pouvons calculer le bon roulement. Je suppose qu'il recherche un décalage optimal de zéro pour chaque axe, ce qui donnera le résultat du vecteur magnétique indépendant de l'orientation du téléphone (cela doit être le cas dans la situation idéale, mais ce n'est pas le cas lorsque le zéro est décalé sur n'importe quel axe). ).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.