
DROID, BridgeData V2 dan Open X-Embodiment menukar kepada tindakan hujung-efektor 7-D pada lengan 6 dan 7-DoF. SO-100 mengambil 6 posisi sendi. Apa yang boleh dipindahkan, apa yang tidak, apa yang perlu dilakukan sebagai ganti.
Versi ringkas
- •Binaan LeRobot bagi ketiga-tiganya berkongsi satu konvensyen: tindakan hujung-efektor 7-D [x, y, z, roll, pitch, yaw, gripper] dan keadaan 8-D dengan slot pad. SO-100 mengambil enam kedudukan sendi mutlak.
- •Vektor 7-D itu adalah artifak penukar: medan tindakan RLDS DROID sendiri ialah 6 halaju sendi ditambah kedudukan pencengkam, dengan paparan Cartesian dalam action_dict.
- •Empat jam: DROID 15 fps, BridgeData V2 5 fps, hirisan google_robot 3 fps, rakaman SO-100 pada 30 fps.
- •Anda tidak boleh menggabungkannya dengan data anda sendiri. validate_all_metadata akan menimbulkan ralat pada yang pertama daripada fps, robot_type atau ciri-ciri yang berbeza, dan ketiga-tiganya berbeza.
- •Apa yang dipindahkan adalah pemberat pra-latihan, bukan episod. Data sumber terbuka adalah 9.1 peratus daripada campuran pra-latihan pi0.
- •Penggunaan sebenar mereka yang paling murah adalah lekapan ujian: sampel DROID 2 GB, 100 episod yang diketahui baik yang membuktikan saluran paip anda sebelum anda merakam untuk hujung minggu.
Terdapat set data awam berjuta-juta trajektori pada baldi Google Cloud dan di atas meja yang berharga 110 hingga 150 EUR dalam bahagian. Mengapa yang pertama tidak boleh mengajar yang kedua? Ia sebahagiannya boleh, tetapi hampir tiada pemindahan berlaku di mana orang menjangkakan, dan bahagian yang kelihatan paling mudah tidak berfungsi sama sekali.
Apa yang berikut: apa yang ada di dalam , dan , di mana setiap satu bertembung dengan lengan 5-DoF kos rendah, dan apa yang perlu dilakukan sebaliknya. Setiap nombor di bawah datang dari kertas kerja, kad set data atau fail sumber yang berkaitan dengannya.
Apa yang sebenarnya terkandung dalam tiga set data
| 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 |
| Kepelbagaian | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Komposisi | semua dikendalikan dari jauh | 50,365 dikendalikan dari jauh, 9,731 berskrip | setiap makmal sumber |
| Kadar kawalan | 15 Hz | 5 Hz | berbeza-beza, 3 fps ke atas |
| Kamera | 2 x ZED 2 luaran, 1 x ZED Mini pergelangan tangan | sehingga 4, kebanyakan episod hanya yang tetap | apa sahaja yang digunakan oleh makmal |
| Muat turun mentah | 1.7 TB RLDS, 8.7 TB stereo mentah | arkib JPEG | baldi TFDS setiap set data |
Tidak ramai yang masih memuat turun 1.7 TB RLDS TFRecords. Organisasi komuniti IPEC-COMMUNITY telah menerbitkan semula kebanyakan Open X-Embodiment dalam bentuk set data LeRobot dengan video AV1, di mana DROID bersaiz 392 GB. Itulah versi yang akan anda gunakan, dan meta/info.jsonnya adalah apa yang perlu dibaca dahulu.
DROID
Yang paling piawai antara ketiga-tiganya. Satu persediaan di mana-mana: Franka Panda dengan pengepit Robotiq 2F-85, dua kamera stereo ZED 2 boleh laras dan ZED Mini pergelangan tangan, dikendalikan dari jauh dengan pengawal Meta Quest 2, dirakam melalui Polymetis pada 15 Hz dalam kedua-dua ruang sendi dan penggerak akhir ruang. Label bahasa datang kemudian melalui tasq.ai, sehingga tiga setiap episod.
- 76k trajektori, 350 jam, 564 babak, 84 tugas, 50 pengumpul di tiga benua.
- Hasil utama adalah latihan bersama (co-training), bukan latihan kendiri (standalone training): kelompok yang dicampur 50/50 dengan demonstrasi dalam domain mengalahkan kaedah terbaik seterusnya sebanyak 22 peratus kejayaan mutlak dalam pengedaran, 17 peratus di luar itu.
- 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.
- Sampel penyahpepijatan 2 GB, 100 episod terletak di gs://gresearch/robotics/droid_100. Mulakan dari sana.
BridgeData V2
Yang paling hampir dengan persediaan hobi: lengan WidowX 250 6-DoF, 60,096 trajektori merentasi 24 persekitaran dan 13 kemahiran pada 5 Hz. Perhatikan komposisinya: 50,365 demonstrasi teleoperasi pakar ditambah 9,731 daripada polisi pilih-dan-letak berskrip rawak, jadi kira-kira 16 peratus bukanlah demonstrasi manusia, yang penting untuk pembelajaran tiruan kualiti. Muat turun biasa, IPEC-COMMUNITY/bridge_orig_lerobot, melaporkan 53,192 episod dan 1,893,026 bingkai pada 5 fps, robot_type widowx: kurang daripada 60,096 dalam kertas kerja, jadi baca kiraan dari meta/info.json daripada memetik mana-mana satu.
Open X-Embodiment
Bukan set data dalam erti kata yang sama: 60 set data robot sedia ada dari 34 makmal digabungkan menjadi satu koleksi RLDS yang meliputi 22 jelmaan dan lebih sejuta trajektori. BridgeData V2 berada di dalamnya sebagai bridge_orig; hirisan google_robot, fractal20220817_data, menukar kepada 87,212 episod pada 3 fps.
Penggabungan ini mempunyai peringatan yang dinyatakan secara terang-terangan dalam kertas kerja. Untuk eksperimen RT-X, penulis menukar setiap sumber kepada tindakan hujung-efektor 7-DoF, tetapi tidak menyelaraskan bingkai koordinat merentasi set data, dan membenarkan nilai tindakan menjadi kedudukan atau halaju mutlak atau relatif, mengikut skema kawalan asal setiap robot. Kesimpulan mereka: vektor tindakan yang sama mungkin menghasilkan gerakan yang sangat berbeza untuk robot yang berbeza.

Ketidakpadanan, dalam empat bahagian
Ketidakpadanan perwujudan biasanya dianggap sebagai satu masalah yang samar-samar. Sebenarnya ada empat, ia gagal secara berbeza, dan dua daripadanya tidak boleh diperbaiki dengan skrip.
1. Darjah kebebasan
SO-100 mempunyai lima sendi lengan ditambah satu pengepit. Dikira sebagai motor, ia adalah lengan 6-DoF, dan kertas SmolVLA memanggilnya begitu; dikira sebagai mekanisme penentu kedudukan, ia adalah 5-DoF, dan LeRobot memanggilnya begitu dalam docstring kinematik songsangnya, yang menerangkan IK orientasi lembut pada SO-101 5-DOF di mana pergelangan tangan menjejaki orientasi hanya sebahagian. Franka mempunyai tujuh sendi penentu kedudukan. Jurang itu menentukan pose mana yang wujud: lengan 5-DoF secara amnya tidak dapat mencapai kedudukan dan orientasi sewenang-wenangnya sekaligus, jadi penyelesai mengembalikan yang paling hampir yang boleh, gerakan yang berbeza daripada yang ditunjukkan. Latar belakang: darjah kebebasan.
# 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-DJadi, titik semak DROID yang siap pakai bukanlah jalan pintas. Physical Intelligence menghantar pi05_droid di gs://openpi-assets/checkpoints/pi05_droid, dan README yang sama yang memuji keluasan liputannya memberi amaran bahawa titik semak pakar ini mungkin tidak dapat digeneralisasikan kepada persediaan anda. Keadaannya adalah lapan nombor sendi Franka dan kunci imejnya adalah exterior_image_1_left dan wrist_image_left. Tiada bendera yang mengubahnya menjadi arahan SO-100 enam motor.
2. Apa yang sebenarnya dinyatakan oleh vektor tindakan
Lebih mendalam daripada dimensionaliti. Dalam penukaran LeRobot, ketiga-tiganya menyatakan ke mana pengepit harus pergi, dalam ruang Cartesian. SO-100 menyatakan ke mana enam servo harus pergi. Penukaran memerlukan model kinematik dan penyelesai, bukan pembentukan semula.
| Sifat | OXE, DROID dan Bridge dalam bentuk LeRobot | SO-100 dalam LeRobot |
|---|---|---|
| Vektor tindakan | 7-D: x, y, z, roll, pitch, yaw, pengepit | 6-D: satu kedudukan sasaran setiap motor |
| Vektor keadaan | 8-D, dengan slot pad (google_robot menggunakan kuaternion) | 6-D, satu setiap motor |
| Bingkai | Cartesian, tidak sejajar merentasi set data | ruang sendi, penentukuran setiap lengan |
| Mutlak atau relatif | sama ada, diputuskan oleh makmal sumber | kedudukan sasaran mutlak |
| Unit | dinormalisasi setiap set data, kemudian didiskretkan | darjah secara lalai (use_degrees=True), jika tidak -100 hingga 100 |
| Kegagalan senyap | delta dibaca sebagai mutlak | lengan yang tidak ditentukur |
README openx2lerobot mendokumenkan keadaan 8-dim dan tindakan 7-dim yang disatukan untuk setiap set data yang ditukarnya, dari situlah slot pad berasal. Skema RLDS DROID sendiri berbeza: action peringkat atasnya adalah 7-vektor 6 halaju sendi ditambah 1 kedudukan pencengkam, dengan cartesian_position, cartesian_velocity, joint_position dan joint_velocity di bawah action_dict. openpi membaca paparan ruang sendi, binaan LeRobot memberikan anda yang Cartesian. Kedua-duanya bukan enam sudut servo mutlak.
LeRobot memang menyediakan bahagian yang hilang: pengikut SO mempunyai pemproses kinematik dengan langkah InverseKinematicsEEToJoints dan ForwardKinematicsJointsToEE. Kuncinya ialah ee.x, ee.y, ee.z ditambah vektor putaran ee.wx, ee.wy, ee.wz dan ee.gripper_pos, jadi pengekodan orientasi pun berbeza daripada roll-pitch-yaw dalam fail. Langkah IK mengambil orientation_weight, lalai 0.01, yang docstringnya menyatakan untuk menetapkan 0.0 untuk IK kedudukan-sahaja pada lengan yang kurang digerakkan. Anda boleh membina jambatan itu, tetapi separuh orientasi setiap tindakan yang dipinjam kekal dianggarkan.
3. Kadar kawalan
DROID ialah 15 Hz, BridgeData V2 5 Hz, hirisan google_robot 3 fps; pengarang pi0 menerangkan bahagian sumber terbuka campuran mereka sebagai kawalan frekuensi rendah antara 2 dan 10 Hz. DatasetRecordConfig LeRobot lalai kepada fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. Satu yang dilatih pada data 5 Hz mendapati bahawa satu tindakan meliputi 200 ms. Main semula pada 30 Hz dan lengan akan merangkak; sampel semula secara naif dan anda akan mengaburkan bingkai di mana pencengkam tertutup. Ia juga berinteraksi dengan teruk dengan : satu segmen 100 langkah ialah 20 saat pada 5 Hz, 3.3 pada 30 Hz.
4. Kamera
BridgeData V2 merandomkan dua pose kamera setiap 50 trajektori, dan halaman projeknya menyatakan kebanyakan data hanya membawa pandangan tetap. DROID menggunakan pelekap ZED 2 boleh laras serta ZED Mini pergelangan tangan. Anda mempunyai dua webcam USB yang diletakkan secara manual. Pose kamera bukanlah pemboleh ubah yang mengganggu bagi ; ia adalah sebahagian besar daripada apa yang dikunci oleh pengekod visual, dan tiada apa-apa dalam format fail yang memberitahu anda bahawa pose-pose tersebut berbeza.
Komponen-komponen tersebut cukup sesuai untuk dijalankan. Set data dimuatkan, latihan bermula, kerugian menurun, titik semak muncul, tiada ralat. Kemudian polisi tidak melakukan apa-apa yang boleh dikenali pada lengan dan anda menghabiskan sehari mencari pepijat dalam skrip latihan anda. Tiada pepijat: model tersebut mempelajari taburan tindakan Cartesian untuk robot yang tidak wujud di dalam bilik anda. Mulakan pada kerugian menurun, polisi tidak melakukan apa-apa, bukan pada hiperparameter anda.
Apa yang berlaku jika anda cuba menggabungkan data itu juga
Rancangan yang jelas adalah untuk menggabungkan: beberapa ribu episod DROID ditambah 50 episod anda. LeRobot menolak, dan penolakan itu menamakan tiga perkara yang berbeza.
- 1Tarik sampel 100 episod, bukan 1.7 TB penuh
2 GB sudah cukup untuk melihat strukturnya.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Tukar RLDS ke format LeRobot
openx2lerobot merangkumi transformasi standard OXE dan menganotasi jenis robot serta frekuensi kawalan. README meletakkan ini dalam 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 - 3Baca meta/info.json sebelum perkara lain
Fail ini menentukan sama ada kerja anda yang lain akan berfungsi.
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'])" - 4Cuba gabungan dan baca ralatnya
gabungan memuatkan setiap set data, kemudian validate_all_metadata menyemak fps, robot_type dan ciri-ciri berbanding yang pertama dalam senarai, membangkitkan ralat pada ketidakpadanan pertama.
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.
Nilai rujukan datang daripada set data mana yang anda senaraikan dahulu, itulah sebabnya mesej itu mengadu tentang 30 fps anda dan bukannya 15 fps DROID. Betulkan fps dan anda akan menghadapi semakan robot_type; betulkan itu dan anda akan menghadapi semakan ciri, 7 berbanding 6 untuk tindakan. Tiada susunan yang akan berjaya, dan pengawal yang sama berjalan pada masa rakaman melalui sanity_check_dataset_robot_compatibility.
Pada LeRobot utama semasa, so100_follower dan so101_follower kedua-duanya didaftarkan pada satu SOFollowerRobotConfig yang dikongsi, jadi rentetan daripada rakaman sebenar tidak semestinya yang anda jangkakan. Bacalah dari meta/info.json anda sendiri, dan anggap semakan yang anda terpaksa lumpuhkan sebagai semakan yang memberitahu anda sesuatu.
Jadi apa yang sebenarnya dipindahkan?
Bobot, bukan episod. Setiap polisi generalis moden menyerap sebahagian daripadanya dalam pra-latihan, dan apabila anda daripada yang dikeluarkan, anda mewarisinya sudah diselaraskan oleh orang yang mempunyai kuasa pengkomputeran untuk melakukannya dengan betul. Kertas pi0 jujur tentang perkadaran: 9.1 peratus daripada campuran pra-latihannya, dikira dalam langkah masa, adalah data sumber terbuka termasuk OXE, Bridge v2 dan DROID. Angka itu adalah milik pi0; campuran setiap vendor berbeza.
- Prior visual dan bahasa: pengekod telah melihat ribuan dapur dan cawan dan tahu apa yang dimaksudkan dengan "blok merah".
- Prior atas struktur manipulasi: mendekati, menutup, mengangkat, mengangkut, melepaskan, bebas-embodimen walaupun nombornya tidak.
- Set data yang diketahui baik untuk pengujian. Jika tugas anda tidak dapat overfit 100 episod DROID, masalahnya adalah persediaan anda.
- Titik rujukan: dalam domain set data berskala kecil RT-1-X mencapai kadar kejayaan purata 50 peratus lebih tinggi daripada kaedah asal atau RT-1, dan RT-2-X mengalahkan RT-2 kira-kira 3x pada kemahiran yang muncul.
- Tiada penyeliaan tindakan yang boleh digunakan. Sasaran Cartesian 7-D bukan arahan sendi 6-D.
- Tiada pemindahan pose kamera, dan tiada apa-apa dalam data yang memberitahu anda pose berbeza.
- Tiada pemindahan masa: sumber 3, 5 dan 15 fps berbanding perakam 30 fps.
- Tiada pemindahan pengepit. Robotiq 2F-85 dan rahang bercetak pada STS3215 berbeza dalam daya, lejang dan dinamik.
- Skala sahaja tidak mencukupi walaupun bagi pengarangnya: dalam domain set data besar RT-1-X tidak mengalahkan RT-1 yang dilatih pada set data itu sahaja.
- Tiada pengurangan dalam bilangan episod anda sendiri yang anda perlukan.
| Lapisan model | Dipindahkan? | Mengapa |
|---|---|---|
| Pengekod penglihatan | Ya, sangat | Objek dan pemandangan adalah bebas-embodimen |
| Asas bahasa | Ya | Arahan adalah teks, bukan geometri |
| Gabungan rentas-modal | Kebanyakannya | Memberi perhatian kepada objek yang dinamakan dalam gesaan |
| Pengekod proprioception | Tidak | Dimensi input dan semantik sendi berbeza |
| Kepala tindakan | Tidak | Dilatih pada ruang Cartesian 7-D yang anda tidak berada di dalamnya |
| Statistik normalisasi | Tidak, dan berbahaya | Statistik asing mengalihkan setiap arahan |
Inilah sebabnya SmolVLA berkelakuan berbeza pada lengan kos rendah. Kertas kerjanya memilih 481 set data komuniti daripada Hugging Face, ditapis mengikut jenis perwujudan, kiraan episod, kualiti data dan liputan bingkai: 22.9K episod, 10.6M bingkai, dinilai pada lengan SO-100 dan SO-101 sebenar. Kecil dan sepadan mengalahkan besar dan tidak sepadan. Bandingkan pada ACT berbanding SmolVLA.
Tiga laluan yang patut diambil
Laluan A: penalaan halus daripada titik semak yang sudah menyerap data
Kebanyakan orang patut mengambil laluan ini. Anda tidak pernah menyentuh DROID atau Open X-Embodiment: pilih polisi yang pra-latihannya sudah menyerap data rentas-perwujudan, rekod episod anda sendiri, lakukan penalaan halus.
| Dasar | Parameter | Episod min | Format set data | Tahap GPU | Inferens | Titik semak asas |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 J dilatih dalam penalaan halus | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms setiap langkah | 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, tulang belakang PaliGemma | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 J | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 J | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB | 20 ms | tiada, dari awal |
ACT adalah kes pinggir yang jujur: tiada model asas, jadi tiada data awam yang pernah mencapainya. Ini bukan secara automatik satu kelemahan, kerana pada 20 ms setiap langkah tindakan ia adalah satu-satunya daripada lima yang boleh menutup gelung pantas, seperti halaman ACT, yang dinyatakan. Pilih mengikut tugas menggunakan kesemua lima dibandingkan, GR00T N1.7 berbanding Pi0.5, dan 332 hasil penanda aras merentasi 85 model dalam arena.
Laluan B: gunakan DROID sebagai lekapan ujian
Sampel 100 episod adalah 2 GB terbaik yang akan anda muat turun bulan ini, dan bukan untuk latihan. Ia adalah set data yang anda tahu betul. Jalankan penukar, pemuat dan kerja GPU pendek anda padanya; apa-apa yang gagal adalah pepijat infrastruktur yang ditemui semasa ia masih murah. NVIDIA melakukan perkara yang sama pada skala besar: kad GR00T N1.7 menyenaraikan empat varian pasca-latihan, untuk Bridge dan Fractal dalam SimplerEnv, DROID dan LIBERO.
Laluan C: rakam sendiri, dengan sengaja
Tiga puluh hingga lima puluh kedengaran kecil berbanding 76,000 sehingga anda ingat bahawa milik anda adalah satu-satunya yang menggunakan lengan, kamera dan meja anda. Pada tetapan lalai LeRobot, 50 episod adalah 100 minit waktu sebenar. Lihat , dan .

Dua cara untuk mendapatkan polisi yang berfungsi daripada data awam
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.

Kos setiap laluan
| Laluan | Storan | Masa manusia | Kos GPU | Peluang ia menggerakkan lengan anda |
|---|---|---|---|---|
| DROID yang ditukar sahaja | 392 GB | hari penukaran | 4 to 12 USD | sangat rendah, ruang tindakan salah |
| DROID digabungkan dengan episod anda | kedua-duanya | blocked by validate_all_metadata | n/a | tiada, ia tidak berjalan |
| SmolVLA, 30 hingga 50 episod sendiri | beberapa GB | rakaman 100 min | 1 to 3 USD | tinggi |
| GR00T N1.7, 50 episod sendiri | beberapa GB | rakaman 100 min | 4 to 12 USD | tinggi |
| ACT dari awal, 50 episod sendiri | beberapa GB | rakaman 100 min | 1 to 3 USD | tinggi, inferens 20 ms |
| Sampel DROID sebagai lekapan ujian | 2 GB | satu petang | satu larian pendek | tinggi, sebagai pengesahan |
Asimetri adalah intinya: laluan yang meminjam data paling banyak adalah yang paling mahal dan paling tidak mungkin untuk menggerakkan lengan anda. Kurang dari dua jam teleoperasi anda mengalahkan satu terabait Franka orang lain. Belum ada lengan? /live menstrimkan SO-100 fizikal tanpa pendaftaran. Kemudian latih polisi pertama anda, dan SmolVLA pada SO-100 untuk panduan khusus.
Muat turun sampel DROID 2 GB dan gunakannya untuk membuktikan saluran paip anda. Abaikan 1.7 TB yang lain. Rakam 50 episod satu tugas dengan kamera tetap. Laras halus SmolVLA dahulu, kerana dengan minimum 30 episod pada kad 24 GB ia adalah yang paling murah untuk diulang, kemudian cuba GR00T N1.7 pada data yang sama. Bandingkan pada tugas anda, bukan pada penanda aras.
Rakam set data yang sudah sepadan dengan lengan anda
Klien desktop menulis set data format LeRobot terus dari sesi teleop: lengan yang betul, kadar bingkai yang betul, ruang tindakan yang betul. Tiada penukaran RLDS, tiada pemetaan semula.
Dapatkan klien desktopBolehkah saya melatih polisi pada DROID dan menjalankannya pada SO-100 saya?▾
Tidak secara langsung. Dalam binaan LeRobot, tindakan DROID adalah arahan end-effector 7-D pada Franka Panda pada 15 fps; dalam RLDS mentah ia adalah 6 halaju sendi ditambah kedudukan gripper. SO-100 mengambil 6 kedudukan sendi mutlak. Anda memerlukan lapisan kinematik songsang, dan walaupun begitu pergelangan tangan 5-DoF tidak dapat menghasilkan pose 6-DoF sewenang-wenangnya.
Bolehkah saya mencampur episod DROID atau Bridge dengan episod SO-100 saya sendiri?▾
Tidak. validate_all_metadata memerlukan fps, robot_type dan skema ciri yang sama dan menimbulkan ValueError pada ketidakpadanan pertama. Ketiga-tiganya berbeza: 15 atau 5 fps berbanding 30, franka atau widowx berbanding lengan anda, bentuk tindakan 7 berbanding 6. Menulis semula metadata untuk lulus pemeriksaan tidak membetulkan semantik.
Adakah Open X-Embodiment tidak berguna untuk lengan kos rendah?▾
Tidak, tetapi nilainya sampai kepada anda melalui berat pra-latihan, bukan episod. Set data sumber terbuka termasuk OXE, Bridge v2 dan DROID adalah 9.1 peratus daripada campuran pra-latihan pi0, dan NVIDIA menghantar varian GR00T N1.7 yang dilatih selepas itu pada Bridge, Fractal, DROID dan LIBERO. Apa yang anda tidak boleh lakukan ialah menambah episod tersebut pada rakaman anda sendiri.
Polisi manakah yang paling banyak mendapat manfaat daripada data silang-embodimen awam?▾
Pi0.5 dan model GR00T membawa pra-latihan silang-embodimen paling banyak, tetapi SmolVLA sering berfungsi paling baik pada lengan kos rendah: set pra-latihannya adalah 481 set data komuniti, 22.9K episod dan 10.6M bingkai, dinilai pada lengan SO-100 dan SO-101 sebenar. ACT adalah sebaliknya: tiada model asas, 20 ms setiap langkah tindakan.
Berapa banyak episod saya sendiri yang sebenarnya saya perlukan?▾
30 untuk SmolVLA, 50 untuk GR00T N1.7, GR00T N1.5, Pi0.5 dan ACT. Pada tetapan lalai LeRobot iaitu 60 s setiap episod dan 60 s set semula, 50 episod adalah 100 minit waktu sebenar. Data silang-embodimen yang dipinjam tidak mengurangkan angka tersebut.
Sources
- DROID: Set Data Manipulasi Robot Berskala Besar di Persekitaran Sebenar
- Dokumen DROID: saiz muat turun dan skema episod RLDS
- BridgeData V2: Set Data untuk Pembelajaran Robot pada Skala Besar
- Halaman projek BridgeData V2: komposisi dan liputan kamera
- Open X-Embodiment: Set Data Pembelajaran Robotik dan Model RT-X
- Halaman projek Open X-Embodiment
- google-deepmind/open_x_embodiment: senarai set data dan pusat pemeriksaan RT-1-X
- any4lerobot: penukar openx2lerobot dan keadaan 8-D bersatu, tindakan 7-D
- IPEC-COMMUNITY/droid_lerobot: meta/info.json dan saiz repo
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: hirisan google_robot pada 3 fps
- huggingface/lerobot: pengikut SO, pemproses kinematik, konfigurasi agregat dan rekod
- openpi: input polisi DROID dan pusat pemeriksaan pi05_droid
- pi0: Model Aliran Visi-Bahasa-Tindakan untuk Kawalan Robot Umum
- SmolVLA: Model Visi-Bahasa-Tindakan untuk Robotik yang Mampu Milik dan Cekap
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