Warm Start
- Detto anche: warm starting
- Categoria: Planning & manipulation › Trajectory optimisation
- Tag: optimization, model-predictive-control, trajectory-optimization, numerical-methods, real-time
Inizializzare un solver iterativo con una buona stima, spesso una soluzione precedente o correlata, invece di partire da zero, per ridurre il tempo di risoluzione e guidarlo verso un ottimo locale utile.
Definizione
Un avvio a caldo (warm start) inizializza un ottimizzatore iterativo o un solver numerico con informazioni provenienti da un problema correlato, anziché da un punto di partenza predefinito o arbitrario, che si chiama avvio a freddo. Le informazioni possono essere le variabili primali (le variabili decisionali stesse, come una traiettoria), le variabili duali o moltiplicatori di Lagrange, l'insieme attivo dei vincoli di disuguaglianza o approssimazioni come un'hessiana quasi-Newton. Poiché i problemi non lineari della robotica hanno di solito molti ottimi locali, il punto di partenza influisce non solo sulla velocità di convergenza di un solver, ma anche su quale soluzione trova.
Il controllo predittivo basato su modello è l'uso più comune. A ogni ciclo di controllo il controllore risolve un'ottimizzazione su un orizzonte che si sovrappone quasi interamente al precedente, per cui la soluzione precedente, spostata in avanti di un passo temporale e con l'ultimo passo prolungato, è già vicina al nuovo ottimo. Un avvio a caldo di questo tipo riduce spesso il solver a poche iterazioni per ciclo, e lo schema di iterazione in tempo reale di Diehl e colleghi va oltre eseguendo una sola iterazione di programmazione quadratica sequenziale per ciclo. I controllori basati sul campionamento, come MPPI e il metodo dell'entropia incrociata, eseguono l'avvio a caldo riutilizzando la sequenza di controllo media precedente.
Quanto aiuti un avvio a caldo dipende dal solver. I metodi a insieme attivo, come quello di qpOASES, e i metodi del primo ordine, come il solver ADMM OSQP, ne traggono un forte beneficio, perché una stima primale e duale vicina o un insieme attivo corretto permettono loro di terminare rapidamente. I metodi a punto interno sono più difficili da avviare a caldo, perché richiedono iterati strettamente all'interno della regione ammissibile e lontani dai bordi dei vincoli, dove di solito si trovano le soluzioni precedenti. Nell'ottimizzazione di traiettoria offline, un avvio a caldo può venire da un modello più semplice, da una discretizzazione più grossolana, da una versione rilassata del problema, da una libreria di soluzioni memorizzate o da una rete neurale addestrata a prevedere buone stime iniziali. Allo stesso modo, i motori fisici avviano a caldo i solver iterativi di contatto con gli impulsi del passo precedente. Nell'apprendimento automatico il termine si usa anche per l'inizializzazione dell'addestramento a partire da un modello addestrato in precedenza.
Perché è importante
I controllori in tempo reale basati sull'ottimizzazione funzionano a frequenze da decine a migliaia di hertz, e di solito raggiungono queste frequenze solo perché ogni risoluzione parte vicino alla propria risposta. Nella pianificazione offline, un buon avvio a caldo fa spesso la differenza tra un solver che converge a un movimento sensato e uno che fallisce o trova un minimo locale scadente.
Applicazioni principali
- Controllo predittivo basato su modello in tempo reale su robot con zampe, droni e manipolatori
- Ottimizzazione di traiettoria a contatto implicito e non lineare
- Sequenze di programmi quadratici correlati nel controllo del corpo intero
- Solver iterativi di contatto nei motori fisici
- Stime iniziali apprese per una pianificazione del movimento rapida
In pratica
Un robot con zampe esegue un MPC non lineare a 100 Hz. Dopo ogni risoluzione il controllore memorizza le traiettorie ottime di stato e di ingresso e i moltiplicatori. Al ciclo successivo le sposta di un passo, copia l'ultimo passo per riempire la fine dell'orizzonte, sostituisce il primo stato con lo stato appena misurato e passa il risultato al solver come stima iniziale. Le risoluzioni tipiche richiedono allora due o tre iterazioni invece di venti. Gli ingegneri gestiscono anche i casi in cui l'avvio a caldo fallisce: dopo una spinta forte o un cambio di andatura la stima spostata è lontana dal nuovo ottimo, quindi il controllore ripiega su una traiettoria nominale memorizzata per quell'andatura e concede più iterazioni in quel ciclo.
Idee sbagliate comuni
- Un avvio a caldo serve solo ad accelerare — nei problemi non convessi decide anche quale ottimo locale viene trovato, per cui un avvio a caldo scadente può bloccare il solver su una cattiva soluzione
- Ogni solver ne beneficia allo stesso modo — i metodi a insieme attivo e del primo ordine guadagnano di più; i metodi a punto interno guadagnano meno e possono richiedere accorgimenti specifici
- Un avvio a caldo richiede solo le variabili decisionali precedenti — fornire anche le variabili duali o l'insieme attivo conta spesso altrettanto per una convergenza rapida
- La soluzione precedente è sempre una buona stima — dopo grandi perturbazioni, cambi di modalità o cambi di obiettivo può essere lontana dal nuovo ottimo e serve una soluzione di ripiego
Chi dovrebbe saperlo
- Ingegneri del controllo predittivo basato su modello
- Sviluppatori di ottimizzazione di traiettoria
- Ingegneri della locomozione con zampe e del controllo dei droni
- Professionisti dell'ottimizzazione numerica in robotica
Tecnologie correlate
- OSQP
- qpOASES
- IPOPT
- acados
- CasADi
- Schema di iterazione in tempo reale (Real-Time Iteration Scheme)
Termini correlati
- Model Predictive Control
- Direct Collocation
- Differential dynamic programming
- Trajectory Planning
- Model Predictive Path Integral
- Complementarity Constraint
Progetti correlati
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- 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
- Dora AI: Dataflow middleware for AI robotics applications, built in Rust
- GTSAM: Factor-graph optimization library powering many modern SLAM backends