1 votos

Detectar perturbaciones de la brújula

Estoy buscando una manera de determinar si la brújula de un teléfono está mostrando rumbo norte inexacto mirando los valores del magnetómetro.

En este momento he estado mirando la intensidad total del campo magnético: Math.sqrt((x * x) + (y * y) + (z * z)); . Al perturbar la brújula del teléfono con metal - y al ver que la aguja de la brújula apunta en sentido contrario - miro el teslametro y se desvía +- 8T o más.

¿Es correcto suponer que puedo detectar un rumbo de brújula defectuoso comparando la fuerza magnética total? ¿Y sería mejor mirar los vectores independientemente y compararlos en su lugar? Si es así, ¿cómo?


Cabe señalar que estoy utilizando campo magnético calibrado que se supone que da lecturas sin sesgo dispositivo mencionado aquí . Y que he comprobado datos brutos del magnetómetro del dispositivo de la que no era recomendable y difícil de entender.


Actualización: Estos respuestas stack overflow y este El algoritmo AHRS sugiere que es posible.

1voto

Eric Puntos 126

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:

  1. calibración incorrecta o anticuada
  2. 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).
  3. 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?

enter image description here

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:

random Arduino illustration from ancient history

random Arduino illustration from ancient history

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X