Un tutorial pubblicato su Hugging Face mostra come assemblare in Isaac Sim un braccio robotico UR17G, una pinza Robotiq 2F-140 e una lattina di bevanda, per poi far eseguire a un agente un compito di presa e deposito. L’esempio si basa su asset SimReady, ovvero oggetti digitali preparati per un uso di simulazione preciso.
Per la robotica, un asset SimReady è un oggetto in formato OpenUSD al quale sono state aggiunte le proprietà necessarie per un caso d’uso specifico, come le collisioni, la massa, le articolazioni e i relativi motori. La libreria SimReady Central, aperta e ospitata su Hugging Face, permette di riutilizzare robot e oggetti accompagnati dalle loro impostazioni di simulazione e rapporti di validazione.
Cosa rende un robot compatibile con la simulazione
La specifica SimReady Foundation definisce le caratteristiche che un asset deve possedere per un caso d’uso. Collega tre livelli: il profilo, che raggruppa le funzionalità di un uso, come il corpo di un robot; le funzionalità, cioè le capacità richieste, come articolazioni controllabili; e i requisiti, che sono verifiche sulle impostazioni di ogni funzionalità, come i parametri del motore di un’articolazione.
In questo esempio, queste proprietà riguardano le articolazioni del braccio e della pinza, così come le collisioni e la massa della lattina. La validazione confronta queste impostazioni con i requisiti del profilo, poi la simulazione testa se il robot assemblato può usarle per afferrare e spostare l’oggetto. Il rapporto di validazione del braccio utilizza il profilo Robot-Body 4.0.0, quello della pinza il profilo Robot-Gripper 3.0.0. Entrambi registrano il superamento dei controlli PhysX sui motori delle articolazioni, che ispezionano le impostazioni di questi motori.
Assemblare la scena e avviare il compito
Una volta scaricati i tre asset, l’autore chiede a un agente, cioè un programma che può pilotare strumenti sulla base di istruzioni, di assemblare il braccio e la pinza in un’unica articolazione, per poi validare l’insieme. Il tutorial utilizza GPT-6 Sol come modello, e precisa che altre combinazioni di agente e modello possono funzionare, a patto di poter caricare le competenze necessarie ed eseguire codice Python in Isaac Sim. Il codice generato e i risultati possono variare, e l’articolo raccomanda di ispezionare il codice prima di adattarlo.
Il compito consiste nell’afferrare la lattina, sollevarla, spostarla verso un bersaglio e poi rilasciarla. I controlli riguardano tre punti: i limiti e le impostazioni delle articolazioni, un piccolo movimento del braccio seguito dall’apertura e chiusura della pinza, e il mantenimento della lattina sul piano di lavoro senza attraversarlo. Un video mostra la lattina trasferita da un riferimento giallo a un bersaglio verde, a quattro volte la velocità reale.
L’autore precisa i limiti di questo esempio. La configurazione è fissa, senza visione, con controlli di collisione limitati. La lattina è semplificata e non riproduce né la deformazione né il movimento del liquido. La presa orizzontale utilizza un limite di sforzo di 2 N·m, scelto grazie a test di simulazione, che non è calibrato su forze sulla punta delle dita né raccomandato dal produttore. Questi risultati non dimostrano quindi la robustezza rispetto a posizioni incerte degli oggetti, carichi diversi o hardware reale.
Gli sviluppatori sono invitati a condividere la loro scena e i risultati nei commenti di Hugging Face, indicando gli asset e la versione di Isaac Sim utilizzati.
