"Si no puedes explicarlo simplemente, no lo entiendes lo suficientemente bien."
Albert EinsteinEl Filtro de Kalman es un tema fácil. Sin embargo, muchos tutoriales no son fáciles de entender. La mayoría requieren una amplia formación matemática que dificulta su comprensión. Además, la mayoría de los tutoriales carecen de ejemplos numéricos prácticos.
Decidí escribir un tutorial que se basa en ejemplos numéricos y proporciona explicaciones fáciles e intuitivas.
Algunos de los ejemplos son del mundo del radar, donde el filtrado de Kalman se usa ampliamente (principalmente para el seguimiento de objetivos), sin embargo, los principios que se presentan aquí se pueden aplicar en cualquier campo donde se requieran estimaciones y predicciones.
El tutorial incluye tres partes:
Actualmente, todos los ejemplos numéricos se presentan en unidades métricas. Estoy planeando agregar la opción de unidades imperiales más tarde.
Me llamo Alex Becker. Yo soy de Israel. Soy un ingeniero con más de 15 años de experiencia en el campo de las tecnologías inalámbricas. Como parte de mi trabajo, tuve que lidiar con Filtros de Kalman, principalmente para aplicaciones de seguimiento.
La crítica constructiva siempre es bienvenida. Agradecería mucho sus comentarios y sugerencias. Por favor envíeme un correo electrónico.
Mi nombre es Eduardo Ostera, de Argentina. Soy ingeniero electrónico graduado en la UNR (Universidad Nacional de Rosario). Trabajé durante 10 años en el desarrollo de software y hardware de balanzas electrónicas. Actualmente trabajo en el INTI (Instituto Nacional de Tecnología Industrial) en el laboratorio de Aprobación de Modelo de balanzas, en el área de Metrología Legal.
Al igual que Alex, tuve que lidiar con Filtros de Kalman, en mi caso para aplicaciones en metrología.
La mayoría de los sistemas modernos están equipados con numerosos sensores que proporcionan una estimación de variables ocultas (desconocidas) basadas en series de mediciones. Por ejemplo, el receptor GPS proporciona la estimación de la ubicación y la velocidad, donde la ubicación y la velocidad son las variables ocultas y el tiempo diferencial de llegada de las señales del satélite son las mediciones.
Uno de los mayores desafíos del sistema de seguimiento y control es proporcionar una estimación exacta y precisa de las variables ocultas en presencia de incertidumbre. En el receptor GPS, la incertidumbre de las mediciones depende de muchos factores externos como el ruido térmico, los efectos atmosféricos, los ligeros cambios en las posiciones del satélite, la precisión del reloj del receptor y muchos más.
El Filtro de Kalman es uno de los algoritmos de estimación más importantes y comunes. El filtro de Kalman produce estimaciones de variables ocultas basadas en mediciones inexactas e inciertas. Además, el filtro de Kalman proporciona una predicción del estado futuro del sistema, basado en estimaciones pasadas.
El filtro lleva el nombre de Rudolf E. Kalman (19 de mayo de 1930 – 2 de julio de 2016). En 1960, Kalman publicó su famoso artículo que describe una solución recursiva al problema de filtrado lineal de datos discretos.
Hoy en día, el filtro Kalman se utiliza en objetivos de seguimiento (radar), sistemas de localización y navegación, sistemas de control, gráficos por computadora y mucho más.
Antes de sumergirnos en la explicación del filtro Kalman, primero comprendamos la necesidad del algoritmo de predicción.
Como ejemplo, supongamos un algoritmo de seguimiento de radar.
Un radar de seguimiento envía un haz en la dirección del objetivo. Asumamos el ciclo de seguimiento de 5 segundos. Por lo tanto, cada 5 segundos, el radar vuelve a enviar el haz de seguimiento en dirección del objetivo.
Después de enviar el haz, el radar estima la posición y velocidad del objetivo actual. Además, el radar estima (o predice) la posición del objetivo en el momento de la próxima emisión del haz de seguimiento.
La posición futura del objetivo se puede calcular fácilmente utilizando las ecuaciones de movimiento de Newton:
\( x \) | es la posición de objetivo |
\( x_{0} \) | es la posición inicial del objetivo |
\( v_{0} \) | es la velocidad inicial del objetivo |
\( a \) | es la aceleración del objetivo |
\( \Delta t \) | es el intervalo de tiempo entre los dos envios de haz ( 5 segundos en nuestro ejemplo) |
En tres dimensiones, las ecuaciones de movimiento de Newton se pueden escribir como un sistema de ecuaciones:
Los parámetros del objetivo \( \left[ x, y, z, v_{x},v_{y},v_{z},a_{x},a_{y},a_{z} \right] \) se denominan estado del sistema. El estado actual es la entrada al algoritmo de predicción y el siguiente estado (los parámetros del objetivo en el siguiente intervalo de tiempo) es la salida del algoritmo.
El conjunto de ecuaciones anterior se denomina Modelo Dinámico (o Modelo de Espacio de Estado). El Modelo Dinámico describe la relación entre entrada y salida.
Volvamos nuestro ejemplo. Como podemos ver, si se conoce el estado actual y el modelo dinámico, el próximo estado objetivo puede predecirse fácilmente.
Pues no lo es. En primer lugar, la medición del radar no es absoluta. Incluye un error aleatorio (o incertidumbre). La magnitud del error depende de muchos parámetros, como la calibración del radar, el ancho del haz, la magnitud del eco de retorno, etc. El error incluido en la medición se denomina Ruido de medición.
Además, el movimiento del objetivo no está estrictamente alineado con las ecuaciones de movimiento debido a factores externos como el viento, la turbulencia del aire, las maniobras del piloto, etc. El error dinámico del modelo (o incertidumbre) se denomina Ruido del proceso.
Debido al ruido de medición y al ruido del proceso, la posición del objetivo estimada puede estar muy lejos de la su posición real. En este caso, el radar enviará el haz de seguimiento en una dirección incorrecta y perderá al objetivo.
Para mejorar el rendimiento del seguimiento por radar, es necesario un algoritmo de predicción que tenga en cuenta la incertidumbre del proceso y la incertidumbre de medición.
El algoritmo de predicción más utilizado es el filtro de Kalman.