
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
| 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 |
| Skaal | 76k trajectories, 350 hours | 60,096 trajectories | 1M+ trajectories, 527 skills |
| Diversiteit | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Samestelling | alles tele-opereer | 50,365 tele-opereer, 9,731 geskrip | per bronlaboratorium |
| Beheerkoers | 15 Hz | 5 Hz | varies, 3 fps upwards |
| Kameras | 2 x ZED 2 ekstern, 1 x ZED Mini pols | tot 4, meeste episodes slegs die vaste een | wat ook al die laboratorium gebruik het |
| Rou aflaai | 1.7 TB RLDS, 8.7 TB raw stereo | JPEG archives | per-dataset TFDS buckets |
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 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.
# 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-DDus 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.
| Eiendom | OXE, DROID en Bridge in LeRobot-formaat | SO-100 in LeRobot |
|---|---|---|
| Aksievektor | 7-D: x, y, z, rol, stamp, giet, gryper | 6-D: een doelposisie per motor |
| Toestandsvektor | 8-D, met 'n opvulgleuf (google_robot gebruik 'n kwaternion) | 6-D, een per motor |
| Raam | Kartesies, onbelyn oor datastelle | gewrigruimte, per-arm kalibrasie |
| Absoluut of relatief | enigeen, besluit deur die bronlaboratorium | absolute doelposisies |
| Eenhede | genormaliseer per datastel, dan gediskretiseer | grade by verstek (use_degrees=True), anders -100 tot 100 |
| Stil mislukking | 'n delta gelees as 'n absolute | 'n ongekalibreerde arm |
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 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.
- 1Trek die 100-episode-voorbeeld, nie die volle 1.7 TB nie
2 GB is genoeg om die struktuur te sien.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Skakel RLDS om na LeRobot-formaat
openx2lerobot omvou die OXE standaard transformasies en annoteer robot tipe en beheerfrekwensie. Die README plaas dit in 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 - 3Lees meta/info.json voor enigiets anders
Hierdie lêer besluit of die res van jou dag werk.
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'])" - 4Probeer 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.
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.
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.
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.
- 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.
- 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 model | Dra oor? | Hoekom |
|---|---|---|
| Visie-enkodeerder | Ja, sterk | Objekte en tonele is liggaam-onafhanklik |
| Taalgrondslag | Ja | Instruksies is teks, nie geometrie nie |
| Kruis-modale fusie | Meestal | Fokus op die objek wat in die aanwysing genoem word |
| Propriosepsie-enkodeerder | Nee | Invoerdimensie en gewrigsemantiek verskil |
| Aksie-kop | Nee | Opgelei op 'n 7-D Kartesiese ruimte waarin jy nie is nie |
| Normaliseringstatistieke | Nee, en gevaarlik | Vreemde 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.
| Beleid | Parameters | Min episodes | Datastelformaat | GPU-vlak | Afleiding | Basis-kontrolepunt |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M opgelei in fyninstelling | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms per stap | 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 ruggraat | 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 | geen, 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 .

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.
- 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.

Wat elke pad kos
| Pad | Berging | Menslike tyd | GPU-koste | Kans dat dit jou arm beweeg |
|---|---|---|---|---|
| Omgeskakelde DROID alleen | 392 GB | dae van omskakeling | 4 to 12 USD | baie laag, verkeerde aksiespasie |
| DROID saamgevoeg met jou episodes | both | geblokkeer deur validate_all_metadata | n/a | geen, dit loop nie |
| SmolVLA, 30 tot 50 eie episodes | 'n paar GB | 100 min opname | 1 to 3 USD | hoog |
| GR00T N1.7, 50 eie episodes | 'n paar GB | 100 min opname | 4 to 12 USD | hoog |
| ACT van nuuts af, 50 eie episodes | 'n paar GB | 100 min opname | 1 to 3 USD | hoog, 20 ms inferensie |
| DROID-voorbeeld as 'n toetsarmatuur | 2 GB | 'n middag | one short run | hoog, 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.
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ëntKan 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.
Sources
- DROID: ’n Grootskaalse In-Die-Wilde Robotmanipulasie Datastel
- DROID dokumente: aflaai groottes en die RLDS episode skema
- BridgeData V2: 'n Datastel vir Robotleer op Skaal
- BridgeData V2 projekbladsy: samestelling en kamera dekking
- Open X-Embodiment: Robotiese Leer Datastelle en RT-X Modelle
- Open X-Embodiment projekbladsy
- google-deepmind/open_x_embodiment: datastel lys en RT-1-X kontrolepunte
- any4lerobot: die openx2lerobot omskakelaar en sy verenigde 8-D toestand, 7-D aksie
- IPEC-COMMUNITY/droid_lerobot: meta/info.json en repo grootte
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: die google_robot sny teen 3 fps
- huggingface/lerobot: SO volger, kinematika verwerker, aggregaat en opname konfigurasies
- openpi: DROID beleid insette en die pi05_droid kontrolepunt
- pi0: 'n Visie-Taal-Aksie Vloeimodel vir Algemene Robotbeheer
- SmolVLA: 'n Visie-Taal-Aksie Model vir Bekostigbare en Doeltreffende Robotika
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