Open Source Robotics

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

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

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