Gli ingegneri del MIT escogitano un metodo per migliorare qualsiasi sistema robotico autonomo
Un nuovo ottimizzatore per uso generico può accelerare la progettazione di robot ambulanti, veicoli a guida autonoma e altri sistemi autonomi.
Un nuovo strumento di ottimizzazione generico può migliorare le prestazioni di molti sistemi robotici autonomi. Qui viene mostrata una dimostrazione hardware in cui lo strumento ottimizza automaticamente le prestazioni di due robot che lavorano insieme per spostare una scatola pesante.
I robot autonomi hanno fatto molta strada dai fastidiosi Roomba. Negli ultimi anni, i sistemi artificialmente intelligenti sono stati implementati in auto a guida autonoma, consegna di cibo nell’ultimo miglio, servizio di ristorazione, screening dei pazienti, pulizia ospedaliera, preparazione dei pasti, sicurezza degli edifici e imballaggio del magazzino.
Ciascuno di questi sistemi robotici è il prodotto di un processo di progettazione ad hoc specifico per quel particolare sistema. Nella progettazione di un robot autonomo, gli ingegneri devono eseguire innumerevoli simulazioni per tentativi ed errori, spesso informati dall’intuizione. Queste simulazioni sono personalizzate per i componenti e le attività di un particolare robot, al fine di ottimizzare e ottimizzare le sue prestazioni. Per alcuni aspetti, progettare un robot autonomo oggi è come cuocere una torta da zero, senza ricetta o mix preparato per garantire un risultato di successo.
Ora, gli ingegneri del MIT hanno sviluppato uno strumento di progettazione generale per i robotici da utilizzare come una sorta di ricetta automatizzata per il successo. Il team ha ideato un codice di ottimizzazione che può essere applicato alle simulazioni di praticamente qualsiasi sistema robotico autonomo e può essere utilizzato per identificare automaticamente come e dove modificare un sistema per migliorare le prestazioni di un robot.
Il team ha dimostrato che lo strumento è stato in grado di migliorare rapidamente le prestazioni di due sistemi autonomi molto diversi: uno in cui un robot ha percorso un percorso tra due ostacoli e un altro in cui una coppia di robot ha lavorato insieme per spostare una scatola pesante.
I ricercatori sperano che il nuovo ottimizzatore per uso generico possa aiutare ad accelerare lo sviluppo di un’ampia gamma di sistemi autonomi, dai robot ambulanti e veicoli a guida autonoma, ai robot morbidi e abili e ai team di robot collaborativi.
Il team, composto da Charles Dawson, uno studente laureato del MIT, e ChuChu Fan, assistente professore presso il Dipartimento di Aeronautica e Astronautica del MIT, presenterà i suoi risultati alla fine di questo mese alla conferenza annuale Robotics: Science and Systems a New York.
Dawson e Fan si sono resi conto della necessità di uno strumento di ottimizzazione generale dopo aver osservato una vasta gamma di strumenti di progettazione automatizzati disponibili per altre discipline ingegneristiche.
“Se un ingegnere meccanico volesse progettare una turbina eolica, potrebbe utilizzare uno strumento CAD 3D per progettare la struttura, quindi utilizzare uno strumento di analisi agli elementi finiti per verificare se resisterà a determinati carichi”, afferma Dawson. “Tuttavia, mancano questi strumenti di progettazione assistita da computer per sistemi autonomi”.
Normalmente, un roboticista ottimizza un sistema autonomo sviluppando prima una simulazione del sistema e dei suoi numerosi sottosistemi interagenti, come la pianificazione, il controllo, la percezione e i componenti hardware. Quindi deve mettere a punto determinati parametri di ciascun componente ed eseguire la simulazione in avanti per vedere come si comporterebbe il sistema in quello scenario.
Solo dopo aver eseguito molti scenari attraverso tentativi ed errori, un roboticista può quindi identificare la combinazione ottimale di ingredienti per ottenere le prestazioni desiderate. È un processo noioso, eccessivamente personalizzato e dispendioso in termini di tempo che Dawson e Fan hanno cercato di capovolgere.
“Invece di dire: ‘Dato un design, qual è la performance?’ volevamo invertire questo per dire: ‘Date le prestazioni che vogliamo vedere, qual è il design che ci porta lì?’” spiega Dawson.
I ricercatori hanno sviluppato un framework di ottimizzazione, o un codice per computer, in grado di trovare automaticamente le modifiche che possono essere apportate a un sistema autonomo esistente per ottenere il risultato desiderato.
Il cuore del codice si basa sulla differenziazione automatica, o “autodiff”, uno strumento di programmazione sviluppato all’interno della comunità di apprendimento automatico e utilizzato inizialmente per addestrare le reti neurali. Autodiff è una tecnica che può “valutare la derivata” in modo rapido ed efficiente, o la sensibilità alla modifica di qualsiasi parametro in un programma per computer. Dawson e Fan si sono basati sui recenti progressi nella programmazione delle differenze automatiche per sviluppare uno strumento di ottimizzazione generico per sistemi robotici autonomi.
“Il nostro metodo ci dice automaticamente come fare piccoli passi da un progetto iniziale verso un progetto che raggiunga i nostri obiettivi”, afferma Dawson. “Usiamo autodiff per scavare essenzialmente nel codice che definisce un simulatore e capire come eseguire automaticamente questa inversione”.
Costruire robot migliori
Il team ha testato il nuovo strumento su due sistemi robotici autonomi separati e ha dimostrato che lo strumento ha migliorato rapidamente le prestazioni di ciascun sistema negli esperimenti di laboratorio, rispetto ai metodi di ottimizzazione convenzionali.
Il primo sistema comprendeva un robot su ruote incaricato di pianificare un percorso tra due ostacoli, sulla base dei segnali ricevuti da due fari posti in posizioni separate. Il team ha cercato di trovare il posizionamento ottimale dei fari che avrebbe prodotto un percorso chiaro tra gli ostacoli.
Hanno scoperto che il nuovo ottimizzatore ha rapidamente funzionato attraverso la simulazione del robot e ha identificato il miglior posizionamento dei beacon entro cinque minuti, rispetto ai 15 minuti dei metodi convenzionali.
Il secondo sistema era più complesso e comprendeva due robot su ruote che lavoravano insieme per spingere una scatola verso una posizione target. Una simulazione di questo sistema includeva molti più sottosistemi e parametri. Tuttavia, lo strumento del team ha identificato in modo efficiente i passaggi necessari ai robot per raggiungere il loro obiettivo, in un processo di ottimizzazione 20 volte più veloce rispetto agli approcci convenzionali.
“Se il tuo sistema ha più parametri da ottimizzare, il nostro strumento può fare ancora meglio e può risparmiare esponenzialmente più tempo”, afferma Fan. “È fondamentalmente una scelta combinatoria: all’aumentare del numero di parametri, aumentano anche le scelte e il nostro approccio può ridurlo in un colpo solo”.
Il team ha reso disponibile per il download l’ottimizzatore generale e prevede di perfezionare ulteriormente il codice da applicare a sistemi più complessi, come i robot progettati per interagire e lavorare insieme agli esseri umani.
“Il nostro obiettivo è consentire alle persone di costruire robot migliori”, afferma Dawson. “Stiamo fornendo un nuovo elemento costitutivo per l’ottimizzazione del loro sistema, in modo che non debbano ricominciare da zero”.
Questa ricerca è stata supportata, in parte, dalla Defense Science and Technology Agency di Singapore e dal MIT-IBM Watson AI Lab.