Model Predictive Control
- Detto anche: MPC, receding horizon control, model-based predictive control
- Categoria: Control › Feedback control
- Tag: control, optimization, legged-locomotion, trajectory-optimization, real-time-control, constraints
Strategia di controllo basata sull'ottimizzazione che usa un modello dinamico del sistema per prevederne il comportamento futuro su un orizzonte finito e calcola in tempo reale le azioni di controllo ottimali.
Definizione
Il controllo predittivo basato su modello (MPC) è una strategia di controllo avanzata che usa un modello matematico di un sistema per prevederne il comportamento futuro e ottimizzare le azioni di controllo su un orizzonte temporale finito. A ogni ciclo di controllo l'MPC risolve un problema di ottimizzazione vincolata: dato lo stato attuale del sistema, trova la sequenza di ingressi di controllo che minimizza una funzione di costo (come l'errore di inseguimento o il consumo energetico) rispettando i vincoli su stati, ingressi e uscite. Si applica solo la prima azione di controllo della sequenza ottimale, e l'intero processo si ripete al passo temporale successivo con misure di stato aggiornate: una tecnica nota come controllo a orizzonte mobile (receding horizon control).
Il vantaggio principale dell'MPC rispetto ai controllori classici come il PID è la capacità di gestire esplicitamente i vincoli. Un regolatore PID reagisce agli errori dopo che si sono verificati e non può anticipare violazioni future dei vincoli. L'MPC, invece, guarda avanti e adatta le proprie azioni in modo proattivo per restare entro i limiti fisici: limiti di coppia dei giunti, limiti di velocità, confini degli ostacoli o margini di stabilità. Questa capacità predittiva lo rende particolarmente efficace per sistemi con dinamiche complesse e vincoli operativi stringenti.
Le formulazioni dell'MPC variano in base al modello di sistema usato. L'MPC lineare usa modelli lineari e si può risolvere in modo efficiente come programma quadratico, il che lo rende adatto al controllo in tempo reale a frequenze dell'ordine dei kilohertz. L'MPC non lineare (NMPC) usa modelli non lineari per una maggiore precisione, ma richiede un impegno di calcolo maggiore e gira tipicamente a 10-100 Hz a seconda delle dimensioni del problema. I recenti progressi negli algoritmi di ottimizzazione e nell'hardware di calcolo hanno reso l'NMPC praticabile per sistemi robotici sempre più complessi.
In robotica l'MPC è diventato l'approccio di controllo dominante per la locomozione con zampe. Robot quadrupedi e umanoidi usano l'MPC per pianificare le sequenze di appoggio dei piedi, mantenere l'equilibrio e adattarsi a terreni irregolari, il tutto rispettando i vincoli del cono di attrito che impediscono lo slittamento. I robot di Boston Dynamics, il MIT Mini Cheetah e i quadrupedi di Unitree si basano tutti su varianti dell'MPC per i loro controllori di locomozione. L'approccio è altrettanto prezioso per i veicoli autonomi, il volo dei droni e il controllo dei manipolatori industriali.
La sfida principale dell'MPC è il costo computazionale. Risolvere un problema di ottimizzazione a ogni ciclo di controllo richiede una notevole potenza di elaborazione, e il tempo di soluzione deve essere inferiore al periodo di controllo. Storicamente questo ha limitato l'MPC a processi lenti come gli impianti chimici, ma risolutori moderni come OSQP, ACADOS e CasADi hanno portato l'MPC in tempo reale nelle applicazioni robotiche, con frequenze di controllo di centinaia di hertz.
Perché è importante
L'MPC colma il divario tra la pianificazione della traiettoria offline e il controllo reattivo in tempo reale. È il motivo per cui i moderni robot con zampe possono camminare su terreni accidentati, i droni possono muoversi in spazi ristretti e i veicoli autonomi possono seguire la corsia rispettando i limiti di velocità: tutto questo anticipando il futuro anziché limitarsi a reagire al presente.
Applicazioni principali
- Locomozione dei robot con zampe: controllo dell'equilibrio, generazione dell'andatura e adattamento al terreno per quadrupedi e umanoidi
- Controllo dei veicoli autonomi: mantenimento della corsia, evitamento degli ostacoli e regolazione della velocità con i vincoli del traffico
- Controllo del volo dei droni: manovre aggressive, reiezione dei disturbi dovuti al vento e coordinamento di più droni
- Controllo dei manipolatori industriali: inseguimento preciso della traiettoria con limiti di coppia e di velocità
- Controllo di processo: impianti chimici, sistemi HVAC e gestione dell'energia, dove l'MPC è nato
- Controllo d'assetto dei veicoli spaziali: manovre di orientamento a consumo minimo di propellente con vincoli sui propulsori
In pratica
Una tipica implementazione dell'MPC per un robot quadrupede funziona così: lo stimatore di stato fornisce a 500 Hz la posizione, la velocità e l'orientamento attuali del corpo. Il controllore MPC prende questo stato, insieme a un comando di velocità desiderata dall'operatore, e risolve un modello dinamico semplificato (spesso un modello a corpo rigido singolo) per trovare le forze di reazione del suolo ottimali per ciascun piede nei successivi 0,5-1 secondi. Questa ottimizzazione gira a 30-100 Hz. Le traiettorie di forza risultanti passano a un controllore del corpo intero di livello inferiore o ad anelli PID dei giunti che applicano le forze a 500-1000 Hz.
Il MIT Mini Cheetah, uno dei quadrupedi di ricerca più noti, usa una formulazione MPC convessa che risolve un programma quadratico in meno di 3 millisecondi, consentendo trotto, galoppo a balzi e persino salti mortali all'indietro robusti. Questo ha dimostrato che l'MPC poteva uscire dal laboratorio e arrivare alla locomozione robotica dinamica ad alta velocità.
Idee sbagliate comuni
- L'MPC è troppo lento per la robotica in tempo reale: i risolutori moderni raggiungono frequenze di controllo dell'ordine dei kilohertz per l'MPC lineare e oltre 100 Hz per l'MPC non lineare
- L'MPC sostituisce completamente i regolatori PID: in pratica l'MPC genera spesso traiettorie di riferimento che i regolatori PID dell'anello interno inseguono
- L'MPC richiede un modello perfetto: l'MPC è intrinsecamente robusto a errori di modello moderati perché ripianifica a ogni passo temporale usando misure di stato aggiornate
- L'MPC serve solo per processi lenti come gli impianti chimici: è nato lì, ma oggi controlla alcuni dei sistemi robotici più veloci, tra cui droni e robot che corrono
Chi dovrebbe saperlo
- Ingegneri robotici che lavorano sulla locomozione con zampe o sui robot mobili
- Ingegneri dei sistemi di controllo che progettano controllori in retroazione avanzati
- Sviluppatori di veicoli autonomi che implementano pianificazione del movimento e controllo
- Ingegneri di droni che hanno bisogno di un controllo del volo agile
- Dottorandi e studenti magistrali di robotica o di teoria del controllo
Tecnologie correlate
- Programmazione quadratica
- Ottimizzazione convessa
- OSQP
- CasADi
- ACADOS
- Algebra lineare
- Ottimizzazione della traiettoria
Progetti correlati
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions
Video
- Model Predictive Control: Steve Brunton
- Why Use Model Predictive Control? | Understanding MPC, Part 1: MATLAB