AY-Robots publiskā datu kopu direktorija, attēlojot LeRobot datu kopas, kas ierakstītas uz SO-100 klases robotu rokām
Datu kopasOpen X-EmbodimentDROIDSO-100LeRobot

Izmantojot DROID, BridgeData V2 un Open X ar SO-100

AY-Robots ResearchAugust 23, 202618 min lasīšanas

DROID, BridgeData V2 un Open X-Embodiment tiek pārveidoti par 7-D gala efektora darbībām 6 un 7-DoF robotu rokām. SO-100 izmanto 6 locītavu pozīcijas. Kas pārnesas, kas nepārnesas, ko darīt tā vietā.

Īsumā

  • Visu trīs LeRobot versiju pamatā ir viena konvencija: 7-D gala efektora darbība [x, y, z, roll, pitch, yaw, gripper] un 8-D stāvoklis ar aizpildījuma slotu. SO-100 izmanto sešas absolūtās savienojumu pozīcijas.
  • Šis 7-D vektors ir pārveidotāja artefakts: DROID paša RLDS darbības lauks ir 6 savienojumu ātrumi plus satvērēja pozīcija, ar Dekarta skatu action_dict.
  • Četri takts frekvences: DROID 15 fps, BridgeData V2 5 fps, google_robot daļa 3 fps, SO-100 ieraksts 30 fps.
  • Jūs nevarat tos apvienot ar saviem datiem. validate_all_metadata izmet kļūdu, ja atšķiras pirmais no fps, robot_type vai features, un visi trīs atšķiras.
  • Tiek pārsūtīti iepriekš apmācīti svari, nevis epizodes. Atvērtā koda dati veido 9.1 procentus no pi0 iepriekšējās apmācības maisījuma.
  • To lētākais reālais pielietojums ir testa armatūra: zināms, labs 2 GB, 100 epizožu DROID paraugs, kas pierāda jūsu cauruļvada darbību pirms ierakstīšanas nedēļas nogalē.

Google Cloud krātuvē ir publisks datu kopums ar miljons trajektorijām un SO-100 uz galda, kas detaļās izmaksāja 110 līdz 150 EUR. Kāpēc pirmais nevar iemācīt otrajam? Daļēji var, bet gandrīz neviena pārsūtīšana nenotiek tur, kur cilvēki sagaida, un daļa, kas izskatās visvieglākā, vispār nedarbojas.

Tālāk: kas atrodas DROID, BridgeData V2 un Open X-Embodiment, kur katrs saduras ar zemu izmaksu 5-DoF robotu roku, un ko darīt tā vietā. Katrs zemāk norādītais skaitlis nāk no attiecīgā raksta, datu kopas kartes vai avota faila.

Ko patiesībā satur šie trīs datu kopumi

DROIDBridgeData V2Open X-Embodiment
RobotsFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD aprīkojums22 iemiesojumi, 60 datu kopas, 34 laboratorijas
Mērogs76k trajektorijas, 350 stundas60 096 trajektorijas1M+ trajektorijas, 527 prasmes
Daudzveidība564 ainas, 84 uzdevumi, 50 vācēji24 vides, 13 prasmes160 266 uzdevumi, 21 iestāde
Sastāvsvisi tālvadāmi50 365 tālvadāmi, 9 731 skriptētipēc avota laboratorijas
Kontroles ātrums15 Hz5 Hzmainās, no 3 kadriem sekundē uz augšu
Kameras2 x ZED 2 ārējās, 1 x ZED Mini plaukstaslīdz 4, lielākajā daļā epizožu tikai fiksētāko izmantoja laboratorija
Neapstrādāta lejupielāde1.7 TB RLDS, 8.7 TB neapstrādāta stereoJPEG arhīviTFDS kausi katrai datu kopai
Ieejas punkts ir LeRobot konversija, nevis oriģinālais kauss

Maz cilvēku joprojām lejupielādē 1.7 TB RLDS TFRecords. Kopienas organizācija IPEC-COMMUNITY ir atkārtoti publicējusi lielāko daļu Open X-Embodiment LeRobot datu kopas formātā ar AV1 video, kur DROID aizņem 392 GB. Tā ir versija, ar kuru jūs strādāsiet, un tās meta/info.json ir tas, kas jāizlasa vispirms.

DROID

Visstandartizētākais no trim. Viens aprīkojums visur: Franka Panda ar Robotiq 2F-85 satvērēju, divas regulējamas ZED 2 stereo kameras un plaukstas ZED Mini, tālvadāms ar Meta Quest 2 kontrolieriem, ierakstīts caur Polymetis ar 15 Hz gan locītavu, gan gala efektora telpā. Valodu etiķetes tika pievienotas vēlāk, izmantojot tasq.ai, līdz trim uz epizodi.

  • 76k trajektorijas, 350 stundas, 564 ainas, 84 uzdevumi, 50 datu vācēji trīs kontinentos.
  • Galvenais rezultāts ir kopīga apmācība, nevis atsevišķa apmācība: partijas, kas sajauktas 50/50 ar domēna demonstrācijām, pārspēj nākamo labāko metodi par 22 procentiem absolūtas veiksmes sadalījumā, 17 procentiem ārpus tā.
  • IPEC-COMMUNITY/droid_lerobot: 92,233 episodes, 27,044,326 frames, franka, 15 fps, codebase_version v2.0, trīs AV1 straumes ar 180x320, 392 GB.
  • 2 GB, 100 epizožu atkļūdošanas paraugs atrodas gs://gresearch/robotics/droid_100. Sāciet ar to.

BridgeData V2

Vislīdzīgākais hobija iestatījumam: WidowX 250 6-DoF roka, 60,096 trajektorijas 24 vidēs un 13 prasmēs ar 5 Hz. Ievērojiet sastāvu: 50,365 ekspertu tālvadības demonstrācijas plus 9,731 no randomizētas skriptētas paņemšanas un novietošanas politikas, tātad aptuveni 16 procenti nav cilvēka demonstrācijas, kas ir svarīgi imitācijas mācīšanās kvalitātei. Parastā lejupielāde, IPEC-COMMUNITY/bridge_orig_lerobot, ziņo par 53,192 epizodēm un 1,893,026 kadriem ar 5 fps, robot_type widowx: mazāk nekā rakstā minētie 60,096, tāpēc lasiet skaitu no meta/info.json, nevis citējiet kādu no tiem.

Open X-Embodiment

Nav datu kopa tādā pašā nozīmē: 60 esošas robotu datu kopas no 34 laboratorijām apvienotas vienā RLDS kolekcijā, aptverot 22 iemiesojumus un vairāk nekā miljonu trajektoriju. BridgeData V2 atrodas tajā kā bridge_orig; google_robot šķēle, fractal20220817_data, pārvēršas par 87 212 epizodēm ar 3 kadriem sekundē.

Apvienošanai ir brīdinājums, ko raksts skaidri norāda. RT-X eksperimentiem autori katru avotu pārvērš par 7-DoF gala efektora darbību, taču nesaskaņo koordinātu rāmjus starp datu kopām un ļauj darbības vērtībām būt absolūtām vai relatīvām pozīcijām vai ātrumiem, saskaņā ar katra robota oriģinālo vadības shēmu. Viņu secinājums: viens un tas pats darbības vektors var izraisīt ļoti atšķirīgas kustības dažādiem robotiem.

AY-Robots datu kopu direktorija, kas uzskaita publiskās LeRobot datu kopas ar epizožu skaitu un uzdevumu aprakstiem
Publiskā datu kopu direktorija vietnē /directory: datu kopas jau LeRobot formātā, jau atbilst atbalstītai rokai.

Nesakritība, četros posmos

Iemiesojuma neatbilstība parasti tiek uzskatīta par vienu neskaidru problēmu. Tās ir četras, tās sabojājas atšķirīgi, un divas nav labojamas ar skriptēšanu.

1. Brīvības pakāpes

SO-100 ir piecas rokas locītavas plus satvērējs. Saskaitot kā motorus, tā ir 6-DoF roka, un SmolVLA raksts to tā dēvē; saskaitot kā pozicionēšanas mehānismu, tā ir 5-DoF, un LeRobot to tā dēvē savā apgrieztās kinemātikas dokumentācijā, kas apraksta mīkstas orientācijas IK uz 5-DOF SO-101, kur plaukstas locītava seko orientācijai tikai daļēji. Franka ir septiņas pozicionēšanas locītavas. Šī atšķirība nosaka, kādas pozas pastāv: 5-DoF roka parasti nevar vienlaikus sasniegt patvaļīgu pozīciju un orientāciju, tāpēc risinātājs atgriež tuvāko iespējamo, kas ir atšķirīga kustība no demonstrētās. Fons: .

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
Pa kreisi: LeRobot SO sekotājs, no src/lerobot/robots/so_follower/so_follower.py. Pa labi: openpi DROID politikas ievade. Seši pret astoņiem.

Tātad gatavs DROID kontrolpunkts nav īsceļš. Physical Intelligence piegādā pi05_droid vietnē gs://openpi-assets/checkpoints/pi05_droid, un tas pats README, kas slavē tā plašumu, brīdina, ka šie ekspertu kontrolpunkti var nebūt vispārināmi jūsu iestatījumam. Tā stāvoklis ir astoņi Franka savienojumu numuri, un tā attēlu atslēgas ir exterior_image_1_left un wrist_image_left. Neviens karogs to nepārvērš par sešu motoru SO-100 komandu.

2. Ko patiesībā saka darbības vektors

Dziļāk par dimensionalitāti. LeRobot konversijās visi trīs norāda, kur jāiet satvērējam, Dekarta telpā. SO-100 norāda, kur jāiet sešiem servomotoriem. Pārveidošanai nepieciešams kinemātiskais modelis un risinātājs, nevis pārveidošana.

ĪpašībaOXE, DROID un Bridge LeRobot formāSO-100 LeRobot
Darbības vektors7-D: x, y, z, rullis, slīpums, pagrieziens, satvērējs6-D: viena mērķa pozīcija katram motoram
Stāvokļa vektors8-D, ar polsterējuma slotu (google_robot izmanto kvaternionu)6-D, viens katram motoram
RāmisDekarta, nesaskaņots starp datu kopāmsavienojumu telpa, kalibrēšana katrai rokai
Absolūts vai relatīvsjebkurš, ko nosaka avota laboratorijaabsolūtās mērķa pozīcijas
Vienībasnormalizētas katrai datu kopai, pēc tam diskretizētasgrādi pēc noklusējuma (use_degrees=True), citādi no -100 līdz 100
Klusā kļūmedelta nolasīta kā absolūtanekalibrēta roka
7D Dekarta vektors ir pārveidotāja, nevis DROID, konvencija

openx2lerobot README dokumentē vienotu 8-dim stāvokli un 7-dim darbību katrai datu kopai, ko tas pārveido, un no kurienes nāk pad slots. DROID paša RLDS shēma atšķiras: tās augstākā līmeņa action ir 7-vektors, kas sastāv no 6 locītavu ātrumiem plus 1 satvērēja pozīcijas, ar cartesian_position, cartesian_velocity, joint_position un joint_velocity zem action_dict. openpi nolasa locītavu telpas skatu, savukārt LeRobot versija sniedz jums Dekarta skatu. Neviens no tiem nav seši absolūti servo leņķi.

LeRobot piegādā trūkstošo daļu: SO sekotājam ir kinemātikas procesors ar InverseKinematicsEEToJoints un ForwardKinematicsJointsToEE soļiem. Tā atslēgas ir ee.x, ee.y, ee.z, kā arī rotācijas vektors ee.wx, ee.wy, ee.wz un ee.gripper_pos, tāpēc pat orientācijas kodējums atšķiras no failos esošā roll-pitch-yaw. IK solis izmanto orientation_weight, noklusējuma vērtība 0.01, kura docstring norāda iestatīt 0.0 pozīcijas-tikai IK gadījumā nepietiekami aktuatorizētām rokām. Jūs varat uzbūvēt tiltu, taču katras aizgūtās darbības orientācijas puse paliek aptuvena.

3. Vadības ātrums

DROID ir 15 Hz, BridgeData V2 5 Hz, google_robot daļa 3 fps; pi0 autori apraksta savas jaukto datu kopas atvērtā koda daļu kā zemas frekvences vadību starp 2 un 10 Hz. LeRobot DatasetRecordConfig noklusējuma vērtības ir fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. apmācīta ar 5 Hz datiem, iemācījās, ka viena darbība aptver 200 ms. Atskaņojot to ar 30 Hz, roka rāpo; naivi pārsamplējot, jūs izpludināt kadru, kurā satvērējs aizveras. Tas arī slikti mijiedarbojas ar : 100 soļu gabals ir 20 sekundes pie 5 Hz, 3.3 sekundes pie 30 Hz.

4. Kameras

BridgeData V2 nejaušināja divas kameras pozas ik pēc 50 trajektorijām, un tā projekta lapā norādīts, ka lielākā daļa datu anyway satur tikai fiksētu skatu. DROID izmantoja regulējamus ZED 2 stiprinājumus, kā arī plaukstas ZED Mini. Jums ir divas USB tīmekļa kameras, kas novietotas ar aci. Kameras poza nav traucējošs mainīgais priekš ; tas ir liela daļa no tā, uz ko vizuālais kodētājs balstījās, un nekas faila formātā neliecina, ka pozas atšķiras.

Slazds, kas apēd dienu

Detaļas der kopā pietiekami labi, lai darbotos. Datu kopa ielādējas, apmācība sākas, zudums samazinās, parādās kontrolpunkti, nekas neuzrāda kļūdas. Tad politika nedara neko atpazīstamu uz rokas, un jūs pavadāt dienu, meklējot kļūdu savā apmācības skriptā. Kļūdas nav: modelis iemācījās Dekarta darbību sadalījumu robotam, kas jūsu istabā neeksistē. Sāciet ar zudums samazinās, politika nedara neko, nevis ar saviem hiperparametriem.

Kas notiek, ja jūs tomēr mēģināt apvienot datus

Acīmredzamais plāns ir apvienot: dažus tūkstošus DROID epizožu plus jūsu 50. LeRobot atsakās, un atteikums nosauc trīs lietas, kas atšķiras.

  1. 1
    Iegūstiet 100 epizožu paraugu, nevis pilnus 1,7 TB

    2 GB ir pietiekami, lai redzētu struktūru.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    Pārvērst RLDS uz LeRobot formātu

    openx2lerobot ietver OXE standarta transformācijas un anotē robota tipu un vadības frekvenci. README fails to ievieto 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
    Izlasiet meta/info.json pirms jebkā cita

    Šis fails nosaka, vai pārējā jūsu diena strādās.

    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
    Izmēģiniet apvienošanu un izlasiet kļūdu

    merge ielādē katru datu kopu, pēc tam validate_all_metadata pārbauda fps, robot_type un funkcijas pret pirmo sarakstā, izraisot kļūdu pie pirmās neatbilstības.

    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.

Atsauces vērtības nāk no tās datu kopas, kuru norādījāt pirmo, tāpēc ziņojums sūdzas par jūsu 30 fps, nevis DROID 15. Izlabojiet fps, un jūs saskarsieties ar robot_type pārbaudi; izlabojiet to, un jūs saskarsieties ar funkciju pārbaudi, 7 pret 6 darbībai. Neviena secība netiek cauri, un tas pats sargs darbojas ierakstīšanas laikā, izmantojot sanity_check_dataset_robot_compatibility.

Neievietojiet robot_type ar cieto kodēšanu, lai apietu pārbaudi

Pašreizējā LeRobot galvenajā versijā so100_follower un so101_follower abi ir reģistrēti vienā kopīgā SOFollowerRobotConfig, tāpēc virkne no reāla ieraksta ne vienmēr ir tāda, kādu jūs sagaidāt. Izlasiet to no sava meta/info.json un uzskatiet pārbaudi, kuru jums nācās atspējot, par pārbaudi, kas jums kaut ko vēstīja.

Kas tad īsti tiek pārsūtīts?

Svari, nevis epizodes. Katra moderna vispārīga politika daļu no tā absorbēja pirmsapmācībā, un, kad jūs no izlaista jūs to mantojat jau saskaņotu no cilvēkiem, kuriem ir pietiekama skaitļošanas jauda, lai to paveiktu pareizi. pi0 raksts atklāti runā par proporciju: 9,1 procenti no tā pirmsapmācības maisījuma, skaitot laika soļos, ir atvērtā koda dati, tostarp OXE, Bridge v2 un DROID. Šis skaitlis ir pi0; katra piegādātāja maisījums atšķiras.

Publiski starp-ķermeņu dati SO-100 projektā
Priekšrocības
  • Vizuālie un valodu priekšzināšanas: kodētājs ir redzējis tūkstošiem virtuvju un krūzīšu un zina, ko nozīmē "sarkanais bloks".
  • Priekšzināšanas par manipulācijas struktūru: pieeja, aizvēršana, pacelšana, transportēšana, atlaišana, neatkarīgi no ķermeņa, pat ja skaitļi nav.
  • Pārbaudīta un laba datu kopa testēšanai. Ja jūsu uzdevums nevar pārmācīties ar 100 DROID epizodēm, problēma ir jūsu iestatījumos.
  • Atsauces punkti: maza mēroga datu kopu domēnos RT-1-X sasniedza par 50 procentiem augstāku vidējo veiksmes rādītāju nekā sākotnējā metode vai RT-1, un RT-2-X pārspēja RT-2 aptuveni 3 reizes attiecībā uz jaunām prasmēm.
Kompromisi
  • Nav izmantojamas darbības uzraudzības. 7D Dekarta mērķis nav 6D savienojuma komanda.
  • Nav kameras pozas pārsūtīšanas, un nekas datos neliecina, ka pozas atšķiras.
  • Nav laika pārsūtīšanas: 3, 5 un 15 kadru/s avoti pret 30 kadru/s ierakstītāju.
  • Nav satvērēja pārsūtīšanas. Robotiq 2F-85 un drukāta žokļa uz STS3215 atšķiras spēks, gājiens un dinamika.
  • Mērogs vien nebija pietiekams pat tā autoriem: lielo datu kopu domēnos RT-1-X nepārspēja RT-1, kas apmācīts tikai ar šo datu kopu.
  • Nav samazinājuma jūsu pašu epizožu skaitā, kas jums nepieciešamas.
Modeļa slānisPārsūtās?Kāpēc
Vīzijas kodētājsJā, spēcīgiObjekti un ainas ir neatkarīgi no ķermeņa
Valodu pamatotībaInstrukcijas ir teksts, nevis ģeometrija
Starpmodālu saplūšanaPārsvarāPievēršas objektam, kas nosaukts uzvednē
Propriocepcijas kodētājsIevades dimensija un savienojuma semantika atšķiras
Darbības galvaApmācīts 7D Dekarta telpā, kurā jūs neatrodaties
Normalizācijas statistikaNē, un bīstamiSveša statistika maina katru komandu

Tāpēc SmolVLA uzvedas atšķirīgi uz zemu izmaksu rokas. Tā rakstā ir atlasītas 481 kopienas datu kopas no Hugging Face, filtrētas pēc iemiesojuma veida, epizožu skaita, datu kvalitātes un kadru pārklājuma: 22.9K epizodes, 10.6M kadri, novērtēti uz reālām SO-100 un SO-101 rokām. Mazs un saskaņots pārspēj lielu un nesaskaņotu. Salīdziniet ACT pret SmolVLA.

Trīs ceļi, ko vērts iet

A ceļš: precizēt no kontrolpunkta, kas jau ir apstrādājis datus

Lielākajai daļai cilvēku vajadzētu izvēlēties šo. Jūs nekad nepieskaraties DROID vai Open X-Embodiment: izvēlieties politiku, kuras iepriekšējā apmācība jau ir absorbējusi starp-ķermeņu datus, ierakstiet savas epizodes, precizējiet.

PolitikaParametriMinimālais epizožu skaitsDatu kopas formātsGPU līmenisSecināšanaBāzes kontrolpunkts
GR00T N1.7~3 B, ~40 M trained in fine-tuning50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms per stepnvidia/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 backbone50LeRobot 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 msnone, from scratch

ACT ir godīgs robežgadījums: nav bāzes modeļa, tāpēc neviens no publiskajiem datiem to nekad nesasniedz. Tas nav automātiski trūkums, jo ar 20 ms uz vienu darbības soli tas ir vienīgais no pieciem, kas var noslēgt ātru cilpu, kā ACT lapa norādīts. Izvēlieties pēc uzdevuma, izmantojot visi pieci salīdzināti, GR00T N1.7 pret Pi0.5, un 332 etalonuzdevumu rezultātus 85 modeļiem arēnā.

B ceļš: izmantojiet DROID kā testa aprīkojumu

100 epizožu paraugs ir labākie 2 GB, ko šomēnes lejupielādēsiet, un ne apmācībai. Tā ir datu kopa, par kuru zināt, ka tā ir pareiza. Palaidiet savu pārveidotāju, ielādētāju un īsu GPU darbu ar to; viss, kas neizdodas, ir infrastruktūras kļūda, kas atrasta, kamēr tas bija lēti. NVIDIA dara to pašu lielā mērogā: GR00T N1.7 karte uzskaita četrus pēcapmācītus variantus Bridge un Fractal SimplerEnv, DROID un LIBERO.

Ceļš C: ierakstiet savu, apzināti

Trīsdesmit līdz piecdesmit šķiet maz, salīdzinot ar 76 000, līdz atceraties, ka jūsu ir vienīgās ar jūsu roku, jūsu kamerām un jūsu galdu. Pēc LeRobot noklusējuma iestatījumiem 50 epizodes ir 100 minūtes reālā laika. Skatiet , un .

AY-Robots ierakstīšanas pamācības lapa, kas parāda soļus LeRobot datu kopas iegūšanai no teleoperācijas sesijas
Ierakstīšanas pamācība vietnē /learn/record-your-first-dataset: solis, ko publiskie dati nevar aizstāt.

Divi veidi, kā no publiskiem datiem iegūt funkcionējošu politiku

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.

AY-Robots darbvirsmas klienta lejupielādes lapa, klients, kas ieraksta LeRobot formāta datu kopas no teleoperācijas sesijas
Darbvirsmas klients vietnē /download raksta LeRobot datu kopas tieši no teleoperācijas sesijas, apejot RLDS konversiju.

Cik maksā katrs ceļš

CeļšGlabāšanaCilvēka laiksGPU izmaksasIespēja, ka tas kustinās jūsu roku
Pārveidots DROID vien392 GBkonversijas dienas4 to 12 USDļoti zema, nepareiza darbības telpa
DROID apvienots ar jūsu epizodēmabiblocked by validate_all_metadatan/anav, tas nedarbojas
SmolVLA, 30 līdz 50 pašu epizodesdaži GB100 min ierakstīšana1 to 3 USDaugsta
GR00T N1.7, 50 pašu epizodesdaži GB100 min ierakstīšana4 to 12 USDaugsta
ACT no nulles, 50 pašu epizodesdaži GB100 min ierakstīšana1 to 3 USDaugsta, 20 ms inference
DROID paraugs kā testa armatūra2 GBpēcpusdienaviens īss skrējiensaugsta, kā validācija

Asimetrija ir būtiska: ceļš, kas aizņemas visvairāk datu, ir visdārgākais un vismazāk ticams, ka tas kustinās jūsu roku. Mazāk nekā divas stundas jūsu pašu teleoperācija pārspēj terabaitu kāda cita Franka datiem. Vēl nav rokas? /live straumē fizisku SO-100 bez reģistrācijas. Pēc tam apmāciet savu pirmo politiku, un SmolVLA uz SO-100 lai iegūtu konkrētu ceļvedi.

Saprātīgs noklusējuma plāns

Lejupielādējiet 2 GB DROID paraugu un izmantojiet to, lai pārbaudītu savu konveijeru. Ignorējiet pārējos 1.7 TB. Ierakstiet 50 vienas uzdevuma epizodes ar fiksētām kamerām. Vispirms precizējiet SmolVLA, jo ar minimāli 30 epizodēm uz 24 GB kartes tas ir vislētākais, lai veiktu iterācijas, pēc tam izmēģiniet GR00T N1.7 ar tiem pašiem datiem. Salīdziniet ar savu uzdevumu, nevis ar etalonu.

Ierakstiet datu kopas, kas jau atbilst jūsu rokai

Darbvirsmas klients raksta LeRobot formāta datu kopas tieši no teleoperācijas sesijas: pareizā roka, pareizais kadru ātrums, pareizā darbību telpa. Nav RLDS konversijas, nav pārmapēšanas.

Iegūstiet darbvirsmas klientu
Vai es varu apmācīt politiku uz DROID un palaist to uz mana SO-100?

Nav tieši. LeRobot versijā DROID darbības ir 7-D gala efektora komandas Franka Panda robotam ar 15 kadriem sekundē; neapstrādātā RLDS tās ir 6 locītavu ātrumi plus satvērēja pozīcija. SO-100 izmanto 6 absolūtās locītavu pozīcijas. Būtu nepieciešams apgrieztās kinemātikas slānis, un pat tad 5-DoF plaukstas locītava nevar reproducēt patvaļīgas 6-DoF pozas.

Vai es varu sajaukt DROID vai Bridge epizodes ar savām SO-100 epizodēm?

Nē. validate_all_metadata prasa identisku fps, robot_type un feature schema un izraisa ValueError pie pirmās neatbilstības. Visi trīs atšķiras: 15 vai 5 fps pret 30, franka vai widowx pret jūsu roku, darbību formas 7 pret 6. Metadatu pārrakstīšana, lai izietu pārbaudi, neatrisina semantiku.

Vai Open X-Embodiment tad ir bezjēdzīgs zemu izmaksu rokai?

Nē, bet tā vērtība sasniedz jūs caur iepriekš apmācītiem svariem, nevis epizodēm. Atvērtā koda datu kopas, tostarp OXE, Bridge v2 un DROID, veido 9,1 procentu no pi0 iepriekšējās apmācības maisījuma, un NVIDIA piegādā GR00T N1.7 variantus, kas ir pēcapmācīti uz Bridge, Fractal, DROID un LIBERO. Ko jūs nevarat darīt, ir pievienot šīs epizodes savam ierakstam.

Kura politika visvairāk gūst labumu no publiskajiem starpķermeņu datiem?

Pi0.5 un GR00T modeļi nodrošina vislielāko starpķermeņu iepriekšējo apmācību, taču SmolVLA bieži vien vislabāk darbojas ar zemu izmaksu roku: tā iepriekšējās apmācības kopa ir 481 kopienas datu kopa, 22,9K epizodes un 10,6M kadri, kas novērtēti uz reālām SO-100 un SO-101 rokām. ACT ir pretējs: nav bāzes modeļa, 20 ms uz darbības soli.

Cik daudz savu epizožu man patiešām ir nepieciešams?

30 SmolVLA, 50 GR00T N1.7, GR00T N1.5, Pi0.5 un ACT. Pie LeRobot noklusējuma iestatījumiem 60 s uz epizodi un 60 s atiestatīšanai, 50 epizodes ir 100 minūtes reālā laika. Aizņemtie starpķermeņu dati nesamazina šos skaitļus.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started