Ah ! Alors, mon raisonnement est bon, mais son principe est inexploitable ?! Dommage.
En effet, en pratique, c'est complètement inexploitable. En gros, si tu vas du pôle nord au pôle sud, ton champ magnétique "tourne" de 180° (relativement à la gravité), donc un demi périmètre de la terre (6371km*3.1415=20 000km= 2*10^7 m) correspond à une changement de 180°.
Donc un déplacement de 10m correspond à un peu moins de 10^-5 degrés. Il te faudrait donc un magnétomètre avec plus de 7 chiffres significatifs pour mesurer ce déplacement (je ne sais pas si ça existe, mais si oui tu peux probablement acheter une maison pour le prix du capteur). Et encore, les perturbations du champ magnétique sont plusieurs ordres de grandeur plus important : dans le meilleurs des cas (en excluant sous terre/sous l'eau/dans l'espace), tu aura au minimum les perturbations par les ondes radios et par les vents solaires. Dans la pratique, tu aura très souvent des perturbations encore bien pires : lignes électriques, tuyaux métalliques, béton armé ou tout autre masse ferreuse à proximité, ... Sans compter les moteurs de ton robot (aimants permanents et/ou électro-aimants). Bref, en robotique, en intérieur, tu peux déjà t'estimer heureux si tu parviens à rester dans les 10° d'erreur (selon le bâtiment, tu peux dépasser localement les 90° d'erreur). En extérieur, à la compagne, loin de tout bâtiment, tu arrivera peut-être à atteindre le degré (et encore, avec les moteurs, j'en doute).
A titre de comparaison, sur le "Disto-X2" (l'appareil de mesure utilisé pour faire la cartographie des grottes, soit un environnement quasi parfait), après une longue calibration (56 mesures, soit plus d'une demi-heure de calibration), on arrive à des précisions de l'ordre de 0.1-0.2° sur l'azimut. Mais pour atteindre cette précision, tout a été conçu spécialement pour réduite les perturbations : les vis sont des vis en laiton (les vis en acier perturbant le champ magnétique, car contenant du fer), la batterie Lipo est une batterie spéciale "amagnétique" (à ma connaissance, il existe un seul fabricant au monde en produisant) ou pour ceux qui décident de garder des piles, il y a une petite perte de précision et en plus il faut recalibrer à chaque changement de piles (et même juste si on a tourné la pile), ...
Donc globalement, le champ magnétique, en intérieur te donnera au mieux une vague orientation, au pire une valeur "aléatoire".
En extérieur, si ton robot lui-même ne le perturbe pas trop, tu peux obtenir une orientation à peu près correcte.
Si tu cherches quelque chose de vraiment précis, alors oublie le champ magnétique (en outdoor, tu peux utiliser des systèmes de GPS différentiel avec 2 GPS montés sur ton robot, ou dans le monde pro des gyro haut de gamme qui te permettent de connaitre précisément le nord à partir de la rotation terrestre). Ou alors, tu combine plusieurs capteurs : un système de localisation absolu (ex : GPS, carte+(lidar ou camera), ...) et un système de déplacement relatif précis sur le court terme (centrale inertielle, encodeurs, ...), et en combinant ton déplacement relatif et le changement de position absolue, tu en déduit ton orientation