Sensor Fusion To Estimate The Orientation of A Scale Autonomous Vehicle Using The Kalman Filter
Sensor Fusion To Estimate The Orientation of A Scale Autonomous Vehicle Using The Kalman Filter
Sensor Fusion To Estimate The Orientation of A Scale Autonomous Vehicle Using The Kalman Filter
net/publication/339173605
CITATIONS READS
0 31
3 authors:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Vehículo Autónomo de Superficie (ASV) para el Estudio de Calidad del Agua en Lagos y Lagunas View project
Sistema de monitorización de agentes contaminantes en el lago Ypacaraí mediante el uso de Vehículos Acuáticos no Tripulados de Superficie View project
All content following this page was uploaded by Erid Pacheco on 23 August 2020.
Abstract— The fusion of different sensors (accelerometer, La fusión de sensores combina lecturas de diferentes
gyroscope and magnetometer) has been carried out using a fuentes para obtener información con menos incertidumbre
Kalman filter in order to obtain an accurate estimation of the que la información obtenida por cada sensor individual. Esto
orientation of a scale autonomous vehicle. This was used for the
permite aumentar la supresión de ruido y la precisión del
correct navigation of the vehicle which participated in the Robocar
race competition. Calibration methods have been implemented (for sistema de medición. Por este motivo, la implementación del
the accelerometer and gyroscope) with a practical approach, so método de fusión de sensores es muy usado en diversos
that it can be implemented before the start of the race in real time. campos como la robótica, sistemas biomédicos, sistemas
The Kalman filter was simulated to determine the influence of the militares, equipos de monitoreo, sistemas de trasportes,
variation of the parameters that intervene in the Kalman filter control de procesos, sistemas de información, etc. [2], pues
equations. The response of the instrumentation to the disturbances
con ello se logra reducir costos y a la vez se logra la precisión
was improved, which leads to an adequate estimation of the
orientation. deseada.
Keywords— Kalman filter, sensor fusion. Para una navegación autónoma, los vehículos son dotados
de una gran cantidad de sensores, debido a que el vehículo
I. INTRODUCCIÓN debe ser capaz de percibir la mayor cantidad de información
proveniente del entorno. Los algoritmos de navegación para
D ESDE hace unos años, la industria de los sensores
inerciales ha ido creciendo, debido al bajo coste que estos
representan, bajo consumo de energía, así como al nivel de
vehículos autónomos requieren datos precisos de posición y
orientación [3], para conseguir esto, se deben usar sensores de
miniaturización al que están llegando [1]. En la actualidad, el alta calidad, que generalmente son costosos y de difícil acceso.
ámbito de uso de estos sensores es muy amplio, son utilizados Esta precisión requerida, se puede conseguir con la fusión de
en dispositivos tan comunes para las personas como los sensores, en donde los datos provenientes de distintas fuentes
celulares, sistemas de entretenimiento, sistemas de seguridad son combinados para obtener la apropiada calidad de las
automotriz, etc. mediciones de las variables que deben ser procesadas.
Así mismo, los sistemas de medición se están integrando Este trabajo de investigación se desarrolla a partir de la
con más sensores, dado que han demostrado una sustancial necesidad de obtener estimaciones precisas de la orientación
ante problemas de diversas áreas. A medida que los datos para la navegación de un vehículo autónomo con sensores de
crecen, también lo hace la necesidad de combinar estos datos bajo costo.
provenientes de distintos sensores con lo que se puede extraer En el presente trabajo, la forma de navegación básica será la
la información útil que permita la comprensión del entorno. inercial, utilizando como sensores que miden aceleración y
velocidad angular (acelerómetro y giroscopio), apoyado por el
La fusión de datos es de especial importancia en cualquier
uso de un sensor auxiliar (magnetómetro, que mide el campo
aplicación en donde los datos provenientes de distintas fuentes
magnético), para tener una referencia de orientación absoluta, y
deben ser combinados, fusionados y agrupados para obtener la de esta manera, evitar errores acumulativos.
apropiada calidad de las mediciones de las variables que deben El algoritmo utilizado para la fusión de datos es el filtro de
ser procesadas. Mediante la fusión de datos, la información Kalman, el entorno de desarrollo utilizado para la fusión de datos
obtenida a partir de la misma resulta igual de confiable que la es el LabVIEW y es implementado en un dispositivo embebido
información obtenida a partir de un equipo patrón, los cuales, (Myrio).
si bien es cierto que son precisos, son elevadamente costosos y
por lo tanto de difícil acceso. II. MODELO DE CORRECCIÓN DE ERRORES DE LOS SENSORES
E. Pacheco está con el Centro de Investigación en Ciencias, Tecnología e UTILIZADOS
Innovación Científica (CICTIA), Universidad Católica “Nuestra Señora de la
Asunción” Campus Alto Paraná - Hernandarias, Paraguay (e-mail: Para los tres sensores (acelerómetro, giroscopio y
erid.pacheco@uc.edu.py). magnetómetro), los modelos de compensación resultante
A. Guerrero está con el Centro de Tecnología de la Información y tienen la forma:
Comunicación (CTIC), Fundación Parque Tecnológico de Itaipú (FPTI-PY) -
Hernandarias, Paraguay (e-mail: ariel.guerrero@pti.org.py). 𝑧𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑀𝑎,𝑔,𝑚 (𝑧𝑖𝑛𝑝𝑢𝑡 − 𝑏𝑎,𝑔,𝑚 ) (1)
M. Arzamendia está con el Centro de Innovación Tecnológica (CITEC).
Facultad de Ingeniería – Universidad Nacional de Asunción – Asunción,
Paraguay (e-mail: marzamendia@ing.una.py). donde M es una matriz de 3x3 que representa la corrección por
2
factor de escala y desalineamiento de ejes (para el 𝑢𝑘−1 entrada conocida del sistema.
acelerómetro y giroscopio), para el magnetómetro representa 𝛤 matriz que asocia la entrada con el proceso.
la corrección por hierro suave, y el vector columna b de 3x1 𝑤𝑘−1 ruido del proceso con media cero y matriz de covarianza
representa el sesgo del sensor (acelerómetro y giroscopio), Q.
corrección por hierro duro para el magnetómetro, 𝑧𝑜𝑢𝑡𝑝𝑢𝑡 es la Luego, se describe el modelo de la medición, dada por la
salida del sensor calibrado, 𝑧𝑖𝑛𝑝𝑢𝑡 es la salida del sensor sin siguiente ecuación:
calibrar, y los subíndices a, g y m indican el sensor del cual
provienen las medidas (a para el acelerómetro, g para el 𝑧𝑘 = 𝐻𝑘 𝑥𝑘 + 𝑣𝑘 (3)
giroscopio y m para el magnetómetro).
Para el caso del acelerómetro y giroscopio, las matrices M donde:
y b pueden ser determinados por ajuste de mínimos cuadrados 𝑧𝑘 es el vector de mediciones de dimensión rx1.
o filtro de Kalman de los pares de entrada [3], esto facilita la 𝐻𝑘 es la matriz de observación de las mediciones de
calibración en tiempo real (online). Para el caso del dimensión rxn. Esta matriz relaciona el vector de estados 𝑥𝑘
magnetómetro, usaremos un algoritmo proporcionado en [4] e con el vector de mediciones 𝑧𝑘 .
implementado en MATLAB, cuya calibración se realiza 𝑣𝑘 es el ruido del proceso con media cero y matriz de
offline. covarianza R.
Para este trabajo, se considera que las matrices 𝛷𝑘 , 𝐻𝑘 y la
III. FUSIÓN DE SENSORES matriz de covarianza 𝑅 son constantes, y que la entrada 𝑢𝑘 es
cero.
En [5], la fusión de datos se define como: “un proceso de
Como se mencionó anteriormente, el filtro opera por medio
múltiples niveles y fases de detección automática, que tratan
de un mecanismo de predicción-corrección. El (−) en las
con la asociación, correlación, estimación y combinación de
ecuaciones (4) y (5) indica los valores a priori de las variables
datos e información de una o múltiples fuentes para lograr
(antes de que se use la información de la medición) y (+) en
posiciones de refinado, estimaciones de identidad,
las ecuaciones (6) al (7) indica los valores a posteriori de las
evaluaciones completas, situaciones de amenazas oportunas a
variables (después de que se usa la información de la
su significado”. Uno de los algoritmos de fusión más
medición), las ecuaciones correspondientes a cada etapa se
populares es el Filtro de Kalman, su concepto y su
presentan a continuación:
funcionamiento se detallan en la siguiente sección.
Las ecuaciones de predicción o estimación a priori son las
A. Filtro de Kalman siguientes:
En [6], se presenta su formulación original. Según [7], el
filtro de Kalman es un estimador de lo que se llama “un 𝑥̂𝑘 (−) = 𝛷𝑥̂𝑘−1 (+) (4)
problema cuadrático lineal”, que es un problema de estimar el
“estado” instantáneo de un sistema dinámico lineal perturbado 𝑃𝑘 (−) = 𝛷𝑃𝑘−1 (+)𝛷 𝑇 + 𝑄𝑘−1 (5)
por ruido blanco gaussiano, mediante el uso de medidas
En esta etapa, se proyectan los estados de un instante de
correlacionadas linealmente con el estado, pero corrompidas
tiempo anterior utilizando la matriz de transición de estados
por el ruido blanco. El estimador resultante es
(𝛷), además, se propaga la incertidumbre de la estimación
estadísticamente óptimo con respecto a cualquier función
previa al estado actual utilizando el modelo del sistema y la
cuadrática de error de estimación. Opera por medio de un
covarianza de la perturbación aleatoria del proceso (𝑄𝑘−1 ).
mecanismo de predicción y corrección. En esencia, el
Las ecuaciones de corrección o de actualización de la
algoritmo pronostica el nuevo estado a partir de su estimación
medida (también llamado estimación a posteriori) están dadas
previa, añadiendo un término de corrección proporcional a la
por:
diferencia entre la medición y la predicción [8].
La referencia [8] se tomó como base de estudio para el ̅𝑘 = 𝑃𝑘 (−)𝐻𝑇 (𝐻𝑃𝑘 (−)𝐻𝑇 + 𝑅)−1
𝐾 (6)
algoritmo. Se parte del modelo del sistema, que describe la
evolución en el tiempo de la cantidad que se quiere estimar. ̅𝑘 (𝑧𝑘 − 𝐻𝑥̂𝑘 (−))
𝑥̂𝑘 (+) = 𝑥̂𝑘 (−) + 𝐾 (7)
Esto se representa mediante una ecuación en diferencias lineal
estocástica de la siguiente forma: ̅𝑘 𝐻𝑃𝑘 (−)
𝑃𝑘 (+) = 𝑃𝑘 (−) − 𝐾 (8)
𝑥𝑘 = 𝛷𝑘−1 𝑥𝑘−1 + 𝛤𝑢𝑘−1 + 𝑤𝑘−1 (2) Esta etapa del filtro es la encargada de incorporar las nuevas
mediciones del proceso, para producir una estimación con la
donde: menor varianza; primeramente, se calcula la ganancia de
𝑥𝑘 es el vector de estados de dimensión nx1 Kalman (6), a partir de la incertidumbre de la predicción de los
𝛷𝑘−1 es la matriz de transición de estados. Esta matriz estados 𝑃𝑘 (−) y de la covarianza de la perturbación aleatoria
relaciona el vector de estados de un tiempo anterior k-1 con el (𝑅), luego se hace una estimación a posteriori, en donde se
vector de estados actual en el tiempo actual k. Su dimensión es corrige la estimación a priori usando el valor de la medición
nxn. 𝑧𝑘 con la ganancia de Kalman 𝐾 ̅𝑘 ; finalmente se actualiza la
3
A. Diseño de software
El diseño del programa está basado en un patrón de diseño
denominado “máquina de estados” el cual consiste en una
estructura de casos embebida en un bucle. Esta arquitectura
permite ejecutar código diferente en cada iteración del bucle,
en función de alguna condición. Resulta útil para nuestra
aplicación, debido a que tenemos estados que se deben
ejecutar antes de fusionar la información de los sensores,
como la calibración de los mismos, que luego ya no se
ejecutarán.
El diagrama de transición de estados de la máquina de
estados implementada, se muestra en la Fig. 1. Consta de diez
estados y de ocho entradas digitales (d4 al d10 y Stop), las
entradas digitales d4 al d10 son para ejecutar cada estado de
manera individual, la última entrada digital (Stop), es para
finalizar la ejecución del programa, cada estado se describe
brevemente a continuación.
“Escribir”, solicita los datos a los sensores. “Leer”, lee los
datos de cada sensor. “Procesar”, corrige los datos de cada
sensor con los modelos presentados en la sección IV-B.
“Kalman” (d4), es el estado encargado de realizar la fusión
para la estimación de los ángulos de Euler, Pitch (θ), Roll (φ)
y Yaw (ψ). “Matrices R” (d5), se encarga de calcular las
matrices de covarianza para su uso en el filtro de Kalman. Fig. 1. Diagrama de transición de estados para este proyecto.
“Calibrar Giro” (d6), calcula la matriz 𝑏𝑔 mediante el
método de mínimos cuadrados, para el giroscopio. “Ganancias Los modelos del proceso y de la medición son los
acc” (d7), calcula la matriz 𝑀𝑎 para el acelerómetro, se utilizó siguientes:
el filtro de Kalman para ello. “Bias ax ay” (d8), se encarga del
cálculo de las componentes x e y, de la matriz 𝑏𝑎 mediante el 𝑥𝑘 = 𝑐 + 𝑤𝑘 (9)
método de mínimos cuadrados.
𝑧𝑘 = 𝑐 + 𝑣𝑘 (10)
“Bias az” (d9), se encarga del cálculo de las componentes z
de la matriz 𝑏𝑎 mediante el mismo método, este cálculo se
De esta manera, 𝛷 = 1., suponemos que la constante se
realiza en un estado independiente del cálculo de las
mide directamente, por lo tanto, 𝐻 = 1.
componentes x e y, debido a que se requiere que el sensor esté
Para este caso, tenemos la certeza de que estamos midiendo
en una posición distinta. “Matrices R acc” (d10), calcula la
una constate, por lo tanto, la matriz de covarianza del proceso
martriz de covarianza 𝑅 necesaria para la implementación del
es cero (𝑄 = 0), pero haremos pruebas con distintos valores
filtro de Kalman utilizada para hallar la matriz 𝑀𝑎 para el
para ver su efecto sobre el algoritmo. Los valores iniciales del
acelerómetro.
vector de estado 𝑥̂0 y de la matriz de incertidumbre 𝑃0 pueden
A. Simulación del filtro de Kalman de una seleccionarse arbitrariamente. Se sabe por [7], que las
variable ecuaciones (6) al (8) representan un sistema asintóticamente
Resulta útil el diseño de una simulación para filtrar ruido de estable, y, por lo tanto, la estimación del estado 𝑥̂𝑘 se vuelve
mediciones de una constante, esto, debido a que se pueden independiente de la estimación inicial a medida que 𝑘
manipular las variables que intervienen en las ecuaciones del aumenta.
filtro de Kalman, y así determinar su influencia sobre la
B. Fusión de datos
estimación resultante, además, se conocen claramente las
características del ruido y el valor real de la constante a ser La estructura básica de la fusión implementada se muestra
estimada, de esta manera, se puede evaluar el rendimiento, en la figura 2.
calculando el error cuadrático medio (error RMS) entre el valor
real y la estimación.
4
(𝛥𝑇)3 (𝛥𝑇)2
3 2
𝑄𝑘 = 𝑞 [(𝛥𝑇)2 ] (13)
𝛥𝑇
2
Fig. 2. Estructura de la fusión de datos. donde 𝑣 es el ruido de las mediciones con media cero y matriz
de covarianza 𝑅.
Para el cálculo de los ángulos Pitch (θ) y Roll (φ), se La matriz de covarianza 𝑅 de las mediciones está dada por:
fusionan los datos provenientes del acelerómetro y del
giroscopio. Primeramente, se calculan los ángulos θ y φ a 𝜎𝛼2 𝜎𝛼 𝜎𝛼̇
partir de la lectura del acelerómetro, utilizando las relaciones 𝑅=[ ] (15)
𝜎𝛼̇ 𝜎𝛼 𝜎𝛼2̇
trigonométricas entre los ejes y el vector gravedad. Estas
relaciones son válidas cuando el vehículo está en reposo o con donde 𝜎𝛼2 y 𝜎𝛼2̇ son las varianzas de los ruidos de las
velocidad constante, cuando el vehículo sufre aceleraciones,
mediciones 𝛼 y 𝛼̇ respectivamente, 𝜎𝛼 𝜎𝛼̇ = 𝜎𝛼̇ 𝜎𝛼 son las
las lecturas no son válidas, es por esto que debemos fusionar
covarianzas de las mediciones.
estos ángulos con los datos del giroscopio. El cálculo del
Con estas matrices definidas, se puede implementar el filtro
ángulo Yaw (ψ) es resultado de la fusión del ángulo calculado
de Kalman utilizando las ecuaciones (4) al (8).
con el magnetómetro y con el giroscopio. Para el cálculo de
Yaw (ψ), con el magnetómetro, se debe proyectar las
V. PRUEBAS Y RESULTADOS
componentes x e y sobre el plano horizontal, utilizando las
matrices de rotación [9], luego, ψ viene dada por: Se realizan las pruebas, con las simulaciones diseñadas
anteriormente variando los parámetros, principalmente la
−𝑚𝑦ℎ matriz de covarianza 𝑅, para lograr el comportamiento
𝜓 = −𝑎𝑟𝑐𝑡𝑎𝑛 ( ) (11)
𝑚𝑥ℎ deseado en la fusión, también se presentan los resultados
donde: alcanzados con la fusión para estimar los ángulos deseados.
𝑚𝑦ℎ = 𝑚𝑦 𝑐𝑜𝑠𝜑𝐾𝐹 − 𝑚𝑧 𝑠𝑒𝑛𝜑𝐾𝐹
𝑚𝑥ℎ = 𝑚𝑥 𝑐𝑜𝑠𝜃𝐾𝐹 + 𝑚𝑦 𝑠𝑒𝑛𝜑𝐾𝐹 𝑠𝑒𝑛𝜃𝐾𝐹 + 𝑚𝑧 𝑐𝑜𝑠𝜑𝐾𝐹 𝑠𝑒𝑛𝜃𝐾𝐹 A. Resultados de la simulación del filtro de Kalman para
una variable
Los ángulos 𝜃𝐾𝐹 y 𝜑𝐾𝐹 , son los ángulos calculados a partir En esta sección se presentan los resultados de la
de la fusión del acelerómetro con el giroscopio, como se implementación de la simulación diseñada en VII-B. El diseño
indica en la Fig. 2. de la interfaz permite que se pueda modificar los parámetros
C. Filtro de Kalman para estimar los ángulos Pitch (θ), Roll 𝑄, 𝑅, 𝑥0 , 𝑃0 y se puede visualizar el error RMS, tanto del
(φ) y Yaw (ψ) filtro, como de las mediciones sin el filtro, de manera a
comprobar su efectividad. La interfaz de usuario se muestra en
Debido a que el algoritmo para la fusión de datos es similar
la Fig. 3.
para los tres ángulos (solamente se diferencian en las matrices
Q y R para cada caso), se detallará de manera genérica la
fusión, sobre una variable elegida arbitrariamente (𝛼) y su
derivada (𝛼̇ ), (que representan el ángulo y la velocidad angular
para cada caso).
El modelo del proceso se representa por la siguiente
ecuación en diferencias lineal estocástica:
𝑥𝑘 𝛷 𝑥𝑘−1
⏞𝛼𝑘 ⏞1 𝛥𝑇 ⏞𝛼𝑘−1
[𝛼̇ ] = [ ][ ] + 𝑤𝑘−1 (12)
𝑘 0 1 𝛼̇ 𝑘−1
donde 𝑤 representa el ruido del proceso con media cero y Fig. 3. Interfaz de usuario de la simulación de filtro de Kalman.
matriz de covarianza 𝑄. Según [3], para la matriz 𝛷 dada en
(12), le corresponde la siguiente matriz 𝑄: En las tablas I y II, podemos ver la influencia de los
parámetros 𝑄 y 𝑅 sobre la eficiencia del filtro, manteniendo
5
constantes las demás variables(𝑥𝑘 = 10, 𝑥0 = 0, 𝑃0 = 1), el Con el vehículo sometido a aceleraciones horizontales
número de muestras es 150. vemos el error que genera la lectura del ángulo del
acelerómetro, al tener una varianza pequeña del error, el filtro
TABLA I da fiabilidad a estas lecturas y no puede ignorar esas
ERRORES RMS CON Q = CTE. Y R VARIABLE
aceleraciones. Estos resultados no son satisfactorios, debido a
esto, se calcula la matriz de covarianza de las mediciones con
Q R ERMS KF ERMS medición el vehículo sometido a aceleraciones horizontales y luego se
0.2 0.25 0.14186 0.24519 realiza un ajuste manual mediante prueba y error para
conseguir un resultado satisfactorio. La R calculada se muestra
0.2 0.5 0.21237 0.51645 a continuación con el resultado en la Fig. 5.
0.2 1 0.39957 1.09777 24.5 0
𝑅2 = [ ]
0.2 1.25 0.42984 1.29836 0 2.7812
TABLA II
ERRORES RMS CON Q = VARIABLE Y R = CTE.
0.0005 0.5 0.00701 0.49013 Fig. 5. Respuesta del filtro con 𝑅2 ante aceleraciones horizontales.
A partir de estos datos, podemos ver la eficiencia del filtro El uso de esta 𝑅 se acerca a lo deseado, aunque no ignora
de Kalman, mediante el cual se reduce en todos los casos, el completamente, reduce en gran medida la oscilación de ángulo
error RMS, como 𝑄 representa la varianza de la incertidumbre Roll (φ).
del proceso, y se sabe que se está midiendo una constante, el C. Fusión Yaw
filtro resulta más efectivo a medida que 𝑄 → 0, también Una vez obtenidos los ángulos Pitch y Roll, se puede calcular
vemos que al ir aumentando la incertidumbre de la medición 𝑅 Yaw a partir de la lectura del magnetómetro utilizando la
la predicción gana más peso. ecuación (11), este ángulo se fusiona con la lectura del
B. Resultados de las fusiones Pitch y Roll giroscopio.
Debido a que los resultados para ambos ángulos son Se procede de manera similar a la fusión para calcular los
similares, se presentará el resultado de la fusión de uno de ángulos Pitch y Roll, primeramente, se calcula la matriz R
ellos. tomando una cierta cantidad de datos, y calculando la varianza de
Primeramente, se ha hecho las pruebas con el cálculo de la las mediciones, luego se somete el sensor a disturbios magnéticos
matriz de covarianza de las mediciones 𝑅 con el vehículo en (causado con un pequeño imán permanente) para ver el
reposo. comportamiento de la fusión, finalmente, se realiza un ajuste
La 𝑅 calculada con el vehículo en reposo es la siguiente: manual, hasta que alcance el comportamiento deseado.
𝑅 calculada con el vehículo sin distorsiones magnéticas:
0.0646613 0
𝑅1 = [ ]
0 0.108575 0.0295689 0
𝑅1 = [ ]
0 0.00035017
de la medición del magnetómetro, de manera a que sea más mediante este procedimiento se logra la utilización de sensores
robusta en ambientes con perturbaciones magnéticas. Con de bajo costo para usarlas mediante la combinación de sus
varios ensayos de prueba y error, se llega al siguiente valor de datos y de este modo funcionan como los dispositivos de alta
𝑅: calidad, pero a un costo mucho más bajo.
El análisis del comportamiento del algoritmo mediante
29 0 simulaciones sirvió para determinar cómo influyen distintos
𝑅2 = [ ]
0 2 parámetros en la calidad de las estimaciones. Como resultado
de la presente investigación se pudo fusionar los sensores
Los resultados se pueden ver en la Fig. 8. Con esto se (acelerómetro, giroscopio y magnetómetro) de manera
consigue un comportamiento adecuado para el entorno de correcta y se obtuvo datos más que fueron más robustos a
aplicación de la fusión. Dependiendo del entorno de perturbaciones externas, que permitió extraer la información
aplicación, se pueden escoger los valores de R adecuados. más relevante y exacta posible, a partir de esto se pudo
planificar y ejecutar acciones para hacer posible la navegación
de un vehículo autónomo
REFERENCIAS
VI. CONCLUSIONES
Resulta indiscutible la importancia de la fusión de datos de
distintos sensores para obtener la calidad adecuada de las
mediciones de las variables que deben ser procesadas,
conforme a lo que se ha expuesto en este trabajo. Y en efecto,