Los magnetómetros de los teléfonos móviles funcionan como dispositivos ratiométricos; el teléfono móvil produce un rumbo y posiblemente una inclinación magnética aplicando trigonometría a las relaciones de las mediciones. Esto significa que no hay una gran demanda de precisión absoluta en la salida de los chips del magnetómetro. La calibración manual se utiliza para recalibrar tanto las ganancias relativas de cada uno de los tres magnetómetros 1D como sus desplazamientos.
¿Es correcto suponer que puedo detectar un rumbo de brújula defectuoso comparando la fuerza magnética total?
La respuesta corta es No, al menos no fácilmente.
Veamos qué puede causar un rumbo de brújula defectuoso:
- calibración incorrecta o anticuada
- Errores de "hierro blando" (se refiere a materiales ferromagnéticos cercanos que interactúan con el campo terrestre y producen una distorsión local que afecta a su brújula).
- errores de "hierro duro" (se refiere a las proximidades magnetizado materiales (u otras fuentes de campos magnéticos de corriente continua) que se suma al campo de la Tierra y afecta a su brújula)
Una calibración incorrecta o desfasada puede detectarse si se mide en muchas orientaciones (como se muestra a continuación) y se determina que $S$ no es constante. Pero una forma más fácil de detectarlo sería simplemente volver a hacer la calibración y ver si cambia el rumbo.
Los errores de "hierro blando" y "hierro duro" serían difíciles de detectar por la siguiente razón. La intensidad del campo geomagnético local no es muy predecible. El campo medio de la Tierra en tus coordenadas puede consultarse en alguna parte, pero los efectos geolócicos locales pueden perturbarlo sustancialmente. Véase ¿Existe algún "objeto sumergido" en Australia que provoque una desviación magnética de 20 grados?
Si lo piensas, si el campo local de la Tierra es 1.0 en el $x$ y tienes un campo perturbador en la dirección $y$ dirección, la suma del vector puede cambiar decenas de grados mientras que la magnitud sólo cambia un pequeño porcentaje.
Compare la magnitud $\sqrt{1 + a^2}$ con el ángulo $\arctan{a}$ :
a magnitude deviation (degs)
----- --------- ----------------
0 1.00 0.0
0.1 1.02 11.3
0.2 1.04 16.7
0.3 1.08 21.8
0.4 1.12 26.6
No veo ninguna forma de que puedas utilizar de forma fiable una fuerza magnética inferida a partir de datos calibrados de un magnetómetro de teléfono móvil para detectar de forma fiable rumbos de brújula defectuosos. Puede que funcione de vez en cuando, pero para la mayoría de las causas de lecturas poco fiables, no será muy útil.
Acerca de la calibración y verificación de los datos del magnetómetro del teléfono móvil
Si utiliza datos sin calibrar, deberá calibrarlos. Si utiliza cree que está utilizando datos calibrados puedes utilizar la siguiente ecuación para hacerte una idea de lo bien calibrado que está.
Tendrías que desmagnetizar y calibrar cuidadosamente el chip magnetómetro de tu móvil antes de empezar a creerte los valores de los datos en bruto.
El calibrado, automático o manual, supone como mínimo que cada uno de los tres canales tiene una ganancia y un offset que hay que manejar. El movimiento circular que hacemos con nuestros teléfonos para calibrar el magnetómetro igualará las tres ganancias, pero dejará sin calibrar la escala absoluta, ya que una brújula electrónica sólo utilizará las proporciones.
Si te fijas en los gráficos del final, puedes ver que sin calibración sumar las tres componentes en cuadratura mientras se hace una rotación 3D no produce una magnitud constante, de hecho está muy desviada. Después de una calibración, la magnitud es más constante, pero el valor absoluto no se puede calibrar de esta manera. Tendrías que encontrar un instrumento mejor para obtener la magnitud.
Para ello, puede minimizar $S$ la desviación de la amplitud con respecto a un valor constante:
$$S = \sum_{j=1}^n \left( \sqrt{ \left(a_x\left(ADC_{x,j}-b_x \right) \right)^2 + \left(a_y\left(ADC_{y,j}-b_y \right) \right)^2 + \left(a_z\left(ADC_{z,j}-b_z \right) \right)^2 } -B_0 \right)^2$$
Ni siquiera puedes buscar el campo geomagnético para calibrarlo porque los campos geomagnéticos locales pueden variar bastante dependiendo de lo que haya dentro de la Tierra localmente. Para más información, consulte todas las respuestas a ¿Hay algún "objeto sumergido" en Australia que provoque una desviación magnética de 20 grados?
Una calibración más avanzada podría suponer la no ortoginalidad entre los tres ejes, por lo que habría una mezcla de primer orden entre ellos, haciendo de la calibración una matriz aumentada 3x4 con una forma similar a la que describo en ¿Por qué se utiliza la notación (R|RT) para "aplicar primero la traslación y luego la rotación"? donde las 3x3 rotaciones aquí son ganancias, y las 3 traslaciones aquí son compensaciones.
Para el tipo de magnetómetros magnetorresistivos que se encuentran en los teléfonos móviles, véase:
En esta respuesta :
1. Degauss...
De Wikipedia Desmagnetización; Soportes magnéticos de almacenamiento de datos :
El borrado mediante desmagnetización puede realizarse de dos maneras: en el borrado con CA, el medio se desmagnetiza aplicando un campo alterno cuya amplitud se reduce con el tiempo a partir de un valor inicial elevado (es decir, alimentado con CA). En el borrado por CC, el medio se satura aplicando un campo unidireccional (es decir, alimentado por CC o empleando un imán permanente). Un desmagnetizador es un dispositivo que puede generar un campo magnético para desmagnetizar soportes de almacenamiento magnético.
2. Calibrar las magnetizaciones fijas...
Cuando uso la brújula de mi teléfono, me indica que primero la "calibre" haciendo un extraño patrón en forma de remolino. Internamente digitaliza continuamente los tres magnetómetros (y posiblemente los giroscopios de mi teléfono) durante el movimiento para encontrar el mejor ajuste a una rotación esférica de un vector constante. No sabe si el vector proviene únicamente del campo terrestre o tiene otras contribuciones externas (materiales magnetizados o ferromagnéticos cercanos), pero calibra cualquier magnetización fija que haya en mi teléfono, que gira junto con el magnetómetro y añade desplazamientos constantes.
Una ilustración aleatoria de Arduino de la historia antigua: