Moving horizon estimation
- También llamado: MHE, receding horizon estimation
- Categoría: State estimation & navigation › Localisation
- Etiquetas: state-estimation, optimization, parameter-estimation, sensor-fusion, model-predictive-control
Un estimador de estado basado en optimización que ajusta un modelo dinámico a las mediciones de una ventana deslizante de pasos de tiempo recientes, resolviendo de nuevo en cada paso y capaz de imponer restricciones.
Definición
Estimación de horizonte móvil (MHE) (moving horizon estimation) estima el estado actual de un sistema, y opcionalmente parámetros o perturbaciones desconocidos, resolviendo un problema de optimización sobre una ventana de las N mediciones más recientes. Las variables de decisión son los estados a lo largo de la ventana o, de forma equivalente, el primer estado más el ruido de proceso en cada paso. El coste penaliza la discrepancia entre las salidas predichas y las medidas, la magnitud del ruido de proceso necesario para explicar los datos y la desviación del primer estado de la ventana respecto a una estimación previa. En el siguiente paso de tiempo la ventana avanza una muestra, se descarta la medición más antigua y el problema se resuelve de nuevo.
El término que ancla el primer estado de la ventana se llama coste de llegada (arrival cost). Representa todas las mediciones que ya han salido de la ventana. Con un modelo lineal, ruido gaussiano, sin restricciones y un coste de llegada exacto, MHE da la misma estimación que el filtro de Kalman. En la práctica el coste de llegada se aproxima, a menudo con una actualización de covarianza de un filtro de Kalman extendido o con un peso cuadrático fijo, y la longitud de la ventana se elige para equilibrar la calidad de la estimación frente al cómputo.
MHE se describe a menudo como la contraparte de estimación del control predictivo basado en modelo: MPC optimiza sobre un horizonte futuro para elegir controles, mientras que MHE optimiza sobre un horizonte pasado para explicar las mediciones. Sus ventajas frente a los filtros recursivos son que puede imponer restricciones duras, como masas positivas, límites articulares o fuerzas de contacto dentro de los conos de fricción, y que relinealiza toda la ventana en cada resolución en lugar de comprometerse con una linealización por paso, lo que ayuda con modelos fuertemente no lineales. El precio es una resolución de mínimos cuadrados no lineales en cada paso de tiempo, así que las implementaciones en tiempo real se apoyan en solvers que explotan la estructura, inicializaciones en caliente y un número limitado de iteraciones por paso. Añadir parámetros del modelo al estado estimado convierte MHE en una herramienta de identificación de sistemas en línea, que es como la usa el artículo de Parameterized DDP.
Por qué importa
Muchos problemas de estimación en robótica implican restricciones y no linealidades que los filtros recursivos manejan mal. MHE se sitúa entre un filtro y un suavizador por lotes completo: usa una ventana de datos y un optimizador, pero mantiene el cómputo acotado, lo que la hace práctica para estimar estados y parámetros que alimentan un controlador predictivo basado en modelo.
Aplicaciones clave
- Estimación en línea de la masa de la carga útil, la fricción y otros parámetros para MPC
- Estimación de estado con restricciones para robots con patas en contacto
- Estimación del estado y de las perturbaciones de vehículos y drones
- Fusión de sensores con mediciones retrasadas o irregulares
- Detección de fallos y anomalías a partir de los residuos del modelo
En la práctica
Un equipo que construye un manipulador aéreo quiere estimar la masa y el centro de masa de una carga útil desconocida después de agarrarla. Añade estos parámetros al estado de un problema de MHE que usa la última fracción de segundo de datos de la IMU, de la velocidad de los motores y de la pose, con restricciones que mantienen la masa positiva y el centro de masa dentro del alcance de la pinza. En cada ciclo de control, el solver se inicializa en caliente a partir de la ventana anterior desplazada una muestra y ejecuta unas pocas iteraciones de Gauss-Newton en un solver generado por código como acados, y las estimaciones se pasan al MPC de vuelo. Ajustar el peso del coste de llegada es el principal compromiso: demasiado bajo y las estimaciones son ruidosas; demasiado alto y reaccionan con lentitud cuando cambia la carga útil.
Ideas erróneas comunes
- MHE es un filtro de Kalman con un búfer de datos — resuelve una optimización sobre toda la ventana en cada paso, puede imponer restricciones y relinealiza la ventana completa
- La información fuera de la ventana simplemente se pierde — el coste de llegada la arrastra hacia adelante, aunque solo de forma aproximada
- Una ventana más larga siempre es mejor — las ventanas más largas cuestan más cómputo y pueden ralentizar la respuesta a cambios reales, sobre todo cuando los parámetros se modelan como constantes
Quién debería saberlo
- Ingenieros de estimación de estado
- Ingenieros de control predictivo basado en modelo
- Desarrolladores de robots aéreos y con patas
- Investigadores que trabajan en identificación de sistemas en línea
Tecnologías relacionadas
- acados
- CasADi
- Filtro de Kalman (Kalman Filter)
- Suavizado con grafos de factores (Factor Graph Smoothing)
- Método de Gauss-Newton (Gauss-Newton Method)
Términos relacionados
- Extended Kalman Filter
- Model Predictive Control
- Pose Graph Optimization
- Sensor Fusion
- Differential dynamic programming
- System Identification
Proyectos relacionados
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- OpenVINS: The reference open platform for visual-inertial state estimation research
- manif: Header-only C++ Lie theory library for robotics state estimation
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
Vídeos
- Moving Horizon Estimation in MATLAB, Python, and Simulink: APMonitor.com