Impilando il nostro modo per robot più generali

'Impilando robot più generali'

Introduzione a RGB-Stacking come nuovo punto di riferimento per la manipolazione robotica basata sulla visione

Raccogliere un bastone e bilanciarlo su un tronco o impilare un sasso su un altro potrebbero sembrare azioni semplici – e piuttosto simili – per una persona. Tuttavia, la maggior parte dei robot fatica ad affrontare più di un compito del genere contemporaneamente. Manipolare un bastone richiede un diverso insieme di comportamenti rispetto all’impilare pietre, figuriamoci impilare vari piatti uno sopra l’altro o assemblare mobili. Prima di poter insegnare ai robot come eseguire questo tipo di compiti, devono prima imparare come interagire con una gamma molto più ampia di oggetti. Come parte della missione di DeepMind e come passo verso la creazione di robot più generalizzabili e utili, stiamo esplorando come consentire ai robot di comprendere meglio le interazioni degli oggetti con geometrie diverse.

In un articolo che verrà presentato alla CoRL 2021 (Conference on Robot Learning) e disponibile ora come preprint su OpenReview, presentiamo RGB-Stacking come nuovo punto di riferimento per la manipolazione robotica basata sulla visione. In questo punto di riferimento, un robot deve imparare come afferrare diversi oggetti e bilanciarli uno sopra l’altro. Ciò che distingue la nostra ricerca dai lavori precedenti è la diversità degli oggetti utilizzati e il gran numero di valutazioni empiriche effettuate per convalidare le nostre scoperte. I nostri risultati dimostrano che una combinazione di simulazione e dati del mondo reale può essere utilizzata per apprendere la manipolazione complessa di oggetti multipli e suggeriscono una forte base di riferimento per il problema aperto della generalizzazione a nuovi oggetti. Per supportare altri ricercatori, stiamo rendendo open source una versione del nostro ambiente simulato e rilasciando i progetti per la costruzione del nostro ambiente reale di stacking RGB-robot, insieme ai modelli di oggetti RGB e alle informazioni per la stampa 3D. Stiamo anche rendendo open source una collezione di librerie e strumenti utilizzati più ampiamente nella nostra ricerca sulla robotica.

Punto di riferimento RGB-Stacking

Con RGB-Stacking, il nostro obiettivo è addestrare un braccio robotico tramite apprendimento per rinforzo per impilare oggetti di diverse forme. Posizioniamo una pinza parallela collegata a un braccio robot sopra un cesto e tre oggetti nel cesto – uno rosso, uno verde e uno blu, da cui il nome RGB. Il compito è semplice: impilare l’oggetto rosso sopra l’oggetto blu entro 20 secondi, mentre l’oggetto verde funge da ostacolo e distrazione. Il processo di apprendimento garantisce che l’agente acquisisca competenze generalizzate attraverso l’allenamento su più insiemi di oggetti. Variamo intenzionalmente le possibilità di afferrare e impilare – le qualità che definiscono come l’agente può afferrare e impilare ciascun oggetto. Questo principio di progettazione costringe l’agente a mostrare comportamenti che vanno oltre una semplice strategia di prendere e posizionare.

Ogni tripletta presenta sfide uniche per l'agente: la Tripletta 1 richiede un afferramento preciso dell'oggetto superiore; la Tripletta 2 richiede spesso che l'oggetto superiore venga utilizzato come strumento per capovolgere l'oggetto inferiore prima di impilare; la Tripletta 3 richiede bilanciamento; la Tripletta 4 richiede un impilamento preciso (cioè i centroidi degli oggetti devono allinearsi); e l'oggetto superiore della Tripletta 5 può rotolare facilmente se non impilato delicatamente. Nella valutazione delle sfide di questo compito, abbiamo scoperto che il nostro basale codificato a mano aveva un tasso di successo del 51% nell'impilamento.

Il nostro punto di riferimento RGB-Stacking include due versioni di compiti con diversi livelli di difficoltà. In “Skill Mastery”, il nostro obiettivo è addestrare un singolo agente esperto nell’impilamento di un insieme predefinito di cinque triplette. In “Skill Generalisation”, utilizziamo le stesse triplette per la valutazione, ma addestriamo l’agente su un ampio set di oggetti di addestramento – per un totale di oltre un milione di triplette possibili. Per testare la generalizzazione, questi oggetti di addestramento escludono la famiglia di oggetti da cui sono state scelte le triplette di test. In entrambe le versioni, suddividiamo il nostro processo di apprendimento in tre fasi:

  • Prima di tutto, ci alleniamo in simulazione utilizzando un algoritmo RL predefinito: Maximum a Posteriori Policy Optimisation (MPO). In questa fase, utilizziamo lo stato del simulatore, consentendo un addestramento rapido poiché le posizioni degli oggetti vengono fornite direttamente all’agente anziché l’agente che deve imparare a individuare gli oggetti nelle immagini. La policy risultante non è direttamente trasferibile al robot reale poiché queste informazioni non sono disponibili nel mondo reale.
  • Successivamente, addestriamo una nuova policy in simulazione che utilizza solo osservazioni realistiche: immagini e stato propriocettivo del robot. Utilizziamo una simulazione con dominio randomizzato per migliorare il trasferimento alle immagini e alla dinamica del mondo reale. La policy di stato funge da insegnante, fornendo all’agente di apprendimento correzioni ai suoi comportamenti, e queste correzioni vengono distillate nella nuova policy.
  • Infine, raccogliamo dati utilizzando questa policy su robot reali e addestriamo una policy migliorata da questi dati offline pesando le buone transizioni basate su una funzione Q appresa, come viene fatto in Critic Regularised Regression (CRR). Ciò ci consente di utilizzare i dati raccolti passivamente durante il progetto anziché eseguire un algoritmo di addestramento online che richiede molto tempo sui robot reali.

La separazione del nostro flusso di apprendimento in questo modo si rivela cruciale per due motivi principali. In primo luogo, ci consente di risolvere il problema in generale, poiché richiederebbe semplicemente troppo tempo se dovessimo partire da zero direttamente sui robot. In secondo luogo, aumenta la velocità della nostra ricerca, poiché diverse persone nel nostro team possono lavorare su diverse parti del flusso di lavoro prima di combinare questi cambiamenti per un miglioramento complessivo.

Il nostro agente mostra comportamenti innovativi per impilare i 5 gruppi di oggetti. Il risultato migliore con Skill Mastery è stato un agente basato sulla visione che ha raggiunto il 79% di successo medio in simulazione (Fase 2), il 68% di successo senza addestramento sui robot reali (Fase 2) e l'82% dopo il miglioramento della policy di un solo passo dai dati reali (Fase 3). Lo stesso flusso di lavoro per Skill Generalisation ha portato a un agente finale che ha raggiunto il 54% di successo sui robot reali (Fase 3). Ridurre questo divario tra Skill Mastery e Generalisation rimane una sfida aperta.

Negli ultimi anni, sono stati fatti molti studi sull’applicazione di algoritmi di apprendimento per risolvere problemi di manipolazione di robot reali complessi su larga scala, ma il focus di tali studi è stato principalmente su compiti come la presa, la spinta o altre forme di manipolazione di singoli oggetti. L’approccio allo stack RGB che descriviamo nel nostro articolo, accompagnato dalle nostre risorse per la robotica ora disponibili su GitHub, porta a sorprendenti strategie di impilamento e padronanza dell’impilamento di un sottoinsieme di questi oggetti. Tuttavia, questo passo tocca solo la superficie di ciò che è possibile, e la sfida della generalizzazione non è ancora completamente risolta. Mentre i ricercatori continuano a lavorare per risolvere la sfida aperta della vera generalizzazione nella robotica, speriamo che questo nuovo benchmark, insieme all’ambiente, ai design e agli strumenti che abbiamo rilasciato, contribuiscano a nuove idee e metodi che rendano la manipolazione ancora più facile e i robot più capaci.