Az AY-Robots nyilvános adatkészlet-könyvtára, amely SO-100 osztályú karokon rögzített LeRobot adatkészleteket mutat be
AdatkészletekOpen X-EmbodimentDROIDSO-100LeRobot

DROID, BridgeData V2 és Open X használata SO-100-on

AY-Robots ResearchAugust 23, 202618 perc olvasás

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

DROIDBridgeData V2Open X-Embodiment
RobotFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD berendezés22 megvalósítás, 60 adatkészlet, 34 labor
Méret76k trajektória, 350 óra60 096 trajektória1M+ trajektória, 527 képesség
Sokféleség564 jelenet, 84 feladat, 50 gyűjtő24 környezet, 13 képesség160 266 feladat, 21 intézmény
Összetételmind távvezérelt50 365 távvezérelt, 9 731 szkripteltforrás laboronként
Vezérlési sebesség15 Hz5 Hzváltozó, 3 fps felfelé
Kamerák2 x ZED 2 külső, 1 x ZED Mini csuklóakár 4, a legtöbb epizódban csak a rögzítettamit a labor használt
Nyers letöltés1.7 TB RLDS, 8.7 TB nyers sztereóJPEG archívumokadatszett-specifikus TFDS tárolók
A belépési pont a LeRobot konverzió, nem az eredeti tároló

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 AY-Robots adatgyűjtemény könyvtára, amely listázza a nyilvános LeRobot adatgyűjteményeket epizódszámokkal és feladatleírásokkal.
A nyilvános adatgyűjtemény könyvtára a /directory címen: adatgyűjtemények már LeRobot formában, már egy támogatott karhoz illeszkedve.

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.

python
# 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-D
Balra: A LeRobot SO követője, a src/lerobot/robots/so_follower/so_follower.py fájlból. Jobbra: Az openpi DROID irányelvének bemenete. Hat a nyolc ellen.

Tehá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ágOXE, DROID és Bridge LeRobot formábanSO-100 LeRobotban
Akcióvektor7-D: x, y, z, roll, pitch, yaw, megfogó6-D: egy célpozíció motoronként
Állapotvektor8-D, egy kitöltő hellyel (a google_robot kvaterniót használ)6-D, motoronként egy
KeretDescartes-i, adathalmazokon keresztül nem illesztettízületi tér, karonkénti kalibráció
Abszolút vagy relatívbármelyik, a forrás laboratórium dönti elabszolút célpozíciók
Egységekadathalmazonként normalizálva, majd diszkretizálvaalapértelmezetten fokban (use_degrees=True), egyébként -100 és 100 között
Csendes hibaegy delta abszolút értékként olvasvaegy nem kalibrált kar
A 7D Descartes-vektor a konverter konvenciója, nem a DROID-é

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.

Az egy napot felemésztő csapda

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.

  1. 1
    Húzza le a 100 epizódos mintát, ne a teljes 1,7 TB-ot

    2 GB elegendő a struktúra megtekintéséhez.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    RLDS 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.

    bash
    git 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
  3. 3
    Olvassa 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.

    bash
    python -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'])"
  4. 4
    Pró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.

    bash
    lerobot-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.

Ne kódolja be fixen a robot_type-ot az ellenőrzés kijátszására

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.

Nyilvános, testfüggetlen adatok egy SO-100 projekten
Előnyök
  • 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.
Kompromisszumok
  • 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óderIgen, erősenAz objektumok és jelenetek testfüggetlenek
Nyelvi alapozásIgenAz utasítások szövegesek, nem geometriaiak
Keresztmodális fúzióTöbbnyireFigyelmet fordít a promptban megnevezett objektumra
Propriocepciós enkóderNemA bemeneti dimenzió és az ízületi szemantika eltér
AkciófejNemEgy 7-D Descartes-i térben képzett, amiben te nem vagy
Normalizációs statisztikákNem, és veszélyesAz 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ályzatParaméterekMin. epizódokAdathalmaz formátumGPU szintInferálásAlap ellenőrzőpont
GR00T N1.7~3 B, ~40 M finomhangolással betanítva50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms lépésenkéntnvidia/GR00T-N1.7-3B
GR00T N1.5~3 B50LeRobot v2.0 or v2.1A100 or H100 80 GB165 msnvidia/GR00T-N1.5-3B
Pi0.5~3 B, PaliGemma gerinc50LeRobot v3.0A100 or H100 80 GB485 mslerobot/pi05_base
SmolVLA~450 M30LeRobot v3.0RTX 4090 or any 24 GB245 mslerobot/smolvla_base
ACT~80 M50LeRobot v3.0RTX 4090 or any 24 GB20 msnincs, 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 .

Az AY-Robots rögzítési oktatóoldala, amely bemutatja a LeRobot adatkészlet rögzítésének lépéseit egy távvezérlési munkamenetből
A rögzítési útmutató a /learn/record-your-first-dataset címen: az a lépés, amelyet a nyilvános adatok nem pótolhatnak.

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.

  1. 1
    Install LeRobot with the extras the scripts need

    The record and train entry points each declare their own extra.

    bash
    pip install 'lerobot[core_scripts]'   # lerobot-record
    pip install 'lerobot[training]'      # lerobot-train
    pip install gsutil tensorflow tensorflow-datasets
  2. 2
    Get a small, known-good slice

    100 DROID episodes, 2 GB.

    bash
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  3. 3
    Convert to LeRobot form

    Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.

    bash
    python openx_rlds.py \
        --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \
        --local-dir ~/lerobot_droid100 \
        --repo-id you/droid100_lerobot \
        --use-videos
  4. 4
    Check 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.

    bash
    python src/lerobot/scripts/convert_dataset_v21_to_v30.py \
        --repo-id=you/droid100_lerobot
  5. 5
    Record your own episodes

    Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.

    bash
    lerobot-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"
  6. 6
    Fine-tune on your data only

    Weights from public data, actions from your own. Do not mix the datasets.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=you/so100_pick_block \
      --policy.device=cuda \
      --batch_size=4 \
      --steps=20000
Where the time actually goes

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.

Az AY-Robots asztali kliens letöltési oldala, a kliens, amely LeRobot formátumú adatkészleteket rögzít egy távműködtetési munkamenetből
Az asztali kliens a /download címen közvetlenül egy teleop munkamenetből írja a LeRobot adatkészleteket, megkerülve az RLDS konverziót.

Az egyes útvonalak költségei

ÚtvonalTárhelyEmberi időGPU költségEsélye, hogy megmozdítja a karját
Konvertált DROID önmagában392 GBkonverziós napok4 to 12 USDnagyon alacsony, rossz akciótér
DROID egyesítve az epizódjaivalmindkettőblocked by validate_all_metadatan/anincs, nem fut
SmolVLA, 30-50 saját epizódnéhány GB100 perc felvétel1 to 3 USDmagas
GR00T N1.7, 50 saját epizódnéhány GB100 perc felvétel4 to 12 USDmagas
ACT a nulláról, 50 saját epizódnéhány GB100 perc felvétel1 to 3 USDmagas, 20 ms következtetés
DROID minta tesztberendezésként2 GBegy délutánegy rövid futtatásmagas, 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.

Egy ésszerű alapértelmezett terv

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 klienst
Ké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.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started