AY-Robots offentlige datasettkatalog som viser LeRobot-datasett registrert på SO-100-klasse armer
DatasettOpen X-EmbodimentDROIDSO-100LeRobot

Bruke DROID, BridgeData V2 og Open X på en SO-100

AY-Robots ResearchAugust 23, 202618 min lesetid

DROID, BridgeData V2 og Open X-Embodiment konverteres til 7-D end-effektor-handlinger på 6 og 7-DoF armer. En SO-100 tar 6 leddposisjoner. Hva som overføres, hva som ikke gjør det, og hva man skal gjøre i stedet.

Kortversjonen

  • LeRobot-byggene for alle tre deler én konvensjon: en 7-D end-effektor-handling [x, y, z, roll, pitch, yaw, gripper] og en 8-D tilstand med en pad-slot. En SO-100 tar seks absolutte leddposisjoner.
  • Den 7-D vektoren er konverterens artefakt: DROID's eget RLDS-handlingsfelt er 6 joint velocities pluss en griperposisjon, med det kartesiske synet i action_dict.
  • Fire klokker: DROID 15 fps, BridgeData V2 5 fps, google_robot-snittet 3 fps, en SO-100-opptak på 30 fps.
  • Du kan ikke slå dem sammen med dine egne data. validate_all_metadata utløses ved den første av fps, robot_type eller features som avviker, og alle tre avviker.
  • Det som overføres er forhåndstrente vekter, ikke episoder. Åpen kildekode-data utgjør 9.1 percent av pi0's forhåndstreningsblanding.
  • Deres billigste reelle bruk er en testarmatur: en kjent god 2 GB, 100-episode DROID-prøve som beviser rørledningen din før du tar opp en helg.

Det finnes et offentlig datasett med en million trajektorier på en Google Cloud bucket og en SO-100 på skrivebordet som kostet 110 to 150 EUR i deler. Hvorfor kan ikke den første lære den andre? Det kan den delvis, men nesten ingen av overføringen skjer der folk forventer, og den delen som ser enklest ut, fungerer ikke i det hele tatt.

Hva som følger: hva som er inne i DROID, BridgeData V2 og Open X-Embodiment, hvor hver kolliderer med en rimelig 5-DoF arm, og hva man skal gjøre i stedet. Hvert tall nedenfor kom fra artikkelen, datasettkortet eller kildefilen det tilhører.

Hva de tre datasettene faktisk inneholder

DROIDBridgeData V2Open X-Embodiment
RobotFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD rig22 embodiments, 60 datasets, 34 labs
Skala76k trajectories, 350 hours60,096 trajectories1M+ trajectories, 527 skills
Mangfold564 scenes, 84 tasks, 50 collectors24 environments, 13 skills160,266 tasks, 21 institutions
Sammensetningalt teleoperert50 365 teleoperert, 9 731 skriptetper kildelaboratorium
Kontrollfrekvens15 Hz5 Hzvarierer, 3 bilder/sekund og oppover
Kameraer2 x ZED 2 eksternt, 1 x ZED Mini håndleddopptil 4, de fleste episoder kun det fastehva enn laboratoriet brukte
Rå nedlasting1.7 TB RLDS, 8.7 TB raw stereoJPEG archivesper-dataset TFDS buckets
Inngangspunktet er LeRobot-konverteringen, ikke den originale bøtten

Få laster fortsatt ned 1,7 TB med RLDS TFRecords. Fellesskapsorganisasjonen IPEC-COMMUNITY har gjenpublisert det meste av Open X-Embodiment i LeRobot datasett-format med AV1-video, der DROID ender opp på 392 GB. Det er denne versjonen du vil jobbe med, og dens meta/info.json er det du bør lese først.

DROID

Den mest standardiserte av de tre. Ett rigg overalt: en Franka Panda med en Robotiq 2F-85 griper, to justerbare ZED 2 stereokameraer og et håndledds-ZED Mini, teleoperert med Meta Quest 2-kontrollere, registrert via Polymetis ved 15 Hz i både ledd- og endeffektor rom. Språketiketter kom senere via tasq.ai, opptil tre per episode.

  • 76k trajektorier, 350 timer, 564 scener, 84 oppgaver, 50 samlere på tre kontinenter.
  • Hovedresultatet er samtrening, ikke frittstående trening: batcher blandet 50/50 med in-domain demonstrasjoner slo den nest beste metoden med 22 prosent absolutt suksess i distribusjon, 17 prosent utenfor den.
  • IPEC-COMMUNITY/droid_lerobot: 92,233 episoder, 27,044,326 bilder, franka, 15 fps, codebase_version v2.0, tre AV1-strømmer på 180x320, 392 GB.
  • En 2 GB, 100-episode feilsøkingsprøve ligger på gs://gresearch/robotics/droid_100. Start der.

BridgeData V2

Det nærmeste et hobbysetup: en WidowX 250 6-DoF arm, 60,096 trajektorier fordelt på 24 miljøer og 13 ferdigheter ved 5 Hz. Merk sammensetningen: 50,365 ekspertdemonstrasjoner teleoperert pluss 9,731 fra en randomisert skriptet pick-and-place policy, så omtrent 16 prosent er ikke menneskelig demonstrasjon, noe som betyr noe for imitasjonslæring kvalitet. Den vanlige nedlastingen, IPEC-COMMUNITY/bridge_orig_lerobot, rapporterer 53,192 episoder og 1,893,026 bilder ved 5 fps, robot_type widowx: færre enn papirets 60,096, så les antallet fra meta/info.json i stedet for å sitere noen av dem.

Open X-Embodiment

Ikke et datasett i samme forstand: 60 eksisterende robotdatasett fra 34 laboratorier samlet i én RLDS-samling som dekker 22 utførelser og over en million trajektorier. BridgeData V2 ligger inne i den som bridge_orig; google_robot-delen, fractal20220817_data, konverteres til 87 212 episoder ved 3 fps.

Samlingen innebærer et forbehold som artikkelen tydelig angir. For RT-X-eksperimentene konverterer forfatterne hver kilde til en 7-DoF end-effektor-handling, men justerer ikke koordinatsystemer på tvers av datasett, og tillater at handlingsverdier er absolutte eller relative posisjoner eller hastigheter, i henhold til hver robots originale kontrollskjema. Deres konklusjon: den samme handlingsvektoren kan indusere svært forskjellige bevegelser for forskjellige roboter.

AY-Robots datasettkatalog som viser offentlige LeRobot-datasett med episodeantall og oppgavebeskrivelser
Den offentlige datasettkatalogen på /directory: datasett allerede i LeRobot-format, som allerede samsvarer med en støttet arm.

Uoverensstemmelsen, i fire deler

Uoverensstemmelse i utførelse blir vanligvis behandlet som ett vagt problem. Det er fire, de feiler forskjellig, og to kan ikke fikses med skripting.

1. Frihetsgrader

En SO-100 har fem armledd pluss en griper. Talt som motorer er det en 6-DoF arm, og SmolVLA-artikkelen kaller den det; talt som en posisjoneringsmekanisme er den 5-DoF, og LeRobot kaller den det i sin inverse-kinematikk docstring, som beskriver myk-orientering IK på 5-DOF SO-101 hvor håndleddet kun delvis sporer orientering. En Franka har syv posisjoneringsledd. Dette gapet avgjør hvilke positurer som eksisterer: en 5-DoF arm kan vanligvis ikke nå en vilkårlig posisjon og orientering samtidig, så løseren returnerer det nærmeste den kan, en annen bevegelse enn den demonstrerte. Bakgrunn: frihetsgrader.

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
Venstre: LeRobots SO-følger, fra src/lerobot/robots/so_follower/so_follower.py. Høyre: openpis DROID-policy-input. Seks mot åtte.

Så et ferdig DROID-sjekkpunkt er ingen snarvei. Physical Intelligence leverer pi05_droid på gs://openpi-assets/checkpoints/pi05_droid, og den samme README-filen som roser dens bredde advarer om at disse ekspert-sjekkpunktene kanskje ikke generaliserer til ditt oppsett. Dens tilstand er åtte Franka-leddnumre og dens bilde-nøkler er exterior_image_1_left og wrist_image_left. Ingen flagg gjør det om til en seks-motorers SO-100-kommando.

2. Hva handlingsvektoren faktisk sier

Dypere enn dimensionalitet. I LeRobot-konverteringene sier alle tre hvor griperen skal gå, i kartesisk rom. En SO-100 sier hvor seks servoer skal gå. Konvertering krever en kinematisk modell og en løser, ikke en omforming.

EgenskapOXE, DROID og Bridge i LeRobot-formSO-100 i LeRobot
Handlingsvektor7-D: x, y, z, roll, pitch, yaw, gripper6-D: én målposisjon per motor
Tilstandsvektor8-D, med en utfyllingsplass (google_robot uses a quaternion)6-D, én per motor
RammeKartesisk, ujustert på tvers av datasettleddrom, per-arm kalibrering
Absolutt eller relativenten, bestemt av kildelaboratorietabsolutte målposisjoner
Enheternormalisert per datasett, deretter diskretisertgrader som standard (use_degrees=True), ellers -100 til 100
Stille feilen delta lest som en absolutten ukalibrert arm
Den 7-D kartesiske vektoren er konverterens konvensjon, ikke DROID's

openx2lerobot README dokumenterer en enhetlig 8-dim tilstand og 7-dim handling for hvert datasett det konverterer, som er der pad-sporet kommer fra. DROID's egen RLDS-skjema er annerledes: dens toppnivå action er en 7-vektor av 6 leddhastigheter pluss 1 griperposisjon, med cartesian_position, cartesian_velocity, joint_position og joint_velocity under action_dict. openpi leser leddrom-visningen, LeRobot-bygget gir deg den kartesiske. Ingen av dem er seks absolutte servovinkler.

LeRobot leverer den manglende brikken: SO-følgeren har en kinematikkprosessor med InverseKinematicsEEToJoints- og ForwardKinematicsJointsToEE-trinn. Nøklene er ee.x, ee.y, ee.z pluss en rotasjonsvektor ee.wx, ee.wy, ee.wz og ee.gripper_pos, så selv orienteringskodingen avviker fra roll-pitch-yaw i filene. IK-trinnet tar en orientation_weight, standard 0.01, hvis docstring sier å sette 0.0 for posisjons-kun IK på underaktiverte armer. Du kan bygge broen, men orienteringshalvdelen av hver lånte handling forblir tilnærmet.

3. Kontrollfrekvens

DROID er 15 Hz, BridgeData V2 5 Hz, google_robot-skiven 3 fps; pi0s forfattere beskriver den åpen kildekode-delen av blandingen sin som lavfrekvent kontroll mellom 2 og 10 Hz. LeRobots DatasetRecordConfig har standardinnstillinger for fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. En trent på 5 Hz data lærte at én handling dekker 200 ms. Spill den av på 30 Hz og armen kryper; resample naivt og du smører ut rammen der griperen lukkes. Det samhandler også dårlig med : et 100-trinns segment er 20 sekunder ved 5 Hz, 3.3 ved 30 Hz.

4. Kameraer

BridgeData V2 randomiserte to kameraposisjoner hver 50. trajektorie, og prosjektsiden deres bemerker at mesteparten av dataene uansett kun inneholder den faste visningen. DROID brukte justerbare ZED 2-fester pluss en ZED Mini på håndleddet. Du har to USB-webkameraer plassert på øyemål. Kameraposisjon er ikke en plagsom variabel for en ; det er mye av det den visuelle koderen fokuserte på, og ingenting i filformatet forteller deg at posisjonene er forskjellige.

Fellen som spiser en dag

Brikkene passer godt nok sammen til å kjøre. Datasettet lastes, trening starter, tapet faller, sjekkpunkter vises, ingen feil oppstår. Deretter gjør policyen ingenting gjenkjennelig på armen, og du bruker en dag på å jakte på en feil i treningsskriptet ditt. Det er ingen feil: modellen lærte en kartesisk handlingsdistribusjon for en robot som ikke eksisterer i rommet ditt. Start ved tapet faller, policyen gjør ingenting, ikke ved hyperparametrene dine.

Hva skjer når du prøver å slå sammen dataene uansett

Den åpenbare planen er å slå sammen: noen tusen DROID-episoder pluss dine 50. LeRobot nekter, og avslaget nevner de tre tingene som er forskjellige.

  1. 1
    Hent 100-episode-eksempelet, ikke hele 1.7 TB

    2 GB er nok til å se strukturen.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    Konverter RLDS til LeRobot-format

    openx2lerobot pakker inn OXE-standardtransformasjonene og annoterer robottype og kontrollfrekvens. README-filen plasserer dette i 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
    Les meta/info.json før noe annet

    Denne filen avgjør om resten av dagen din fungerer.

    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øv sammenslåingen og les feilen

    merge laster inn hvert datasett, deretter sjekker validate_all_metadata fps, robot_type og features mot den første i listen, og utløser en feil ved første uoverensstemmelse.

    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.

Referanseverdiene kommer fra det datasettet du listet opp først, og det er derfor meldingen klager over dine 30 fps i stedet for DROID sine 15. Fiks fps, og du treffer robot_type-sjekken; fiks det, og du treffer feature-sjekken, 7 mot 6 for handlingen. Ingen rekkefølge kommer gjennom, og den samme sjekken kjører ved opptakstid via sanity_check_dataset_robot_compatibility.

Ikke hardkod robot_type for å omgå sjekken

På nåværende LeRobot main er so100_follower og so101_follower begge registrert på én delt SOFollowerRobotConfig, så strengen fra et ekte opptak er ikke nødvendigvis den du forventer. Les den fra din egen meta/info.json, og behandle en sjekk du måtte deaktivere som en sjekk som fortalte deg noe.

Så hva overføres egentlig?

Vekter, ikke episoder. Hver moderne generalistpolicy har absorbert noe av det i førtreningen, og når du finjusterer fra et utgitt sjekkpunkt arver du det allerede avstemt av folk med regnekraften til å gjøre det skikkelig. pi0s artikkel er åpen om andelen: 9,1 prosent av førtreningsblandingen, talt i tidsskritt, er åpen kildedata inkludert OXE, Bridge v2 og DROID. Dette tallet er pi0s; hver leverandørs blanding varierer.

Offentlige tverr-kroppslige data på et SO-100 prosjekt
Fordeler
  • Visuelle og språklige forhåndskunnskaper: koderen har sett tusenvis av kjøkken og kopper og vet hva "den røde blokken" refererer til.
  • En forhåndskunnskap om manipulasjonsstruktur: nærme seg, lukke, løfte, transportere, slippe, kroppsuavhengig selv når tallene ikke er det.
  • Et kjent-godt datasett for testing. Hvis jobben din ikke kan overfitte 100 DROID-episoder, er problemet oppsettet ditt.
  • Referansepunkter: på småskala datasett-domener oppnådde RT-1-X en 50 prosent høyere gjennomsnittlig suksessrate enn den originale metoden eller RT-1, og RT-2-X slo RT-2 med omtrent 3x på nye ferdigheter.
Avveininger
  • Ingen brukbar aksjonsovervåking. Et 7-D kartesisk mål er ikke en 6-D leddkommando.
  • Ingen kamera-posisjonsoverføring, og ingenting i dataene forteller deg at posisjonene er forskjellige.
  • Ingen tidsoverføring: 3, 5 og 15 fps kilder mot en 30 fps opptaker.
  • Ingen griperoverføring. En Robotiq 2F-85 og en printet kjeve på en STS3215 skiller seg i kraft, slag og dynamikk.
  • Skala alene var ikke nok selv for forfatterne: i domener med store datasett slo RT-1-X ikke en RT-1 trent på det datasettet alene.
  • Ingen reduksjon i hvor mange av dine egne episoder du trenger.
Modellens lagOverføres?Hvorfor
SynskoderJa, sterktObjekter og scener er kroppsuavhengige
SpråkforankringJaInstruksjoner er tekst, ikke geometri
Tverrmodal fusjonStort settRetter oppmerksomheten mot objektet navngitt i ledeteksten
PropriosepsjonskoderNeiInndatadimensjon og leddsemantikk er forskjellige
AksjonshodeNeiTrent på et 7-D kartesisk rom du ikke befinner deg i
NormaliseringsstatistikkNei, og farligFremmed statistikk forskyver hver kommando

Dette er grunnen til at SmolVLA oppfører seg annerledes på en rimelig arm. Dets artikkel velger 481 fellesskapsdatasett fra Hugging Face, filtrert etter utførelsestype, episodeantall, datakvalitet og rammedekning: 22.9K episoder, 10.6M rammer, evaluert på ekte SO-100 og SO-101 armer. Lite og matchet slår stort og uoverensstemmende. Sammenlign på ACT against SmolVLA.

Tre veier verdt å ta

Vei A: finjuster fra et sjekkpunkt som allerede har absorbert dataene

De fleste bør velge denne. Du rører aldri DROID eller Open X-Embodiment: velg en policy hvis forhåndstrening allerede har absorbert tverr-utførelsesdata, ta opp dine egne episoder, finjuster.

PolicyParametreMin. episoderDatasettformatGPU-nivåInferensGrunnleggende sjekkpunkt
GR00T N1.7~3 B, ~40 M trent i finjustering50LeRobot 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 ryggrad50LeRobot v3.0A100 or H100 80 GB485 mslerobot/pi05_base
SmolVLA~450 M30LeRobot v3.0RTX 4090 eller hvilken som helst 24 GB245 mslerobot/smolvla_base
ACT~80 M50LeRobot v3.0RTX 4090 eller hvilken som helst 24 GB20 msingen, fra bunnen av

ACT er det ærlige grensetilfellet: ingen grunnmodell, så ingen av de offentlige dataene når den noen gang. Ikke automatisk en ulempe, siden den med 20 ms per handlingstrinn er den eneste av de fem som kan lukke en rask sløyfe, slik ACT-siden beskriver. Velg etter oppgave ved å bruke alle fem sammenlignet, GR00T N1.7 mot Pi0.5, og de 332 benchmark-resultatene på tvers av 85 modeller i arenaen.

Sti B: bruk DROID som en testarmatur

Den 100-episoders prøven er de beste 2 GB du vil laste ned denne måneden, og ikke for trening. Det er et datasett du vet er korrekt. Kjør konverteren, lasteren og en kort GPU-jobb på den; alt som feiler er en infrastrukturfeil funnet mens det var billig. NVIDIA gjør det samme i stor skala: GR00T N1.7-kortet lister opp fire post-trente varianter, for Bridge og Fractal i SimplerEnv, DROID og LIBERO.

Sti C: ta opp dine egne, bevisst

Tretti til femti høres lite ut sammenlignet med 76 000, helt til du husker at dine er de eneste med din arm, dine kameraer og ditt bord. Med LeRobots standardinnstillinger er 50 episoder 100 minutter reell tid. Se , og .

AY-Robots opptaksopplæringsside som viser trinnene for å fange et LeRobot-datasett fra en teleoperasjonsøkt
Opptaksprosessen på /learn/record-your-first-dataset: trinnet offentlige data ikke kan erstatte.

To måter å komme fra offentlige data til en fungerende policy

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 nedlastingsside for skrivebordsklienten, klienten som tar opp LeRobot-format datasett fra en teleoperasjonsøkt
Skrivebordsklienten på /download skriver LeRobot-datasett direkte fra en teleoperasjonsøkt, og omgår RLDS-konvertering.

Hva hver bane koster

BaneLagringMennesketidGPU-kostnadSannsynlighet for at den beveger armen din
Konvertert DROID alene392 GBdager med konvertering4 to 12 USDveldig lav, feil handlingsrom
DROID slått sammen med episodene dinebeggeblokkert av validate_all_metadatan/aingen, den kjører ikke
SmolVLA, 30 til 50 egne episodernoen få GB100 min opptak1 to 3 USDhøy
GR00T N1.7, 50 egne episodernoen få GB100 min opptak4 to 12 USDhøy
ACT fra bunnen av, 50 egne episodernoen få GB100 min opptak1 to 3 USDhøy, 20 ms inferens
DROID-eksempel som testoppsett2 GBen ettermiddagén kort kjøringhøy, som validering

Asymmetrien er poenget: stien som låner mest data er den dyreste og minst sannsynlig til å bevege armen din. Under to timer av din egen teleoperasjon slår en terabyte av andres Franka. Ingen arm ennå? /live strømmer en fysisk SO-100 uten registrering. Deretter tren din første policy, og SmolVLA på SO-100 for den spesifikke veiledningen.

En fornuftig standardplan

Last ned 2 GB DROID-eksemplet og bruk det til å bevise pipelinen din. Ignorer de andre 1.7 TB. Ta opp 50 episoder av én oppgave med faste kameraer. Finjuster SmolVLA først, fordi den med minimum 30 episoder på et 24 GB kort er billigst å iterere på, prøv deretter GR00T N1.7 på de samme dataene. Sammenlign på din oppgave, ikke på en benchmark.

Ta opp datasett som allerede matcher armen din

Skrivebordsklienten skriver LeRobot-format datasett direkte fra en teleop-sesjon: riktig arm, riktig bildefrekvens, riktig handlingsrom. Ingen RLDS-konvertering, ingen remapping.

Skaff skrivebordsklienten
Kan jeg trene en policy på DROID og kjøre den på min SO-100?

Ikke direkte. I LeRobot-bygget er DROID-handlinger 7-D end-effector-kommandoer på en Franka Panda ved 15 fps; i den rå RLDS er de 6 leddhastigheter pluss en griperposisjon. En SO-100 tar 6 absolutte leddposisjoner. Du ville trenge et invers-kinematikk-lag, og selv da kan en 5-DoF håndledd ikke reprodusere vilkårlige 6-DoF positurer.

Kan jeg blande DROID- eller Bridge-episoder med mine egne SO-100-episoder?

Nei. validate_all_metadata krever identisk fps, robot_type og feature schema og utløser ValueError ved første uoverensstemmelse. Alle tre avviker: 15 eller 5 fps mot 30, franka eller widowx mot din arm, handlingsformer på 7 mot 6. Å omskrive metadata for å bestå sjekken fikser ikke semantikken.

Er Open X-Embodiment ubrukelig for en lavkostnadsarm da?

Nei, men verdien når deg gjennom forhåndstrente vekter, ikke episoder. Åpen kildekode-datasett inkludert OXE, Bridge v2 og DROID utgjør 9.1 prosent av pi0s forhåndstreningsblanding, og NVIDIA leverer GR00T N1.7-varianter ettertrent på Bridge, Fractal, DROID og LIBERO. Det du ikke kan gjøre er å legge til disse episodene til ditt eget opptak.

Hvilken policy drar mest nytte av offentlige kryss-embodiment-data?

Pi0.5 og GR00T-modellene har mest kryss-embodiment forhåndstrening, men SmolVLA oppfører seg ofte best på en lavkostnadsarm: dens forhåndstreningssett er 481 fellesskapsdatasett, 22.9K episoder og 10.6M rammer, evaluert på ekte SO-100 og SO-101 armer. ACT er det motsatte: ingen grunnmodell, 20 ms per handlingstrinn.

Hvor mange av mine egne episoder trenger jeg egentlig?

30 for SmolVLA, 50 for GR00T N1.7, GR00T N1.5, Pi0.5 og ACT. Med LeRobots standardinnstillinger på 60 s per episode og 60 s tilbakestilling, er 50 episoder 100 minutter veggklokketid. Lånte kryss-embodiment-data senker ikke disse tallene.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started