Open Source Robotics

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

NeRF2Real: Sim2real Transfer of Vision-guided Bipedal Motion Skills using Neural Radiance Fields

Autori: Arunkumar Byravan, Jan Humplik, Leonard Hasenclever, Arthur Brussee, Francesco Nori, Tuomas Haarnoja, Ben Moran, Steven Bohez, Fereshteh Sadeghi, Bojan Vujatovic, Nicolas Heess · ICRA 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 NeRF addestrato su un video da smartphone di 5-6 minuti fornisce la resa visiva e la mesh di collisione per una simulazione MuJoCo; le policy per umanoide solo RGB addestrate lì si trasferiscono zero-shot su un robot reale.

Perché è importante

La pipeline richiede solo il video di un comune smartphone per ricreare una scena visivamente realistica con una geometria di contatto utilizzabile, e addestra il controllo bipede del corpo intero a partire dalle sole immagini RGB, senza localizzazione né un controllore di basso livello separato. Nel compito di navigazione, il successo e il tempo per raggiungere l'obiettivo sul robot reale hanno rispecchiato da vicino la simulazione.

Problema

L'addestramento sim2real richiede simulazioni che corrispondano a come un robot vede e tocca una scena reale, ma modellare la geometria e l'aspetto di scene non strutturate è lento e di solito si affida a sistemi specializzati di scansione 3D che funzionano male all'aperto. Le telecamere RGB hanno un ampio divario sim2real, quindi i precedenti lavori di trasferimento della navigazione visiva si appoggiavano a sensori di profondità o LiDAR, alla localizzazione e a controllori di basso livello esistenti.

Soluzione proposta

Un breve video da smartphone viene suddiviso in circa 1000 keyframe, localizzato con COLMAP e usato per addestrare un NeRF; il NeRF renderizza la vista della telecamera del robot e la sua occupazione viene trasformata in una mesh di collisione con marching cubes, scalata e allineata al simulatore, con il pavimento sostituito da una superficie piana. MuJoCo simula il robot e gli oggetti dinamici noti (una palla), i cui rendering vengono sovrapposti all'immagine del NeRF, e DMPO addestra policy ricorrenti di visione e propriocezione con un critico asimmetrico, domain randomization e aumento dei dati sulle immagini.

Idee chiave

  • Un unico NeRF fornisce sia il rendering fotorealistico sia la geometria di contatto statica per una simulazione fisica, quindi un solo video da smartphone basta per costruire una scena di addestramento.
  • Sovrapporre all'immagine del NeRF i rendering del simulatore di oggetti dinamici noti (corpo del robot, palla) è sufficiente per i compiti testati, al prezzo di non gestire le occlusioni.
  • Modelli accurati di sensori e attuatori più una domain randomization limitata (spinte, latenza, massa aggiunta, offset dell'IMU) sono bastati perché l'andatura si trasferisse.
  • L'aumento dei dati sulle immagini non può sostituire la calibrazione della telecamera: la policy di navigazione era molto sensibile all'impostazione del guadagno della telecamera.
  • Le policy addestrate end-to-end hanno mantenuto un'andatura stabile anche quando la scena cambiava o la telecamera veniva oscurata, il che suggerisce che locomozione e comprensione della scena fossero in parte separate.

Risultati principali

  • Navigazione, input 60x80: 87±5 % di successo sul robot reale (47/54 episodi) contro 86±2 % in simulazione; tempo mediano 11,2±0,4 s nel reale contro 10,8±0,1 s in simulazione.
  • Navigazione, input 30x40: 69±6 % di successo sul robot reale (37/54 episodi) contro 73±3 % in simulazione; tempo mediano 10,3±0,4 s nel reale contro 10,3±0,3 s in simulazione.
  • Errore mediano di localizzazione della stima di posa della policy: 0,24±0,01 m e 0,27±0,04 m sul robot reale contro 0,17±0,01 m e 0,19±0,004 m in simulazione (30x40 e 60x80).
  • Spinta della palla, input 30x40: 78±7 % di successo reale con la palla che parte al centro e 43±14 % con la palla vicino a una parete, contro 99 % e 100 % in simulazione.
  • Cambiando il guadagno della telecamera dal valore predefinito 50 (4/5 successi) a 90 o 128, la policy di navigazione ha fallito in 0/5 prove, camminando in un piccolo cerchio.
  • Per l'aumento con sfocatura per il rendering NeRF a bassa risoluzione si riporta un PSNR medio di circa 31,5 contro circa 35,4 su immagini escluse; il NeRF con hash grid renderizza un fotogramma in 6 ms su una GPU V100.

Limiti

  • Gli oggetti dinamici sono sempre renderizzati davanti alla scena NeRF statica, quindi le occlusioni non sono gestite; scene dinamiche più complesse richiederebbero un rendering NeRF composito.
  • Restano passaggi manuali: scegliere i punti del pavimento in Blender, allineare e scalare la mesh e sostituire il pavimento, poco texturizzato, con una superficie piana.
  • Passare da un video a una policy addestrata richiede 1-2 giorni (COLMAP circa 3-4 ore, l'addestramento della policy circa 24 ore per la navigazione e il doppio per la spinta della palla).
  • Il divario sim2real è maggiore nel compito di spinta della palla, ricco di contatti, soprattutto quando la palla parte vicino a una parete.
  • La capacità di calcolo a bordo (2 core CPU, nessuna GPU, 25 ms per passo) ha limitato le policy a immagini 30x40 e 60x80, e l'escursione dell'inclinazione della testa è stata limitata perché il soffitto è catturato male dal NeRF.

Impatto sul settore

Finalista dell'ICRA 2023 Outstanding Robot Learning Paper award, con 80 citazioni. L'articolo mette a disposizione un sito web del progetto con video; non è indicato alcun rilascio di codice.

Abstract

Presentiamo un sistema per applicare approcci sim2real a scene «in the wild» con una resa visiva realistica, e a policy che si basano sulla percezione attiva tramite telecamere RGB. Dato un breve video di una scena statica girato con un comune smartphone, apprendiamo la geometria di contatto della scena e una funzione di sintesi di nuove viste usando un Neural Radiance Field (NeRF). Arricchiamo il rendering NeRF della scena statica sovrapponendo il rendering di altri oggetti dinamici (ad es. il corpo stesso del robot, una palla). Si crea quindi una simulazione usando il motore di rendering in un simulatore fisico che calcola la dinamica di contatto a partire dalla geometria della scena statica (stimata dalla densità volumetrica del NeRF) e dalla geometria e dalle proprietà fisiche degli oggetti dinamici (supposte note). Dimostriamo di poter usare questa simulazione per apprendere policy di navigazione del corpo intero basate sulla visione e di spinta di una palla per un robot umanoide a 20 gradi di libertà con una telecamera RGB attuata montata sulla testa, e trasferiamo con successo queste policy su un robot reale. Il video del progetto è disponibile all'indirizzo https://sites.google.com/view/nerf2real/home.

Link

  • arXiv 2210.04932: https://arxiv.org/abs/2210.04932
  • DOI 10.1109/ICRA48891.2023.10161544: https://doi.org/10.1109/ICRA48891.2023.10161544
  • PDF: https://arxiv.org/pdf/2210.04932v1
  • Pagina del progetto: https://sites.google.com/view/nerf2real/home

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