
DROID, BridgeData V2 ja Open X-Embodiment muuntuvat 7-ulotteisiksi tarttujan toimiksi 6 ja 7 vapausasteen varsissa. SO-100 ottaa 6 nivelasentoa. Mikä siirtyy, mikä ei, ja mitä tehdä sen sijaan.
Lyhyt versio
- •Kaikkien kolmen LeRobotin rakenteet jakavat yhden konvention: 7-ulotteinen loppukäsittelytoiminto [x, y, z, roll, pitch, yaw, gripper] ja 8-ulotteinen tila täytepaikalla. SO-100 ottaa kuusi absoluuttista nivelasentoa.
- •Tuo 7-ulotteinen vektori on muuntimen artefakti: DROIDin oma RLDS-toimintokenttä on 6 nivelnopeutta plus tarttujan asento, ja karteesinen näkymä on action_dictissä.
- •Neljä kellotaajuutta: DROID 15 fps, BridgeData V2 5 fps, google_robot-viipale 3 fps, SO-100-tallennus 30 fps.
- •Et voi yhdistää niitä omiin tietoihisi. validate_all_metadata antaa virheen ensimmäisestä eroavasta fps:stä, robot_type:stä tai ominaisuudesta, ja kaikki kolme eroavat.
- •Siirtyvät asiat ovat esikoulutetut painot, eivät episodit. Avoimen lähdekoodin data on 9.1 prosenttia pi0:n esikoulutusseoksesta.
- •Niiden halvin todellinen käyttötarkoitus on testilaite: tunnetusti toimiva 2 GB:n, 100 episodin DROID-näyte, joka todistaa putkilinjasi toimivuuden ennen kuin tallennat viikonlopun ajan.
Google Cloud -säilössä on miljoonan trajektorin julkinen tietokokonaisuus ja pöydällä, joka maksoi 110–150 EUR osina. Miksi ensimmäinen ei voi opettaa toista? Osittain se voi, mutta lähes mikään siirto ei tapahdu siellä, missä ihmiset odottavat, ja helpoimmalta näyttävä osa ei toimi lainkaan.
Seuraavaksi: mitä on sisällä , ja , missä jokainen törmää edulliseen 5-DoF-varteen, ja mitä tehdä sen sijaan. Jokainen alla oleva luku on peräisin siihen kuuluvasta paperista, tietokortista tai lähdetiedostosta.
Mitä kolme tietokokonaisuutta todella sisältävät
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Robotti | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, ~4,000 USD laitteisto | 22 toteutusta, 60 datajoukkoa, 34 laboratoriota |
| Skaala | 76k trajektoria, 350 tuntia | 60 096 trajektoria | 1M+ trajektoria, 527 taitoa |
| Monimuotoisuus | 564 kohtausta, 84 tehtävää, 50 kerääjää | 24 ympäristöä, 13 taitoa | 160 266 tehtävää, 21 instituutiota |
| Koostumus | kaikki etäohjattuja | 50 365 etäohjattua, 9 731 skriptattua | lähdelaboratorion mukaan |
| Ohjausnopeus | 15 Hz | 5 Hz | vaihtelee, 3 fps ylöspäin |
| Kamerat | 2 x ZED 2 ulkoinen, 1 x ZED Mini ranteessa | enintään 4, useimmissa jaksoissa vain kiinteä | mitä laboratorio käytti |
| Raakalataus | 1.7 TB RLDS, 8.7 TB raakaa stereokuvaa | JPEG-arkistot | datajoukkokohtaiset TFDS-säiliöt |
Harva enää lataa 1.7 TB RLDS TFRecords -tiedostoja. Yhteisöorganisaatio IPEC-COMMUNITY on julkaissut uudelleen suurimman osan Open X-Embodimentista LeRobot-datajoukko-muodossa AV1-videolla, jossa DROID on 392 GB. Tämä on versio, jonka kanssa työskentelet, ja sen meta/info.json on luettava ensin.
DROID
Kolmesta standardoiduin. Yksi laitteisto kaikkialla: Franka Panda Robotiq 2F-85 -tarttujalla, kaksi säädettävää ZED 2 -stereokameraa ja ranteessa ZED Mini, etäohjattu Meta Quest 2 -ohjaimilla, tallennettu Polymetiksen kautta 15 Hz:n taajuudella sekä nivel- että loppukäsittelylaite tilassa. Kielimerkinnät tulivat myöhemmin tasq.ai:n kautta, enintään kolme per jakso.
- 76k trajektoria, 350 tuntia, 564 kohtausta, 84 tehtävää, 50 kerääjää kolmella mantereella.
- Päätulos on yhteiskoulutus, ei itsenäinen koulutus: erät, jotka on sekoitettu 50/50 toimialueen sisäisten demonstraatioiden kanssa, voittivat seuraavaksi parhaan menetelmän 22 prosentilla absoluuttisella menestyksellä jakaumassa, 17 prosentilla sen ulkopuolella.
- IPEC-COMMUNITY/droid_lerobot: 92,233 episodes, 27,044,326 frames, franka, 15 fps, codebase_version v2.0, three AV1 streams at 180x320, 392 GB.
- 2 GB:n, 100 jakson virheenkorjausnäyte sijaitsee osoitteessa gs://gresearch/robotics/droid_100. Aloita siitä.
BridgeData V2
Lähimpänä harrastajakokoonpanoa: WidowX 250 6-DoF-varsi, 60,096 trajektoria 24 ympäristössä ja 13 taidossa 5 Hz:n taajuudella. Huomaa koostumus: 50,365 asiantuntijan etäohjattua demonstraatiota plus 9,731 satunnaistetusta skriptatusta poimi-ja-aseta-politiikasta, joten noin 16 prosenttia ei ole ihmisen demonstraatiota, mikä on tärkeää jäljittelyoppimisen laadun kannalta. Tavallinen lataus, IPEC-COMMUNITY/bridge_orig_lerobot, ilmoittaa 53,192 jaksoa ja 1,893,026 kuvaa 5 fps:n nopeudella, robot_type widowx: vähemmän kuin artikkelin 60,096, joten lue määrä meta/info.json-tiedostosta sen sijaan, että lainaisit kumpaakaan.
Open X-Embodiment
Ei tietojoukko samassa mielessä: 60 olemassa olevaa robottitietojoukkoa 34 laboratoriosta yhdistettynä yhdeksi RLDS-kokoelmaksi, joka kattaa 22 toteutusta ja yli miljoona trajektoria. BridgeData V2 sijaitsee sen sisällä nimellä bridge_orig; google_robot-viipale, fractal20220817_data, muuntuu 87 212 jaksoksi nopeudella 3 fps.
Yhdistämiseen liittyy varoitus, jonka artikkeli toteaa suoraan. RT-X-kokeissa kirjoittajat muuntavat jokaisen lähteen 7-DoF-loppukäsittelytoiminnoksi, mutta eivät kohdista koordinaattikehyksiä tietojoukkojen välillä, ja sallivat toiminta-arvojen olevan absoluuttisia tai suhteellisia sijainteja tai nopeuksia kunkin robotin alkuperäisen ohjausjärjestelmän mukaisesti. Heidän johtopäätöksensä: sama toimintavektori voi aiheuttaa hyvin erilaisia liikkeitä eri roboteille.

Epäsuhta, neljässä osassa
Ruumiillistumisen epäsuhta käsitetään yleensä yhtenä epämääräisenä ongelmana. Niitä on neljä, ne epäonnistuvat eri tavoin, ja kahta ei voi korjata skriptaamalla.
1. Vapausasteet
SO-100:ssa on viisi käsivarsiniveltä ja tarttuja. Moottoreina laskettuna se on 6-DoF-käsivarsi, ja SmolVLA-paperi kutsuu sitä sellaiseksi; paikannusmekanismina laskettuna se on 5-DoF, ja LeRobot kutsuu sitä sellaiseksi käänteisen kinematiikan docstringissään, joka kuvaa pehmeän suunnan IK:ta 5-DOF SO-101:ssä, jossa ranne seuraa suuntaa vain osittain. Frankassa on seitsemän paikannusniveltä. Tämä ero määrittää, mitkä asennot ovat mahdollisia: 5-DoF-käsivarsi ei yleensä voi saavuttaa mielivaltaista sijaintia ja suuntaa samanaikaisesti, joten ratkaisija palauttaa lähimmän mahdollisen, joka on erilainen liike kuin esitetty. Taustaa: vapausasteet.
# src/lerobot/robots/so_follower/so_follower.py
motors = {
"shoulder_pan": Motor(1, "sts3215", norm_mode_body),
"shoulder_lift": Motor(2, "sts3215", norm_mode_body),
"elbow_flex": Motor(3, "sts3215", norm_mode_body),
"wrist_flex": Motor(4, "sts3215", norm_mode_body),
"wrist_roll": Motor(5, "sts3215", norm_mode_body),
"gripper": Motor(6, "sts3215", MotorNormMode.RANGE_0_100),
}
# action keys are "<motor>.pos"; send_action sync_writes them to
# "Goal_Position" -> a 6-D ABSOLUTE JOINT POSITION command
# openpi/src/openpi/policies/droid_policy.py
def make_droid_example() -> dict:
return {
"observation/exterior_image_1_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/wrist_image_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/joint_position": np.random.rand(7), # seven Franka joints
"observation/gripper_position": np.random.rand(1),
"prompt": "do something",
}
# state = concat(joint_position, gripper_pos) -> 8-DValmis DROID-tarkistuspiste ei siis ole oikotie. Physical Intelligence toimittaa pi05_droidin osoitteessa gs://openpi-assets/checkpoints/pi05_droid, ja sama README, joka ylistää sen laajuutta, varoittaa, että nämä asiantuntijatarkistuspisteet eivät välttämättä yleisty sinun kokoonpanoosi. Sen tila on kahdeksan Frankan nivelnumeroa ja sen kuvien avaimet ovat exterior_image_1_left ja wrist_image_left. Mikään lippu ei muuta sitä kuusimoottoriseksi SO-100-komennoksi.
2. Mitä toimintavektori todellisuudessa kertoo
Syvemmälle kuin ulottuvuus. LeRobotin muunnoksissa kaikki kolme kertovat, minne tarttujan tulisi mennä, karteesisessa avaruudessa. SO-100 kertoo, minne kuuden servon tulisi mennä. Muuntaminen vaatii kinemaattisen mallin ja ratkaisijan, ei uudelleenmuotoilua.
| Ominaisuus | OXE, DROID ja Bridge LeRobot-muodossa | SO-100 LeRobotissa |
|---|---|---|
| Toimintavektori | 7-D: x, y, z, roll, pitch, yaw, gripper | 6-D: yksi tavoiteasento per moottori |
| Tilavektori | 8-D, täytepaikalla (google_robot käyttää kvaternionia) | 6-D, yksi per moottori |
| Kehys | Karteesinen, epäyhtenäinen eri aineistoissa | nivelavaruus, käsivarsikohtainen kalibrointi |
| Absoluuttinen vai suhteellinen | kumpi tahansa, lähdelaboratorion päättämä | absoluuttiset tavoiteasennot |
| Yksiköt | normalisoitu aineistokohtaisesti, sitten diskretoitu | asteita oletuksena (use_degrees=True), muuten -100 - 100 |
| Hiljainen vika | delta luettuna absoluuttisena | kalibroimaton käsivarsi |
openx2lerobot README dokumentoi yhtenäisen 8-ulotteisen tilan ja 7-ulotteisen toiminnon jokaiselle muuntamalleen datajoukolle, mistä pad-paikka tulee. DROIDin oma RLDS-skeema eroaa: sen ylätason action on 7-vektori, joka koostuu 6 nivelnopeudesta plus 1 tarttujan asennosta, ja cartesian_position, cartesian_velocity, joint_position sekä joint_velocity ovat action_dict-kohdassa. openpi lukee nivelavaruusnäkymän, LeRobot-kooste antaa sinulle karteesisen. Kumpikaan ei ole kuusi absoluuttista servo-kulmaa.
LeRobot toimittaa puuttuvan palan: SO-seuraajassa on kinematiikkaprosessori, jossa on InverseKinematicsEEToJoints- ja ForwardKinematicsJointsToEE-vaiheet. Sen avaimet ovat ee.x, ee.y, ee.z sekä rotaatiovektori ee.wx, ee.wy, ee.wz ja ee.gripper_pos, joten jopa orientaation koodaus eroaa tiedostojen roll-pitch-yaw-muodosta. IK-vaihe ottaa orientation_weight-arvon, oletuksena 0.01, jonka dokumentaatio kehottaa asettamaan 0.0:ksi vain-asennon IK:lle alitoiminnallisilla käsivarsilla. Voit rakentaa sillan, mutta jokaisen lainatun toiminnon orientaatio-osa pysyy approksimoituna.
3. Ohjausnopeus
DROID on 15 Hz, BridgeData V2 5 Hz, google_robot-viipale 3 fps; pi0:n kirjoittajat kuvailevat seoksensa avoimen lähdekoodin osaa matalataajuisena ohjauksena 2 ja 10 Hz:n välillä. LeRobotin DatasetRecordConfigin oletusarvot ovat fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. joka on koulutettu 5 Hz:n datalla, oppi, että yksi toiminto kattaa 200 ms. Toista se 30 Hz:llä ja käsivarsi ryömii; näytteenotto naiivisti levittää kuvan, jossa tarttuja sulkeutuu. Se myös toimii huonosti kanssa: 100-askeleen palanen on 20 sekuntia 5 Hz:llä, 3.3 sekuntia 30 Hz:llä.
4. Kamerat
BridgeData V2 satunnaisti kaksi kameran asentoa joka 50. trajektorin kohdalla, ja sen projektisivulla todetaan, että suurin osa datasta sisältää joka tapauksessa vain kiinteän näkymän. DROID käytti säädettäviä ZED 2 -kiinnikkeitä sekä ranteeseen kiinnitettyä ZED Miniä. Sinulla on kaksi USB-webkameraa sijoitettuna silmämääräisesti. Kameran asento ei ole häiritsevä muuttuja ; se on suuri osa siitä, mihin visuaalinen enkooderi perustui, eikä tiedostomuoto kerro sinulle, että asennot eroavat.
Osat sopivat riittävän hyvin yhteen ajettavaksi. Aineisto latautuu, koulutus alkaa, häviö pienenee, tarkistuspisteet ilmestyvät, eikä virheitä tapahdu. Sitten toimintamalli ei tee mitään tunnistettavaa käsivarrella ja vietät päivän etsien virhettä koulutusskriptistäsi. Virhettä ei ole: malli oppi karteesisen toimintajakauman robotille, jota ei ole huoneessasi. Aloita kohdasta häviö pienenee, toimintamalli ei tee mitään, älä hyperparametreistasi.
Mitä tapahtuu, kun yrität yhdistää tiedot joka tapauksessa
Ilmeinen suunnitelma on yhdistää: muutama tuhat DROID-jaksoa plus omat 50 jaksosi. LeRobot kieltäytyy, ja kieltäytyminen nimeää kolme asiaa, jotka eroavat.
- 1Hae 100 jakson näyte, älä koko 1,7 Tt.
2 Gt riittää rakenteen näkemiseen.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Muunna RLDS LeRobot-muotoon
openx2lerobot käärii OXE-standardimuunnokset ja annotoi robottityypin ja ohjaustaajuuden. README sijoittaa tämän convert.sh-tiedostoon.
bashgit clone https://github.com/Tavish9/any4lerobot.git cd any4lerobot/openx2lerobot python openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 3Lue meta/info.json ennen kaikkea muuta
Tämä tiedosto päättää, toimiiko loppupäiväsi.
bashpython -c "import json;d=json.load(open('meta/info.json'));\ print(d['codebase_version'], d['robot_type'], d['fps']);\ print(d['features']['action']['shape'], d['features']['observation.state']['shape'])" - 4Kokeile yhdistämistä ja lue virhe
merge lataa jokaisen tietojoukon, sitten validate_all_metadata tarkistaa fps:n, robot_type:n ja ominaisuudet listan ensimmäistä vastaan, nostaen virheen ensimmäisestä epäyhteensopivuudesta.
bashlerobot-edit-dataset \ --new_repo_id you/mixed \ --operation.type merge \ --operation.repo_ids "['you/droid100_lerobot', 'you/my_so100_task']" # ValueError: Same fps is expected, but got fps=30 instead of 15.
Viitearvot tulevat siitä tietojoukosta, jonka listasit ensimmäisenä, minkä vuoksi viesti valittaa omasta 30 fps:stäsi DROIDin 15 fps:n sijaan. Korjaa fps, ja törmäät robot_type-tarkistukseen; korjaa se, ja törmäät ominaisuustarkistukseen, 7 vastaan 6 toiminnolle. Mikään järjestys ei mene läpi, ja sama tarkistus suoritetaan tallennushetkellä sanity_check_dataset_robot_compatibility-funktion kautta.
Nykyisessä LeRobot mainissa so100_follower ja so101_follower on molemmat rekisteröity yhdelle jaetulle SOFollowerRobotConfig-konfiguraatiolle, joten todellisesta tallenteesta tuleva merkkijono ei välttämättä ole se, mitä odotat. Lue se omasta meta/info.json-tiedostostasi ja käsittele tarkistusta, jonka jouduit poistamaan käytöstä, tarkistuksena, joka kertoi sinulle jotain.
Mitä siis todella siirtyy?
Painot, ei episodit. Jokainen moderni yleiskäyttöinen toimintamalli on omaksunut osan siitä esikoulutuksessa, ja kun julkaistusta perit sen jo sovitettuna ihmisiltä, joilla on laskentatehoa tehdä se oikein. pi0:n julkaisu on suoraan sanainen osuudesta: 9,1 prosenttia sen esikoulutusseoksesta, laskettuna aikavaiheina, on avoimen lähdekoodin dataa, mukaan lukien OXE, Bridge v2 ja DROID. Tämä luku on pi0:n; kunkin toimittajan seos eroaa.
- Visuaaliset ja kielelliset prioriteetit: enkooderi on nähnyt tuhansia keittiöitä ja mukeja ja tietää, mihin "punainen palikka" viittaa.
- Prioriteetti manipulointirakenteesta: lähesty, sulje, nosta, kuljeta, vapauta, kehosta riippumaton, vaikka numerot eivät olisikaan.
- Tunnettu hyvä tietojoukko testausta varten. Jos työsi ei pysty ylisovittamaan 100 DROID-episodia, ongelma on asetuksissasi.
- Vertailukohdat: pienimuotoisilla tietojoukkoalueilla RT-1-X saavutti 50 prosenttia korkeamman keskimääräisen onnistumisasteen kuin alkuperäinen menetelmä tai RT-1, ja RT-2-X voitti RT-2:n noin 3-kertaisesti uusissa taidoissa.
- Ei käyttökelpoista toiminnan ohjausta. 7-ulotteinen karteesinen kohde ei ole 6-ulotteinen nivelkomento.
- Ei kameran asennon siirtoa, eikä mikään datassa kerro, että asennot eroavat.
- Ei ajoituksen siirtoa: 3, 5 ja 15 kuvaa sekunnissa lähteet verrattuna 30 kuvaa sekunnissa tallentimeen.
- Ei tarttujan siirtoa. Robotiq 2F-85 ja STS3215:een painettu leuka eroavat voiman, iskunpituuden ja dynamiikan suhteen.
- Pelkkä skaala ei riittänyt edes sen tekijöille: suurten tietojoukkojen alueilla RT-1-X ei voittanut pelkästään kyseisellä tietojoukolla koulutettua RT-1:tä.
- Ei vähennystä tarvitsemiesi omien episodien määrässä.
| Mallin kerros | Siirtyykö? | Miksi |
|---|---|---|
| Visuaalinen enkooderi | Kyllä, vahvasti | Objektit ja kohtaukset ovat kehosta riippumattomia |
| Kielen maadoitus | Kyllä | Ohjeet ovat tekstiä, eivät geometriaa |
| Modaalisuuksien välinen fuusio | Enimmäkseen | Kiinnittää huomiota kehotteessa nimettyyn objektiin |
| Proprioseptioenkooderi | Ei | Syötteen ulottuvuus ja nivelten semantiikka eroavat |
| Toimintapää | Ei | Koulutettu 7-ulotteisessa karteesisessa avaruudessa, jossa et ole |
| Normalisointitilastot | Ei, ja vaarallista | Vieraat tilastot siirtävät jokaista komentoa |
Tästä syystä SmolVLA käyttäytyy eri tavalla edullisella varrella. Sen julkaisussa valitaan 481 yhteisön datasettiä Hugging Facesta, jotka on suodatettu ruumiillistumistyypin, episodien määrän, datan laadun ja kehysten kattavuuden perusteella: 22.9K episodia, 10.6M kehystä, arvioitu todellisilla SO-100- ja SO-101-varsilla. Pieni ja yhteensopiva voittaa suuren ja yhteensopimattoman. Vertaa ACT vs. SmolVLA.
Kolme harkitsemisen arvoista polkua
Polku A: hienosäädä tarkistuspisteestä, joka on jo käsitellyt datan
Useimpien ihmisten tulisi valita tämä. Et koskaan koske DROIDiin tai Open X-Embodimentiin: valitse toimintamalli, jonka esikoulutus on jo omaksunut eri ruumiillistumien datan, tallenna omat episodisi, hienosäädä.
| Toimintamalli | Parametrit | Minimijaksot | Aineiston muoto | GPU-taso | Päättely | Perustarkistuspiste |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trained in fine-tuning | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms per step | nvidia/GR00T-N1.7-3B |
| GR00T N1.5 | ~3 B | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 165 ms | nvidia/GR00T-N1.5-3B |
| Pi0.5 | ~3 B, PaliGemma backbone | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 M | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 M | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB | 20 ms | none, from scratch |
ACT on rehellinen reunatapaus: ei perusmallia, joten mikään julkinen data ei koskaan saavuta sitä. Tämä ei ole automaattisesti haitta, sillä 20 ms:n toimintavaiheella se on ainoa viidestä, joka voi sulkea nopean silmukan, kuten ACT-sivu esittää. Valitse tehtävän mukaan käyttäen kaikkia viittä verrattuna, GR00T N1.7 vastaan Pi0.5, ja 332 vertailutulosta 85 mallista areenalla.
Polku B: käytä DROIDia testilaitteena
100 jakson näyte on paras 2 Gt, jonka lataat tässä kuussa, eikä se ole tarkoitettu koulutukseen. Se on aineisto, jonka tiedät olevan oikein. Suorita muunnin, lataaja ja lyhyt GPU-työ sen kanssa; kaikki mikä epäonnistuu, on infrastruktuurivirhe, joka löytyi edullisesti. NVIDIA tekee samoin mittakaavassa: GR00T N1.7 -kortti listaa neljä jälkikoulutettua varianttia Bridge- ja Fractal-malleille SimplerEnvissä, DROIDille ja LIBEROlle.
Polku C: tallenna omasi tarkoituksella
Kolmestakymmenestä viiteenkymmeneen kuulostaa vähäiseltä 76 000:n rinnalla, kunnes muistat, että omasi ovat ainoita, joissa on sinun kätesi, kamerasi ja pöytäsi. LeRobotin oletusasetuksilla 50 jaksoa on 100 minuuttia todellista aikaa. Katso , ja .

Kaksi tapaa päästä julkisesta datasta toimivaan käytäntöön
All of this runs on your own machine plus a rented GPU. Knowing the manual path matters because when something breaks you will know which layer broke.
- 1Install LeRobot with the extras the scripts need
The record and train entry points each declare their own extra.
bashpip install 'lerobot[core_scripts]' # lerobot-record pip install 'lerobot[training]' # lerobot-train pip install gsutil tensorflow tensorflow-datasets - 2Get a small, known-good slice
100 DROID episodes, 2 GB.
bashgsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 3Convert to LeRobot form
Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.
bashpython openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 4Check the version against your trainer
The converter README documents v3.0 output; the published IPEC-COMMUNITY datasets report v2.0. GR00T wants v2.0 or v2.1 and crashes on v3.0; Pi0.5, SmolVLA and ACT want v3.0. Mind the gap: the only conversion script on LeRobot main goes 2.1 to 3.0.
bashpython src/lerobot/scripts/convert_dataset_v21_to_v30.py \ --repo-id=you/droid100_lerobot - 5Record your own episodes
Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.
bashlerobot-record \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.cameras="{front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --dataset.repo_id=you/so100_pick_block \ --dataset.num_episodes=50 \ --dataset.single_task="Pick up the red block and put it in the bowl" - 6Fine-tune on your data only
Weights from public data, actions from your own. Do not mix the datasets.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=you/so100_pick_block \ --policy.device=cuda \ --batch_size=4 \ --steps=20000
Not in training; the GPU job is hours. The conversion, the version mismatch and the moment you find your dataset is v2.0 and your trainer wants v3.0 are days. Read dataset rejected as v3 first.
The platform removes the GPU and pipeline plumbing. It does not remove the embodiment mismatch: point the trainer at a converted DROID dataset and you get a policy trained on Franka actions, exactly as you would locally.
- 1Pick a policy, not a dataset
The five trainable policies, with parameter counts, GPU tiers and latencies, are at /policies.
- 2Record with the desktop client
It writes LeRobot-format datasets, episodes, camera streams and joint states, straight out of a teleop session. No conversion step to get wrong.
- 3Or bring a dataset you already have
The training form accepts one from /directory, a Hugging Face repo id, or your own machine. A repo id means a converted OXE dataset will load, and the mismatch loads with it.
- 4Train on a rented GPU
The backend rents a card on a spot market by required VRAM. SmolVLA or ACT on 24 GB: 2 to 5 hours, about 1 to 3 USD. GR00T or Pi0.5 on A100 or H100: 3 to 6 hours, about 4 to 12 USD. See /pricing.
- 5Serve it back to the arm
/api/inference/pod auto-provisions a GPU pod serving the policy; the local client talks to that endpoint. Pods carry an idle watchdog and destroy themselves, so nothing keeps billing silently.
Inference has to sit next to the servos for fast tasks. The control loop is 20 to 485 ms per action step depending on the model, and public-internet round trips turn a working policy into a hesitant one. Remote inference is fine for slow pick-and-place, not fast reactive motion.
The platform helps with the boring parts: the right format for the right arm at the right frame rate, and no babysitting a spot instance. It helps with nothing else in this article.

Mitä kukin polku maksaa
| Polku | Tallennustila | Ihmisen aika | GPU-kustannus | Todennäköisyys, että se liikuttaa kättäsi |
|---|---|---|---|---|
| Muunnettu DROID yksin | 392 GB | muunnospäiviä | 4 to 12 USD | erittäin matala, väärä toimintatila |
| DROID yhdistettynä omiin jaksoihisi | molemmat | blocked by validate_all_metadata | n/a | ei mitään, se ei toimi |
| SmolVLA, 30–50 omaa jaksoa | muutama GB | 100 min nauhoitus | 1 to 3 USD | korkea |
| GR00T N1.7, 50 omaa jaksoa | muutama GB | 100 min nauhoitus | 4 to 12 USD | korkea |
| ACT alusta alkaen, 50 omaa jaksoa | muutama GB | 100 min nauhoitus | 1 to 3 USD | korkea, 20 ms päättely |
| DROID-näyte testikiinnikkeenä | 2 GB | iltapäivä | yksi lyhyt ajo | korkea, validointina |
Epäsymmetria on olennainen: polku, joka lainaa eniten dataa, on kallein ja vähiten todennäköinen liikuttamaan kättäsi. Alle kahden tunnin oma teleoperaatio voittaa teratavun jonkun toisen Frankasta. Eikö sinulla ole vielä kättä? /live suoratoistaa fyysistä SO-100:aa ilman rekisteröitymistä. Sitten kouluta ensimmäinen käytäntösi, ja SmolVLA SO-100:lla tiettyä opasta varten.
Lataa 2 GB DROID-näyte ja käytä sitä putkilinjasi todistamiseen. Jätä huomiotta muut 1.7 TB. Tallenna 50 jaksoa yhdestä tehtävästä kiinteillä kameroilla. Hienosäädä SmolVLA ensin, koska 30 minimijaksolla 24 GB kortilla se on edullisin iteroida, sitten kokeile GR00T N1.7 samalla datalla. Vertaa omassa tehtävässäsi, ei vertailuarvossa.
Tallenna datasettejä, jotka vastaavat jo robottikättäsi
Työpöytäsovellus kirjoittaa LeRobot-muotoisia datasettejä suoraan teleoperaatiosessiosta: oikea robottikäsi, oikea kuvataajuus, oikea toimintatila. Ei RLDS-muunnosta, ei uudelleenmääritystä.
Hanki työpöytäsovellusVoinko kouluttaa toimintamallin DROIDilla ja ajaa sen SO-100:llani?▾
Ei suoraan. LeRobot-rakenteessa DROID-toiminnot ovat 7-D-loppukäyttimen komentoja Franka Pandassa nopeudella 15 fps; raa'assa RLDS:ssä ne ovat 6 nivelnopeutta plus tarttujan asento. SO-100 ottaa 6 absoluuttista nivelasentoa. Tarvitsisit käänteisen kinematiikan kerroksen, ja silloinkin 5-DoF-ranne ei voi toistaa mielivaltaisia 6-DoF-asentoja.
Voinko sekoittaa DROID- tai Bridge-jaksoja omien SO-100-jaksojeni kanssa?▾
Ei. validate_all_metadata vaatii identtiset fps:n, robot_type:n ja feature-skeeman ja nostaa ValueError-virheen ensimmäisestä epäyhteensopivuudesta. Kaikki kolme eroavat: 15 tai 5 fps vs. 30, franka tai widowx vs. oma robottikätesi, toimintamuodot 7 vs. 6. Metadatan uudelleenkirjoittaminen tarkistuksen läpäisemiseksi ei korjaa semantiikkaa.
Onko Open X-Embodiment silloin hyödytön edulliselle robottikäden kanssa?▾
Ei, mutta sen arvo saavuttaa sinut esikoulutettujen painojen, ei jaksojen kautta. Avoin lähdekoodi -datasettejä, kuten OXE, Bridge v2 ja DROID, on 9.1 prosenttia pi0:n esikoulutusseoksesta, ja NVIDIA toimittaa GR00T N1.7 -variantteja, jotka on jälkikoulutettu Bridge-, Fractal-, DROID- ja LIBERO-dataseteillä. Et voi liittää näitä jaksoja omaan tallenteeseesi.
Mikä toimintamalli hyötyy eniten julkisesta cross-embodiment-datasta?▾
Pi0.5 ja GR00T-mallit sisältävät eniten cross-embodiment-esikoulutusta, mutta SmolVLA toimii usein parhaiten edullisella robottikäden kanssa: sen esikoulutussetti koostuu 481 yhteisön datasetistä, 22.9K jaksosta ja 10.6M kuvasta, ja se on arvioitu todellisilla SO-100- ja SO-101-robottikäsillä. ACT on päinvastainen: ei perusmallia, 20 ms per toimintavaihe.
Kuinka monta omaa jaksoa todella tarvitsen?▾
30 SmolVLA:lle, 50 GR00T N1.7:lle, GR00T N1.5:lle, Pi0.5:lle ja ACT:lle. LeRobotin oletusarvoilla 60 s per jakso ja 60 s nollaus, 50 jaksoa on 100 minuuttia todellista aikaa. Lainaattu cross-embodiment-data ei alenna näitä lukuja.
Sources
- DROID: Suuren mittakaavan robotin manipulointidataset luonnollisessa ympäristössä
- DROID-dokumentaatio: latauskoot ja RLDS-episodiskeema
- BridgeData V2: Datasetti robottioppimiseen mittakaavassa
- BridgeData V2 -projektisivu: koostumus ja kameran kattavuus
- Open X-Embodiment: Robottioppimisen datasetit ja RT-X-mallit
- Open X-Embodiment -projektisivu
- google-deepmind/open_x_embodiment: dataset-lista ja RT-1-X-tarkistuspisteet
- any4lerobot: openx2lerobot-muunnin ja sen yhtenäinen 8-D tila, 7-D toiminto
- IPEC-COMMUNITY/droid_lerobot: meta/info.json ja repositorion koko
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: google_robot-viipale 3 fps:llä
- huggingface/lerobot: SO-seuraaja, kinematiikkaprosessori, yhdistetyt ja tallennuskokoonpanot
- openpi: DROID-käytäntösyötteet ja pi05_droid-tarkistuspiste
- pi0: Näkö-, kieli- ja toimintavirtausmalli yleiseen robotin ohjaukseen
- SmolVLA: Näkö-, kieli- ja toimintamalli edulliseen ja tehokkaaseen robotiikkaan
Sources
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- DROID docs: download sizes and the RLDS episode schema
- BridgeData V2: A Dataset for Robot Learning at Scale
- BridgeData V2 project page: composition and camera coverage
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- Open X-Embodiment project page
- google-deepmind/open_x_embodiment: dataset list and RT-1-X checkpoints
- any4lerobot: the openx2lerobot converter and its unified 8-D state, 7-D action
- IPEC-COMMUNITY/droid_lerobot: meta/info.json and repo size
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: the google_robot slice at 3 fps
- huggingface/lerobot: SO follower, kinematics processor, aggregate and record configs
- openpi: DROID policy inputs and the pi05_droid checkpoint
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started