Implementando un filtro de Kalman para posición, velocidad, aceleración

9

He usado filtros Kalman para varias cosas en el pasado, pero ahora estoy interesado en usar uno para rastrear la posición, la velocidad y la aceleración en el contexto del seguimiento de la posición para aplicaciones de teléfonos inteligentes. Me parece que este debería ser un ejemplo de libro de texto de un simple filtro lineal de Kalman, pero parece que no puedo encontrar ningún enlace en línea que discuta esto. Puedo pensar en varias formas de hacer esto, pero en lugar de investigarlo desde cero, tal vez alguien aquí pueda señalarme en la dirección correcta:

  1. ¿Alguien sabe la mejor manera de configurar este sistema? Por ejemplo, dada la historia reciente de las observaciones de posición, ¿cuál es la mejor manera de predecir el siguiente punto en el espacio de estado del filtro de Kalman? ¿Cuáles son las ventajas y desventajas de incluir la aceleración en el espacio de estado? Si todas las mediciones son de posición, entonces, si la velocidad y la aceleración están en el espacio de estado, ¿puede el sistema volverse inestable? Etc ...
  2. Alternativamente, ¿alguien sabe de una buena referencia para esta aplicación de filtros Kalman?
Gracias

Estocástico
fuente
Wikipedia tiene un ejemplo simple aquí . Es lo suficientemente simple como para obtener los detalles. Para responder a su primera pregunta, predice el siguiente estado utilizando el estado actual y su modelo dinámico del comportamiento del sistema.
Jason R
@JasonR gracias por el comentario, pero estoy buscando más de lo que está en Wikipedia. He usado filtros Kalman mucho antes, así que estoy buscando la mayor cantidad de detalles posible sobre los mejores enfoques y dificultades de esta aplicación en particular.
Estocástico
2
Los filtros de Kalman son un tema lo suficientemente maduro como para que le resulte difícil encontrar un ejemplo contemporáneo detallado como le gustaría. Brevemente: incluso si solo mide la posición, es valioso incluir derivados como la velocidad y la aceleración en su vector de estado. La cantidad de derivados que rastrea está relacionada con el orden polinómico de los cambios en el estado que su filtro podrá rastrear sin error estático.
Jason R
@JasonR muchas gracias, en ausencia de algo más, ese es ciertamente un puntero muy útil :-).
Estocástico
Esto no es exactamente lo que busca, pero esta respuesta a una pregunta similar puede ayudar.
Peter K.

Respuestas:

4

Este es el mejor que conozco

Derivación completa con explicación

Kalman

Este es un buen recurso para aprender sobre el filtro de Kalman. Si le preocupa más que la aplicación de teléfono inteligente funcione, le sugiero que busque una implementación preexistente del filtro Kalman. ¿Por qué reinventar la rueda? Por ejemplo, si está desarrollando para Android, OpenCV tiene una implementación del filtro Kalman. Ver Android OpenCV

Bradski y Kaehler es un buen recurso sobre el procesamiento de imágenes en general e incluye una sección sobre el filtro de Kalman que incluye ejemplos de código.

sav
fuente