Robot Parkour Learning
Autori: Ziwen Zhuang, Zipeng Fu, Jianren Wang, Christopher Atkeson, Sören Schwertfeger, Chelsea Finn, Hang Zhao · CoRL 2023
Licenze
- Open access
- Articolo: CC BY 4.0
Tutto ciò che segue si basa sull'articolo completo secondo la sua licenza CC BY 4.0; la figura è riportata citando gli autori.
In breve
Un RL a due fasi (prima ostacoli penetrabili, poi collisioni reali) addestra cinque abilità di parkour; DAgger le distilla in un'unica policy su immagini di profondità che gira a bordo dei robot a basso costo Unitree A1 e Go1.
Perché è importante
La policy funziona usando solo calcolo, percezione di profondità e alimentazione a bordo su quadrupedi a basso costo, senza dati di movimento di riferimento, e la stessa pipeline di addestramento comanda due robot (A1 e Go1). Nei confronti degli autori, è il preaddestramento con vincoli morbidi ad aver reso possibile l'apprendimento della salita e del salto.
Problema
Il parkour richiede che un robot percepisca gli ostacoli e scelga tra abilità agili diversificate ad alta velocità, ma i precedenti metodi di apprendimento forniscono abilità diversificate ma cieche oppure basate sulla visione ma specializzate, usando funzioni di ricompensa con molti termini o dati di motion capture di animali privi di visione egocentrica. Per robot piccoli a basso costo gli ostacoli sono grandi rispetto alle dimensioni del corpo, la percezione di profondità a bordo è in ritardo durante i movimenti rapidi (0,2 s di ritardo a 1 m/s equivalgono a 0,2 m di errore), e il parkour porta i motori ai loro limiti.
Soluzione proposta
Ogni abilità (salire, saltare, strisciare, inclinarsi, correre) è addestrata in IsaacGym con PPO a partire da informazioni privilegiate sugli ostacoli e un'unica ricompensa per la velocità di avanzamento vicina a 1 m/s, l'energia meccanica e la sopravvivenza. La prima fase rende gli ostacoli penetrabili e penalizza volume e profondità di penetrazione con un curriculum automatico (vincoli dinamici morbidi, ispirati alla collocazione diretta); la seconda fase esegue un fine-tuning con collisioni reali. DAgger distilla poi i cinque specialisti in un'unica policy GRU che riceve la propriocezione e un'immagine di profondità 48×64, impiegata con una pre-elaborazione della profondità allineata e una saturazione della coppia a 25 Nm.
Idee chiave
- Lasciare che il robot attraversi gli ostacoli all'inizio, con una penalità di penetrazione e un curriculum automatico, risolve il problema dell'esplorazione: senza di esso, e con la baseline di esplorazione RND, non è stato appreso né a salire né a saltare.
- Un'unica ricompensa composta da avanzamento in avanti, potenza meccanica al quadrato e un bonus di sopravvivenza ha prodotto tutte e cinque le abilità senza tarare la ricompensa per ogni abilità né usare dati di movimento.
- La policy ha bisogno di memoria: durante la salita le zampe posteriori devono agire in base alle dimensioni dell'ostacolo viste in immagini di profondità precedenti, per cui la policy GRU riesce dove una policy MLP fallisce.
- Distillare nello spazio delle azioni con DAgger fonde specialisti con pesi di rete diversi in un'unica policy visiva, cosa che la distillazione nello spazio latente in stile RMA non può fare.
- Le immagini di profondità sono state allineate tra simulazione (clipping, rumore gaussiano, artefatti casuali) e telecamera reale (clipping, riempimento dei buchi, filtri spaziali e temporali); un comportamento di nuovo tentativo dopo salite fallite è emerso senza essere programmato.
Risultati principali
- Prove reali al chiuso con l'A1, 10 prove per configurazione: 80 % di successo nel salire 0,40 m (1,53× l'altezza del robot), 80 % nel saltare varchi di 0,60 m (1,5× la lunghezza del robot), 90 % nello strisciare sotto 0,2 m (0,76× l'altezza del robot) e passaggio attraverso fessure di 0,28 m inclinandosi; il migliore tra tutti i metodi confrontati, incluso il controllore MPC integrato dell'A1.
- Successo in simulazione della policy di parkour distillata (100 prove × 3 seed, ostacoli di test più difficili di quelli di addestramento): salire 86 %, saltare 80 %, strisciare 100 %, inclinarsi 73 %, correre 100 %.
- Baseline in simulazione: Blind 0 % nel salire, saltare e inclinarsi e 13 % nello strisciare; MLP 0 % nel salire e 1 % nel saltare; No Distill 0 % nel salire, saltare e inclinarsi; RMA, provato solo sull'inclinazione, 74 %.
- Gli oracoli specialisti addestrati con preaddestramento a dinamica morbida hanno raggiunto circa il 95 % di successo medio su salire, saltare, strisciare e inclinarsi; senza di esso, 0 % nel salire e saltare.
- All'aperto il robot ha saltato un varco di 0,6 m tra due sgabelli di pietra, è salito su gradini successivi da 0,42 m ed è strisciato sotto un carrello da campeggio.
- Costo di addestramento: ogni specialista 12 h con dinamica morbida più 6 h con dinamica rigida su una macchina con una Nvidia 3090; la distillazione su quattro macchine, ciascuna con una 3090.
Limiti
- Gli ambienti di simulazione sono costruiti a mano, quindi nuove abilità possono essere apprese solo aggiungendo nuovi ambienti di ostacoli alla simulazione (secondo gli autori).
- La policy usa solo la profondità; l'addestramento da RGB con informazioni semantiche è lasciato a lavori futuri (secondo gli autori).
- La profondità a bordo si aggiorna solo a 10 Hz a causa del calcolo limitato a bordo, mentre la policy gira a 50 Hz sull'ultimo embedding di profondità disponibile.
- I test quantitativi nel mondo reale sono stati eseguiti solo sull'A1, con 10 prove per configurazione; non viene indicato alcun tasso di successo reale per il compito di inclinazione da 0,28 m.
Impatto sul settore
Finalista del CoRL 2023 Best Systems Paper Award e citato 356 volte. Gli autori lo presentano come un sistema open source per addestrare e impiegare policy di locomozione agile; la pagina del progetto contiene il link al repository del codice.
Abstract
Il parkour è una grande sfida per la locomozione con gambe che richiede ai robot di superare rapidamente vari ostacoli in ambienti complessi. I metodi esistenti possono generare abilità di locomozione diversificate ma cieche, oppure abilità basate sulla visione ma specializzate, usando dati di riferimento di animali o ricompense complesse. Tuttavia, il parkour autonomo richiede che i robot apprendano abilità generalizzabili, sia basate sulla visione sia diversificate, per percepire e reagire a vari scenari. In questo lavoro proponiamo un sistema per apprendere un'unica policy di parkour end-to-end basata sulla visione, con abilità di parkour diversificate, usando una ricompensa semplice senza alcun dato di movimento di riferimento. Sviluppiamo un metodo di apprendimento per rinforzo ispirato alla collocazione diretta per generare abilità di parkour, tra cui scavalcare ostacoli alti, saltare varchi ampi, strisciare sotto barriere basse, passare attraverso fessure strette e correre. Distilliamo queste abilità in un'unica policy di parkour basata sulla visione e la trasferiamo a un robot quadrupede usando la sua telecamera di profondità egocentrica. Dimostriamo che il nostro sistema consente a due diversi robot a basso costo di selezionare ed eseguire autonomamente le abilità di parkour appropriate per attraversare ambienti reali impegnativi.
Link
- arXiv 2309.05665: https://arxiv.org/abs/2309.05665
- DOI 10.48550/arXiv.2309.05665: https://doi.org/10.48550/arXiv.2309.05665
- PDF: https://proceedings.mlr.press/v229/zhuang23a/zhuang23a.pdf
- Codice: https://github.com/ZiwenZhuang/parkour
- Pagina del progetto: https://robot-parkour.github.io/