
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
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Robot | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, ~4,000 USD rig | 22 embodiments, 60 datasets, 34 labs |
| Skala | 76k trajectories, 350 hours | 60,096 trajectories | 1M+ trajectories, 527 skills |
| Mangfold | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Sammensetning | alt teleoperert | 50 365 teleoperert, 9 731 skriptet | per kildelaboratorium |
| Kontrollfrekvens | 15 Hz | 5 Hz | varierer, 3 bilder/sekund og oppover |
| Kameraer | 2 x ZED 2 eksternt, 1 x ZED Mini håndledd | opptil 4, de fleste episoder kun det faste | hva enn laboratoriet brukte |
| Rå nedlasting | 1.7 TB RLDS, 8.7 TB raw stereo | JPEG archives | per-dataset TFDS buckets |
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.

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.
# 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-DSå 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.
| Egenskap | OXE, DROID og Bridge i LeRobot-form | SO-100 i LeRobot |
|---|---|---|
| Handlingsvektor | 7-D: x, y, z, roll, pitch, yaw, gripper | 6-D: én målposisjon per motor |
| Tilstandsvektor | 8-D, med en utfyllingsplass (google_robot uses a quaternion) | 6-D, én per motor |
| Ramme | Kartesisk, ujustert på tvers av datasett | leddrom, per-arm kalibrering |
| Absolutt eller relativ | enten, bestemt av kildelaboratoriet | absolutte målposisjoner |
| Enheter | normalisert per datasett, deretter diskretisert | grader som standard (use_degrees=True), ellers -100 til 100 |
| Stille feil | en delta lest som en absolutt | en ukalibrert arm |
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.
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.
- 1Hent 100-episode-eksempelet, ikke hele 1.7 TB
2 GB er nok til å se strukturen.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Konverter RLDS til LeRobot-format
openx2lerobot pakker inn OXE-standardtransformasjonene og annoterer robottype og kontrollfrekvens. README-filen plasserer dette i convert.sh.
bashgit 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 - 3Les meta/info.json før noe annet
Denne filen avgjør om resten av dagen din fungerer.
bashpython -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'])" - 4Prø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.
bashlerobot-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.
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.
- 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.
- 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 lag | Overføres? | Hvorfor |
|---|---|---|
| Synskoder | Ja, sterkt | Objekter og scener er kroppsuavhengige |
| Språkforankring | Ja | Instruksjoner er tekst, ikke geometri |
| Tverrmodal fusjon | Stort sett | Retter oppmerksomheten mot objektet navngitt i ledeteksten |
| Propriosepsjonskoder | Nei | Inndatadimensjon og leddsemantikk er forskjellige |
| Aksjonshode | Nei | Trent på et 7-D kartesisk rom du ikke befinner deg i |
| Normaliseringsstatistikk | Nei, og farlig | Fremmed 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.
| Policy | Parametre | Min. episoder | Datasettformat | GPU-nivå | Inferens | Grunnleggende sjekkpunkt |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trent i finjustering | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms per step | nvidia/GR00T-N1.7-3B |
| GR00T N1.5 | ~3 B | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 165 ms | nvidia/GR00T-N1.5-3B |
| Pi0.5 | ~3 B, PaliGemma ryggrad | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 M | 30 | LeRobot v3.0 | RTX 4090 eller hvilken som helst 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 M | 50 | LeRobot v3.0 | RTX 4090 eller hvilken som helst 24 GB | 20 ms | ingen, 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 .

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.
- 1Install LeRobot with the extras the scripts need
The record and train entry points each declare their own extra.
bashpip install 'lerobot[core_scripts]' # lerobot-record pip install 'lerobot[training]' # lerobot-train pip install gsutil tensorflow tensorflow-datasets - 2Get a small, known-good slice
100 DROID episodes, 2 GB.
bashgsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 3Convert to LeRobot form
Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.
bashpython openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 4Check 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.
bashpython src/lerobot/scripts/convert_dataset_v21_to_v30.py \ --repo-id=you/droid100_lerobot - 5Record your own episodes
Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.
bashlerobot-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" - 6Fine-tune on your data only
Weights from public data, actions from your own. Do not mix the datasets.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=you/so100_pick_block \ --policy.device=cuda \ --batch_size=4 \ --steps=20000
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.
The platform removes the GPU and pipeline plumbing. It does not remove the embodiment mismatch: point the trainer at a converted DROID dataset and you get a policy trained on Franka actions, exactly as you would locally.
- 1Pick a policy, not a dataset
The five trainable policies, with parameter counts, GPU tiers and latencies, are at /policies.
- 2Record with the desktop client
It writes LeRobot-format datasets, episodes, camera streams and joint states, straight out of a teleop session. No conversion step to get wrong.
- 3Or bring a dataset you already have
The training form accepts one from /directory, a Hugging Face repo id, or your own machine. A repo id means a converted OXE dataset will load, and the mismatch loads with it.
- 4Train on a rented GPU
The backend rents a card on a spot market by required VRAM. SmolVLA or ACT on 24 GB: 2 to 5 hours, about 1 to 3 USD. GR00T or Pi0.5 on A100 or H100: 3 to 6 hours, about 4 to 12 USD. See /pricing.
- 5Serve it back to the arm
/api/inference/pod auto-provisions a GPU pod serving the policy; the local client talks to that endpoint. Pods carry an idle watchdog and destroy themselves, so nothing keeps billing silently.
Inference has to sit next to the servos for fast tasks. The control loop is 20 to 485 ms per action step depending on the model, and public-internet round trips turn a working policy into a hesitant one. Remote inference is fine for slow pick-and-place, not fast reactive motion.
The platform helps with the boring parts: the right format for the right arm at the right frame rate, and no babysitting a spot instance. It helps with nothing else in this article.

Hva hver bane koster
| Bane | Lagring | Mennesketid | GPU-kostnad | Sannsynlighet for at den beveger armen din |
|---|---|---|---|---|
| Konvertert DROID alene | 392 GB | dager med konvertering | 4 to 12 USD | veldig lav, feil handlingsrom |
| DROID slått sammen med episodene dine | begge | blokkert av validate_all_metadata | n/a | ingen, den kjører ikke |
| SmolVLA, 30 til 50 egne episoder | noen få GB | 100 min opptak | 1 to 3 USD | høy |
| GR00T N1.7, 50 egne episoder | noen få GB | 100 min opptak | 4 to 12 USD | høy |
| ACT fra bunnen av, 50 egne episoder | noen få GB | 100 min opptak | 1 to 3 USD | høy, 20 ms inferens |
| DROID-eksempel som testoppsett | 2 GB | en ettermiddag | én kort kjøring | hø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.
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 skrivebordsklientenKan 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.
Sources
- DROID: Et storskala robotmanipulasjonsdatasett fra den virkelige verden
- DROID-dokumentasjon: nedlastingsstørrelser og RLDS-episodeskjemaoppsettet
- BridgeData V2: Et datasett for robotlæring i stor skala
- BridgeData V2 prosjektside: sammensetning og kameradekning
- Open X-Embodiment: Robotlæringsdatasett og RT-X-modeller
- Open X-Embodiment prosjektside
- google-deepmind/open_x_embodiment: datasettliste og RT-1-X sjekkpunkter
- any4lerobot: openx2lerobot-konverteren og dens enhetlige 8-D tilstand, 7-D handling
- IPEC-COMMUNITY/droid_lerobot: meta/info.json og repo-størrelse
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: google_robot-segmentet med 3 fps
- huggingface/lerobot: SO follower, kinematikkprosessor, aggregerings- og opptakskonfigurasjoner
- openpi: DROID policy-inndata og pi05_droid sjekkpunktet
- pi0: En visjon-språk-handling flytmodell for generell robotkontroll
- SmolVLA: En visjon-språk-handling modell for rimelig og effektiv robotikk
Sources
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- DROID docs: download sizes and the RLDS episode schema
- BridgeData V2: A Dataset for Robot Learning at Scale
- BridgeData V2 project page: composition and camera coverage
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- Open X-Embodiment project page
- google-deepmind/open_x_embodiment: dataset list and RT-1-X checkpoints
- any4lerobot: the openx2lerobot converter and its unified 8-D state, 7-D action
- IPEC-COMMUNITY/droid_lerobot: meta/info.json and repo size
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: the google_robot slice at 3 fps
- huggingface/lerobot: SO follower, kinematics processor, aggregate and record configs
- openpi: DROID policy inputs and the pi05_droid checkpoint
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started