Evaluación de algoritmos de fusión de datos para estimación de la orientación de vehículos aéreos no tripulados

EVALUATION OF DATA FUSION ALGORITHMS FOR ATTITUDE ESTIMATION OF UNMANNED AERIAL VEHICLES

Cristóbal Chérig1*

[email protected]

Humberto Rodríguez2

[email protected]

1,2Laboratorio Especializado de Análisis, Diseño y Simulación
Facultad de Ingeniería Mecánica
Universidad Tecnológica de Panamá

Resumen– El objetivo de este trabajo es evaluar y comparar los tres algoritmos de procesamiento de datos más usados en sistemas de referencia de orientación y rumbo (AHRS, por sus siglas en inglés), para vehículos aéreos no tripulados (UAVs por sus siglas en inglés), los cuales implementan procesos de filtrado y de fusión de datos. Estos algoritmos son el Filtro de Kalman, el de Mahony y el de Madgwick. Comercialmente existen varios tipos de sensores IMU/Magnetómetros que proporcionan una muy buena retroalimentación de los estados de las aeronaves, sin embargo suelen ser muy costosos, por lo que en este trabajo nos concentraremos en aquellos que tienen un costo medio y una buena relación costo/desempeño a la hora de construir UAVS. Se desarrolló una metodología, mediante la cual se pudo comparar que algoritmo se adapta mejor a sistemas con diferentes características. Los resultados mostraron que el algoritmo que mejor funcionó es el filtro complementario de Robert Mahony debido a su mayor velocidad de convergencia. De los tres ángulos de rotación alrededor de los ejes principales xyz, en todas las estimaciones evaluadas, el ángulo alrededor de z(ψ) fue el que presentó la magnitud del error más grande, lo cual indica, que sigue existiendo cierta deficiencia en aquellas estimaciones que dependen del magnetómetro.

Palabras claves– AHRS , algoritmos de fusión de datos, algoritmo de Madgwick, algoritmo de Mahony, UAVs, Filtro de Kalman.

Abstract– The aim of this study was to evaluate and compare the three most commonly used data processing algorithms for Attitude and Heading Reference Systems (AHRS) for unmanned aerial vehicles (UAVs), which implement filtering processes and data fusion. These algorithms are the Kalman filter, Madgwick algorithm and Mahony algorithm. Commercially, there are several types of IMU / Magnetometer sensors, which provide a very good feedback of an aircraft states. However, they tend to be very expensive, so in this paper we focus on those who have a medium cost and a good cost / performance ratio for use with UAVs. A methodology was developed so we could compare what algorithm adapts better to systems with different characteristics. The results showed that the Mahony algorithm worked better due to its faster convergence. Of the three angles of rotation around the main axes xyz, the angle around z (ψ) showed the largest error, which indicates that there is still some deficiency from those estimates which depend on the magnetometer.

Keywords– AHRS , data fusion algorithms, Madgwick algorithm, Mahony algorithm, UAVs, Kalman filter.

1.Introducción

El principal objetivo de los algoritmos de fusión de datos es el de mejorar la calidad de la información de salida en procesos con múltiples sensores, conocidos como procesos sinérgicos. El utilizar más de un sensor no solo aumenta la cobertura espacial y temporal de las variables estudiadas en cuestión, sino que permite aumentar a su vez la supresión del ruido y la precisión del sistema de medición [1]. Hoy en día, uno de los principales instrumentos de vuelo en los vehículos aéreos no tripulados (UAVs, por sus siglas en inglés) es la unidad de medición inercial (IMU, por sus siglas en inglés), la cual al adicionársele un magnetómetro se le conoce también como “Sistema de medición de gravedad, velocidad angular y magnetismo” (MARG, por sus siglas en inglés). La información que proporcionan los sensores que componen la IMU/Magnetómetro nos da la posibilidad de obtener la orientación y rumbo de cualquier vehículo, pero estos sensores suelen ser muy susceptibles al ruido y a las perturbaciones. El objetivo de este trabajo es evaluar y comparar los algoritmos de tratamiento de información más usados, desarrollados para sistemas de referencia de orientación y rumbo (AHRS, por sus siglas en inglés), los cuales implementan procesos de filtrado y de fusión de datos.

Comercialmente existen varios tipos de sensores IMU/Magnetómetros que proporcionan una muy buena retroalimentación de los estados de las aeronaves [2], sin embargo suelen ser muy costosos, por lo que en este trabajo vamos a enfocarnos en aquellos que tienen un costo moderado y una buena relación costo/desempeño cuando se utilizan para navegación con UAVs.

Los algoritmos usados para la mejora de la medición, que incorporan los sensores de medición inercial, implementan formulaciones matemáticas del algebra de cuaterniones, algebra lineal, procesos estocásticos y estadística inferencial, lo cual aumenta el costo computacional y el tiempo de desarrollo de los proyectos.

Los sensores de medición inercial están compuestos usualmente por giroscopios y acelerómetros. Por una parte, los giroscopios se encargan de la medición de los componentes de la velocidad angular, los cuales se integran para obtener la orientación de la aeronave, pero estos suelen ser susceptibles a deriva o acumulación de error en la medida con el transcurso del tiempo.

Por otra parte, los acelerómetros sensan el cambio en la orientación con respecto al vector de la fuerza gravitacional, pero tienden a distorsionar la medida cuando actúan fuerzas externas. La combinación o fusión de las mediciones del giroscopio y del acelerómetro busca mejorar la medición de la orientación. Sin embargo, el acelerómetro puede ser utilizado sólo para medir la rotación alrededor de los ejes x(pitch) y y(roll) (ver la figura 1) y no alrededor del eje z(yaw), debido a que el vector gravitacional es paralelo al eje z.

Por lo tanto, se utiliza el magnetómetro para medir el ángulo de rotación alrededor del eje z, dado que el campo magnético de la tierra posee componentes tanto en x como en z.

image

Figura 1. Sistema de referencia global para la navegación del UAV.

La variedad de algoritmos para fusión y filtrado de datos de sensores inerciales es amplia, por lo cual en base a la información encontrada en la literatura, [2, 3, 9, 10, 11, 12], decidimos estudiar aquellos algoritmos que sirven de base para AHRS comerciales de alto costo, pero que de igual manera pueden ser implementados con IMU/Magnetómetros de costo medio. De esta manera, se logra mejorar la estimación de la orientación que se obtiene con estos sensores un tanto más económicos. Por lo anterior, los algoritmos que se han implementado y evaluado son el filtro de Kalman, el algoritmo de Madgwick, y el algoritmo de Mahony. En la siguiente sección se explicará en qué consiste cada uno de estos algoritmos.

En la literatura son escasos los trabajos que se enfocan en la comparación de los algoritmos de madgwick, Mahony y Kalman [12,17], y los que se han publicado difieren en la metodología de evaluación y en las características de los sistemas de medición utilizados como patrón de referencia. En el trabajo de Cavallo et al., [17], las pruebas se realizaron ubicando la IMU/ Magnetómetro en la pinza de un robot Kuka Youbot de 5 grados de libertad y los ángulos de las articulaciones fueron medidos con los codificadores de posición del robot a una frecuencia de 40Hz, lo cual no permite incluir y captar el efecto de las vibraciones típicas que se dan durante la operación de un UAV. Además, con este montaje se limita considerablemente el rango de posiciones velocidades angulares que se pueden probar. Cabe señalar, que los resultados publicados por Cavallo et al. difieren de los hallazgos del presente trabajo, ya que en aquel trabajo el filtro de Kalman resulta superar a los otros métodos en cuanto a precisión. En otra referencia, Madgwick, [12], compara su propio algoritmo con un filtro de Kalman, utilizando como referencia los resultados obtenidos a partir de algoritmos de procesamiento de imágenes.

2. Algoritmos AHRS

2.1 Filtro de Kalman

Es un algoritmo recursivo de procesamiento de datos, el cual toma en cuenta toda la información disponible que se tenga de las variables de estados del sistema. El mismo hace uso de las características estocásticas tanto de las señales como del ruido,
tomando en cuenta la dinámica tanto del proceso de estimación como del proceso de medición.

Este filtro requiere, en su forma simple no extendida, que el modelo estudiado sea lineal y que el ruido en las mediciones sea gaussiano. Principalmente, este filtro apunta hacia el problema de estimar el vector de estado,XЄn,de un proceso estocástico controlado en tiempo real [4].

El filtro de Kalman asume que los estados del sistema en un tiempo t se pueden obtener a partir de los estados a priori del sistema en un tiempo t-1 de acuerdo con la siguiente ecuación.

Donde:

Xt : Vector de estado.

F>t : Matriz de transición de estado =

Xt-1 : Vector de estado previo en t-1.

Bt : Matriz de control del modelo =

Ut : Vector de control.

Wt : Vector del ruido del proceso.

Dicha ecuación constituye el modelo del proceso [5]. Además hay un modelo que describe como las medidas del sistema u observaciones son obtenidas a partir del estado interno:

Zt:Vector de medición.

Ht: Matriz que mapea xt en zt = [1 0].

Vt: Ruido de la medición.

Esta última ecuación constituye el modelo de la medición. Por otro lado, se supone que las variables wt y vt son variables aleatorias independientes y que poseen media cero y una distribución de probabilidad gaussiana [5]. Es decir,wt:N(0,Qt) y Vt:N(0,Rt),en donde y son las matrices de covarianza respectivas.

Por lo anterior, en estas expresiones los subíndices t, tanto de la matriz de covarianza del proceso como de la matriz de covarianza de la medición, nos indican que en términos generales, estas pueden variar con el proceso, pero supondremos que estos procesos estocásticos son estacionarios y por ende dichas matrices son constantes. Una vez se tenga tanto el modelo del proceso como el de la medición, y se hayan estimado Q y R se realiza un proceso iterativo el cual está compuesto de dos etapas, a saber, la de predicción y la de corrección de las medidas, como se muestra en la figura 2

image

Figura 2. Filtro de Kalman: Etapas de predicción y corrección.

Donde:

Vector de estado estimado.

Ángulos medidos a partir de la información suministrada por el acelerómetro y magnetómetro.

Velocidades del giroscopio.

2.1.1 Calculo de Roll, Pitch, Yaw usando el giroscopio.

Un método alternativo para adquirir los ángulos roll, pitch y yaw, es mediante el cálculo de la integral numérica de sus tasas de cambio.

Donde:

ϕ(t): Ángulo que se desea estimar.

ϕ(t) = w : Tasa de cambio en el tiempo.

El giroscopio permite medir la velocidad angular en cada uno de los ejes de rotación del sistema de referencia fijo al UAV, pero en general los ángulos obtenidos a partir de estas mediciones no se corresponden con los ángulos calculados a partir de las mediciones del acelerómetro y del magnetómetro, las cuales corresponden a un sistema de referencia de navegación. Por lo tanto, se utiliza una matriz de transformación que relaciona las derivadas de los ángulos de Euler XYZ con las velocidades medidas con el giroscopio (ecuación 10). En dicha ecuación los valores de pitch y roll (>φ y >θ) se calculan a partir de las mediciones del acelerómetro. Así,

en donde, s(),c( ) y t( ), son la funciones trigonométricas sin( ), cos( ) y tan( ), respectivamente.

Posteriormente, se pueden obtener los ángulos de Euler mediante la integración de los valores de la ecuación 10. Como resultado de la integración, los errores de medición asociados a las mediciones del giroscopio ((se propagarán al ángulo estimado. Para corregir este error es necesario implementar un algoritmo de fusión sensorial, por ejemplo, el filtro de Kalman, tal y como se ilustra en el diagrama de la figura 3.

Figura 3. Implementación del filtro de Kalman para el cálculo de los ángulos de Euler.

2.2 Algoritmo Madgwick

Este algoritmo fue desarrollado por Sebastián Madgwick [12]. Este emplea una representación de la orientación por medio de cuaterniones, por lo cual no está sujeto a los problemas de singularidad presentes en las representaciones basadas en matrices de cosenos directores. Cabe señalar, que el algoritmo de Madgwick está basado en el algoritmo del gradiente descendente para calcular la dirección del error de medición a partir de los datos del giroscopio.

El algoritmo está dividido en cuatro partes principales que son: cálculo de la orientación a partir de las velocidades angulares medidas por el giroscopio; el cálculo de las orientaciones a partir de los vectores medidos del campo gravitacional y del campo magnético; la fusión de las dos estimaciones anteriores y por último la normalización del cuaternión de la medición. A continuación detallaremos cada una de las partes del algoritmo.

2.2.1 Orientación a partir de las velocidades angulares

Las velocidades angulares alrededor de los ejes x, y y z, medidas por el giroscopio en el sistema de referencia local, se expresan de la siguiente forma:

De la matemática de cuaterniones tenemos que el “producto de cuaternión” entre el vector de orientación del sistema de referencia de la tierra relativo al del sensor y el vector de velocidades angulares nos da la derivada de dicho vector de orientación. Así:

Esta derivada la podemos integrar con respecto al tiempo si conocemos el intervalo de muestreo ( ∆t ) así:

2.2.2 Orientación a partir del vector de observaciones

Se calcula un estimado del cuaternión que da la orientación del sensor, para la cual se alinean la dirección de referencia predefinida del campo (gravitacional o magnético) con la dirección medida del campo en el sistema de coordenadas del sensor. Esto se formula como un problema de optimización en el que se minimiza una función objetivo f por el método de gradiente descendente, así:

en donde, d hace referencia al vector del campo magnético o del campo gravitacional, mientras que μ es el tamaño del paso.

2.2.3 Fusión de las dos estimaciones

El algoritmo de fusión de las dos estimaciones anteriores viene dado por la siguiente ecuación:

En donde y depende de la constante β, la cual se calcula de la siguiente forma.

A su vez ϖβ: Representa la media del error de las medidas hechas con el giroscopio.

2.2.4 Normalización del cuaternión de medición

En este último paso se normaliza el cuaternión de la medición de orientación. Así,

2.3 Algoritmo de Mahony

Este algoritmo fue desarrollado por Robert Mahony y es un filtro complementario, el cual mejora la estimación de la orientación aplicando un filtro pasa bajo a las estimaciones obtenidas de los acelerómetros y magnetómetros. Al mismo tiempo se aplica un filtro pasa alto a las estimaciones obtenidas del giroscopio y por último se fusionan ambas estimaciones [13].

De igual forma que el filtro de Madgwick, el filtro de Mahony se basa en una representación en forma de cuaterniones. Así, la derivada del vector de orientación se expresa como:

en donde, δ es un término de corrección de las velocidades angulares generado por un bloque integral proporcional (PI). que actúa sobre el error de las estimaciones obtenidas de los acelerómetros/magnetómetros y el giroscopio, el cual tiene la iguiente forma:

3. Plataforma de Experimentación

La importancia de este trabajo radica en el hecho de que las condiciones bajo las cuales se evalúan y comparan los algoritmos se asemejan a las condiciones de vuelo de los UAV y son similares para las pruebas con todos los algoritmos. Para realizar las pruebas experimentales se diseñó y construyó una plataforma experimental, la cual permite monitorear las mediciones
tanto del IMU/magnetómetro, como de un codificador óptico, con su respectivo decodificador de cuadratura.

Las mediciones de este último se utilizaron como referencia para poder determinar la exactitud de los algoritmos y caracterizarlos para futuros proyectos con UAVs. En la figura 4 detallamos la arquitectura de la plataforma experimental.

La plataforma fue diseñada de tal forma que nos permite monitorear cada uno de los ángulos alrededor de los ejes principales x, y, z, por separado. En el diseño optamos por utilizar el marco para quadrotor, HobbyPower x450, que gracias a su estructura tubular nos permitió conectarle de forma rígida el codificador óptico.

Se seleccionó el codificador óptico YUMO-E6C2- CWZ. Este tiene una resolución de 1024 pulsos por revolución que acompañado de un decodificador de cuadratura nos permite obtener 4096 pulsos por revolución, lo cual se traduce en unos 0.087 grados de resolución. El IMU /magnetómetro que utilizamos viene incorporado en el controlador de vuelo Flymaple. El Flymaple viene con un procesador ARM-Cortex-M3 (72 MHz), un giroscopio ITG-3200, un acelerómetro ADXL345 y un magnetómetro HMC5883L.

Los motores con sus hélices se instalaron en la estructura del quadrotor para adicionar vibración al sistema, por lo cual durante las pruebas los mismos operan a diferentes rangos de velocidades, buscando asemejarse a condiciones de vuelo reales. Para ello utilizamos motores sin escobillas, los SunnySky X2212.

Figura 4. Plataforma experimental para evaluación y comparación de algoritmos AHRS: a) Prototipo, b) Modelo CAD.

Figura 5. Instrumentación de la plataforma experimental: a) Quadrotor hobbyPower x450, b) Encoder YUMO-E6C2- CWZ, c) Controlador de vuelo Flymaple, d) motor SunnySky X2212.

4.Metodología de evaluación

Son muchos los criterios y los procedimientos que existen para evaluar y elegir un algoritmo. Desde un punto de vista práctico nos interesan los requerimientos del controlador y del sistema de medición para que el algoritmo se pueda ejecutar. En nuestro caso, la velocidad de ejecución y el espacio en memoria son aspectos importantes. Por otra parte, hay características de la respuesta o funcionamiento de un tipo de algoritmo que son muy importantes, como lo son, el tiempo que le toma en converger a una respuesta y el error con respecto a un valor de referencia. A continuación detallaremos el procedimiento para la evaluación de los algoritmos.

En cada una de las pruebas que se detallarán a continuación los motores instalados en la estructura del quadrotor giran de forma aleatoria entre 4000 rpm y 7000 rpm, esto para añadir vibraciones al sistema.

Todos los algoritmos serán implementados para las mismas frecuencias de muestreo, para comparar el error de cada algoritmo bajo las mismas condiciones.

El quadrotor será llevado de una posición angular A una posición angular B y se determinará el número de iteraciones que le toma al algoritmo converger a la posición B.

Cabe señalar que en su trabajo principal, [13], Mahony resalta que en general, independientemente de los valores escogidos de kp y ki se obtendrán buenos resultados siempre y cuando se cumpla que kp, ki > 0. En otro de sus trabajos, [16], Mahony recomienda que, para aplicaciones con UAVs, ki sea de 10 a 100 veces más baja que kp. Los valores seleccionados en este trabajo son los siguientes. kp= 1 rad/s y ki = 0.1 rad/s.

Con el algoritmo de Madgwick se utilizó < = 0.041, el cual es un valor óptimo, calculado por el propio Madgwick [12].

Para el filtro de Kalman se definió Q = 0.003, y R = 0.0009 basándonos en ganancias definidas en trabajos previos con el filtro de Kalman, para aplicaciones similares [6, 7, 8, 14, 15].

5. Resultados

En las figuras de la 6 a la 11 mostramos los gráficos de las estimaciones realizadas por cada uno de los algoritmos AHRS analizados en este trabajo. En el mismo gráfico se muestra el valor de referencia medido con el codificador óptico y la diferencia entre la estimación y el valor de referencia. Nos referiremos a cada uno de los ángulos alrededor de los ejes principales xyz por la nomenclatura de Tait_Bryan (Ángulos de Euler). Las gráficas de los resultados alrededor del eje no serán mostradas en este trabajo, ya que los resultados son muy similares a los resultados para rotaciones alrededor del eje x(Ф).

Figura 6. Mahony: Ángulo roll y mediciones con el codificador óptico, a 84 Hz.

Figura 7. Madgwick: Ángulo Roll y mediciones con el codificador óptico, a 84 Hz.

Figura 8. Kalman: Ángulo roll y mediciones con el codificador óptico, a 84 Hz.

Figura 9. Mahony: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

Figura 10. Madgwick: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

Figura 11. Kalman: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

Los gráficos de las figuras 6 a la 8 muestran como el error en el algoritmo de Madgwick tiene un comportamiento más suave, sin los niveles de ruido que presentan las estimaciones con Kalman y Mahony. Sin embargo, las estimaciones con Mahony a pesar de que tienen mayor aleatoriedad, presentan un error menor en comparación con las otras estimaciones. Para el caso del ángulo pitch los resultados fueron bastantes similares a los que se observaron para el ángulo roll, en tanto que para el ángulo yaw, no se observaron muchas diferencias entre las tres estimaciones (figuras 9 a la 11).

En las figuras 12 y 14 podemos observar los efectos de la frecuencia de muestreo sobre la precisión de los algoritmos AHRS evaluados en este trabajo. Los algoritmos para evaluaron en un rango de frecuencias de muestreo, desde los 10 Hz hasta los 84 Hz, dándonos un rango amplio de referencia para futuros proyectos con UAVs. También podemos observar en dichos gráficos, a mayor frecuencia dentro del rango señalado, como es de esperar, todos los algoritmos presentan mayor precisión, siendo el algoritmo de Mahony el más robusto a la disminución de la frecuencia y el de aproximadamente de 2° lo cual es bastante aceptable considerando los valores reportados en la literatura [2]. La estimación del ángulo alrededor de , obtenida por los tres algoritmos de AHRS, muestra una raíz del error cuadrado medio de entre 3° y 5°.

image

Figura 12. Error en el ángulo roll vs. frecuencia de muestreo.

image

Figura 13. Error en el ángulo pitch vs. frecuencia de muestreo.

image

Figura 14. Error en el ángulo yaw vs. frecuencia de muestreo.

Las figuras de la 12 a la 14 muestran como para diferentes frecuencias de muestreo el algoritmo de Mahony sigue mostrando un error relativamente menor al de las demás estimaciones. También se logra observar que a medida que la frecuencia pasa el umbral de los 80 Hz no se observan muchas mejoras en las estimaciones de los algoritmos.

En los resultados de las figuras 15 a la 20, buscamos evaluar la rapidez con la que cada algoritmo converge, pasando de un ángulo A = 0°, a un ángulo B = 30°. Entendiéndose por converger el instante en que el error se estabiliza. En los gráficos del 6 hasta el 11 se estudia el error dinámico, mientras que en las siguientes se busca determinar cuántos ciclos de procesamiento tarda en converger el algoritmo a la respuesta. Esto no es posible apreciarlo en los resultados de los gráficos del 6 al 11 dado que la escala de tiempo es mucho más grande.

Figura 15. Mahony: Ángulo roll y mediciones con el codificador óptico, a 84 Hz.

Figura 16. Madgwick: Ángulo roll y mediciones con el codificador óptico a 84 Hz.

Figura 17. Kalman: Ángulo roll y mediciones con el codificador óptico, a 84 Hz.

Figura 18. Mahony: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

Figura 19. Madgwick: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

Figura 20. Kalman: Ángulo yaw y mediciones con el codificador óptico, a 84 Hz.

En la tabla 1. Se muestran los resultados del tiempo de ejecución y el número de iteraciones que debe realizar cada algoritmo ante un cambio de 30°. Adicionalmente, mostramos la raíz del error cuadrado medio para cada algoritmo, con una velocidad de muestreo de 84Hz.

Tabla 1. Ciclos para converger y tiempo de ejecución

6. Conclusiones

Dado que el objetivo de este trabajo fue implementar y evaluar los algoritmos de Kalman, Mahony y Madgwick, podemos concluir que fue desarrollada exitosamente una metodología mediante la cual se pudieron comparar las características de funcionamiento de dichos algoritmos, bajo condiciones de operación encontradas típicamente en la navegación con UAVs.

De acuerdo a los resultados, para los rangos de frecuencia de muestreo a los que fueron evaluados los algoritmos, el que mejor funcionó fue el filtro complementario de Robert Mahony, debido a su mayor velocidad de convergencia y a que sus errores de medición son muy similares a los del filtro de Kalman.

De los tres ángulos de rotación alrededor de los ejes principales xyz, en todas las estimaciones evaluadas, el ángulo alrededor de z(ψ ) fue el que presentó la mayor magnitud del error, lo cual indica que sigue existiendo cierta deficiencia en aquellas estimaciones que dependen del magnetómetro.

Durante la experimentación se pudo observar la robustez que poseen todos los filtros ante los cambios bruscos en la dinámica del sistema.

7.Trabajo futuro

Como trabajo futuro proponemos el desarrollo de una interfaz gráfica de usuario, que facilite la recopilación y procesamiento de los datos que nos suministran los sensores. También se propone la adición de otro motor el cual se encargaría de añadir otras perturbaciones periódicas al sistema.

8. Agradecimientos

Se le agradece a la Secretaría Nacional de Ciencia, Tecnología e Innovación (SENACYT) y al Sistema Nacional de Investigación (SNI) de panamá, que fueron los que aportaron los fondos necesarios, para que se llevara cabo esta investigación.

9.Referencias

H. B. Mitchell, “Multi-Sensor Data Fusion An introduction”, Berlin: New York, Springer Verlag, p. 3, 2007.

Damien Douxchamps, “A small list of IMU/INS/INU” [en línea], http://damien.douxchamps.net/research/imu/, 2016.

R. Munguía and A. Grau, “A Practical Method for Implementing an Attitude and Heading Reference System”, Department of computer Science, CUCEI, Universidad de Guadalajar, Mexico, International journal of advanced Robotic Systems, p. 12, 2014.

J. A. Camarena, “El Filtro de Kalman”[en línea], http://dep.fie.umich.mx/~camarena/FiltroKalman.pdf, 2014.

R. Faragher, "Understanding the basis of the kalman filter via a simple and intuitive derivation",IEEE Signal Process. Mag., vol. 29, no. 5, pp. 128-132, 2012

B. Barshan and H. F. Durrant-Whyte. Inertial navigation systems for mobile robots.11(3):328-342, June 1995.

E. Foxlin, "Inertial Head-Tracker Sensor Fusion by a Complementary Separate-Bias Kalman Filter", Proceedings of VRAIS '96, pp. 185-194

J. L. Marins, Xiaoping Yun, E. R. Bachmann, R. B. McGhee and M. J. Zyda, "An extended kalman filter for quaternion- based orientation estimation using marg sensors", Proceedings of the IEEE/RSJ International Conference on intelligent Robots and Systems, vol. 4, pp. 2003-2011

Xsens Technologies B.V. MTi and MTx, “User Manual and Technical Documentation.Pantheon 6a”, 7521 PR Enschede, The Netherlands, 2009

MicroStrain Inc. 3DM-GX3 -25 Miniature Attutude Heading Reference Sensor. 459 Hurricane Lane, Suite 102, Williston, VT 05495 USA, 1.04 edition, 2009.

Crossbow Technology, Inc. AHRS400 Series Users Manual. 4145 N. First Street, San Jose, CA 95134, rev. c edition, February 2007.

S. O. H. Madgwick, A. J. L. Harrison and R. Vaidyanathan, "Estimation of IMU and MARG orientation using a gradient descent algorithm,"Proc. IEEE Int. Conf. Rehabil. Robot., pp. 1-7

R. Mahony, T. Hamel and J-M. Pflimlin, “Complimentary filter design on the special orthogonal group SO(3)”, Proceedings of the IEEE Conference on Decision and Control, Institute of Electrical and Electronic Engineers, Seville, Spain, 2005.

M. Leccadito, “An Attitude Heading Reference System using a Low Cost Inertial Measurement Unit”, Virginia Commonwealth University, Richmond, Virginia, 2013.

B. McCarron, “Low-Cost Implementation via Sensor Fusion Algorithms in the Arduino Environment”, California Polytechnic State University, San Luis Obispo, p. 17, 2013.

M. Euston, Paul Coote, Robert Mahony, Jhonghyuk Kim and Tarek Hamel, “A complementary Filter for Attitude Estimation of a Fixed-Wing UAV”,RAL Robotic and Autonomy Lab Australian National University, p. 6, 2008.

A. Cavallo, A. Cirillo, P. Cirillo, G. De Maria, P. Falco, C. Natale and S. Pirozzi, “Experimental Comparison of Sensors Fusion Algorithms for Attitude Estimation”, The international Federation of Automatic Control cape Town, South Africa. 19th world congress, p. 6, 2014.