Unitree G1 EDU, piattaforma per motion imitation da video

Sviluppo · Motion imitation

Unitree G1 motion imitation in MuJoCo: da un video al robot

In breve: la pipeline open per Unitree G1 motion imitation in MuJoCo ha quattro stadi: posa umana da video con GVHMR, retargeting sul G1 con GMR, reinforcement learning con mjlab o unitree_rl_mjlab, deploy su un G1 EDU in debug mode. Serve un PC Ubuntu con GPU NVIDIA e tempo di messa a punto. Il video fornisce il movimento, non l'abilità.

La pipeline open per Unitree G1 motion imitation in MuJoCo parte da un filmato e arriva a una policy che muove i giunti del robot. Non è un prodotto pronto: è una catena di strumenti open source, ognuno con un formato di input preciso. Il risultato dipende dalla qualità del movimento filmato.

Unitree G1 motion imitation in MuJoCo: i quattro stadi

La catena più lineare usa tre progetti separati per posa, retargeting e addestramento, poi l'SDK Unitree per il robot. VideoMimic, il lavoro della UC Berkeley presentato a CoRL 2025, accorpa i primi due stadi e ricostruisce anche l'ambiente, ma resta un progetto di ricerca. Per un laboratorio che vuole controllare ogni passaggio, conviene la via a componenti.

StadioStrumentoInputOutput
1. PosaGVHMRVideo monoculareSMPL-X in camera e traiettoria nel mondo
2. RetargetingGMRSMPL-X, AMASS, BVH, FBXTraiettoria dei giunti del G1
3. RLmjlab / unitree_rl_mjlabCSV o NPZ della motionPolicy ONNX
4. Deployunitree_sdk2 + unitree_mujocoPolicy ONNXComandi low-level sul G1

Il G1 misura 1.320 mm in piedi e pesa circa 35 kg nella versione base, 35 kg o più nelle EDU. Ha 23 gradi di libertà nella versione base; le EDU arrivano a 43 con le mani. Il retargeting deve quindi decidere cosa fare delle dita quando il video non le mostra.

Stadio 1: stimare la posa umana dal video

GVHMR (SIGGRAPH Asia 2024) ricava il movimento umano da un video monoculare e restituisce i parametri SMPL-X nella camera e la traiettoria globale nel mondo. Il metodo stima la posa in un sistema "gravity-view", costruito con la direzione di gravità e la direzione della camera, e questo riduce l'accumulo di errore tipico dei metodi autoregressivi. Nella pagina del progetto gli autori dichiarano 280 ms per un video di 1.430 frame su RTX 4090, escluso il preprocessing (tracking 2D, feature, rotazione relativa della camera).

Il limite pratico è tutto nel preprocessing: tracking 2D, feature, rotazione relativa della camera. Se la camera si muove, la scala è ambigua e i piedi scivolano, il retargeting eredita l'errore. Per questo VideoMimic ricostruisce insieme persona e ambiente: il punto di contatto con scale e sedie diventa parte del problema, non un dettaglio da correggere dopo. Il repository è MIT e la pipeline real2sim accetta esplicitamente il robot g1.

Stadio 2: retargeting dal corpo umano al G1

GMR (ICRA 2026, licenza MIT) risolve il problema opposto: porta una traiettoria umana nelle generalized coordinates del robot. Supporta SMPL-X e AMASS, BVH LAFAN1 e Nokov, FBX OptiTrack e streaming PICO. Per il G1 copre la configurazione a 29 DoF e quella a 43 DoF con le mani. Il solver usa mink e MuJoCo, limita la velocità dei motori e visualizza il risultato in una finestra MuJoCo.

La velocità dichiarata è di 35-45 FPS su un Intel i9-13900K e 60-70 FPS su un Threadripper 7960X, quindi il retargeting gira su CPU senza GPU. GMR integra anche GVHMR: il comando scripts/gvhmr_to_robot.py --gvhmr_pred_file hmr4d_results.pt --robot unitree_g1 legge il file prodotto da GVHMR e genera la motion del robot. Gli autori avvertono che una singola configurazione non funziona bene su tutti i movimenti: alcuni clip vanno controllati a mano.

Stadio 3: reinforcement learning in MuJoCo con mjlab

mjlab (Apache 2.0) unisce l'API a manager di Isaac Lab con MuJoCo Warp. L'addestramento richiede una GPU NVIDIA; su macOS si può solo valutare una policy. Il task Mjlab-Tracking-Flat-Unitree-G1 addestra il G1 a inseguire una reference motion; negli esempi si lanciano 4.096 ambienti paralleli, e la guida ufficiale descrive la conversione CSV-NPZ e il registro WandB.

Un dettaglio pratico: l'NPZ contiene posizioni e quaternioni indicizzati per numero di body, e MuJoCo e PhysX assegnano indici diversi. Se convertite la motion con uno script di Isaac Lab e la caricate in mjlab, i target finiscono sui body sbagliati e il training non converge. Usate mjlab.scripts.csv_to_npz.

Chi vuole la versione mantenuta da Unitree usa unitree_rl_mjlab: stessi task di tracking per G1 a 29 e 23 DoF, più task di locomozione per Go2, A2, R1 e H1-2; il repository elenca anche As2 e H2 tra i robot supportati. Il progetto deriva da mjlab, whole_body_tracking e rsl_rl, ed esporta policy.onnx durante il training. La base teorica è BeyondMimic: una formulazione compatta di motion tracking, con iperparametri condivisi, che sullo stesso setup copre ruote aeree, calci rotanti e sprint.

Stadio 4: dal simulatore al G1 reale

Il deploy passa da unitree_sdk2 e da un programma C++ che carica la policy ONNX e pubblica su rt/lowcmd. Prima si prova in unitree_mujoco, poi sul robot appeso. Nel repository Unitree la rete del PC è 192.168.123.222 con maschera 255.255.255.0; il robot va acceso in zero-torque e portato in debug mode con L2+R2, altrimenti il motion controller integrato e la policy si contendono i motori. La procedura di rete e debug è la stessa descritta nella guida per programmare il G1.

Il divario tra simulazione e realtà non si chiude con un video migliore. ASAP (RSS 2025) parte da policy di motion tracking addestrate in simulazione e aggiunge un modello residuo delle azioni, addestrato con dati raccolti sul robot, per compensare la differenza di dinamica. Il lavoro è valutato sul G1 e dichiara un errore di tracking inferiore rispetto a system identification e domain randomization. In pratica: aspettatevi una seconda fase di messa a punto sul robot, non un trasferimento diretto.

Anche il modello fisico conta. Il G1 di MuJoCo Menagerie è un MJCF semplificato, derivato dal file pubblico di unitree_ros, con licenza BSD-3-Clause. Il modello MJX è stato trasferito su hardware reale in MuJoCo Playground: è un buon punto di partenza, ma gli attuatori e i guadagni vanno verificati sul vostro esemplare.

Limiti: cosa non risolve un video

  • Forze e contatti. Il video dà cinematica, non coppie, attrito o forze di contatto. Manipolazione e prese restano fuori da una pipeline di solo motion tracking.
  • Scala e camera. Un video con camera in movimento o senza riferimenti metrici produce traiettorie ambigue; il retargeting non può inventare la scala.
  • Una clip, una skill. Il task di tracking di mjlab addestra su una reference motion. Per più abilità serve un dataset multi-clip e un addestramento che le combini.
  • Qualità del retargeting. GMR dichiara che alcuni movimenti vengono male con la configurazione predefinita: vanno rivisti in MuJoCo prima del training.
  • Sicurezza. La policy non è una funzione di sicurezza: non sostituisce i dispositivi di protezione. Prime prove con robot appeso, area libera e persona al telecomando.

Quanto costa partire

Serve un G1 EDU: la scheda Unitree indica lo sviluppo software proprio solo su questa versione. A listino la famiglia G1 va da 19.809,32 € a 90.829,38 €, IVA esclusa. Il G1 Edu Standard (G1-U1), con 23 DoF e modulo di calcolo Jetson Orin NX, costa 38.004,54 €. Le differenze tra U1, U2 e le versioni con mani sono nella guida quale versione del G1 scegliere; la gamma completa è su Unitree G1.

Abra Robotics, parte della filiera di distribuzione di Unitree Italia, fornisce i G1 EDU e, come servizio separato, formazione e sviluppo su SDK. Per i laboratori che partono da zero, la guida ROS 2 su robot Unitree copre rete e primo topic; per il contesto di ricerca c'è la pagina Università e Ricerca.

Domande frequenti

Unitree G1 cosa fa con il motion imitation?

Impara a riprodurre un movimento umano registrato in video. La policy comanda i giunti del robot, non riconosce oggetti né decide il compito.

Basta un solo video per addestrare il G1?

Basta per una singola abilità, non per un comportamento generale. Servono comunque retargeting, addestramento in simulazione e prove sul robot.

Serve un Unitree G1 EDU per questa pipeline?

Sì, per caricare una policy propria servono SDK e computer di sviluppo, previsti solo sulle versioni EDU. La scheda Unitree non prevede lo sviluppo software proprio sul G1 base.

Quanto costa un Unitree G1 per questo lavoro?

A listino la famiglia G1 va da 19.809,32 € a 90.829,38 €, IVA esclusa. Per la pipeline serve una versione EDU: il G1 Edu Standard (G1-U1) costa 38.004,54 €.

Dove gira la policy?

Su un PC Ubuntu collegato al G1 via Ethernet: un programma C++ carica la policy ONNX e invia i comandi con unitree_sdk2. Prima si prova in unitree_mujoco e poi sul robot appeso, in debug mode.

Fonti

  1. Unitree, scheda ufficiale G1 (DoF, peso, altezza, sviluppo software solo su EDU)
  2. Unitree, unitree_rl_mjlab (task G1, conversione motion, deploy e debug mode)
  3. mujocolab, mjlab e guida Motion Imitation
  4. Yanjie Ze et al., GMR: General Motion Retargeting (README, robot supportati, benchmark CPU)
  5. Shen et al., GVHMR: World-Grounded Human Motion Recovery via Gravity-View Coordinates, SIGGRAPH Asia 2024
  6. Allshire, Choi et al., VideoMimic: Visual Imitation Enables Contextual Humanoid Control, CoRL 2025; codice su GitHub
  7. Liao et al., BeyondMimic: From Motion Tracking to Versatile Humanoid Control via Guided Diffusion, arXiv:2508.08241
  8. He et al., ASAP: Aligning Simulation and Real-World Physics for Learning Agile Humanoid Whole-Body Skills, arXiv:2502.01143
  9. Google DeepMind, Unitree G1 Description (MJCF), MuJoCo Menagerie

Serve un G1 EDU per la pipeline?

Configuriamo il G1 EDU con il dock di calcolo adatto e, come servizio separato, formazione su SDK, MuJoCo e ROS 2.

Configurazioni G1 EDUServizi software