Die AY-Robots openbare datastelgids wat LeRobot datastelle wys opgeneem op SO-100 klas arms
DatastelleOpen X-EmbodimentDROIDSO-100LeRobot

Gebruik van DROID, BridgeData V2 en Open X op 'n SO-100

AY-Robots ResearchAugust 23, 202618 min lees

DROID, BridgeData V2 en Open X-Embodiment skakel om na 7-D eindeffektor-aksies op 6- en 7-DoF arms. 'n SO-100 neem 6 gewrigsposisies. Wat oordra, wat nie, wat om eerder te doen.

Die kort weergawe

  • Die LeRobot-bouwerk van al drie deel een konvensie: 'n 7-D eindeffektor-aksie [x, y, z, roll, pitch, yaw, gripper] en 'n 8-D toestand met 'n opvulgleuf. 'n SO-100 neem ses absolute gewrigsposisies.
  • Daardie 7-D vektor is die omskakelaar se artefak: DROID se eie RLDS-aksieveld is 6 gewrigsnelhede plus 'n gryperposisie, met die Cartesiese aansig in action_dict.
  • Vier klokke: DROID 15 fps, BridgeData V2 5 fps, die google_robot-sny 3 fps, 'n SO-100 opname teen 30 fps.
  • Jy kan dit nie met jou eie data saamsmelt nie. validate_all_metadata gee 'n fout by die eerste van fps, robot_type of kenmerke wat verskil, en al drie verskil.
  • Wat oorgedra word, is vooraf-opgeleide gewigte, nie episodes nie. Oopbron-data is 9.1 persent van pi0 se vooropleidingsmengsel.
  • Hul goedkoopste werklike gebruik is 'n toetsopstelling: 'n bekende, goeie 2 GB, 100-episode DROID-monster wat jou pyplyn bewys voordat jy vir 'n naweek opneem.

Daar is 'n miljoen-trajek publieke datastel op 'n Google Cloud-emmer en 'n SO-100 op die lessenaar wat 110 tot 150 EUR in onderdele gekos het. Waarom kan die eerste nie die tweede leer nie? Dit kan gedeeltelik, maar byna niks van die oordrag gebeur waar mense verwag nie, en die deel wat die maklikste lyk, werk glad nie.

Wat volg: wat is binne DROID, BridgeData V2 en Open X-Embodiment, waar elkeen bots met 'n laekoste 5-DoF arm, en wat om eerder te doen. Elke nommer hieronder kom uit die referaat, datastelkaart of bronlêer waaraan dit behoort.

Wat die drie datastelle werklik bevat

DROIDBridgeData V2Open X-Embodiment
RobotFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD rig22 embodiments, 60 datasets, 34 labs
Skaal76k trajectories, 350 hours60,096 trajectories1M+ trajectories, 527 skills
Diversiteit564 scenes, 84 tasks, 50 collectors24 environments, 13 skills160,266 tasks, 21 institutions
Samestellingalles tele-opereer50,365 tele-opereer, 9,731 geskripper bronlaboratorium
Beheerkoers15 Hz5 Hzvaries, 3 fps upwards
Kameras2 x ZED 2 ekstern, 1 x ZED Mini polstot 4, meeste episodes slegs die vaste eenwat ook al die laboratorium gebruik het
Rou aflaai1.7 TB RLDS, 8.7 TB raw stereoJPEG archivesper-dataset TFDS buckets
Die toegangspunt is die LeRobot-omskakeling, nie die oorspronklike emmer nie

Min mense laai steeds 1.7 TB RLDS TFRecords af. Die gemeenskapsorganisasie IPEC-COMMUNITY het die meeste van Open X-Embodiment herpubliseer in LeRobot-datastel-formaat met AV1-video, waar DROID op 392 GB te staan kom. Dit is die weergawe waarmee jy sal werk, en sy meta/info.json is wat jy eerste moet lees.

DROID

Die mees gestandaardiseerde van die drie. Een opstelling oral: 'n Franka Panda met 'n Robotiq 2F-85 gryper, twee verstelbare ZED 2 stereokameras en 'n pols ZED Mini, tele-opereer met Meta Quest 2 beheerders, opgeneem deur Polymetis teen 15 Hz in beide gewrig- en eindeffektor ruimte. Taallabels het later via tasq.ai gekom, tot drie per episode.

  • 76k trajekte, 350 ure, 564 tonele, 84 take, 50 versamelaars op drie kontinente.
  • Die hoofresultaat is mede-opleiding, nie selfstandige opleiding nie: bondels wat 50/50 gemeng is met in-domein demonstrasies, oortref die volgende beste metode met 22 persent absolute sukses in verspreiding, 17 persent daarbuite.
  • 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.
  • ’n 2 GB, 100-episode ontfoutingsmonster is by gs://gresearch/robotics/droid_100. Begin daar.

BridgeData V2

Die naaste aan 'n stokperdjie-opstelling: 'n WidowX 250 6-DoF arm, 60,096 trajekte oor 24 omgewings en 13 vaardighede teen 5 Hz. Let op die samestelling: 50,365 kundige tele-geopereerde demonstrasies plus 9,731 van 'n gerandomiseerde geskripte optel-en-plaas beleid, so ongeveer 16 persent is nie menslike demonstrasie nie, wat saak maak vir nabootsingsleer kwaliteit. Die gewone aflaai, IPEC-COMMUNITY/bridge_orig_lerobot, rapporteer 53,192 episodes en 1,893,026 rame teen 5 fps, robot_type widowx: minder as die referaat se 60,096, so lees die telling van meta/info.json eerder as om een van die twee aan te haal.

Open X-Embodiment

Nie 'n datastel in dieselfde sin nie: 60 bestaande robotdatastelle van 34 laboratoriums saamgevoeg in een RLDS-versameling wat 22 beliggamings en meer as 'n miljoen trajekte dek. BridgeData V2 is daarin as bridge_orig; die google_robot-segment, fractal20220817_data, skakel om na 87,212 episodes teen 3 fps.

Die saamvoeging hou 'n voorbehoud in wat die referaat uitdruklik stel. Vir die RT-X eksperimente skakel die outeurs elke bron om na 'n 7-DoF eind-effektor aksie, maar belyn nie koördinaatraamwerke oor datastelle heen nie, en laat aksiewaardes toe om absolute of relatiewe posisies of snelhede te wees, volgens elke robot se oorspronklike beheerskema. Hul gevolgtrekking: dieselfde aksievektor kan baie verskillende bewegings vir verskillende robotte veroorsaak.

Die AY-Robots datastelgids wat publieke LeRobot-datastelle met episode-tellings en taakbeskrywings lys
Die publieke datastelgids by /directory: datastelle reeds in LeRobot-formaat, wat reeds by 'n ondersteunde arm pas.

Die wanpassing, in vier dele

Embodiment mismatch word gewoonlik as een vae probleem behandel. Dit is vier, hulle misluk verskillend, en twee is nie met skripte reg te maak nie.

1. Grade van vryheid

’n SO-100 het vyf armgewrigte plus ’n gryper. Getel as motors is dit ’n 6-DoF arm, en die SmolVLA-artikel noem dit so; getel as ’n posisioneringsmeganisme is dit 5-DoF, en LeRobot noem dit so in sy inverse-kinematika-docstring, wat sagte-oriëntasie IK op die 5-DOF SO-101 beskryf waar die pols oriëntasie slegs gedeeltelik volg. ’n Franka het sewe posisioneringsgewrigte. Daardie gaping besluit watter posisies bestaan: ’n 5-DoF arm kan oor die algemeen nie ’n arbitrêre posisie en oriëntasie gelyktydig bereik nie, so die oplosser gee die naaste terug wat dit kan, ’n ander beweging as die een wat gedemonstreer is. Agtergrond: grade van vryheid.

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
Links: LeRobot se SO-volger, van src/lerobot/robots/so_follower/so_follower.py. Regs: openpi se DROID-beleidinvoer. Ses teen agt.

Dus is 'n klaargemaakte DROID-kontrolepunt geen kortpad nie. Physical Intelligence verskaf pi05_droid by gs://openpi-assets/checkpoints/pi05_droid, en dieselfde README wat die breedte daarvan prys, waarsku dat hierdie kundige kontrolepunte dalk nie na jou opstelling sal veralgemeen nie. Die toestand daarvan is agt Franka-gewrignommers en die beeldleutels is exterior_image_1_left en wrist_image_left. Geen vlag verander dit in 'n ses-motor SO-100-opdrag nie.

2. Wat die aksievektor werklik sê

Dieper as dimensionaliteit. In die LeRobot-omskakelings sê al drie waar die gryper moet gaan, in Kartesiese ruimte. 'n SO-100 sê waar ses servo's moet gaan. Omskakeling benodig 'n kinematiese model en 'n oplosser, nie 'n hervorming nie.

EiendomOXE, DROID en Bridge in LeRobot-formaatSO-100 in LeRobot
Aksievektor7-D: x, y, z, rol, stamp, giet, gryper6-D: een doelposisie per motor
Toestandsvektor8-D, met 'n opvulgleuf (google_robot gebruik 'n kwaternion)6-D, een per motor
RaamKartesies, onbelyn oor datastellegewrigruimte, per-arm kalibrasie
Absoluut of relatiefenigeen, besluit deur die bronlaboratoriumabsolute doelposisies
Eenhedegenormaliseer per datastel, dan gediskretiseergrade by verstek (use_degrees=True), anders -100 tot 100
Stil mislukking'n delta gelees as 'n absolute'n ongekalibreerde arm
Die 7-D Kartesiese vektor is die omskakelaar se konvensie, nie DROID s'n nie

Die openx2lerobot README dokumenteer 'n verenigde 8-dim toestand en 7-dim aksie vir elke datastel wat dit omskakel, wat is waar die pad gleuf vandaan kom. DROID se eie RLDS skema verskil: sy topvlak action is 'n 7-vektor van 6 gewrigsnelhede plus 1 gryperposisie, met cartesian_position, cartesian_velocity, joint_position en joint_velocity onder action_dict. openpi lees die gewrigs-ruimte aansig, die LeRobot bou gee jou die Kartesiese een. Nie een is ses absolute servohoeke nie.

LeRobot lewer wel die ontbrekende stuk: die SO follower het 'n kinematika-verwerker met InverseKinematicsEEToJoints en ForwardKinematicsJointsToEE stappe. Sy sleutels is ee.x, ee.y, ee.z plus 'n rotasievektor ee.wx, ee.wy, ee.wz en ee.gripper_pos, so selfs die oriëntasie-enkodering verskil van die roll-pitch-yaw in die lêers. Die IK stap neem 'n orientation_weight, verstek 0.01, waarvan die docstring sê om 0.0 te stel vir posisie-alleen IK op onder-aangedrewe arms. Jy kan die brug bou, maar die oriëntasie-helfte van elke geleende aksie bly benaderd.

3. Beheer tempo

DROID is 15 Hz, BridgeData V2 5 Hz, die google_robot sny 3 fps; pi0 se outeurs beskryf die open-source deel van hul mengsel as lae-frekwensie beheer tussen 2 en 10 Hz. LeRobot se DatasetRecordConfig verstek na fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. 'n wat op 5 Hz data opgelei is, het geleer dat een aksie 200 ms dek. Speel dit teen 30 Hz af en die arm kruip; hersampleer naïef en jy smeer die raam waar die gryper sluit. Dit interaksie ook sleg met : 'n 100-stap segment is 20 sekondes teen 5 Hz, 3.3 teen 30 Hz.

4. Kameras

BridgeData V2 het twee kameraposisies elke 50 trajekte gerandomiseer, en sy projekbladsy meld dat die meeste van die data in elk geval slegs die vaste aansig bevat. DROID het verstelbare ZED 2-monterings plus 'n pols ZED Mini gebruik. Jy het twee USB-webkameras wat met die oog geposisioneer is. Kameraposisie is nie 'n hinderlike veranderlike vir 'n ; dit is baie van waarop die visuele enkodeerder gefokus het, en niks in die lêerformaat vertel jou dat die posisies verskil nie.

Die strik wat 'n dag vreet

Die stukke pas goed genoeg bymekaar om te loop. Die datastel laai, opleiding begin, die verlies daal, kontrolepunte verskyn, niks gee foute nie. Dan doen die beleid niks herkenbaars op die arm nie en jy spandeer 'n dag om 'n fout in jou opleidingskrip te jag. Daar is geen fout nie: die model het 'n Cartesiese aksieverdeling geleer vir 'n robot wat nie in jou kamer bestaan nie. Begin by verlies daal, beleid doen niks, nie by jou hiperparameters nie.

Wat gebeur as jy in elk geval probeer om die data saam te voeg

Die voor die hand liggende plan is om te konkateneer: 'n paar duisend DROID-episodes plus jou 50. LeRobot weier, en die weiering noem die drie dinge wat verskil.

  1. 1
    Trek die 100-episode-voorbeeld, nie die volle 1.7 TB nie

    2 GB is genoeg om die struktuur te sien.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    Skakel RLDS om na LeRobot-formaat

    openx2lerobot omvou die OXE standaard transformasies en annoteer robot tipe en beheerfrekwensie. Die README plaas dit in 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
    Lees meta/info.json voor enigiets anders

    Hierdie lêer besluit of die res van jou dag werk.

    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
    Probeer die samesmelting en lees die fout

    merge laai elke datastel, dan kontroleer validate_all_metadata fps, robot_type en kenmerke teen die eerste in die lys, en gee 'n fout by die eerste wanpas.

    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.

Die verwysingswaardes kom van watter datastel jy ook al eerste gelys het, en daarom kla die boodskap oor jou 30 fps eerder as DROID se 15. Maak die fps reg en jy tref die robot_type-kontrole; maak dit reg en jy tref die kenmerkkontrole, 7 teen 6 vir die aksie. Geen volgorde kom deur nie, en dieselfde kontrole loop tydens opname via sanity_check_dataset_robot_compatibility.

Moenie robot_type hardkodeer om die kontrole te omseil nie

Op die huidige LeRobot hoof is so100_follower en so101_follower albei geregistreer op een gedeelde SOFollowerRobotConfig, so die string van 'n regte opname is nie noodwendig die een wat jy verwag nie. Lees dit uit jou eie meta/info.json, en beskou 'n kontrole wat jy moes deaktiveer as 'n kontrole wat jou iets vertel het.

So wat dra eintlik oor?

Gewigte, nie episodes nie. Elke moderne algemene beleid het 'n deel daarvan in vooropleiding geabsorbeer, en wanneer jy van 'n vrygestelde erf jy dit reeds versoen deur mense met die rekenkrag om dit behoorlik te doen. pi0 se referaat is openhartig oor die proporsie: 9.1 persent van sy vooropleidingsmengsel, getel in tydstappe, is oopbron data insluitend OXE, Bridge v2 en DROID. Daardie syfer is pi0 s'n; elke verskaffer se mengsel verskil.

Publieke kruis-liggaam data op 'n SO-100 projek
Voordele
  • Visuele en taalvoorkennis: die enkodeerder het duisende kombuise en bekers gesien en weet waarna "die rooi blok" verwys.
  • 'n Voorkennis oor manipulasie struktuur: nader, sluit, lig, vervoer, los, liggaam-onafhanklik selfs wanneer die getalle dit nie is nie.
  • 'n Bekende-goeie datastel vir toetsing. As jou taak nie 100 DROID episodes kan oorpas nie, is die probleem jou opstelling.
  • Verwysingspunte: op kleinskaalse datastel-domeine het RT-1-X 'n 50 persent hoër gemiddelde sukseskoers behaal as die oorspronklike metode of RT-1, en RT-2-X het RT-2 met ongeveer 3x geklop op ontluikende vaardighede.
Afwegings
  • Geen bruikbare aksie-toesig nie. 'n 7-D Kartesiese teiken is nie 'n 6-D gewrigsbevel nie.
  • Geen kamera-posisie-oordrag nie, en niks in die data vertel jou dat die posisies verskil nie.
  • Geen tydsberekening-oordrag nie: 3, 5 en 15 fps bronne teenoor 'n 30 fps opnemer.
  • Geen gryper-oordrag nie. 'n Robotiq 2F-85 en 'n gedrukte kaak op 'n STS3215 verskil in krag, slag en dinamika.
  • Skaal alleen was nie genoeg nie, selfs vir die outeurs daarvan: in die groot-datastel-domeine het RT-1-X nie 'n RT-1 geklop wat slegs op daardie datastel opgelei is nie.
  • Geen vermindering in hoeveel van jou eie episodes jy benodig nie.
Laag van die modelDra oor?Hoekom
Visie-enkodeerderJa, sterkObjekte en tonele is liggaam-onafhanklik
TaalgrondslagJaInstruksies is teks, nie geometrie nie
Kruis-modale fusieMeestalFokus op die objek wat in die aanwysing genoem word
Propriosepsie-enkodeerderNeeInvoerdimensie en gewrigsemantiek verskil
Aksie-kopNeeOpgelei op 'n 7-D Kartesiese ruimte waarin jy nie is nie
NormaliseringstatistiekeNee, en gevaarlikVreemde statistieke verskuif elke bevel

Dit is hoekom SmolVLA anders optree op 'n laekoste-arm. Die referaat daarvan kies 481 gemeenskapsdataskemas van Hugging Face, gefiltreer volgens beliggamingstipe, episode-telling, datakwaliteit en raamdekking: 22.9K episodes, 10.6M rame, geëvalueer op regte SO-100 en SO-101 arms. Klein en gepas klop groot en onvanpas. Vergelyk op ACT teen SmolVLA.

Drie paaie wat die moeite werd is om te volg

Pad A: fyninstel vanaf 'n kontrolepunt wat reeds die data verwerk het

Die meeste mense moet hierdie een volg. Jy raak nooit aan DROID of Open X-Embodiment nie: kies 'n beleid waarvan die vooropleiding reeds kruis-beliggaming data geabsorbeer het, neem jou eie episodes op, fyninstel.

BeleidParametersMin episodesDatastelformaatGPU-vlakAfleidingBasis-kontrolepunt
GR00T N1.7~3 B, ~40 M opgelei in fyninstelling50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms per stapnvidia/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 ruggraat50LeRobot 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 msgeen, van nuuts af

ACT is die eerlike randgeval: geen basismodel nie, so geen van die publieke data bereik dit ooit nie. Nie outomaties 'n nadeel nie, aangesien dit teen 20 ms per aksiestap die enigste van die vyf is wat 'n vinnige lus kan sluit, soos die ACT-bladsy uiteensit. Kies volgens taak deur gebruik te maak van al vyf vergelyk, GR00T N1.7 teen Pi0.5, en die 332 maatstafresultate oor 85 modelle in die arena.

Pad B: gebruik DROID as 'n toetsarmatuur

Die 100-episode-monster is die beste 2 GB wat jy hierdie maand sal aflaai, en nie vir opleiding nie. Dit is 'n datastel wat jy weet korrek is. Voer jou omskakelaar, laaier en 'n kort GPU-taak daarop uit; enigiets wat misluk, is 'n infrastruktuurfout wat gevind is terwyl dit goedkoop was. NVIDIA doen dieselfde op skaal: die GR00T N1.7-kaart lys vier na-opgeleide variante, vir Bridge en Fractal in SimplerEnv, DROID en LIBERO.

Pad C: neem jou eie op, doelbewus

Dertig tot vyftig klink klein langs 76,000 totdat jy onthou joune is die enigstes met jou arm, jou kameras en jou tafel. Teen LeRobot se verstekke is 50 episodes 100 minute se werklike tyd. Sien , en .

Die AY-Robots opname-tutoriaalbladsy wat die stappe wys om 'n LeRobot-datastel van 'n teleoperasie-sessie vas te lê
Die opname-deurloop by /learn/record-your-first-dataset: die stap wat publieke data nie kan vervang nie.

Twee maniere om van publieke data na 'n werkende beleid te kom

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.

Die AY-Robots rekenaarkliënt aflaaibladsy, die kliënt wat LeRobot-formaat datastelle vanaf 'n teleoperasie-sessie opneem
Die rekenaarkliënt by /download skryf LeRobot-datastelle direk vanaf 'n teleop-sessie, en omseil RLDS-omskakeling.

Wat elke pad kos

PadBergingMenslike tydGPU-kosteKans dat dit jou arm beweeg
Omgeskakelde DROID alleen392 GBdae van omskakeling4 to 12 USDbaie laag, verkeerde aksiespasie
DROID saamgevoeg met jou episodesbothgeblokkeer deur validate_all_metadatan/ageen, dit loop nie
SmolVLA, 30 tot 50 eie episodes'n paar GB100 min opname1 to 3 USDhoog
GR00T N1.7, 50 eie episodes'n paar GB100 min opname4 to 12 USDhoog
ACT van nuuts af, 50 eie episodes'n paar GB100 min opname1 to 3 USDhoog, 20 ms inferensie
DROID-voorbeeld as 'n toetsarmatuur2 GB'n middagone short runhoog, as validering

Die asimmetrie is die punt: die pad wat die meeste data leen, is die duurste en die minste geneig om jou arm te beweeg. Minder as twee uur van jou eie teleoperasie oortref 'n teragreep van iemand anders se Franka. Nog geen arm nie? /live stroom 'n fisiese SO-100 sonder registrasie. Dan lei jou eerste beleid op, en SmolVLA op SO-100 vir die spesifieke gids.

’n Redelike verstekplan

Laai die 2 GB DROID-voorbeeld af en gebruik dit om jou pyplyn te bewys. Ignoreer die ander 1.7 TB. Neem 50 episodes van een taak met vaste kameras op. Verfyn SmolVLA eers, want met 'n minimum van 30 episodes op 'n 24 GB-kaart is dit die goedkoopste om op te herhaal, probeer dan GR00T N1.7 op dieselfde data. Vergelyk op jou taak, nie op 'n maatstaf nie.

Neem datastelle op wat reeds by jou arm pas

Die rekenaarkliënt skryf LeRobot-formaat datastelle direk vanaf 'n teleop-sessie: regte arm, regte raamtempo, regte aksiespasie. Geen RLDS-omskakeling, geen herkaarting nie.

Kry die rekenaarkliënt
Kan ek 'n beleid op DROID oplei en dit op my SO-100 uitvoer?

Nie direk nie. In die LeRobot-bou is DROID-aksies 7-D eindeffektor-opdragte op 'n Franka Panda teen 15 fps; in die rou RLDS is dit 6 gewrigsnelhede plus 'n gryperposisie. 'n SO-100 neem 6 absolute gewrigsposisies. Jy sal 'n inverse-kinematika-laag benodig, en selfs dan kan 'n 5-DoF pols nie arbitrêre 6-DoF posisies reproduseer nie.

Kan ek DROID- of Bridge-episodes met my eie SO-100-episodes meng?

Nee. validate_all_metadata vereis identiese fps, robot_type en kenmerkskema en veroorsaak 'n ValueError by die eerste wanpas. Al drie verskil: 15 of 5 fps teenoor 30, franka of widowx teenoor jou arm, aksievorms van 7 teenoor 6. Die herskryf van metadata om die kontrole te slaag, herstel nie die semantiek nie.

Is Open X-Embodiment dan nutteloos vir 'n laekoste-arm?

Nee, maar die waarde daarvan bereik jou deur vooraf-opgeleide gewigte, nie episodes nie. Oopbron-datastelle, insluitend OXE, Bridge v2 en DROID, is 9.1 persent van pi0 se vooropleidingsmengsel, en NVIDIA verskeep GR00T N1.7-variante wat na-opgelei is op Bridge, Fractal, DROID en LIBERO. Wat jy nie kan doen nie, is om daardie episodes by jou eie opname aan te heg.

Watter beleid trek die meeste voordeel uit openbare kruis-liggaam-data?

Pi0.5 en die GR00T-modelle dra die meeste kruis-liggaam-vooropleiding, maar SmolVLA presteer dikwels die beste op 'n laekoste-arm: sy vooropleidingsstel is 481 gemeenskapsdatastelle, 22.9K episodes en 10.6M rame, geëvalueer op regte SO-100 en SO-101 arms. ACT is die teenoorgestelde: geen basismodel, 20 ms per aksiestap.

Hoeveel van my eie episodes het ek werklik nodig?

30 vir SmolVLA, 50 vir GR00T N1.7, GR00T N1.5, Pi0.5 en ACT. Teen LeRobot se verstekwaardes van 60 s per episode en 60 s herstel, is 50 episodes 100 minute se werklike tyd. Geleende kruis-liggaam-data verlaag nie daardie getalle nie.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started