Moving horizon estimation
- Aussi appelé: MHE, receding horizon estimation
- Catégorie: State estimation & navigation › Localisation
- Mots-clés: state-estimation, optimization, parameter-estimation, sensor-fusion, model-predictive-control
Un estimateur d'état fondé sur l'optimisation qui ajuste un modèle dynamique aux mesures d'une fenêtre glissante de pas de temps récents, résout à nouveau à chaque pas et peut imposer des contraintes.
Définition
Estimation à horizon glissant (Moving horizon estimation, MHE) : méthode qui estime l'état courant d'un système, et éventuellement des paramètres ou des perturbations inconnus, en résolvant un problème d'optimisation sur une fenêtre des N mesures les plus récentes. Les variables de décision sont les états sur toute la fenêtre ou, de façon équivalente, le premier état plus le bruit de processus à chaque pas. Le coût pénalise l'écart entre les sorties prédites et mesurées, l'amplitude du bruit de processus nécessaire pour expliquer les données, et l'écart du premier état de la fenêtre par rapport à une estimation a priori. Au pas de temps suivant, la fenêtre avance d'un échantillon, la mesure la plus ancienne est abandonnée et le problème est résolu à nouveau.
Le terme qui ancre le premier état de la fenêtre s'appelle le coût d'arrivée (arrival cost). Il tient lieu de toutes les mesures qui ont déjà quitté la fenêtre. Avec un modèle linéaire, un bruit gaussien, sans contraintes et avec un coût d'arrivée exact, la MHE donne la même estimation que le filtre de Kalman. En pratique, le coût d'arrivée est approché, souvent par une mise à jour de covariance de filtre de Kalman étendu ou par un poids quadratique fixe, et la longueur de la fenêtre est choisie pour équilibrer qualité d'estimation et calcul.
La MHE est souvent décrite comme le pendant, côté estimation, de la commande prédictive : la MPC optimise sur un horizon futur pour choisir les commandes, tandis que la MHE optimise sur un horizon passé pour expliquer les mesures. Ses avantages sur les filtres récursifs sont qu'elle peut imposer des contraintes dures, comme des masses positives, des limites articulaires ou des forces de contact à l'intérieur des cônes de frottement, et qu'elle relinéarise toute la fenêtre à chaque résolution au lieu de s'en tenir à une seule linéarisation par pas, ce qui aide avec les modèles fortement non linéaires. Le prix à payer est une résolution de moindres carrés non linéaires à chaque pas de temps ; les implémentations temps réel reposent donc sur des solveurs qui exploitent la structure, des initialisations à chaud et un nombre limité d'itérations par pas. Ajouter des paramètres du modèle à l'état estimé fait de la MHE un outil d'identification de système en ligne ; c'est ainsi que l'article Parameterized DDP l'utilise.
Pourquoi c'est important
De nombreux problèmes d'estimation en robotique comportent des contraintes et des non-linéarités que les filtres récursifs gèrent mal. La MHE se situe entre un filtre et un lisseur par lots complet : elle utilise une fenêtre de données et un optimiseur tout en gardant un calcul borné, ce qui la rend pratique pour estimer les états et les paramètres qui alimentent un contrôleur prédictif.
Applications principales
- Estimation en ligne de la masse de la charge utile, du frottement et d'autres paramètres pour la MPC
- Estimation d'état sous contraintes pour les robots à pattes en contact
- Estimation de l'état et des perturbations de véhicules et de drones
- Fusion de capteurs avec des mesures retardées ou irrégulières
- Détection de défauts et d'anomalies à partir des résidus du modèle
En pratique
Une équipe qui construit un manipulateur aérien veut estimer la masse et le centre de masse d'une charge utile inconnue après l'avoir saisie. Elle ajoute ces paramètres à l'état d'un problème de MHE qui utilise la dernière fraction de seconde de données d'IMU, de vitesse des moteurs et de pose, avec des contraintes qui maintiennent la masse positive et le centre de masse à portée de la pince. À chaque cycle de commande, le solveur est initialisé à chaud à partir de la fenêtre précédente décalée d'un échantillon et exécute quelques itérations de Gauss-Newton dans un solveur à génération de code comme acados ; les estimations sont transmises à la MPC de vol. Le réglage du poids du coût d'arrivée est le principal compromis : trop faible, les estimations sont bruitées ; trop élevé, elles réagissent lentement quand la charge utile change.
Idées reçues
- La MHE est un filtre de Kalman avec un tampon de données — elle résout une optimisation sur toute la fenêtre à chaque pas, peut imposer des contraintes et relinéarise la fenêtre entière
- L'information hors de la fenêtre est simplement perdue — le coût d'arrivée la transmet, mais seulement de façon approchée
- Une fenêtre plus longue est toujours meilleure — les fenêtres plus longues coûtent plus de calcul et peuvent ralentir la réponse aux changements réels, surtout lorsque les paramètres sont modélisés comme constants
Qui devrait le savoir
- Ingénieurs en estimation d'état
- Ingénieurs en commande prédictive
- Développeurs de robots aériens et de robots à pattes
- Chercheurs travaillant sur l'identification de système en ligne
Technologies associées
- acados
- CasADi
- Filtre de Kalman (Kalman Filter)
- Lissage par graphe de facteurs (Factor Graph Smoothing)
- Méthode de Gauss-Newton (Gauss-Newton Method)
Termes associés
- Extended Kalman Filter
- Model Predictive Control
- Pose Graph Optimization
- Sensor Fusion
- Differential dynamic programming
- System Identification
Projets associés
- 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
Vidéos
- Moving Horizon Estimation in MATLAB, Python, and Simulink: APMonitor.com