
A DROID, BridgeData V2 és Open X-Embodiment 7 dimenziós végrehajtó (end-effector) műveletekké alakul át 6 és 7 szabadságfokú karokon. Egy SO-100 6 ízületi pozíciót fogad. Mi vihető át, mi nem, és mit tegyünk helyette.
Röviden
- •Mindhárom LeRobot build egy konvenciót követ: egy 7-D végrehajtó (end-effector) akció [x, y, z, roll, pitch, yaw, gripper] és egy 8-D állapot egy kitöltő (pad) slottal. Egy SO-100 hat abszolút ízületi pozíciót vesz fel.
- •Ez a 7-D vektor a konverter műterméke: a DROID saját RLDS akciómezője 6 ízületi sebesség plusz egy markoló pozíció, a karteziánus nézettel az action_dict-ben.
- •Négy órajel: DROID 15 fps, BridgeData V2 5 fps, a google_robot szelet 3 fps, egy SO-100 felvétel 30 fps-en.
- •Nem egyesítheted őket a saját adataiddal. A validate_all_metadata hibát jelez az első eltérő fps, robot_type vagy features esetén, és mindhárom eltér.
- •Ami átvihető, az az előre betanított súlyok, nem az epizódok. A nyílt forráskódú adatok a pi0 előtanítási keverékének 9.1 százalékát teszik ki.
- •A legolcsóbb valós felhasználásuk egy tesztberendezés: egy ismert, jól működő 2 GB-os, 100 epizódos DROID minta, amely igazolja a pipeline-odat, mielőtt egy hétvégén át rögzítenél.
Van egy millió trajektóriás nyilvános adatkészlet egy Google Cloud bucketen és egy SO-100 az asztalon, ami 110-150 EUR-ba került alkatrészekben. Miért nem taníthatja az első a másodikat? Részben igen, de az átvitel szinte egyáltalán nem ott történik, ahol az emberek várják, és a legkönnyebbnek tűnő rész egyáltalán nem működik.
Ami következik: mi van benne DROID, BridgeData V2 és Open X-Embodiment, ahol mindegyik ütközik egy alacsony költségű 5-DoF karral, és mit tegyünk helyette. Minden alábbi szám az adott tanulmányból, adatkészlet-kártyáról vagy forrásfájlból származik.
Amit a három adatkészlet valójában tartalmaz
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Robot | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, ~4,000 USD berendezés | 22 megvalósítás, 60 adatkészlet, 34 labor |
| Méret | 76k trajektória, 350 óra | 60 096 trajektória | 1M+ trajektória, 527 képesség |
| Sokféleség | 564 jelenet, 84 feladat, 50 gyűjtő | 24 környezet, 13 képesség | 160 266 feladat, 21 intézmény |
| Összetétel | mind távvezérelt | 50 365 távvezérelt, 9 731 szkriptelt | forrás laboronként |
| Vezérlési sebesség | 15 Hz | 5 Hz | változó, 3 fps felfelé |
| Kamerák | 2 x ZED 2 külső, 1 x ZED Mini csukló | akár 4, a legtöbb epizódban csak a rögzített | amit a labor használt |
| Nyers letöltés | 1.7 TB RLDS, 8.7 TB nyers sztereó | JPEG archívumok | adatszett-specifikus TFDS tárolók |
Kevesen töltenek le még mindig 1.7 TB RLDS TFRecords-t. A IPEC-COMMUNITY közösségi szervezet újrakiadta az Open X-Embodiment nagy részét LeRobot dataset formában, AV1 videóval, ahol a DROID 392 GB-ot foglal. Ezzel a verzióval fog dolgozni, és a meta/info.json fájlját kell először elolvasni.
DROID
A három közül a legszabványosabb. Egyetlen berendezés mindenhol: egy Franka Panda Robotiq 2F-85 gripperrel, két állítható ZED 2 sztereó kamerával és egy csuklóra szerelt ZED Mini-vel, Meta Quest 2 kontrollerekkel távvezérelve, Polymetisen keresztül rögzítve 15 Hz-en, mind az ízületi, mind a végberendezés térben. Nyelvi címkék később kerültek hozzá tasq.ai-n keresztül, legfeljebb három epizód.
- 76k trajektória, 350 óra, 564 jelenet, 84 feladat, 50 gyűjtő három kontinensen.
- A fő eredmény a ko-tréning, nem az önálló tréning: az 50/50 arányban tartományon belüli demonstrációkkal kevert kötegek 22 százalékos abszolút sikerrel felülmúlják a következő legjobb módszert a disztribúción belül, és 17 százalékkal azon kívül.
- 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.
- Egy 2 GB-os, 100 epizódos hibakeresési minta található a gs://gresearch/robotics/droid_100 címen. Kezdje ott.
BridgeData V2
A legközelebb egy hobbi beállításhoz: egy WidowX 250 6-DoF kar, 60 096 trajektória 24 környezetben és 13 képességben 5 Hz-en. Figyelje meg az összetételt: 50 365 szakértői távirányítású demonstráció, plusz 9 731 egy randomizált szkriptelt pick-and-place irányelvből, így körülbelül 16 százalék nem emberi demonstráció, ami számít a utánzó tanulás minőségéhez. A szokásos letöltés, az IPEC-COMMUNITY/bridge_orig_lerobot, 53 192 epizódot és 1 893 026 képkockát jelent 5 fps-en, robot_type widowx: kevesebbet, mint a cikkben szereplő 60 096, ezért az adatot a meta/info.json fájlból olvassa ki, ahelyett, hogy bármelyiket idézné.
Open X-Embodiment
Nem adatgyűjtemény a szó szoros értelmében: 60 létező robot adatgyűjtemény 34 laborból egyetlen RLDS gyűjteménybe összevonva, amely 22 megvalósítást és több mint egymillió trajektóriát fed le. A BridgeData V2 benne található bridge_orig néven; a google_robot szelet, a fractal20220817_data, 87 212 epizóddá alakul 3 fps sebességgel.
Az összevonás egy kikötéssel jár, amelyet a tanulmány egyértelműen megfogalmaz. Az RT-X kísérletekhez a szerzők minden forrást 7-DoF végrehajtó műveletté alakítanak, de nem igazítják a koordináta-rendszereket az adatgyűjtemények között, és lehetővé teszik, hogy a műveleti értékek abszolút vagy relatív pozíciók vagy sebességek legyenek, az egyes robotok eredeti vezérlési sémája szerint. Következtetésük: ugyanaz a műveleti vektor nagyon eltérő mozgásokat indukálhat különböző robotoknál.

Az eltérés, négy részben
A megtestesülésbeli eltérést általában egy homályos problémaként kezelik. Pedig négyféle van, különböző módon hibásodnak meg, és kettő nem javítható szkripteléssel.
1. Szabadságfokok
Egy SO-100-asnak öt karízülete és egy megfogója van. Motorokként számolva ez egy 6-DoF kar, és a SmolVLA tanulmány is így nevezi; pozicionáló mechanizmusként számolva 5-DoF, és a LeRobot is így nevezi az inverz-kinematikai docstringjében, amely az 5-DOF SO-101-en végzett lágy-orientációs IK-t írja le, ahol a csukló csak részlegesen követi az orientációt. Egy Franka hét pozicionáló ízülettel rendelkezik. Ez a különbség dönti el, hogy mely pózok léteznek: egy 5-DoF kar általában nem képes egyszerre tetszőleges pozíciót és orientációt elérni, így a megoldó a legközelebbi elérhetőt adja vissza, ami eltér a bemutatott mozgástól. Háttér: szabadságfokok.
# 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-DTehát egy kész DROID ellenőrzőpont nem jelent gyorsítást. A Physical Intelligence a pi05_droid-ot a gs://openpi-assets/checkpoints/pi05_droid címen szállítja, és ugyanaz a README, amely dicséri a széleskörűségét, figyelmeztet, hogy ezek a szakértői ellenőrzőpontok nem biztos, hogy általánosíthatók az Ön beállításaihoz. Állapota nyolc Franka ízületi szám, és képkulcsai az exterior_image_1_left és wrist_image_left. Egyetlen flag sem alakítja ezt hatmotoros SO-100 parancssá.
2. Amit az akcióvektor valójában mond
Mélyebben, mint a dimenzionalitás. A LeRobot konverziókban mindhárom azt mondja meg, hová kell mennie a megfogónak, Descartes-i térben. Egy SO-100 azt mondja meg, hová kell mennie hat szervónak. Az átalakításhoz kinematikai modell és megoldó szükséges, nem pedig átalakítás.
| Tulajdonság | OXE, DROID és Bridge LeRobot formában | SO-100 LeRobotban |
|---|---|---|
| Akcióvektor | 7-D: x, y, z, roll, pitch, yaw, megfogó | 6-D: egy célpozíció motoronként |
| Állapotvektor | 8-D, egy kitöltő hellyel (a google_robot kvaterniót használ) | 6-D, motoronként egy |
| Keret | Descartes-i, adathalmazokon keresztül nem illesztett | ízületi tér, karonkénti kalibráció |
| Abszolút vagy relatív | bármelyik, a forrás laboratórium dönti el | abszolút célpozíciók |
| Egységek | adathalmazonként normalizálva, majd diszkretizálva | alapértelmezetten fokban (use_degrees=True), egyébként -100 és 100 között |
| Csendes hiba | egy delta abszolút értékként olvasva | egy nem kalibrált kar |
Az openx2lerobot README egy egységes 8-dim állapotot és 7-dim akciót dokumentál minden általa konvertált adathalmazhoz, innen származik a pad slot. A DROID saját RLDS sémája eltér: a legfelső szintű action egy 7-vektor, amely 6 ízületi sebességet plusz 1 markoló pozíciót tartalmaz, cartesian_position, cartesian_velocity, joint_position és joint_velocity az action_dict alatt. Az openpi az ízületi tér nézetet olvassa, a LeRobot build a Descartes-i nézetet adja át. Egyik sem hat abszolút szervó szög.
A LeRobot szállítja a hiányzó darabot: az SO follower rendelkezik egy kinematikai processzorral, amely InverseKinematicsEEToJoints és ForwardKinematicsJointsToEE lépéseket tartalmaz. Kulcsai az ee.x, ee.y, ee.z, plusz egy rotációs vektor ee.wx, ee.wy, ee.wz és ee.gripper_pos, így még az orientáció kódolása is eltér a fájlokban található roll-pitch-yaw-tól. Az IK lépés egy orientation_weight-et vesz fel, alapértelmezett értéke 0.01, melynek docstringje szerint 0.0-ra kell állítani a csak pozíció alapú IK-hoz alulvezérelt karokon. Megépítheti a hidat, de minden kölcsönzött akció orientációs fele közelített marad.
3. Vezérlési sebesség
A DROID 15 Hz, a BridgeData V2 5 Hz, a google_robot szelet 3 fps; a pi0 szerzői a keverékük nyílt forráskódú részét alacsony frekvenciájú vezérlésként írják le 2 és 10 Hz között. A LeRobot DatasetRecordConfig alapértelmezése fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. Egy amely 5 Hz-es adatokon képződött, megtanulta, hogy egy akció 200 ms-ot fed le. Játssza le 30 Hz-en, és a kar lassan mozog; naivan újramintavételezve elkeni azt a képkockát, ahol a markoló bezáródik. Rosszul működik együtt a is: egy 100 lépéses darab 20 másodperc 5 Hz-en, 3.3 másodperc 30 Hz-en.
4. Kamerák
A BridgeData V2 50 trajektóriánként két kameraállást randomizált, és a projektoldala megjegyzi, hogy az adatok nagy része amúgy is csak a rögzített nézetet tartalmazza. A DROID állítható ZED 2 rögzítéseket, valamint egy csuklóra szerelt ZED Minit használt. Önnek két USB webkamerája van, szemre pozícionálva. A kameraállás nem zavaró változó egy ; ez nagyrészt az, amire a vizuális kódoló épített, és semmi a fájlformátumban nem jelzi, hogy az állások eltérnek.
A darabok elég jól illeszkednek ahhoz, hogy fusson. Az adatkészlet betöltődik, a tréning elindul, a veszteség csökken, ellenőrzőpontok jelennek meg, semmi hiba. Aztán a policy semmi felismerhetőt nem tesz a karon, és egy napot töltesz a tréning szkriptedben lévő hiba keresésével. Nincs hiba: a modell egy olyan robot kártéziusi akcióeloszlását tanulta meg, amely nem létezik a szobádban. Kezdje a veszteség csökken, a policy nem csinál semmit pontnál, ne a hiperparamétereknél.
Mi történik, ha mégis megpróbálja egyesíteni az adatokat
A nyilvánvaló terv az összefűzés: néhány ezer DROID epizód plusz a saját 50-ed. A LeRobot elutasítja, és az elutasítás megnevezi a három eltérő dolgot.
- 1Húzza le a 100 epizódos mintát, ne a teljes 1,7 TB-ot
2 GB elegendő a struktúra megtekintéséhez.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2RLDS konvertálása LeRobot formátumba
Az openx2lerobot magába foglalja az OXE szabványos transzformációkat, és annotálja a robot típusát és a vezérlési frekvenciát. A README a convert.sh fájlba helyezi ezt.
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 - 3Olvassa el a meta/info.json fájlt minden más előtt
Ez a fájl dönti el, hogy a nap hátralévő része működik-e.
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'])" - 4Próbálja meg az összefűzést és olvassa el a hibát
A merge betölt minden adatkészletet, majd a validate_all_metadata ellenőrzi az fps-t, a robot_type-ot és a features-t a lista első elemével szemben, hibát dobva az első eltérésnél.
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.
A referenciaértékek abból az adatkészletből származnak, amelyet először sorolt fel, ezért panaszkodik az üzenet az Ön 30 fps-ére a DROID 15-je helyett. Javítsa ki az fps-t, és beleütközik a robot_type ellenőrzésbe; javítsa ki azt, és beleütközik a feature ellenőrzésbe, 7 a 6 ellen az akció esetében. Egyetlen sorrend sem megy át, és ugyanez az őr fut felvételkor a sanity_check_dataset_robot_compatibility segítségével.
A jelenlegi LeRobot main ágon a so100_follower és a so101_follower is egy megosztott SOFollowerRobotConfig-ra van regisztrálva, így a valós felvételből származó string nem feltétlenül az, amire számít. Olvassa ki a saját meta/info.json fájljából, és kezeljen minden letiltani kényszerült ellenőrzést úgy, mint egy olyan ellenőrzést, ami mondott Önnek valamit.
Mi is az, ami valójában átkerül?
Súlyok, nem epizódok. Minden modern általános célú irányelv magába szívott valamennyit az előképzés során, és amikor finomhangolsz egy kiadott ellenőrzőpontból már öröklöd azt, amit a megfelelő számítási kapacitással rendelkező emberek már összehangoltak. A pi0 tanulmánya őszintén beszél az arányról: az előképzési keverékének 9,1 százaléka, időlépésekben számolva, nyílt forráskódú adat, beleértve az OXE-t, a Bridge v2-t és a DROID-ot. Ez az adat a pi0-é; minden gyártó keveréke eltér.
- Vizuális és nyelvi előismeretek: az enkóder több ezer konyhát és bögrét látott, és tudja, mire utal a „piros kocka”.
- Előismeret a manipulációs struktúráról: megközelítés, zárás, emelés, szállítás, elengedés, testfüggetlen, még akkor is, ha a számok nem azok.
- Egy ismert, jó adathalmaz a teszteléshez. Ha a feladatod nem tudja túltanulni a 100 DROID epizódot, a probléma a beállításoddal van.
- Referenciapontok: kis léptékű adathalmaz-tartományokban az RT-1-X 50 százalékkal magasabb átlagos sikerességi arányt ért el, mint az eredeti módszer vagy az RT-1, és az RT-2-X körülbelül 3-szorosan felülmúlta az RT-2-t a felmerülő készségek terén.
- Nincs használható akciófelügyelet. Egy 7-D Descartes-i cél nem egy 6-D ízületi parancs.
- Nincs kameraállás-átvitel, és az adatokban semmi sem jelzi, hogy az állások eltérnek.
- Nincs időzítés-átvitel: 3, 5 és 15 fps források egy 30 fps felvevővel szemben.
- Nincs megfogó-átvitel. Egy Robotiq 2F-85 és egy STS3215-re nyomtatott pofa eltér erőben, lökethosszban és dinamikában.
- Önmagában a skála sem volt elegendő még a szerzők számára sem: a nagy adathalmazú tartományokban az RT-1-X nem múlta felül az RT-1-et, amelyet csak azon az adathalmazon képeztek.
- Nincs csökkenés a szükséges saját epizódok számában.
| A modell rétege | Átvihető? | Miért |
|---|---|---|
| Látás enkóder | Igen, erősen | Az objektumok és jelenetek testfüggetlenek |
| Nyelvi alapozás | Igen | Az utasítások szövegesek, nem geometriaiak |
| Keresztmodális fúzió | Többnyire | Figyelmet fordít a promptban megnevezett objektumra |
| Propriocepciós enkóder | Nem | A bemeneti dimenzió és az ízületi szemantika eltér |
| Akciófej | Nem | Egy 7-D Descartes-i térben képzett, amiben te nem vagy |
| Normalizációs statisztikák | Nem, és veszélyes | Az idegen statisztikák minden parancsot eltolnak |
Ezért SmolVLA viselkedik másképp egy alacsony költségű karon. Tanulmánya 481 közösségi adatkészletet választ ki a Hugging Face-ről, szűrve az inkarnáció típusa, az epizódok száma, az adatminőség és a képkocka-lefedettség alapján: 22,9K epizód, 10,6M képkocka, valós SO-100 és SO-101 karokon értékelve. A kicsi és illesztett felülmúlja a nagyot és nem illesztettet. Hasonlítsa össze itt: ACT against SmolVLA.
Három járható út
A út: finomhangolás egy olyan ellenőrzőpontról, amely már feldolgozta az adatokat
A legtöbb embernek ezt kellene választania. Soha ne nyúljon a DROID-hoz vagy az Open X-Embodiment-hez: válasszon egy olyan irányelvet, amelynek előképzése már magába szívta a kereszt-inkarnációs adatokat, rögzítse saját epizódjait, majd finomhangolja.
| Szabályzat | Paraméterek | Min. epizódok | Adathalmaz formátum | GPU szint | Inferálás | Alap ellenőrzőpont |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M finomhangolással betanítva | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms lépésenként | 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 gerinc | 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 | nincs, a nulláról |
Az ACT az őszinte szélső eset: nincs alapmodell, így semmilyen nyilvános adat nem éri el. Ez nem feltétlenül hátrány, mivel 20 ms-os akció lépésenként az öt közül ez az egyetlen, amely gyors hurkot tud zárni, ahogy az ACT oldal részletezi. Válasszon feladat szerint a következőket használva: mind az öt összehasonlítva, GR00T N1.7 Pi0.5 ellen, és a 332 benchmark eredmény 85 modellre vonatkozóan a következőben: az aréna.
B útvonal: DROID használata tesztberendezésként
A 100 epizódos minta a legjobb 2 GB, amit ebben a hónapban letölt, és nem betanításra. Ez egy olyan adathalmaz, amiről tudja, hogy helyes. Futtassa rajta a konverterét, betöltőjét és egy rövid GPU feladatot; bármi, ami elromlik, egy infrastruktúra hiba, amit olcsón találtak meg. Az NVIDIA ugyanezt teszi nagy léptékben: a GR00T N1.7 kártya négy utólag betanított változatot sorol fel, a Bridge és Fractal számára a SimplerEnv-ben, a DROID és LIBERO számára.
C út: rögzítse sajátját, szándékosan
Harminc-ötven kevésnek tűnik 76 000 mellett, amíg eszébe nem jut, hogy az Ön adatai az egyetlenek, amelyek az Ön karjával, kameráival és asztalával készültek. A LeRobot alapértelmezett beállításai szerint 50 epizód 100 perc valós időt jelent. Lásd: , és .

Két módja annak, hogy nyilvános adatokból működőképes irányelvet hozzunk létre
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.

Az egyes útvonalak költségei
| Útvonal | Tárhely | Emberi idő | GPU költség | Esélye, hogy megmozdítja a karját |
|---|---|---|---|---|
| Konvertált DROID önmagában | 392 GB | konverziós napok | 4 to 12 USD | nagyon alacsony, rossz akciótér |
| DROID egyesítve az epizódjaival | mindkettő | blocked by validate_all_metadata | n/a | nincs, nem fut |
| SmolVLA, 30-50 saját epizód | néhány GB | 100 perc felvétel | 1 to 3 USD | magas |
| GR00T N1.7, 50 saját epizód | néhány GB | 100 perc felvétel | 4 to 12 USD | magas |
| ACT a nulláról, 50 saját epizód | néhány GB | 100 perc felvétel | 1 to 3 USD | magas, 20 ms következtetés |
| DROID minta tesztberendezésként | 2 GB | egy délután | egy rövid futtatás | magas, validációként |
Az aszimmetria a lényeg: az az út, amely a legtöbb adatot kölcsönzi, a legdrágább és a legkevésbé valószínű, hogy megmozdítja a karját. Két óránál kevesebb saját teleoperáció többet ér, mint valaki más Franka robotjának egy terabájtnyi adata. Még nincs robotkarja? /live élőben közvetít egy fizikai SO-100-at regisztráció nélkül. Ezután képezze be az első irányelvét, majd SmolVLA az SO-100-on a konkrét útmutatóért.
Töltse le a 2 GB-os DROID mintát, és használja a pipeline igazolására. Hagyja figyelmen kívül a többi 1.7 TB-ot. Rögzítsen 50 epizódot egy feladatról rögzített kamerákkal. Először finomhangolja a SmolVLA-t, mert 30 minimális epizóddal egy 24 GB-os kártyán a legolcsóbb iterálni rajta, majd próbálja ki a GR00T N1.7-et ugyanazon az adaton. Hasonlítsa össze a saját feladatán, ne egy benchmarkon.
Rögzítsen olyan adatkészleteket, amelyek már illeszkednek a karjához
Az asztali kliens LeRobot-formátumú adatkészleteket ír közvetlenül egy teleoperációs munkamenetből: megfelelő kar, megfelelő képkockasebesség, megfelelő akciótér. Nincs RLDS konverzió, nincs átképezés.
Szerezze be az asztali klienstKépezhetek be egy irányelvet a DROID-on, és futtathatom az SO-100-amon?▾
Nem közvetlenül. A LeRobot buildben a DROID akciók 7-D végrehajtó parancsok egy Franka Panda roboton 15 fps sebességgel; a nyers RLDS-ben 6 ízületi sebesség plusz egy markoló pozíció. Egy SO-100 6 abszolút ízületi pozíciót fogad. Szüksége lenne egy inverz kinematikai rétegre, és még akkor sem tud egy 5-DoF csukló tetszőleges 6-DoF pózokat reprodukálni.
Keverhetem a DROID vagy Bridge epizódokat a saját SO-100 epizódjaimmal?▾
Nem. A validate_all_metadata azonos fps-t, robot_type-ot és feature sémát igényel, és ValueError-t dob az első eltérésnél. Mindhárom eltér: 15 vagy 5 fps 30 ellenében, franka vagy widowx a karja ellenében, 7-es akcióformák 6 ellenében. A metaadatok átírása a ellenőrzés átengedéséhez nem oldja meg a szemantikát.
Akkor az Open X-Embodiment haszontalan egy alacsony költségű karhoz?▾
Nem, de az értéke előre betanított súlyokon keresztül jut el Önhöz, nem epizódokon keresztül. Nyílt forráskódú adatkészletek, beleértve az OXE-t, a Bridge v2-t és a DROID-ot, a pi0 előtanítási keverékének 9.1 százalékát teszik ki, és az NVIDIA szállít GR00T N1.7 változatokat, amelyeket Bridge, Fractal, DROID és LIBERO adatokon utólag tanítottak be. Amit nem tehet meg, az az, hogy ezeket az epizódokat hozzáfűzi a saját felvételéhez.
Melyik irányelv profitál a legtöbbet a nyilvános cross-embodiment adatokból?▾
A Pi0.5 és a GR00T modellek rendelkeznek a legtöbb cross-embodiment előtanítással, de a SmolVLA gyakran a legjobban viselkedik egy alacsony költségű karon: előtanítási készlete 481 közösségi adatkészletből, 22.9K epizódból és 10.6M képkockából áll, valós SO-100 és SO-101 karokon értékelve. Az ACT az ellenkezője: nincs alapmodell, 20 ms akció lépésenként.
Valójában hány saját epizódra van szükségem?▾
30 a SmolVLA-hoz, 50 a GR00T N1.7-hez, GR00T N1.5-höz, Pi0.5-höz és ACT-hez. A LeRobot alapértelmezett beállításai szerint, 60 másodperc epizódonként és 60 másodperc visszaállítás, 50 epizód 100 perc valós időt jelent. A kölcsönzött cross-embodiment adatok nem csökkentik ezeket a számokat.
Sources
- DROID: Nagyméretű, valós környezetben gyűjtött robotmanipulációs adatkészlet
- DROID dokumentáció: letöltési méretek és az RLDS epizód séma
- BridgeData V2: Adatkészlet nagyméretű robot tanuláshoz
- BridgeData V2 projektoldal: összetétel és kamera lefedettség
- Open X-Embodiment: Robot tanulási adatkészletek és RT-X modellek
- Open X-Embodiment projektoldal
- google-deepmind/open_x_embodiment: adatkészlet lista és RT-1-X ellenőrzőpontok
- any4lerobot: az openx2lerobot konverter és egységesített 8-D állapota, 7-D akciója
- IPEC-COMMUNITY/droid_lerobot: meta/info.json és repo méret
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: a google_robot szelet 3 fps-en
- huggingface/lerobot: SO követő, kinematikai processzor, aggregált és rögzítési konfigurációk
- openpi: DROID irányelv bemenetek és a pi05_droid ellenőrzőpont
- pi0: Egy látás-nyelv-akció áramlási modell általános robotvezérléshez
- SmolVLA: Egy látás-nyelv-akció modell megfizethető és hatékony robotikához
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