Verejný adresár datasetov AY-Robots zobrazujúci datasety LeRobot zaznamenané na ramenách triedy SO-100
DatasetyOpen X-EmbodimentDROIDSO-100LeRobot

Používanie DROID, BridgeData V2 a Open X na SO-100

AY-Robots ResearchAugust 23, 202618 minút čítania

DROID, BridgeData V2 a Open X-Embodiment sa konvertujú na 7D akcie koncového efektora na 6 a 7-stupňových ramenách. SO-100 prijíma 6 kĺbových pozícií. Čo sa prenáša, čo nie a čo robiť namiesto toho.

Stručná verzia

  • Verzie LeRobot všetkých troch zdieľajú jednu konvenciu: 7D akciu koncového efektora [x, y, z, roll, pitch, yaw, gripper] a 8D stav s výplňovým slotom. SO-100 prijíma šesť absolútnych pozícií kĺbov.
  • Tento 7D vektor je artefaktom konvertora: vlastné akčné pole RLDS DROIDu je 6 rýchlostí kĺbov plus pozícia uchopovača, s karteziánskym pohľadom v action_dict.
  • Štyri hodiny: DROID 15 fps, BridgeData V2 5 fps, výrez google_robot 3 fps, nahrávanie SO-100 pri 30 fps.
  • Nemôžete ich zlúčiť s vlastnými dátami. validate_all_metadata vyvolá chybu pri prvej odlišnosti v fps, robot_type alebo features, a všetky tri sa líšia.
  • Prenášajú sa predtrénované váhy, nie epizódy. Open-source dáta tvoria 9.1 percenta z predtrénovacej zmesi pi0.
  • Ich najlacnejšie skutočné použitie je testovacie zariadenie: známa dobrá 2 GB, 100-epizódová vzorka DROID, ktorá preverí váš pipeline predtým, ako budete nahrávať celý víkend.

Existuje verejný dataset s miliónom trajektórií na Google Cloud buckete a na stole, ktorý stál 110 až 150 EUR v súčiastkach. Prečo prvý nemôže naučiť druhý? Čiastočne môže, ale takmer žiadny prenos sa nedeje tam, kde ľudia očakávajú, a časť, ktorá vyzerá najjednoduchšie, vôbec nefunguje.

Čo nasleduje: čo je vo vnútri , a , kde sa každý stretáva s lacným 5-DoF ramenom, a čo robiť namiesto toho. Každé číslo nižšie pochádza z článku, karty datasetu alebo zdrojového súboru, ku ktorému patrí.

Čo tri datasety skutočne obsahujú

DROIDBridgeData V2Open X-Embodiment
RobotFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD rig22 embodiments, 60 datasets, 34 labs
Mierka76k trajectories, 350 hours60,096 trajectories1M+ trajectories, 527 skills
Diverzita564 scenes, 84 tasks, 50 collectors24 environments, 13 skills160,266 tasks, 21 institutions
Kompozíciavšetko teleoperované50 365 teleoperovaných, 9 731 skriptovanýchpodľa zdrojového laboratória
Frekvencia riadenia15 Hz5 Hzlíši sa, od 3 snímok/s vyššie
Kamery2 x ZED 2 externé, 1 x ZED Mini na zápästíaž 4, väčšina epizód len pevnáčokoľvek, čo laboratórium použilo
Surové stiahnutie1.7 TB RLDS, 8.7 TB raw stereoJPEG archivesper-dataset TFDS buckets
Vstupným bodom je konverzia LeRobot, nie pôvodný bucket

Málokto si ešte sťahuje 1,7 TB RLDS TFRecords. Komunitná organizácia IPEC-COMMUNITY prepublikovala väčšinu Open X-Embodiment vo forme LeRobot dataset s AV1 videom, kde DROID zaberá 392 GB. To je verzia, s ktorou budete pracovať, a jej meta/info.json je to, čo si prečítate ako prvé.

DROID

Najštandardizovanejší z troch. Jedna zostava všade: Franka Panda s uchopovačom Robotiq 2F-85, dve nastaviteľné stereo kamery ZED 2 a ZED Mini na zápästí, teleoperované ovládačmi Meta Quest 2, zaznamenané cez Polymetis pri 15 Hz v kĺbovom aj koncový efektor priestore. Jazykové štítky prišli neskôr cez tasq.ai, až tri na epizódu.

  • 76k trajektórií, 350 hodín, 564 scén, 84 úloh, 50 zberačov na troch kontinentoch.
  • Hlavným výsledkom je spoločné trénovanie, nie samostatné trénovanie: dávky zmiešané 50/50 s ukážkami z danej domény prekonali ďalšiu najlepšiu metódu o 22 percent absolútneho úspechu v distribúcii, 17 percent mimo nej.
  • IPEC-COMMUNITY/droid_lerobot: 92,233 epizód, 27,044,326 snímok, franka, 15 fps, codebase_version v2.0, tri AV1 streamy pri 180x320, 392 GB.
  • 2 GB, 100-epizódová vzorka na ladenie sa nachádza na gs://gresearch/robotics/droid_100. Začnite tam.

BridgeData V2

Najbližšie k hobby nastaveniu: rameno WidowX 250 6-DoF, 60,096 trajektórií naprieč 24 prostrediami a 13 zručnosťami pri 5 Hz. Všimnite si zloženie: 50,365 expertných teleoperovaných ukážok plus 9,731 z randomizovanej skriptovanej politiky „vyzdvihni a umiestni“, takže asi 16 percent nie je ľudská ukážka, čo je dôležité pre učenie napodobňovaním kvalitu. Obvyklé stiahnutie, IPEC-COMMUNITY/bridge_orig_lerobot, uvádza 53,192 epizód a 1,893,026 snímok pri 5 fps, robot_type widowx: menej ako 60,096 v článku, takže si prečítajte počet z meta/info.json namiesto citovania jedného z nich.

Open X-Embodiment

Nie je to dátový súbor v rovnakom zmysle: 60 existujúcich robotických dátových súborov z 34 laboratórií spojených do jednej kolekcie RLDS, pokrývajúcej 22 prevedení a viac ako milión trajektórií. BridgeData V2 sa nachádza vo vnútri ako bridge_orig; výrez google_robot, fractal20220817_data, sa konvertuje na 87 212 epizód pri 3 fps.

Zlúčenie so sebou nesie výhradu, ktorú článok priamo uvádza. Pre experimenty RT-X autori konvertujú každý zdroj na akciu koncového efektora so 7 stupňami voľnosti (DoF), ale nezarovnávajú súradnicové systémy naprieč dátovými súbormi a umožňujú, aby hodnoty akcií boli absolútne alebo relatívne pozície či rýchlosti, podľa pôvodnej riadiacej schémy každého robota. Ich záver: rovnaký akčný vektor môže vyvolať veľmi odlišné pohyby pre rôznych robotov.

Zoznam verejných dátových súborov LeRobot v adresári dátových súborov AY-Robots s počtom epizód a popismi úloh
Verejný adresár dátových súborov na /directory: dátové súbory už vo formáte LeRobot, už zodpovedajúce podporovanému ramenu.

Nezhoda, v štyroch častiach

Nezhoda stelesnenia sa zvyčajne považuje za jeden nejasný problém. Sú štyri, zlyhávajú rôzne a dve nie sú opraviteľné skriptovaním.

1. Stupne voľnosti

SO-100 má päť kĺbov ramena plus chápadlo. Počítané ako motory je to 6-stupňové rameno a článok SmolVLA ho tak nazýva; počítané ako polohovací mechanizmus je to 5-stupňové, a LeRobot ho tak nazýva vo svojom docstringu inverznej kinematiky, ktorý popisuje IK s mäkkou orientáciou na 5-stupňovom SO-101, kde zápästie sleduje orientáciu len čiastočne. Franka má sedem polohovacích kĺbov. Táto medzera rozhoduje o tom, aké pózy existujú: 5-stupňové rameno nemôže všeobecne dosiahnuť ľubovoľnú pozíciu a orientáciu naraz, takže riešiteľ vráti to najbližšie, čo dokáže, čo je iný pohyb ako ten demonštrovaný. Pozadie: .

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
Vľavo: SO follower od LeRobot, zo src/lerobot/robots/so_follower/so_follower.py. Vpravo: Vstup DROID politiky openpi. Šesť proti ôsmim.

Takže hotový DROID checkpoint nie je skratka. Physical Intelligence dodáva pi05_droid na gs://openpi-assets/checkpoints/pi05_droid a ten istý README, ktorý chváli jeho šírku, varuje, že tieto expertné checkpointy sa nemusia zovšeobecniť na vaše nastavenie. Jeho stav je osem Franka kĺbových čísel a jeho obrazové kľúče sú exterior_image_1_left a wrist_image_left. Žiadny príznak to nepremení na šesťmotorový príkaz SO-100.

2. Čo vlastne hovorí akčný vektor

Hlbšie ako dimenzionalita. V konverziách LeRobot všetky tri hovoria, kam by mal ísť uchopovač, v karteziánskom priestore. SO-100 hovorí, kam by malo ísť šesť servomotorov. Konverzia si vyžaduje kinematický model a riešiteľ, nie preformátovanie.

VlastnosťOXE, DROID a Bridge vo forme LeRobotSO-100 v LeRobot
Akčný vektor7-D: x, y, z, roll, pitch, yaw, uchopovač6-D: jedna cieľová pozícia na motor
Stavový vektor8-D, s výplňovým slotom (google_robot používa kvaternión)6-D, jeden na motor
RámecKarteziánsky, nezarovnaný naprieč súbormi dátkĺbový priestor, kalibrácia na rameno
Absolútny alebo relatívnybuď, rozhoduje zdrojové laboratóriumabsolútne cieľové pozície
Jednotkynormalizované na súbor dát, potom diskretizovanéstupne predvolene (use_degrees=True), inak -100 až 100
Tiché zlyhaniedelta čítaná ako absolútnanezkalibrované rameno
7-rozmerný karteziánsky vektor je konvenciou konvertora, nie DROIDu

Súbor openx2lerobot README dokumentuje jednotný 8-rozmerný stav a 7-rozmernú akciu pre každý dátový súbor, ktorý konvertuje, odkiaľ pochádza slot pad. Vlastná schéma RLDS DROIDu sa líši: jeho akcia najvyššej úrovne action je 7-vektor 6 rýchlostí kĺbov plus 1 pozícia uchopovača, s cartesian_position, cartesian_velocity, joint_position a joint_velocity pod action_dict. openpi číta pohľad v kĺbovom priestore, zostava LeRobot vám poskytne karteziánsky pohľad. Ani jeden nie je šesť absolútnych uhlov serva.

LeRobot dodáva chýbajúci diel: SO follower má kinematický procesor s krokmi InverseKinematicsEEToJoints a ForwardKinematicsJointsToEE. Jeho kľúče sú ee.x, ee.y, ee.z plus rotačný vektor ee.wx, ee.wy, ee.wz a ee.gripper_pos, takže aj kódovanie orientácie sa líši od roll-pitch-yaw v súboroch. Krok IK berie orientation_weight, predvolene 0.01, ktorého docstring hovorí, aby sa nastavilo 0.0 pre IK len pre pozíciu na nedostatočne ovládaných ramenách. Môžete postaviť most, ale orientačná polovica každej požičanej akcie zostáva aproximovaná.

3. Frekvencia riadenia

DROID je 15 Hz, BridgeData V2 5 Hz, google_robot slice 3 fps; autori pi0 popisujú open-source časť ich zmesi ako nízkofrekvenčné riadenie medzi 2 a 10 Hz. Predvolené nastavenia DatasetRecordConfig LeRobot sú fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. trénovaná na 5 Hz dátach sa naučila, že jedna akcia pokrýva 200 ms. Prehrajte ju pri 30 Hz a rameno sa plazí; naivne pre-vzorkujte a rozmažete snímku, kde sa uchopovač zatvára. Tiež to zle interaguje s : 100-krokový blok je 20 sekúnd pri 5 Hz, 3.3 pri 30 Hz.

4. Kamery

BridgeData V2 náhodne menil dve pozície kamier každých 50 trajektórií a jeho projektová stránka uvádza, že väčšina dát aj tak obsahuje len fixný pohľad. DROID používal nastaviteľné držiaky ZED 2 plus ZED Mini na zápästí. Vy máte dve USB webkamery umiestnené od oka. Pozícia kamery nie je rušivá premenná pre ; je to veľká časť toho, na čo sa vizuálny kodér zameral, a nič vo formáte súboru vám nehovorí, že sa pozície líšia.

Pasca, ktorá pohltí deň

Časti do seba zapadajú dostatočne dobre na spustenie. Dátová sada sa načíta, tréning začne, strata klesá, objavujú sa kontrolné body, nič nehlási chybu. Potom politika nerobí na ramene nič rozpoznateľné a vy strávite deň hľadaním chyby vo vašom tréningovom skripte. Žiadna chyba tam nie je: model sa naučil kartézsku distribúciu akcií pre robota, ktorý vo vašej miestnosti neexistuje. Začnite pri strata klesá, politika nerobí nič, nie pri vašich hyperparametroch.

Čo sa stane, keď sa aj tak pokúsite zlúčiť dáta

Očividný plán je spojiť: niekoľko tisíc DROID epizód plus vašich 50. LeRobot odmieta a odmietnutie vymenúva tri veci, ktoré sa líšia.

  1. 1
    Stiahnite si 100-epizódovú vzorku, nie celých 1.7 TB

    2 GB stačia na zobrazenie štruktúry.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    Konvertujte RLDS do formátu LeRobot

    openx2lerobot obaluje štandardné transformácie OXE a anotuje typ robota a riadiacu frekvenciu. Súbor README to uvádza v convert.sh.

    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
    Prečítajte si meta/info.json pred čímkoľvek iným

    Tento súbor rozhoduje o tom, či zvyšok vášho dňa bude fungovať.

    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
    Vyskúšajte zlúčenie a prečítajte si chybu

    merge načíta každý dataset, potom validate_all_metadata skontroluje fps, robot_type a features oproti prvému v zozname a vyvolá chybu pri prvej nezhode.

    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.

Referenčné hodnoty pochádzajú z akéhokoľvek datasetu, ktorý ste uviedli ako prvý, preto sa správa sťažuje na vašich 30 fps namiesto DROID-ových 15. Opravte fps a narazíte na kontrolu robot_type; opravte to a narazíte na kontrolu features, 7 proti 6 pre akciu. Žiadne poradie neprejde a rovnaká ochrana sa spúšťa v čase nahrávania prostredníctvom sanity_check_dataset_robot_compatibility.

Nenastavujte robot_type natvrdo, aby ste obišli kontrolu

V aktuálnom LeRobot main sú so100_follower a so101_follower zaregistrované na jednu zdieľanú SOFollowerRobotConfig, takže reťazec zo skutočného záznamu nemusí byť ten, ktorý očakávate. Prečítajte si ho z vlastného meta/info.json a kontrolu, ktorú ste museli vypnúť, považujte za kontrolu, ktorá vám niečo hovorila.

Čo sa teda skutočne prenáša?

Váhy, nie epizódy. Každá moderná všeobecná politika absorbovala časť z toho v predtréningu, a keď z vydaného už to zdedíte zosúladené ľuďmi s výpočtovým výkonom na to, aby to urobili správne. Práca pi0 je úprimná o pomere: 9,1 percenta jej predtréningovej zmesi, počítané v časových krokoch, sú open-source dáta vrátane OXE, Bridge v2 a DROID. Toto číslo je pi0; zmes každého dodávateľa sa líši.

Verejné dáta naprieč stelesneniami pre projekt SO-100
Výhody
  • Vizuálne a jazykové priory: enkodér videl tisíce kuchýň a hrnčekov a vie, na čo sa odkazuje „červený blok“.
  • Prior nad manipulačnou štruktúrou: priblíženie, zatvorenie, zdvihnutie, transport, uvoľnenie, nezávislé od stelesnenia, aj keď čísla nie sú.
  • Osvedčený dátový súbor na testovanie. Ak vaša úloha nedokáže pretrénovať 100 DROID epizód, problém je vo vašom nastavení.
  • Referenčné body: v doménach s malými dátovými súbormi RT-1-X dosiahol o 50 percent vyššiu priemernú mieru úspešnosti ako pôvodná metóda alebo RT-1, a RT-2-X prekonal RT-2 približne 3x v oblasti emergentných zručností.
Kompromisy
  • Žiadna použiteľná supervízia akcií. 7-D karteziánsky cieľ nie je 6-D kĺbový príkaz.
  • Žiadny prenos pozície kamery a nič v dátach vám nehovorí, že sa pozície líšia.
  • Žiadny prenos časovania: 3, 5 a 15 fps zdroje oproti 30 fps rekordéru.
  • Žiadny prenos uchopovača. Robotiq 2F-85 a tlačená čeľusť na STS3215 sa líšia silou, zdvihom a dynamikou.
  • Samotná škála nestačila ani pre jej autorov: v doménach s veľkými dátovými súbormi RT-1-X neprekonala RT-1 trénovanú len na tomto dátovom súbore.
  • Žiadne zníženie počtu vlastných epizód, ktoré potrebujete.
Vrstva modeluPrenáša sa?Prečo
Vizuálny enkodérÁno, silneObjekty a scény sú nezávislé od stelesnenia
Jazykové uzemnenieÁnoInštrukcie sú text, nie geometria
Krížovo-modálna fúziaVäčšinouZameriava sa na objekt pomenovaný vo výzve
Proprioceptívny enkodérNieVstupná dimenzia a sémantika kĺbov sa líšia
Akčná hlavaNieTrénovaná na 7-D karteziánskom priestore, v ktorom sa nenachádzate
Normalizačné štatistikyNie, a nebezpečnéCudzie štatistiky posúvajú každý príkaz

Preto SmolVLA sa správa inak na lacnom ramene. Jeho článok vyberá 481 komunitných dátových sád z Hugging Face, filtrovaných podľa typu stelesnenia, počtu epizód, kvality dát a pokrytia snímok: 22.9K epizód, 10.6M snímok, vyhodnotených na reálnych ramenách SO-100 a SO-101. Malé a zhodné prekonáva veľké a nezhodné. Porovnajte na ACT proti SmolVLA.

Tri cesty, ktoré sa oplatí zvážiť

Cesta A: doladenie z kontrolného bodu, ktorý už dáta spracoval

Väčšina ľudí by si mala zvoliť túto cestu. Nikdy sa nedotýkate DROID ani Open X-Embodiment: vyberte si politiku, ktorej predtréning už absorboval dáta naprieč stelesneniami, zaznamenajte si vlastné epizódy, dolaďte.

PolitikaParametreMin. epizódFormát dátovej sadyÚroveň GPUInferenciaZákladný kontrolný bod
GR00T N1.7~3 B, ~40 M trénovaných v dolaďovaní50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms na kroknvidia/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, chrbtica PaliGemma50LeRobot 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 msžiadny, od začiatku

ACT je úprimný okrajový prípad: žiadny základný model, takže sa k nemu nikdy nedostanú žiadne verejné dáta. To nie je automaticky nevýhoda, pretože s 20 ms na akčný krok je jediným z piatich, ktorý dokáže uzavrieť rýchlu slučku, ako stránka ACT uvádza. Vyberte si podľa úlohy pomocou všetkých piatich porovnaných, GR00T N1.7 proti Pi0.5, a 332 výsledkov benchmarkov naprieč 85 modelmi v aréne.

Cesta B: použite DROID ako testovacie zariadenie

100-epizódová vzorka je najlepších 2 GB, ktoré si tento mesiac stiahnete, a nie je určená na trénovanie. Je to dátová sada, o ktorej viete, že je správna. Spustite na nej svoj konvertor, loader a krátku úlohu na GPU; čokoľvek, čo zlyhá, je chyba infraštruktúry nájdená, kým to bolo lacné. NVIDIA robí to isté vo veľkom: karta GR00T N1.7 uvádza štyri post-trénované varianty pre Bridge a Fractal v SimplerEnv, DROID a LIBERO.

Cesta C: nahrajte si vlastné, zámerne

Tridsať až päťdesiat znie málo vedľa 76 000, kým si nespomeniete, že vaše sú jediné s vašou rukou, vašimi kamerami a vaším stolom. Pri predvolených nastaveniach LeRobotu je 50 epizód 100 minút reálneho času. Pozrite si , and .

Stránka s návodom na nahrávanie AY-Robots ukazujúca kroky na zachytenie datasetu LeRobot zo teleoperačnej relácie
Návod na nahrávanie na /learn/record-your-first-dataset: krok, ktorý verejné dáta nemôžu nahradiť.

Dva spôsoby, ako sa dostať z verejných dát k funkčnej politike

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.

Stránka na stiahnutie desktopového klienta AY-Robots, klienta, ktorý zaznamenáva dátové sady vo formáte LeRobot z teleoperačnej relácie
Desktopový klient na /download zapisuje dátové sady LeRobot priamo z teleoperačnej relácie, obchádzajúc konverziu RLDS.

Čo stojí každá cesta

CestaÚložiskoČas človekaNáklady na GPUŠanca, že pohne vašou rukou
Konvertovaný DROID samostatne392 GBdni konverzie4 to 12 USDveľmi nízka, nesprávny akčný priestor
DROID zlúčený s vašimi epizódamiobidvablokované validate_all_metadatan/ažiadna, nespustí sa
SmolVLA, 30 až 50 vlastných epizódniekoľko GB100 min nahrávania1 to 3 USDvysoká
GR00T N1.7, 50 vlastných epizódniekoľko GB100 min nahrávania4 to 12 USDvysoká
ACT od začiatku, 50 vlastných epizódniekoľko GB100 min nahrávania1 to 3 USDvysoká, 20 ms inferencia
Vzorka DROID ako testovacie zariadenie2 GBjedno popoludniejeden krátky behvysoká, ako validácia

Asymetria je kľúčová: cesta, ktorá si požičiava najviac dát, je najdrahšia a najmenej pravdepodobné, že pohne vašou rukou. Menej ako dve hodiny vašej vlastnej teleoperácie prekoná terabajt Franky niekoho iného. Ešte nemáte rameno? /live streamuje fyzický SO-100 bez registrácie. Potom natrénujte svoju prvú politiku, a SmolVLA na SO-100 pre konkrétneho sprievodcu.

Rozumný predvolený plán

Stiahnite si 2 GB vzorku DROID a použite ju na overenie vášho pipeline. Ignorujte zvyšných 1.7 TB. Nahrajte 50 epizód jednej úlohy s pevnými kamerami. Najprv dolaďte SmolVLA, pretože s minimálne 30 epizódami na 24 GB karte je najlacnejšie na ňom iterovať, potom skúste GR00T N1.7 na rovnakých dátach. Porovnajte na vašej úlohe, nie na benchmarku.

Nahrávajte datasety, ktoré už zodpovedajú vášmu ramenu

Desktopový klient zapisuje datasety vo formáte LeRobot priamo z teleoperačnej relácie: správne rameno, správna snímková frekvencia, správny akčný priestor. Žiadna konverzia RLDS, žiadne premapovanie.

Získajte desktopového klienta
Môžem trénovať politiku na DROID a spustiť ju na mojom SO-100?

Nie priamo. V zostave LeRobot sú akcie DROID 7-D príkazy koncového efektora na Franka Panda pri 15 fps; v surovom RLDS sú to 6 rýchlostí kĺbov plus pozícia uchopovača. SO-100 vyžaduje 6 absolútnych pozícií kĺbov. Potrebovali by ste vrstvu inverznej kinematiky, a aj tak 5-DoF zápästie nedokáže reprodukovať ľubovoľné 6-DoF pózy.

Môžem miešať epizódy DROID alebo Bridge s mojimi vlastnými epizódami SO-100?

Nie. validate_all_metadata vyžaduje identické fps, robot_type a schému funkcií a vyvolá ValueError pri prvej nezhode. Všetky tri sa líšia: 15 alebo 5 fps oproti 30, franka alebo widowx oproti vášmu ramenu, tvary akcií 7 oproti 6. Prepisovanie metadát na prekonanie kontroly nerieši sémantiku.

Je potom Open X-Embodiment zbytočný pre lacné rameno?

Nie, ale jeho hodnota sa k vám dostane prostredníctvom predtrénovaných váh, nie epizód. Open-source datasety vrátane OXE, Bridge v2 a DROID tvoria 9.1 percenta z predtrénovacej zmesi pi0, a NVIDIA dodáva varianty GR00T N1.7 post-trénované na Bridge, Fractal, DROID a LIBERO. Čo nemôžete urobiť, je pripojiť tieto epizódy k vlastnému záznamu.

Ktorá politika najviac profituje z verejných dát naprieč embodimentmi?

Pi0.5 a modely GR00T nesú najviac predtrénovania naprieč embodimentmi, ale SmolVLA sa často správa najlepšie na lacnom ramene: jeho predtrénovací súbor obsahuje 481 komunitných datasetov, 22.9K epizód a 10.6M snímok, vyhodnotených na skutočných ramenách SO-100 a SO-101. ACT je opak: žiadny základný model, 20 ms na akčný krok.

Koľko vlastných epizód skutočne potrebujem?

30 pre SmolVLA, 50 pre GR00T N1.7, GR00T N1.5, Pi0.5 a ACT. Pri predvolených nastaveniach LeRobot 60 s na epizódu a 60 s reset, 50 epizód je 100 minút reálneho času. Požičané dáta naprieč embodimentmi tieto čísla neznižujú.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started