
DROID, BridgeData V2 och Open X-Embodiment konverterar till 7-D ändeffektoråtgärder på 6- och 7-DoF-armar. En SO-100 tar 6 ledpositioner. Vad som överförs, vad som inte gör det, vad man ska göra istället.
Den korta versionen
- •LeRobot-byggena av alla tre delar en konvention: en 7-D end-effector-aktion [x, y, z, roll, pitch, yaw, gripper] och ett 8-D tillstånd med en pad-plats. En SO-100 tar sex absoluta ledpositioner.
- •Den 7-D vektorn är omvandlarens artefakt: DROID:s eget RLDS-aktionsfält är 6 ledhastigheter plus en gripareposition, med den kartesiska vyn i action_dict.
- •Fyra klockor: DROID 15 fps, BridgeData V2 5 fps, google_robot-skivan 3 fps, en SO-100-inspelning vid 30 fps.
- •Du kan inte slå samman dem med dina egna data. validate_all_metadata utlöses vid den första av fps, robot_type eller funktioner som skiljer sig, och alla tre skiljer sig.
- •Det som överförs är förtränade vikter, inte episoder. Öppen källkodsdata utgör 9,1 procent av pi0:s förträningsblandning.
- •Deras billigaste verkliga användning är en testfixtur: ett känt, fungerande 2 GB, 100-episoders DROID-exempel som bevisar din pipeline innan du spelar in under en helg.
Det finns en offentlig datamängd med en miljon trajektorier på en Google Cloud-bucket och en SO-100 på skrivbordet som kostade 110 till 150 EUR i delar. Varför kan den första inte lära den andra? Delvis kan den det, men nästan ingen av överföringen sker där folk förväntar sig, och den del som ser enklast ut fungerar inte alls.
Vad som följer: vad som finns inuti DROID, BridgeData V2 och Open X-Embodiment, där var och en kolliderar med en billig 5-DoF-arm, och vad man ska göra istället. Varje siffra nedan kom från den artikel, datamängdskort eller källfil den tillhör.
Vad de tre datamängderna faktiskt innehåller
| 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 |
| Mångfald | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Sammansättning | allt fjärrstyrt | 50 365 fjärrstyrda, 9 731 skriptade | per källaboratorium |
| Kontrollfrekvens | 15 Hz | 5 Hz | varierar, 3 fps uppåt |
| Kameror | 2 x ZED 2 exteriör, 1 x ZED Mini handled | upp till 4, de flesta episoder endast den fasta | vad laboratoriet än använde |
| Rå nedladdning | 1.7 TB RLDS, 8.7 TB rå stereo | JPEG-arkiv | per-dataset TFDS-hinkar |
Få personer laddar fortfarande ner 1,7 TB RLDS TFRecords. Communityorganisationen IPEC-COMMUNITY har återpublicerat det mesta av Open X-Embodiment i LeRobot-dataset-format med AV1-video, där DROID hamnar på 392 GB. Det är den versionen du kommer att arbeta med, och dess meta/info.json är vad du ska läsa först.
DROID
Den mest standardiserade av de tre. En rigg överallt: en Franka Panda med en Robotiq 2F-85 gripklo, två justerbara ZED 2 stereokameror och en handleds-ZED Mini, fjärrstyrd med Meta Quest 2-kontroller, inspelad via Polymetis vid 15 Hz i både led- och slut-effektor utrymme. Språketiketter kom senare via tasq.ai, upp till tre per episod.
- 76k trajektorier, 350 timmar, 564 scener, 84 uppgifter, 50 insamlare på tre kontinenter.
- Huvudresultatet är samträning, inte fristående träning: batchar blandade 50/50 med demonstrationer inom domänen slog den näst bästa metoden med 22 procent absolut framgång i distribution, 17 procent utanför den.
- 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.
- Ett 2 GB, 100-episoders felsökningsprov finns på gs://gresearch/robotics/droid_100. Börja där.
BridgeData V2
Det närmaste en hobbymiljö: en WidowX 250 6-DoF-arm, 60 096 trajektorier över 24 miljöer och 13 färdigheter vid 5 Hz. Notera sammansättningen: 50 365 expertteleopererade demonstrationer plus 9 731 från en randomiserad skriptad plock-och-placera-policy, så cirka 16 procent är inte mänsklig demonstration, vilket är viktigt för imitationsinlärning kvalitet. Den vanliga nedladdningen, IPEC-COMMUNITY/bridge_orig_lerobot, rapporterar 53 192 episoder och 1 893 026 bildrutor vid 5 fps, robot_type widowx: färre än uppsatsens 60 096, så läs antalet från meta/info.json istället för att citera något av dem.
Open X-Embodiment
Inte en datamängd i samma bemärkelse: 60 befintliga robotdatamängder från 34 laboratorier samlade i en RLDS-samling som täcker 22 utföranden och över en miljon trajektorier. BridgeData V2 finns inuti den som bridge_orig; google_robot-skivan, fractal20220817_data, konverteras till 87 212 episoder vid 3 fps.
Samlingen medför en reservation som artikeln uttryckligen anger. För RT-X-experimenten konverterar författarna varje källa till en 7-DoF end-effector-aktion, men de anpassar inte koordinatsystemen mellan datamängderna, och tillåter att aktionsvärden är absoluta eller relativa positioner eller hastigheter, enligt varje robots ursprungliga kontrollschema. Deras slutsats: samma aktionsvektor kan inducera mycket olika rörelser för olika robotar.

Mismatchningen, i fyra delar
Kroppslig inkompatibilitet behandlas oftast som ett vagt problem. Det är fyra, de misslyckas på olika sätt, och två kan inte åtgärdas med skriptning.
1. Frihetsgrader
En SO-100 har fem armleder plus en gripklo. Räknat som motorer är det en 6-DoF-arm, och SmolVLA-artikeln kallar den det; räknat som en positioneringsmekanism är den 5-DoF, och LeRobot kallar den det i sin docstring för invers kinematik, som beskriver mjukorienterad IK på den 5-DOF SO-101 där handleden endast delvis spårar orientering. En Franka har sju positioneringsleder. Detta gap avgör vilka poser som existerar: en 5-DoF-arm kan i allmänhet inte nå en godtycklig position och orientering samtidigt, så lösaren returnerar det närmaste den kan, en annan rörelse än den som demonstrerades. Bakgrund: 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å en färdig DROID-checkpoint är ingen genväg. Physical Intelligence levererar pi05_droid på gs://openpi-assets/checkpoints/pi05_droid, och samma README som berömmer dess bredd varnar för att dessa expert-checkpoints kanske inte generaliserar till din installation. Dess tillstånd är åtta Franka-lednummer och dess bildnycklar är exterior_image_1_left och wrist_image_left. Ingen flagga förvandlar det till ett sex-motorigt SO-100-kommando.
2. Vad aktionsvektorn faktiskt säger
Djupare än dimensionalitet. I LeRobot-konverteringarna säger alla tre vart gripdonet ska gå, i kartesiskt rum. En SO-100 säger vart sex servon ska gå. Konvertering kräver en kinematisk modell och en lösare, inte en omformning.
| Egenskap | OXE, DROID och Bridge i LeRobot-form | SO-100 i LeRobot |
|---|---|---|
| Aktionsvektor | 7-D: x, y, z, roll, pitch, yaw, gripdon | 6-D: en målposition per motor |
| Tillståndsvektor | 8-D, med en utfyllnadsplats (google_robot använder en kvaternion) | 6-D, en per motor |
| Ram | Kartesisk, ej anpassad över dataset | ledrum, per-armkalibrering |
| Absolut eller relativ | antingen, bestäms av källaboratoriet | absoluta målpositioner |
| Enheter | normaliserad per dataset, sedan diskretiserad | grader som standard (use_degrees=True), annars -100 till 100 |
| Tyst fel | en delta läst som en absolut | en okalibrerad arm |
openx2lerobot README dokumenterar ett enhetligt 8-dimensionellt tillstånd och 7-dimensionell åtgärd för varje dataset det konverterar, vilket är var pad-platsen kommer ifrån. DROID:s eget RLDS-schema skiljer sig: dess toppnivå action är en 7-vektor av 6 ledhastigheter plus 1 gripardimension, med cartesian_position, cartesian_velocity, joint_position och joint_velocity under action_dict. openpi läser ledutrymmesvyn, LeRobot-bygget ger dig den kartesiska. Ingen av dem är sex absoluta servovinklar.
LeRobot levererar den saknade biten: SO follower har en kinematikprocessor med stegen InverseKinematicsEEToJoints och ForwardKinematicsJointsToEE. Dess nycklar är ee.x, ee.y, ee.z plus en rotationsvektor ee.wx, ee.wy, ee.wz och ee.gripper_pos, så även orienteringskodningen skiljer sig från roll-pitch-yaw i filerna. IK-steget tar en orientation_weight, standard 0.01, vars docstring säger att man ska sätta 0.0 för position-only IK på underaktiverade armar. Du kan bygga bron, men orienteringshalvan av varje lånad åtgärd förblir approximerad.
3. Kontrollfrekvens
DROID är 15 Hz, BridgeData V2 5 Hz, google_robot-skivan 3 fps; pi0:s författare beskriver den öppen källkodsdelen av sin blandning som lågfrekvent kontroll mellan 2 och 10 Hz. LeRobot:s DatasetRecordConfig har standardvärdena fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. En tränad på 5 Hz data lärde sig att en åtgärd täcker 200 ms. Spela upp den vid 30 Hz och armen kryper; omsampla naivt och du smetar ut ramen där griparen stängs. Det interagerar också dåligt med : en 100-stegs chunk är 20 sekunder vid 5 Hz, 3.3 vid 30 Hz.
4. Kameror
BridgeData V2 randomiserade två kamerapositioner var 50:e bana, och dess projektsida noterar att det mesta av datan ändå bara innehåller den fasta vyn. DROID använde justerbara ZED 2-fästen plus en handledsmonterad ZED Mini. Du har två USB-webbkameror placerade på fri hand. Kameraposition är inte en störande variabel för en ; det är mycket av vad den visuella kodaren fokuserade på, och inget i filformatet berättar att positionerna skiljer sig åt.
Delarna passar tillräckligt bra för att köra. Datasetet laddas, träningen startar, förlusten minskar, kontrollpunkter visas, inga fel uppstår. Sedan gör policyn inget igenkännbart på armen och du tillbringar en dag med att jaga en bugg i ditt träningsskript. Det finns ingen bugg: modellen lärde sig en kartesisk handlingsdistribution för en robot som inte finns i ditt rum. Börja vid förlusten minskar, policyn gör ingenting, inte vid dina hyperparametrar.
Vad händer när du ändå försöker slå samman datan
Den uppenbara planen är att sammanfoga: några tusen DROID-episoder plus dina 50. LeRobot vägrar, och vägran nämner de tre saker som skiljer sig åt.
- 1Hämta 100-episodersprovet, inte hela 1.7 TB
2 GB räcker för att se strukturen.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Konvertera RLDS till LeRobot-format
openx2lerobot omsluter OXE:s standardtransformationer och annoterar robottyp och kontrollfrekvens. README-filen placerar detta 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 - 3Läs meta/info.json före något annat
Denna fil avgör om resten av din dag fungerar.
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'])" - 4Prova sammanslagningen och läs felet
merge laddar varje dataset, sedan kontrollerar validate_all_metadata fps, robot_type och features mot den första i listan, och utlöser ett fel vid första avvikelsen.
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.
Referensvärdena kommer från det dataset du listade först, vilket är anledningen till att meddelandet klagar på dina 30 fps istället för DROID:s 15. Fixa fps och du stöter på robot_type-kontrollen; fixa det och du stöter på feature-kontrollen, 7 mot 6 för åtgärden. Ingen ordning fungerar, och samma skydd körs vid inspelningstillfället via sanity_check_dataset_robot_compatibility.
På nuvarande LeRobot main är so100_follower och so101_follower båda registrerade på en delad SOFollowerRobotConfig, så strängen från en verklig inspelning är inte nödvändigtvis den du förväntar dig. Läs den från din egen meta/info.json, och betrakta en kontroll du var tvungen att inaktivera som en kontroll som försökte berätta något för dig.
Så vad överförs egentligen?
Vikter, inte episoder. Varje modern generalistpolicy har absorberat en del av det under förträning, och när du finjusterar från en släppt kontrollpunkt ärver du det redan avstämt av personer med beräkningskraft att göra det korrekt. pi0:s rapport är uppriktig om proportionen: 9,1 procent av dess förträningsblandning, räknat i tidssteg, är öppen källkodsdata inklusive OXE, Bridge v2 och DROID. Den siffran är pi0:s; varje leverantörs blandning skiljer sig åt.
- Visuella och språkliga förkunskaper: kodaren har sett tusentals kök och muggar och vet vad "det röda blocket" syftar på.
- En förkunskap om manipulationsstruktur: närma sig, stänga, lyfta, transportera, släppa, inkarnations-oberoende även när siffrorna inte är det.
- Ett känt, bra dataset för testning. Om ditt jobb inte kan överanpassa 100 DROID-episoder, är problemet din inställning.
- Referenspunkter: inom domäner med småskaliga dataset uppnådde RT-1-X en 50 procent högre genomsnittlig framgångsfrekvens än den ursprungliga metoden eller RT-1, och RT-2-X slog RT-2 med cirka 3 gånger på framväxande färdigheter.
- Ingen användbar åtgärdsövervakning. Ett 7-D kartesiskt mål är inte ett 6-D ledkommando.
- Ingen överföring av kameraposition, och inget i datan säger dig att positionerna skiljer sig åt.
- Ingen tidsöverföring: 3, 5 och 15 fps källor mot en 30 fps inspelare.
- Ingen gripöverföring. En Robotiq 2F-85 och en utskriven käke på en STS3215 skiljer sig åt i kraft, slag och dynamik.
- Skala ensam var inte tillräckligt ens för dess författare: inom domäner med stora dataset slog RT-1-X inte en RT-1 tränad enbart på det datasetet.
- Ingen minskning av hur många egna episoder du behöver.
| Modellens lager | Överförs? | Varför |
|---|---|---|
| Vision encoder | Ja, starkt | Objekt och scener är inkarnations-oberoende |
| Language grounding | Ja | Instruktioner är text, inte geometri |
| Cross-modal fusion | Mestadels | Fokuserar på objektet som nämns i prompten |
| Proprioception encoder | Nej | Indatadimension och ledsemantik skiljer sig åt |
| Action head | Nej | Tränad på ett 7-D kartesiskt utrymme du inte befinner dig i |
| Normalisation statistics | Nej, och farligt | Främmande statistik förskjuter varje kommando |
Det är därför SmolVLA beter sig annorlunda på en lågkostnadsarm. Dess publikation väljer 481 gemenskapsdataset från Hugging Face, filtrerade efter typ av utförande, antal episoder, datakvalitet och bildtäckning: 22.9K episoder, 10.6M bilder, utvärderade på verkliga SO-100 och SO-101 armar. Litet och matchat slår stort och omatchat. Jämför på ACT mot SmolVLA.
Tre vägar värda att ta
Väg A: finjustera från en kontrollpunkt som redan har absorberat datan
De flesta bör välja denna. Du rör aldrig DROID eller Open X-Embodiment: välj en policy vars förträning redan har absorberat data för olika utföranden, spela in dina egna episoder, finjustera.
| Policy | Parametrar | Min antal episoder | Datasetformat | GPU-nivå | Inferens | Bas-checkpoint |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trained in fine-tuning | 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 backbone | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 M | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 M | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB | 20 ms | none, from scratch |
ACT är det ärliga gränsfallet: ingen basmodell, så ingen av den offentliga datan når den någonsin. Inte automatiskt en nackdel, eftersom den med 20 ms per åtgärdssteg är den enda av de fem som kan sluta en snabb loop, som ACT-sidan beskriver. Välj efter uppgift med hjälp av alla fem jämförda, GR00T N1.7 mot Pi0.5, och de 332 benchmarkresultaten över 85 modeller i arenan.
Väg B: använd DROID som testfixtur
Det 100-episoders urvalet är de bästa 2 GB du kommer att ladda ner denna månad, och inte för träning. Det är ett dataset du vet är korrekt. Kör din konverterare, laddare och ett kort GPU-jobb på det; allt som misslyckas är en infrastruktur-bugg som hittats medan det var billigt. NVIDIA gör detsamma i stor skala: GR00T N1.7-kortet listar fyra eftertränade varianter, för Bridge och Fractal i SimplerEnv, DROID och LIBERO.
Väg C: spela in dina egna, medvetet
Trettio till femtio låter lite bredvid 76 000 tills du kommer ihåg att dina är de enda med din arm, dina kameror och ditt bord. Med LeRobots standardinställningar är 50 episoder 100 minuters verklig tid. Se , och .

Två sätt att gå från offentlig data till en fungerande 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.

Vad varje sökväg kostar
| Sökväg | Lagring | Mänsklig tid | GPU-kostnad | Chans att den rör din arm |
|---|---|---|---|---|
| Konverterad DROID ensam | 392 GB | dagars konvertering | 4 till 12 USD | mycket låg, fel handlingsutrymme |
| DROID sammanslagen med dina avsnitt | båda | blockerad av validate_all_metadata | n/a | ingen, den körs inte |
| SmolVLA, 30 till 50 egna avsnitt | några GB | 100 min inspelning | 1 till 3 USD | hög |
| GR00T N1.7, 50 egna avsnitt | några GB | 100 min inspelning | 4 till 12 USD | hög |
| ACT från grunden, 50 egna avsnitt | några GB | 100 min inspelning | 1 till 3 USD | hög, 20 ms inferens |
| DROID-exempel som testfixtur | 2 GB | en eftermiddag | en kort körning | hög, som validering |
Asymmetrin är poängen: sökvägen som lånar mest data är den dyraste och minst sannolika att flytta din arm. Mindre än två timmar av din egen teleoperation slår en terabyte av någon annans Franka. Ingen arm än? /live strömmar en fysisk SO-100 utan registrering. Sedan träna din första policy, och SmolVLA på SO-100 för den specifika guiden.
Ladda ner DROID-exemplet på 2 GB och använd det för att bevisa din pipeline. Ignorera de andra 1.7 TB. Spela in 50 avsnitt av en uppgift med fasta kameror. Finjustera SmolVLA först, eftersom det med minst 30 avsnitt på ett 24 GB-kort är billigast att iterera på, prova sedan GR00T N1.7 på samma data. Jämför på din uppgift, inte på ett benchmark.
Spela in dataset som redan matchar din arm
Skrivbordsklienten skriver LeRobot-format dataset direkt från en teleop-session: rätt arm, rätt bildfrekvens, rätt åtgärdsutrymme. Ingen RLDS-konvertering, ingen ommappning.
Hämta skrivbordsklientenKan jag träna en policy på DROID och köra den på min SO-100?▾
Inte direkt. I LeRobot-bygget är DROID-aktioner 7-D end-effector-kommandon på en Franka Panda vid 15 fps; i den råa RLDS är de 6 ledhastigheter plus en gripareposition. En SO-100 tar 6 absoluta ledpositioner. Du skulle behöva ett invers-kinematikskikt, och även då kan en 5-DoF handled inte reproducera godtyckliga 6-DoF poser.
Kan jag blanda DROID- eller Bridge-avsnitt med mina egna SO-100-avsnitt?▾
Nej. validate_all_metadata kräver identiska fps, robot_type och feature schema och utlöser ValueError vid den första avvikelsen. Alla tre skiljer sig: 15 eller 5 fps mot 30, franka eller widowx mot din arm, aktionsformer på 7 mot 6. Att skriva om metadata för att klara kontrollen åtgärdar inte semantiken.
Är Open X-Embodiment då värdelöst för en lågkostnadsarm?▾
Nej, men dess värde når dig genom förtränade vikter, inte avsnitt. Öppen källkods-dataset inklusive OXE, Bridge v2 och DROID utgör 9.1 procent av pi0:s förträningsblandning, och NVIDIA levererar GR00T N1.7-varianter eftertränade på Bridge, Fractal, DROID och LIBERO. Vad du inte kan göra är att lägga till dessa avsnitt till din egen inspelning.
Vilken policy drar mest nytta av offentlig data för kors-embodiment?▾
Pi0.5 och GR00T-modellerna har den mest omfattande förträningen för kors-embodiment, men SmolVLA fungerar ofta bäst på en lågkostnadsarm: dess förträningsset består av 481 community-dataset, 22.9K avsnitt och 10.6M ramar, utvärderade på verkliga SO-100- och SO-101-armar. ACT är motsatsen: ingen basmodell, 20 ms per åtgärdssteg.
Hur många av mina egna avsnitt behöver jag egentligen?▾
30 för SmolVLA, 50 för GR00T N1.7, GR00T N1.5, Pi0.5 och ACT. Med LeRobots standardinställningar på 60 s per avsnitt och 60 s återställning, är 50 avsnitt 100 minuter i realtid. Lånad data för kors-embodiment sänker inte dessa siffror.
Sources
- DROID: Ett storskaligt robotmanipulationsdataset i verkliga miljöer
- DROID-dokumentation: nedladdningsstorlekar och RLDS-episodschemat
- BridgeData V2: Ett dataset för robotinlärning i stor skala
- BridgeData V2 projektsida: sammansättning och kameratäckning
- Open X-Embodiment: Dataset för robotinlärning och RT-X-modeller
- Open X-Embodiment projektsida
- google-deepmind/open_x_embodiment: datasetlista och RT-1-X checkpoints
- any4lerobot: openx2lerobot-konverteraren och dess enhetliga 8-D tillstånd, 7-D handling
- IPEC-COMMUNITY/droid_lerobot: meta/info.json och repo-storlek
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: google_robot-skivan vid 3 fps
- huggingface/lerobot: SO-följare, kinematikprocessor, aggregerings- och inspelningskonfigurationer
- openpi: DROID policy-ingångar och pi05_droid checkpoint
- pi0: En syn-, språk- och handlingsflödesmodell för allmän robotkontroll
- SmolVLA: En syn-, språk- och handlingsmodell för prisvärd och effektiv robotik
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