Explicación general y breve del filtro de Kalman
- PI - RobotSubmarino
- 22 jul 2020
- 4 Min. de lectura
Actualizado: 26 jul 2020
En 1960, R.E. Kalman publicó su famoso paper, el cual describe una solución recursiva para problemas discretos de filtros lineales y predicciones [Kalman60]. Gracias al nivel tecnológico y potencia computacional ,de la última década, hemos aprovechado el filtro de kalman para diversas aplicaciones e investigaciones complejas. Un ejemplo particular de ello es el área de navegación autónoma y de forma más básica la estimación de posición [Maybeck79]. Esta herramienta puede recibir varias entradas de datos para poder estimar, de forma iterativa, el verdadero estado particular de un objeto, cuando los valores de medición tiene un cierto grado de error, incertidumbre o variación.
No necesita una gran cantidad de datos para estimar el valor verdadero, porque utiliza los errores, variaciones e incertidumbres de los mismos en su proceso.
Cuando la data es recibida esta posee un cierto grado de incertidumbre esparcido por toda la lectura, es por eso que le es difícil a diversos sistema saber y llegar al valor verdadero de la medición.
La siguiente presentación está basada en las clases de Michel van Biezen [van Biezel20] :
Ejemplo del filtro de Kalman para una sola variable: temperatura de un termómetro.

La función que se gráfica es la estimación de la temperatura usando el Kalman Filter. Además, el filtro generalmente se usa para una serie de variables, pero el sentido es el mismo.
Flowchart del Filtro de Kalman de una sola variable.

El flowchart presentado es Iterativo, es decir, una vez reciba los valores iniciales solo seguirá recibiendo los valores de entrada, ya que el resto de los cálculos serán internos.
1. Cálculo de la Ganancia:
Para el cálculo de la Ganancia de Kalman se necesita lo siguiente:
Se necesita el error en la estimación, es decir el error en la estimación del estado o iteración anterior. En caso recién comience el proceso se empieza con la estimación original del error y una vez entre este dato a nuestro sistema, ya no se regresará otra vez sino se calculará durante las iteraciones.
Se necesitará el error en la data de entrada, ya que necesitamos entender la incertidumbre o error de la data nueva que entra al sistema.
Lo que la Ganancia hace es poner un relative importance en el error en la estimación vs el error de la data de entrada. Por ende, si el error en el estimado es menor, se le pondrá mayor importancia que en la otra entrada. Si el error en la entrada de datos es menor se le pondrá mayor importancia que en el error en la estimación.
2. Cálculo de la estimación actual:
Para el cálculo de la estimación actual se necesita lo siguiente:
Se necesita la ganancia calculada en el estado anterior, la cual a su vez ajusta la estimación actual con las modificaciones del estado anterior.
Se necesitará la estimación del estado anterior, la cual fue calculada en esta misma parte, pero de la iteración anterior. En caso el sistema esté comenzando a calcular se usará una estimación original. Cabe mencionar que realmente no importa cuál es la primera estimación. Se podría llegar al punto de inicializar la estimación con valores randoms.
Asimismo, en esta parte del sistema se necesita la entrada de datos de la medición del exterior.
Para este caso la ganancia decidirá cuánto peso poner a cada una de las entradas, de esa forma se usará una entrada más que la otra. Es similar a un tipo de ranking.
3. Cálculo del nuevo error en la estimación:
Para el cálculo del error en la estimación se necesita lo siguiente:
Se necesita la ganancia del estado actual ya calculada.
Se necesita la estimación actual, que a su vez ya ha sido calculada.
Por lo tanto, una vez tengamos el error en la estimación del estado actual, este pasará a ser el error en la estimación de la entrada para la ganancia para la siguiente iteración.
4. Estimación actualizada:
Cada vez que se calcula un resultado en la estimación actual este saldrá como output para su uso. Por ejemplo, mejorar el campo de lectura para obtener la temperatura de un termómetro.
Ganancia de Kalman:

El error estimado: E_est
El error medido: E_MEA
La ganancia de Kalman estará dentro del siguiente rango:
0 = < KG < = 1
Estimación actual

Estimación actual: EST t
Estimación de la iteración anterior: EST t-1
Medida (Data que entra al sistema): MEA

En la figura de arriba se muestra como la ganancia de Kalman altera e impone pesos específicos a cada entrada del cálculo 2. Además, una vez que el sistema esté iterando y haya pasado un largo tiempo la ganancia será menor dándole más peso al estado anterior.
Nuevo error en las estimaciones

El error estimado del estado anterior: E_est-1
El error de la medición: E_MEA
En la figura se muestra una ecuación respectiva al nuevo error en las estimaciones en función a KG. Cuando se trabaja con matrices la ecuación mencionada en la oración anterior es ideal y para ello el 1 hace referencia a la identidad matriz.
Sebastian Venero
Referencias :
Kalman, R. E. (1960). A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering, 82(1), 35. doi:10.1115/1.3662552
Maybeck, Peter S. 1979. Stochastic Models, Estimation, and Control, Volume 1, Academic Press, Inc.
M. Van Biezen, "Ilectureonline", Ilectureonline.com, 2020. [Online]. Available: http://www.ilectureonline.com/. [Accessed: 22- Jul- 2020].
Comments