top of page

Estimación de la orientación usando Inertial and Sensor Fusion y un IMU MPU-6050

  • PI - RobotSubmarino
  • 22 jul 2020
  • 2 Min. de lectura

Actualizado: 27 jul 2020

Para implementar la estimación, se necesitó un Arduino UNO y un MPU-6050.

Con el fin de determinar la posición del punto donde el MPU está ubicado se utilizó la lectura de los sensores de aceleración y giroscopio, ya que específicamente el IMU 6050 no posee un magnetrón. Los datos de entrada ingresan en matrices para luego ser procesados y finalmente poder determinar su posición en formato de quaterniones [Yanrui10].

Como sabemos la lectura de los sensores siempre ingresan al sistema con ruido, el cual dificulta el trabajo de establecer la verdadera orientación del objeto. Por ende, antes de leer los sensores se tuvo que calibrar para que puedan minimizar el error de lectura y no magnificar el error al momento de integrar o hacer cualquier otra operación.

Calibrando los sensores


  • magnetrón


La estimación del error para el magnetrón es irrelevante para el IMU 6050, pero es fundamental su entendimiento para implementar una mejor estimación de posición y a su vez mencionarlo para un posible futuro uso [kaufman87].

1.1. Hardiron Iron (Objetos que generan su propio campo magnético)

La calibración del Hardiron Iron es necesario para el magnetrón, ya que este genera un offset y una variación de intensidad en sus ejes coordenados sobre la medición del magnetómetro.




1.2.Soft Iron (objetos magnéticos)


La calibración del Soft Iron es necesario para el magnetrón, ya que este genera una distorción en la medida del magnetómetro con respecto a sus ejes cordenados.



Entonces si podemos medir esta distorsión con anticipación, podremos calibrar el magnetrón encontrando una matriz de transformación corregida.

Xcorrected=[x . b] . A

Xcorrected es la matriz corregida de los valores iniciales del sensor, (x) es la matriz compuesta por la media aritmética de los valores del magnetrón tomados en cada instante de tiempo, (A) es la matriz de corrección del Soft iron, y (b) es el bias de corrección del Hard iron [Hajiyev16].

  • Acelerómetro y Giroscopio

Generalmente los errores provenientes de estos sensores se deben a que el sensor no está específicamente posicionado en el centroide del robot.


2.1. Las formas de corregirlo son:

2.1.1. Igualando el ruido de los sensores a los valores mostrados según su respectiva data sheet del sensor.

2.1.2. Estableciendo las primeras lecturas del sensor como valores de ruido para calibrar el sensor más adelante.

2.1.3. Arbitrariamente escogiendo valores para los ruidos, esto no se aconseja, ya que se corre el riesgo de caer en drift errors que magnificarían al momento de integrar o hacer cualquier otra operación.

Finalmente se utiliza una función en matlab para poder generar la orientación corregida con sus respectivos ruidos (variance) ya obtenidos anteriormente. Esta función entrega como salida la orientación en cuaterniones la cual puedes visualizar en tiempo real utilizando un viewer.



En la imagen se muestra el viewer de la orientación con un sentido de ejes NED (North-East-Down). Cuando el eje X del sensor está apuntando al norte, el eje Z del dispositivo está apuntando hacia abajo y el eje Y del mismo está apuntando al este.


Referencias:


Yanrui Geng, Ricardo Martins, and Joao Sousa. “Accuracy Analy-sis of DVL/IMU/Magnetometer Integrated Navigation System usingDifferent IMUs in AUV”. In: vol. 1. 2010, pp. 516–521.


S. M. Rossnagel and H. R. Kaufman. “Induced drift currents in cir-cular planar magnetrons”. In: vol. 1. 1987, pp. 88–91.


Chingiz Hajiyev. “In-orbit magnetometer bias and scale factor cali-bration”. In: vol. 104. 2016, pp. 1–7.



 
 
 

Comments


Publicar: Blog2_Post
  • GitHub-Mark
  • Negro del icono de YouTube

©2020 por Robot Sumbarino - PI3. Creada con Wix.com

bottom of page