Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Moving horizon estimation

  • Detto anche: MHE, receding horizon estimation
  • Categoria: State estimation & navigation › Localisation
  • Tag: state-estimation, optimization, parameter-estimation, sensor-fusion, model-predictive-control

Uno stimatore di stato basato sull'ottimizzazione che adatta un modello dinamico alle misure di una finestra scorrevole di passi temporali recenti, risolvendo di nuovo a ogni passo e in grado di imporre vincoli.

Definizione

Stima a orizzonte mobile (MHE) (moving horizon estimation) stima lo stato corrente di un sistema, ed eventualmente parametri o disturbi sconosciuti, risolvendo un problema di ottimizzazione su una finestra delle N misure più recenti. Le variabili decisionali sono gli stati lungo la finestra o, in modo equivalente, il primo stato più il rumore di processo a ogni passo. Il costo penalizza lo scarto tra uscite previste e misurate, l'entità del rumore di processo necessario a spiegare i dati e lo scostamento del primo stato della finestra da una stima a priori. Al passo temporale successivo la finestra avanza di un campione, la misura più vecchia viene scartata e il problema viene risolto di nuovo.

Il termine che ancora il primo stato della finestra si chiama costo di arrivo (arrival cost). Rappresenta tutte le misure che sono già uscite dalla finestra. Con un modello lineare, rumore gaussiano, nessun vincolo e un costo di arrivo esatto, la MHE dà la stessa stima del filtro di Kalman. In pratica il costo di arrivo viene approssimato, spesso con un aggiornamento della covarianza di un filtro di Kalman esteso o con un peso quadratico fisso, e la lunghezza della finestra viene scelta per bilanciare la qualità della stima e il carico di calcolo.

La MHE viene spesso descritta come la controparte, per la stima, del controllo predittivo basato su modello: l'MPC ottimizza su un orizzonte futuro per scegliere i controlli, mentre la MHE ottimizza su un orizzonte passato per spiegare le misure. I suoi vantaggi rispetto ai filtri ricorsivi sono che può imporre vincoli rigidi, come masse positive, limiti dei giunti o forze di contatto dentro i coni di attrito, e che rilinearizza l'intera finestra a ogni risoluzione invece di vincolarsi a una linearizzazione per passo, il che aiuta con modelli fortemente non lineari. Il prezzo è la risoluzione di un problema ai minimi quadrati non lineare a ogni passo temporale, quindi le implementazioni in tempo reale si affidano a solver che sfruttano la struttura, ad avvii a caldo e a un numero limitato di iterazioni per passo. Aggiungere parametri del modello allo stato stimato trasforma la MHE in uno strumento di identificazione dei sistemi online, ed è così che la usa l'articolo su Parameterized DDP.

Perché è importante

Molti problemi di stima in robotica comportano vincoli e non linearità che i filtri ricorsivi gestiscono male. La MHE si colloca tra un filtro e uno smoother batch completo: usa una finestra di dati e un ottimizzatore, ma mantiene limitato il calcolo, il che la rende pratica per stimare stati e parametri che alimentano un controllore predittivo basato su modello.

Applicazioni principali

  • Stima online della massa del carico utile, dell'attrito e di altri parametri per l'MPC
  • Stima dello stato con vincoli per robot con gambe in contatto
  • Stima dello stato e dei disturbi di veicoli e droni
  • Fusione sensoriale con misure ritardate o irregolari
  • Rilevamento di guasti e anomalie dai residui del modello

In pratica

Un team che sviluppa un manipolatore aereo vuole stimare la massa e il centro di massa di un carico utile sconosciuto dopo averlo afferrato. Aggiunge questi parametri allo stato di un problema di MHE che usa l'ultima frazione di secondo di dati dell'IMU, della velocità dei motori e della posa, con vincoli che mantengono la massa positiva e il centro di massa entro il raggio d'azione della pinza. A ogni ciclo di controllo il solver viene avviato a caldo dalla finestra precedente spostata di un campione ed esegue alcune iterazioni di Gauss-Newton in un solver a codice generato come acados, e le stime vengono passate all'MPC di volo. Tarare il peso del costo di arrivo è il compromesso principale: troppo basso e le stime sono rumorose; troppo alto e reagiscono lentamente quando il carico utile cambia.

Idee sbagliate comuni

  • La MHE è un filtro di Kalman con un buffer di dati — risolve un'ottimizzazione sull'intera finestra a ogni passo, può imporre vincoli e rilinearizza la finestra completa
  • L'informazione fuori dalla finestra va semplicemente persa — il costo di arrivo la porta avanti, anche se solo in modo approssimato
  • Una finestra più lunga è sempre meglio — le finestre più lunghe costano più calcolo e possono rallentare la risposta a cambiamenti reali, soprattutto quando i parametri sono modellati come costanti

Chi dovrebbe saperlo

  • Ingegneri di stima dello stato
  • Ingegneri di controllo predittivo basato su modello
  • Sviluppatori di robot aerei e con gambe
  • Ricercatori che lavorano sull'identificazione dei sistemi online

Tecnologie correlate

  • acados
  • CasADi
  • Filtro di Kalman (Kalman Filter)
  • Smoothing con grafi di fattori (Factor Graph Smoothing)
  • Metodo di Gauss-Newton (Gauss-Newton Method)

Termini correlati

  • Extended Kalman Filter
  • Model Predictive Control
  • Pose Graph Optimization
  • Sensor Fusion
  • Differential dynamic programming
  • System Identification

Progetti correlati

  • 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

Video

  • Moving Horizon Estimation in MATLAB, Python, and Simulink: APMonitor.com

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.