¿Existe un filtro mejor o una modificación al filtro de Kalman que pueda aprovechar tener todos los datos durante la trayectoria a la vez?

Estoy tratando de reconstruir la trayectoria de un objeto con una IMU atada a bordo para hacer navegación a estima. Un filtro de Kalman parece estar en orden. Pero el filtro de Kalman parece estar orientado hacia actualizaciones de posición en tiempo real. Sin embargo, tengo el lujo de no tener que averiguar la posición del objeto mientras se mueve. Al final de la ruta, tendré todos los datos (giroscopios, acelerómetros y tal vez magnetómetros) que puedo usar para calcular la ruta. ¿Hay algo mejor que Kalman que se pueda usar?

En este momento tengo una comprensión superficial del filtro de Kalman, así que perdónenme si esta pregunta es un poco tonta. No quería involucrarme con el filtro de Kalman si es subóptimo.

Creo que el filtro de Kalman sigue siendo el óptimo, ya que no hay ninguna ventaja en tener los datos futuros ya que la posición "actual" solo depende del pasado. A menos que tenga algún sensor periódico de posición precisa...
@Eugene Esto me recuerda un poco al decodificador Viterbi. Para ello, la posición final es útil, ya que elimina algunos de los estados. No estoy seguro de cómo encajaría esto en la teoría del filtro de Kalman.
@AndrejaKo Si tenemos la lectura precisa de la posición final, definitivamente ayudaría. Aunque no estoy seguro de las matemáticas :)
Creo que la asimilación de datos es el proceso del que estás hablando.
El filtro de Kalman es óptimo para datos no estacionarios. Cuando se conocen todos los datos, un filtro Wiener es óptimo. (Vista simplista, Kalman es como un filtro de respuesta de impulso infinito y Wiener es una solución de respuesta finita para el mismo problema).
@ user1831847 Supongo que es la respuesta.
¿Qué datos de medición adicionales tiene una vez que se completa la ruta?

Respuestas (2)

El filtro de Kalman hace más que simplemente "filtrar". Elimina la ambigüedad de las aceleraciones de traslación de las reorientaciones con respecto a la gravedad, y utiliza entradas de acelerómetros y giroscopios para producir algo que se asemeje a la verdadera posición en el espacio. No puede hacer eso con filtros de una sola entrada y una sola salida.

¿De dónde vino la restricción en el número de insumos?
No es una restricción, es que convertir tales señales en posición y orientación físicas está inherentemente mal planteado.
Bueno, probablemente tengamos diferentes interpretaciones de la pregunta. Lo leí como "Para las mediciones actuales y pasadas, tenemos un filtro de Kalman para aproximar de manera óptima los <valores de lo que sea> actuales y pasados . ¿Existe un método mejor para aproximar la historia completa del <valor de lo que sea> dado que tenemos todos de las medidas históricas".

Puedes probar filtfilt en Matlab. Filtra los datos hacia adelante con el filtro FIR de su elección y luego los vuelve hacia atrás. Los datos filtrados no tienen retraso ni cambio de fase, en comparación con todos los filtros en tiempo real. filtfilt prácticamente determina el límite y las condiciones iniciales, por lo que se adapta al primer y último dato en la tabla/búfer de datos.

EDITAR:

https://github.com/xioTechnologies/Oscillatory-Motion-Tracking-With-x-IMU/blob/master/Script.m

Encontré un ejemplo de matlab de xio Technologies. El tipo es el famoso Madgwick, autor del algoritmo IMU de fusión utilizado en cuadricópteros. Bueno, de hecho, también usa filtfilt para calcular datos en Matlab.

filtfilt puede hacer filtros FIR e IIR, muy bien.