
Un resoconto passo-dopo-passo di un round DAgger con cancello umano su un braccio SO-100: esegui la policy e registrala, prendi il controllo quando qualcosa va male, classifica l'esecuzione come correzione, componi un dataset misto, e continua l'addestramento da un checkpoint. Include il percorso di takeover tramite braccio leader per chi non dispone di un braccio leader, e i quattro errori che rendono un round inutile.
La tua policy si esegue. Raggiunge il cubo, chiude il gripper un centimetro troppo presto, e continua come se l'avesse preso. Nulla genera errori, e nessuna quantità di sguardi fissati sulla perdita di addestramento lo spiega. La soluzione non è altri 20.000 step di gradiente sugli stessi esempi. È mettere di nuovo la mano sul braccio esattamente dove sbaglia, registrare cosa hai fatto invece, e addestrare il checkpoint successivo sui dati vecchi più quella correzione. Questo è un round DAgger, e così è come uno si esegue su un SO-100 con una policy vision-language-action.
La teoria è altrove: perché l'aggregazione del dataset funziona affatto e cosa cambia il cancello umano rispetto ad essa. Questo è il manuale operativo, e presuppone un checkpoint addestrato, una serie di telecamere funzionante, e un braccio che si muove. I sei step seguenti sono il loop così implementato su la pagina DAgger di questa piattaforma, ma la sequenza è la stessa dai tuoi script.
Un round in breve
- •Esegui la policy addestrata e registrala, con il testo dell'attività dell'esecuzione piuttosto che un'etichetta di teleoperation generica.
- •Prendi il controllo nel momento in cui il comportamento va male: un handover a specchio con un braccio leader, immediato e manuale da tastiera o slider se non ne hai uno.
- •Triage ogni esecuzione: classificala come correzione, mantienla come episodio di valutazione, o scartala.
- •Componi il mix manualmente - dimostrazioni originali più correzioni, episodi scelti per fonte. Non addestrare mai su sole correzioni.
- •Continua l'addestramento dall'ultimo checkpoint, e annota quale checkpoint ha prodotto quale mix.
- •Il numero che dice se il round vale qualcosa è l'intervention rate, non la perdita di addestramento.
Perché il secondo round non è solo più dati
Behaviour cloning si addestra sugli stati che un umano ha visitato. Al momento del test la policy visita gli stati che provoca, e piccoli errori di azione si compongono in stati che nessuna dimostrazione ha coperto. Ross, Gordon e Bagnell hanno formalizzato quel fallimento per AISTATS 2011 e lo hanno risolto con un algoritmo iterativo che addestra una policy deterministica stazionaria e, secondo la loro riduzione, deve funzionare bene sotto la distribuzione di stato che induce: esegui la policy attuale, fai etichettare gli stati che ha effettivamente raggiunto all'esperto, aggiungili al dataset, riaddestra, ripeti. Kelly et al. hanno reso la query pratica con HG-DAgger, dove l'umano decide quando prendere il controllo invece di etichettare stati senza tenere i comandi; riportano prestazioni migliori sia di DAgger che di behaviour cloning su un compito di guida autonoma simulato e reale. Il cancello umano è ciò che rende il loop tollerabile su un braccio da scrivania - muovi le mani solo quando qualcosa va male.
Due conseguenze importano più nella pratica che nella teoria. Le correzioni non sono dimostrazioni ordinarie: si concentrano nelle regioni di collo di bottiglia che Mandlekar et al. descrivono, dove una piccola deviazione getta la policy in stati che le dimostrazioni non hanno mai coperto. E un dataset fatto solo di quelle parti difficili è un dataset mal formato - Belkhale, Cui e Sadigh sostengono dal lato dei dati che la diversità di stato non è sempre vantaggiosa, e che la divergenza di azione e la diversità di transizione insieme decidono la qualità del dataset. Il dataset misto non è un compromesso, è il punto.
Congela questi prima del round uno
Un round DAgger confronta una policy con se stessa nel tempo. Qualunque cosa cambi tra i round che non sia il dataset rende quel confronto privo di significato.
- Posizioni e montature della telecamera, inclusa la telecamera del polso. Allenta un morsetto e hai cambiato la distribuzione di osservazione, non la policy.
- Esposizione e bilanciamento del bianco, se lo stack di acquisizione ti permette di fissarli. La deriva dell'auto-esposizione tra i round è uno shift del dominio lento e invisibile.
- Calibrazione del braccio e posizioni zero del servo. Se devi ricalibrare, tratta tutto ciò che è stato registrato prima come un dataset separato.
- Il testo dell'attività. Ogni VLA qui si condiziona su di esso; riformularlo a metà del loop è un'attività diversa.
- Illuminazione, superficie del tavolo, insieme di oggetti. Un nuovo oggetto è un nuovo esperimento, non il round successivo.
- La frequenza dei fotogrammi di registrazione. Confrontare i tassi di intervento su due raster di campionamento produce differenze che provengono dal raster.
Hsu et al. hanno confrontato una vista incentrata sulla mano rispetto alla solita vista in terza persona e hanno scoperto che la prospettiva eye-in-hand ha costantemente migliorato l'efficienza dell'addestramento e la generalizzazione fuori dalla distribuzione, nonostante vedesse meno della scena. Su un braccio a cinque giunti, il timing del gripper è di solito ciò che le tue correzioni stanno risolvendo, e il timing del gripper è quello che la vista dal polso trasporta.
Il round, da capo a fondo
- 1Esegui l'inferenza e registra
Inizia l'esecuzione rispetto al checkpoint che vuoi migliorare, poi avvia la registrazione nella radice dell'inferenza. Registrato in quel modo eredita il testo dell'attività della propria esecuzione, che è ciò su cui è stata addestrata la policy, piuttosto che l'etichetta di teleoperation predefinita. Senza la registrazione puoi guardare il fallimento ma non addestrarlo.
bash# two calls, not one: the run, then its recording POST /inference/start # model_id, and hf_repo_id = the checkpoint to drive POST /recording/start # root=inference # root=inference also makes the recording inherit the run's task text - 2Prendi il controllo quando qualcosa va male
Premi Take over e scegli la modalità di input: braccio leader, tastiera o slider. Il runner si ferma, correggi, riconsegni. I fotogrammi registrati mentre guidavi vengono contrassegnati come interventi automaticamente.
bashPOST /inference/takeover/start # input = leader | keyboard | sliders POST /inference/takeover/nudge # keyboard, relative delta per call POST /inference/takeover/set # sliders, absolute target POST /inference/takeover/stop # back to the policy - 3Triage gli episodi
Decidi per ogni episodio: classifica come correzione, mantieni come valutazione, o scarta. Un'esecuzione che la policy ha completato senza aiuto è dato di valutazione.
- 4Sincronizza il dataset di correzione
Le correzioni si raccolgono in un dataset locale per policy e vanno nello storage cloud attraverso la sincronizzazione automatica. Nulla viene mescolato che non hai messo tu.
- 5Componi il dataset misto
Combina il dataset originale con il dataset di correzioni, scegliendo esplicitamente gli episodi per fonte. Il risultato è un dataset ordinario da quel punto in poi.
bashPOST /training/datasets/compose sources = [ original_dataset, korrekturen_<policy> ] episodes = explicit selection per source - 6Continua l'addestramento dal checkpoint
Addestra il mix dal checkpoint precedente piuttosto che dal modello base. Annota quale checkpoint e quale mix; senza quella coppia il round non è riproducibile.
bash# field on the training job base_checkpoint = s3://ay-robots/checkpoints/<run>/<checkpoint> # the platform passes it to the training pod as BASE_CKPT_S3
Step 2 in dettaglio: i due modi di prendere il controllo
Con un braccio leader
In leader-follower mode il takeover è un handover tra due bracci che non sono nella stessa postura. Premere Take over mette in pausa il runner e guida il leader sulla postura attuale del follower, così nulla salta quando il torque si trasferisce. Se quel drive di allineamento va in timeout, allinea il leader a mano e rilascia solo una volta che i due sono entro cinque gradi. Da allora teleoperi normalmente e la colonna di azione registra ciò che hai comandato.
Sii onesto su questo percorso: il drive di allineamento e l'handover di torque sono la parte meno testata del loop sull'hardware reale. Testa l'handover su una postura lenta e innocua prima di affidarti ad esso in un'esecuzione che ti interessa. Un braccio leader produce le correzioni più fluide tra le tre modalità, e anche ha il massimo che può andare male meccanicamente.
Senza un braccio leader: tastiera e slider
La maggior parte delle persone che leggono questo possiede un braccio. Quello è abbastanza. Scegli input da tastiera o slider nel momento in cui premi Take over, e il takeover è immediato e manuale - non c'è un secondo braccio da allineare, quindi non c'è alcun passo di allineamento. Il follower mantiene la sua postura e aspetta l'input.
| Modalità di input | Come si muove il braccio | Limite per-call applicato dal server | Bloccato quando |
|---|---|---|---|
| Braccio leader | Lo specchio guida il follower dagli angoli articolari del leader | Nessuna nudge o set call in questa modalità; lo specchio scrive gli obiettivi del follower continuamente | Mai bloccato, e il predefinito se nessuna modalità di input è data - ma ha bisogno di un secondo braccio; senza un leader id il takeover è rifiutato |
| Tastiera | Nudge relativo per pressione di tasto, inviato all'endpoint nudge del takeover | Hard clamp a 2 gradi per giunto, 4 gradi per il gripper | Rifiutato con 409 se il takeover è stato avviato in modalità leader |
| Slider | Postura target assoluta, inviata all'endpoint set del takeover | Al massimo 6 gradi di viaggio verso il target per call; l'interfaccia continua a inviare circa dieci volte al secondo | Rifiutato con 409 se il takeover è stato avviato in modalità leader |
I clamp sono applicati lato server, non nell'interfaccia, perché un delta errato su un braccio bus-servo è una collisione. Le correzioni da tastiera escono a step e leggermente grossolane; le correzioni da slider sono più fluide, perché il server cammina verso il target mentre l'interfaccia continua a trasmettere. In entrambi i casi la colonna di azione riceve il vettore di postura comandata completo e il contrassegno di intervento è identico al percorso del leader, così le correzioni da tastiera atterrano nello stesso dataset senza una differenza di formato.
Q / A joint 1 R / F joint 4
W / S joint 2 T / G joint 5
E / D joint 3 Z / X gripper
Quando premere il pulsante
Presto piuttosto che tardi. Una correzione che inizia dopo che il gripper si è chiuso sul nulla insegna il recupero da un fallimento in cui la policy non avrebbe dovuto entrare, e i dati di recupero valgono molto meno dei dati di evitamento. Interrompi nel primo momento in cui sei sicuro che la traiettoria è sbagliata, correggi attraverso la parte difficile, riconsegna non appena lo stato è uno che la policy ha gestito prima. ThriftyDAgger automatizza quella decisione cancellando gli interventi su novità e rischio stimato sotto un budget umano fisso, ma su un braccio singolo con un umano già in osservazione, il cancello umano è più economico e meglio calibrato di qualunque cosa tu sintonizzerai.
Fattibile con lo stack open-source e pochi script. Ciò che costa è contabilità, e la contabilità è dove i round DAgger muoiono.
- Scrivi fotogrammi dal tuo script di inferenza in un dataset LeRobot, con la stringa dell'attività su cui è stata addestrata la policy.
- Metti in pausa il loop della policy, cambia l'origine del comando, e contrassegna ogni fotogramma che guidi come intervento. Senza il contrassegno, le correzioni sembreranno dimostrazioni ordinarie.
- Decidi deliberatamente cosa succede ai fotogrammi di transizione tra il rilascio del controllo della policy e il tuo primo input.
- Mantieni le correzioni nel loro dataset per policy, e traccia gli indici degli episodi a mano così il mix può essere ricostruito.
- Punta l'entry point del fine-tuning al checkpoint precedente, e controlla nel log che abbia caricato quei pesi.
I stessi sei step esistono come pulsanti. Ciò che è automatizzato è ciò che è facile sbagliare a mano: il contrassegno di intervento per frame, la divisione tra correzioni e valutazioni, e il record di quale checkpoint ha prodotto quale mix. Nulla entra in un dataset composto che non hai selezionato.
Non decide per te. Quale esecuzione conta come correzione, quali episodi vanno nel mix, e quando fermarsi rimangono valutazioni di giudizio. I campi sono documentati sotto training, le modalità di input sotto teleoperation.
Step 3 in dettaglio: triage decide la qualità
Dopo l'esecuzione hai una registrazione con alcuni fotogrammi contrassegnati come interventi. Tre destinazioni esistono, e quella sbagliata avvelena silenziosamente il round successivo.
- Classifica come correzione quando l'intervento è stata una vera fix: la policy stava andando da qualche parte sbagliata e il tuo input ha mostrato la cosa giusta da uno stato che la policy stessa ha prodotto.
- Mantieni come valutazione per esecuzioni autonome pulite e per esecuzioni su cui hai preso il controllo per cautela. Gli episodi di valutazione sono come misuri il checkpoint successivo, e non devono mai essere addestrati.
- Scarta esecuzioni rovinate da qualcosa di estraneo - un fotogramma della telecamera caduto, un servo bloccato, un oggetto che hai fatto cadere. Una correzione disordinata è peggiore di nessuna correzione.
Tra il rilascio del controllo della policy e il tuo primo input, il braccio rimane fermo mentre il registratore continua a scrivere - una serie di pose identiche abbinate a immagini leggermente diverse. Lì quei fotogrammi di handover rimangono nella registrazione grezza e fuori dal dataset di correzione. Se costruisci il loop da solo, tagliali deliberatamente: una policy addestrata su di essi impara a pausare dove dovrebbe agire.
Step 5 in dettaglio: comporre il mix
La composizione prende il dataset originale più il dataset di correzione e produce un nuovo, ordinario LeRobot dataset che si addestra come qualunque altro. La proprietà importante è che la selezione degli episodi è esplicita per fonte - nulla viene mescolato automaticamente. Questo suona minore finché la prima volta che una policy si comporta strangamente e devi ricostruire su cosa è stata addestrata.
La domanda aperta è il rapporto, e nessuno ha un numero che si trasferisce. Ciò su cui la letteratura concorda è che le correzioni dovrebbero contare per più della loro quota di fotogrammi. Mandlekar et al. riaddestrare iterativamente sui dati che il loro sistema di intervento raccoglie, così la policy impara a traversare i colli di bottiglia, e riportano che gli agenti addestrati in quel modo superano gli agenti addestrati su un numero equivalente di campioni da dimostratori non-interventisti. Sirius va oltre e ri-pesa i campioni di addestramento da trust umano approssimato, riportando un guadagno dell'8% in simulazione e del 27% su hardware reale nel tasso di successo della policy contro i metodi con cui confronta, a due volte la velocità di convergenza. Nessuno degli entry point di addestramento qui espone una manopola di ri-pesatura del campione, così il sostituto grezzo è mantenere ogni episodio di correzione mentre si sottocampionano le dimostrazioni originali - e scrivere quello che hai fatto.

Step 6 in dettaglio: cosa significa veramente continuare da un checkpoint
Addestrare il mix dal modello base funziona ma butta via il round precedente e costa un run completo. Continuare dal checkpoint precedente è più veloce e di solito migliore. È anche più limitato di quanto la frase suggerisca.
Un checkpoint weights-only contiene i parametri e nient'altro. Caricarlo dà al run successivo un punto di partenza migliore del modello base, ma i momenti dell'optimizer, la posizione della schedule del learning-rate e l'ordine dei dati iniziano da zero. Aspettati un loss spike all'inizio del run continuato, non leggerlo come fallimento, e non chiamare il round un resume. È un warm start.
| Policy | Dimensione | GPU tier | Inferenza per azione step | Formato dataset | Episodi prima che valga la pena provare |
|---|---|---|---|---|---|
| GR00T N1.7 | circa 3 B, approssimativamente 40 M addestrati durante il fine-tuning | A100 80 GB o H100 80 GB | circa 152 ms | LeRobot v2.0 o v2.1 | 50 |
| GR00T N1.5 | circa 3 B | A100 80 GB o H100 80 GB | circa 165 ms | LeRobot v2.0 o v2.1 | 50 |
| Pi0.5 | circa 3 B su una backbone PaliGemma | A100 80 GB o H100 80 GB | circa 485 ms | LeRobot v3.0 | 50 |
| SmolVLA | circa 450 M | RTX 4090 o qualsiasi carta 24 GB | circa 245 ms | LeRobot v3.0 | 30 |
| ACT | circa 80 M, addestrato da zero | RTX 4090 o qualsiasi carta 24 GB | circa 20 ms | LeRobot v3.0 | 50 |
La latenza si compone all'interno di un loop DAgger in un modo in cui non lo fa durante una demo: a circa 485 ms per azione step prendi il controllo perché il braccio ha esitato, non perché era sbagliato, e i dati di correzione di esitazione non sono dati di addestramento utili. Se stai iterando sui dati piuttosto che inseguire un tasso di successo finale, itera su un modello veloce. Shukor et al. descrivono SmolVLA come progettato per addestrare su una singola GPU e deployare su GPU consumer o CPU, con uno stack di inferenza asincrono che disaccoppia la predizione di azione dall'esecuzione per consentire tassi di controllo più alti - la proprietà che mantiene un loop di takeover responsivo.
I formati del dataset non sono intercambiabili neanche. GR00T prende LeRobot v2.0 o v2.1, e il repository Isaac-GR00T descrive il suo input come un sapore del formato LeRobot v2 con un file di descrizione di modalità aggiunto; i trainer più recenti qui si aspettano v3.0. Un mix composto nella versione sbagliata fallisce al tempo di carico piuttosto che produrre una policy cattiva - la modalità di fallimento migliore, comunque uno slot di coda sprecato. Il dataset documentation elenca quale formato ogni trainer prende.
Il loop, con la contabilità già fatta
Takeover con un braccio leader, tastiera o slider; contrassegno di intervento per-frame; filing runs come correzioni o valutazioni; composizione di un dataset misto con una selezione di episodi esplicita per fonte; e continuazione dell'addestramento da un checkpoint invece del modello base. Ciò che rimane tua decisione è quale run conta come correzione, cosa va nel mix, e quando l'intervention rate ha smesso di cadere.
Guarda come il loop DAgger è cablatoQuattro modi di sprecare un round
1. Addestramento solo sulle correzioni
L'errore più comune e la scorciatoia più allettante. Un dataset di sole correzioni è quasi interamente il mezzo difficile dell'attività, con approccio e ritirata mancanti; la policy migliora sulla parte difficile e dimentica come arrivarci. L'aggregazione non è un dettaglio di implementazione del metodo, è il meccanismo: i dati vecchi sono quello che mantiene il resto del comportamento mentre le correzioni spostano una parte di esso.
2. Spostamento di una telecamera tra i round
Una telecamera che cambia di due centimetri tra i round produce una policy peggiore di quella con cui hai iniziato, e una diagnosi che costa un giorno. Ogni VLA qui si condiziona su immagini; lo stato articolare da solo non disambigua dove si trova l'oggetto. Fotografa la configurazione prima del primo round e controlla quella fotografia prima di ogni round successivo.
3. Lasciare che gli artefatti di handover entrino nell'addestramento
Coperto sopra, e sulla lista perché è invisibile. Il sintomo è una policy che si ferma per una frazione di secondo esattamente dove l'operatore del round precedente ha preso il controllo. Sembra esitazione; è imitazione.
4. Chiamare un warm start un resume
Se credi che lo stato dell'optimizer si sia trasferito, lo spike di perdita iniziale si legge come un bug e vai a caccia di dati corrotti. Se sai che l'optimizer ha iniziato da zero, lo spike è previsto e guardi cosa viene dopo. Stessi numeri, conclusioni opposte.
Misurare il round
La metrica per un loop con cancello umano è l'intervention rate: fotogrammi registrati mentre eri in controllo, diviso per fotogrammi totali dell'esecuzione. È nello stato del takeover, ed è l'unico numero che risponde alla domanda che il round ha posto. La perdita di addestramento cade indipendentemente dal fatto che la policy sia migliorata; il tasso di successo è binario e rumoroso alle dimensioni del campione che un braccio da scrivania produce. L'intervention rate è continuo, misurato negli stati che la policy stessa ha causato, e diminuisce man mano che la policy ha meno bisogno di te.
Confrontalo solo su esecuzioni registrate in condizioni identiche. L'argomento completo, e come costruire un set di valutazione che sopravvive a più di due round, è in l'articolo su misurare un loop DAgger. Il round uno è realisticamente un test di fattibilità: stai controllando che il takeover funzioni sul tuo hardware, che le correzioni atterrino con i loro contrassegni, e che il run continuato ha caricato il checkpoint che hai nominato. I round due e tre sono dove il tasso dovrebbe iniziare a muoversi. Se non si è mosso entro il round quattro, il problema è a monte di DAgger.
| Scrivi per round | Perché importa dopo |
|---|---|
| Checkpoint che è stato guidato | Senza di esso non puoi attribuire un miglioramento a un mix |
| Modalità di input usata per il takeover | Le correzioni da tastiera sono più grossolane delle correzioni da leader, e si vede nei dati |
| Numero di esecuzioni e come ogni una è stata triaged | Se il round aveva abbastanza correzioni per importare |
| Intervention rate per esecuzione, e la media | La metrica di progresso del loop |
| Selezione esatta di episodi per fonte | L'unico modo per riprodurre o annullare un round |
| Warm start o addestramento fresco | Spiega la curva di perdita che guarderai tra una settimana |
Se non hai ancora un checkpoint
Il loop non ha alcun entry point senza uno. Registra un primo dataset, addestra una prima policy, eseguila - recording, training e running the policy coprono quel percorso. Il client di registrazione è su the download page, i tier di GPU e le tariffe orarie su the pricing page, e che cosa un episodio usabile assomiglia nel SO-100 data collection guide. Rendi le dimostrazioni giuste prima delle correzioni: DAgger è un meccanismo di riparazione, e funziona molto meglio su qualcosa che era già quasi giusto.
Posso eseguire un loop DAgger senza un braccio leader?▾
Sì. Scegli input da tastiera o slider quando premi Take over: il takeover è immediato e manuale, senza un secondo braccio da allineare. La tastiera invia nudge relativi che il server clamp duro a 2 gradi per giunto e 4 per il gripper; gli slider inviano un target assoluto e il server si muove al massimo 6 gradi verso di esso per call, mentre l'interfaccia continua a trasmettere. La colonna di azione e il contrassegno di intervento sono gli stessi come in modalità leader, quindi le correzioni sono indistinguibili nel dataset.
Quante correzioni ha bisogno un round?▾
Non c'è un numero universale difendibile, e il conteggio dei fotogrammi importa più del conteggio degli episodi. La regola di lavoro è che le correzioni non devono essere perse nel mix: con 200 episodi originali e tre episodi di correzione, nulla si muoverà. Mira per correzioni che coprano il comportamento fallace da diverse configurazioni di partenza piuttosto che tre ripetizioni dello stesso salvataggio.
Perché l'addestramento solo sulle correzioni è una cattiva idea?▾
Perché le correzioni sono quasi interamente il mezzo difficile dell'attività. Approccio, allineamento e ritirata mancano, così la policy perde quello che già faceva bene mentre migliora nella parte che hai corretto. Mantenere i dati vecchi e aggiungervi è il meccanismo stesso, non un extra opzionale.
Continuare da un checkpoint resume il precedente run di addestramento?▾
No. Un checkpoint weights-only ripristina i parametri e nient'altro: i momenti dell'optimizer, la posizione della schedule del learning-rate e l'ordine dei dati iniziano da zero. È un warm start, e uno spike di perdita iniziale è previsto piuttosto che un sintomo. Scrivi quale dei due hai effettivamente fatto, così leggi la curva correttamente tra una settimana.
E se l'intervention rate non cade?▾
Smetti di aggiungere round. Un tasso piatto significa che le correzioni non stanno insegnando quello che pensi. Le cause solite sono a monte: una telecamera si è mossa, le correzioni iniziano troppo tardi per essere dati di evitamento, i fotogrammi di handover sono nel set di addestramento, o l'attività è sotto-determinata dalle osservazioni che la policy effettivamente ottiene.
Nulla di questo è un problema risolto e nulla di esso è un clic. Interactive imitation learning è un'area di ricerca attiva precisamente perché le sue domande - quando intervenire, come pesare quello che l'umano ha fatto, quanti dati vecchi mantenere - non hanno risposte stabilite; il sondaggio di Celemin et al. mappa cosa è ancora aperto. Quello che il loop ha è convergenza misurabile quando viene eseguito con cura, su hardware che costa poche centinaia di euro. Congela la configurazione, intervieni presto, triage onestamente, componi deliberatamente, e registra l'intervention rate ogni volta.
Sources
- Ross, Gordon, Bagnell (AISTATS 2011): A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
- Kelly, Sidrane, Driggs-Campbell, Kochenderfer (2019): HG-DAgger - Interactive Imitation Learning with Human Experts
- Mandlekar et al. (2020): Human-in-the-Loop Imitation Learning using Remote Teleoperation
- Liu, Nasiriany, Zhang, Bao, Zhu (2022): Robot Learning on the Job - Human-in-the-Loop Autonomy and Learning During Deployment (Sirius)
- Hoque et al. (2021): ThriftyDAgger - Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
- Celemin et al. (2022): Interactive Imitation Learning in Robotics - A Survey
- Belkhale, Cui, Sadigh (2023): Data Quality in Imitation Learning
- Hsu et al. (2022): Vision-Based Manipulators Need to Also See from Their Hands
- Zhao et al. (2023): Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT / ALOHA)
- Black et al. (2024): Pi0 - A Vision-Language-Action Flow Model for General Robot Control
- Bjorck et al. (2025): GR00T N1 - An Open Foundation Model for Generalist Humanoid Robots
- Shukor et al. (2025): SmolVLA - A Vision-Language-Action Model for Affordable and Efficient Robotics
- LeRobot documentation (Hugging Face)
- NVIDIA Isaac-GR00T repository
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started