
DROID, BridgeData V2, dan Open X-Embodiment dikonversi menjadi aksi end-effector 7-D pada lengan 6 dan 7-DoF. SO-100 mengambil 6 posisi sendi. Apa yang dapat ditransfer, apa yang tidak, dan apa yang harus dilakukan sebagai gantinya.
Versi singkat
- •Build LeRobot dari ketiganya berbagi satu konvensi: aksi end-effector 7-D [x, y, z, roll, pitch, yaw, gripper] dan status 8-D dengan slot pad. SO-100 mengambil enam posisi sambungan absolut.
- •Vektor 7-D itu adalah artefak konverter: bidang aksi RLDS DROID sendiri adalah 6 kecepatan sambungan ditambah posisi gripper, dengan tampilan Cartesian di action_dict.
- •Empat jam: DROID 15 fps, BridgeData V2 5 fps, irisan google_robot 3 fps, rekaman SO-100 pada 30 fps.
- •Anda tidak dapat menggabungkannya dengan data Anda sendiri. validate_all_metadata akan memunculkan kesalahan pada perbedaan pertama dari fps, robot_type, atau fitur, dan ketiganya berbeda.
- •Yang ditransfer adalah bobot pra-pelatihan, bukan episode. Data sumber terbuka adalah 9.1 persen dari campuran pra-pelatihan pi0.
- •Penggunaan nyata termurah mereka adalah perlengkapan uji: sampel DROID 2 GB, 100 episode yang terbukti baik yang membuktikan pipeline Anda sebelum Anda merekam selama akhir pekan.
Ada dataset publik sejuta-lintasan di bucket Google Cloud dan sebuah SO-100 di meja yang harganya 110 hingga 150 EUR dalam suku cadang. Mengapa yang pertama tidak bisa mengajari yang kedua? Sebagian bisa, tetapi hampir tidak ada transfer yang terjadi di tempat yang orang harapkan, dan bagian yang terlihat paling mudah sama sekali tidak berfungsi.
Berikutnya: apa yang ada di dalam DROID, BridgeData V2 dan Open X-Embodiment, di mana masing-masing bertabrakan dengan lengan 5-DoF berbiaya rendah, dan apa yang harus dilakukan sebagai gantinya. Setiap angka di bawah ini berasal dari makalah, kartu dataset, atau file sumber yang relevan.
Apa yang sebenarnya terkandung dalam tiga dataset
| 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 |
| Keberagaman | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Komposisi | all teleoperated | 50,365 teleoperated, 9,731 scripted | per source lab |
| Laju kontrol | 15 Hz | 5 Hz | varies, 3 fps upwards |
| Kamera | 2 x ZED 2 exterior, 1 x ZED Mini wrist | up to 4, most episodes only the fixed one | whatever the lab used |
| Unduhan mentah | 1.7 TB RLDS, 8.7 TB raw stereo | JPEG archives | per-dataset TFDS buckets |
Beberapa orang masih mengunduh 1,7 TB RLDS TFRecords. Organisasi komunitas IPEC-COMMUNITY telah menerbitkan ulang sebagian besar Open X-Embodiment dalam bentuk dataset LeRobot dengan video AV1, di mana DROID berukuran 392 GB. Itulah versi yang akan Anda gunakan, dan meta/info.json-nya adalah yang harus dibaca pertama kali.
DROID
Yang paling terstandardisasi dari ketiganya. Satu rig di mana-mana: Franka Panda dengan gripper Robotiq 2F-85, dua kamera stereo ZED 2 yang dapat disesuaikan dan ZED Mini pergelangan tangan, dioperasikan dari jarak jauh dengan kontroler Meta Quest 2, direkam melalui Polymetis pada 15 Hz baik dalam ruang sendi maupun end-effector ruang. Label bahasa ditambahkan kemudian melalui tasq.ai, hingga tiga per episode.
- 76k lintasan, 350 jam, 564 adegan, 84 tugas, 50 kolektor di tiga benua.
- Hasil utamanya adalah pelatihan bersama (co-training), bukan pelatihan mandiri: batch yang dicampur 50/50 dengan demonstrasi dalam domain mengalahkan metode terbaik berikutnya sebesar 22 persen keberhasilan absolut dalam distribusi, 17 persen 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 debugging 2 GB, 100 episode tersedia di gs://gresearch/robotics/droid_100. Mulailah dari sana.
BridgeData V2
Yang paling mendekati pengaturan hobi: lengan WidowX 250 6-DoF, 60.096 lintasan di 24 lingkungan dan 13 keterampilan pada 5 Hz. Perhatikan komposisinya: 50.365 demonstrasi teleoperasi ahli ditambah 9.731 dari kebijakan pick-and-place skrip acak, jadi sekitar 16 persen bukan demonstrasi manusia, yang penting untuk pembelajaran imitasi kualitas. Unduhan biasa, IPEC-COMMUNITY/bridge_orig_lerobot, melaporkan 53.192 episode dan 1.893.026 frame pada 5 fps, robot_type widowx: lebih sedikit dari 60.096 yang disebutkan dalam makalah, jadi bacalah jumlah dari meta/info.json daripada mengutip salah satunya.
Open X-Embodiment
Bukan dataset dalam pengertian yang sama: 60 dataset robot yang ada dari 34 lab digabungkan menjadi satu koleksi RLDS yang mencakup 22 perwujudan dan lebih dari satu juta lintasan. BridgeData V2 berada di dalamnya sebagai bridge_orig; irisan google_robot, fractal20220817_data, dikonversi menjadi 87.212 episode pada 3 fps.
Penggabungan ini memiliki peringatan yang dinyatakan langsung dalam makalah. Untuk eksperimen RT-X, para penulis mengonversi setiap sumber menjadi aksi end-effector 7-DoF, tetapi tidak menyelaraskan kerangka koordinat di seluruh dataset, dan memungkinkan nilai aksi berupa posisi atau kecepatan absolut atau relatif, sesuai dengan skema kontrol asli setiap robot. Kesimpulan mereka: vektor aksi yang sama dapat menghasilkan gerakan yang sangat berbeda untuk robot yang berbeda.

Ketidaksesuaian, dalam empat bagian
Ketidakcocokan perwujudan (embodiment mismatch) biasanya diperlakukan sebagai satu masalah yang samar. Ada empat, masing-masing gagal dengan cara berbeda, dan dua di antaranya tidak dapat diperbaiki dengan skrip.
1. Derajat kebebasan
SO-100 memiliki lima sendi lengan ditambah sebuah gripper. Dihitung sebagai motor, itu adalah lengan 6-DoF, dan makalah SmolVLA menyebutnya demikian; dihitung sebagai mekanisme penentuan posisi, itu adalah 5-DoF, dan LeRobot menyebutnya demikian dalam docstring kinematika inversnya, yang menjelaskan IK orientasi lunak pada SO-101 5-DOF di mana pergelangan tangan hanya melacak orientasi sebagian. Franka memiliki tujuh sendi penentu posisi. Kesenjangan itu menentukan pose mana yang ada: lengan 5-DoF umumnya tidak dapat mencapai posisi dan orientasi arbitrer sekaligus, sehingga pemecah mengembalikan yang terdekat yang bisa dicapai, gerakan yang berbeda dari yang didemonstrasikan. Latar belakang: derajat 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, checkpoint DROID siap pakai bukanlah jalan pintas. Physical Intelligence mengirimkan pi05_droid di gs://openpi-assets/checkpoints/pi05_droid, dan README yang sama yang memuji cakupannya memperingatkan bahwa checkpoint ahli ini mungkin tidak dapat digeneralisasi ke pengaturan Anda. Keadaannya adalah delapan angka sambungan Franka dan kunci gambarnya adalah exterior_image_1_left dan wrist_image_left. Tidak ada flag yang mengubahnya menjadi perintah SO-100 enam motor.
2. Apa yang sebenarnya dikatakan vektor aksi
Lebih dalam dari dimensionalitas. Dalam konversi LeRobot, ketiganya menyatakan ke mana gripper harus pergi, dalam ruang Kartesius. SO-100 menyatakan ke mana enam servo harus pergi. Mengonversi membutuhkan model kinematik dan pemecah, bukan pembentukan ulang.
| Properti | OXE, DROID, dan Bridge dalam bentuk LeRobot | SO-100 dalam LeRobot |
|---|---|---|
| Vektor aksi | 7-D: x, y, z, roll, pitch, yaw, gripper | 6-D: satu posisi tujuan per motor |
| Vektor keadaan | 8-D, dengan slot pad (google_robot menggunakan kuaternion) | 6-D, satu per motor |
| Bingkai | Kartesius, tidak selaras di seluruh dataset | ruang sambungan, kalibrasi per lengan |
| Absolut atau relatif | keduanya, diputuskan oleh lab sumber | posisi tujuan absolut |
| Satuan | dinormalisasi per dataset, lalu didiskretisasi | derajat secara default (use_degrees=True), jika tidak -100 hingga 100 |
| Kegagalan senyap | delta yang dibaca sebagai absolut | lengan yang tidak terkalibrasi |
README openx2lerobot mendokumentasikan status 8-dim terpadu dan aksi 7-dim untuk setiap dataset yang dikonversinya, dari situlah slot pad berasal. Skema RLDS DROID sendiri berbeda: action tingkat atasnya adalah 7-vektor dari 6 kecepatan sendi ditambah 1 posisi gripper, dengan cartesian_position, cartesian_velocity, joint_position, dan joint_velocity di bawah action_dict. openpi membaca tampilan ruang sendi, sedangkan build LeRobot memberikan Anda tampilan Kartesius. Keduanya bukan enam sudut servo absolut.
LeRobot memang menyediakan bagian yang hilang: pengikut SO memiliki prosesor kinematika dengan langkah InverseKinematicsEEToJoints dan ForwardKinematicsJointsToEE. Kuncinya adalah ee.x, ee.y, ee.z ditambah vektor rotasi ee.wx, ee.wy, ee.wz dan ee.gripper_pos, jadi bahkan pengkodean orientasi berbeda dari roll-pitch-yaw dalam file. Langkah IK mengambil orientation_weight, default 0.01, yang docstring-nya menyatakan untuk mengatur 0.0 untuk IK hanya posisi pada lengan yang kurang aktuasi. Anda dapat membangun jembatan, tetapi separuh orientasi dari setiap aksi yang dipinjam tetap diaproksimasi.
3. Laju kontrol
DROID adalah 15 Hz, BridgeData V2 5 Hz, irisan google_robot 3 fps; penulis pi0 menggambarkan bagian open-source dari campuran mereka sebagai kontrol frekuensi rendah antara 2 dan 10 Hz. DatasetRecordConfig LeRobot secara default menggunakan fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. Sebuah yang dilatih pada data 5 Hz belajar bahwa satu aksi mencakup 200 ms. Putar ulang pada 30 Hz dan lengan akan merayap; resampling secara naif akan mengaburkan bingkai saat gripper menutup. Ini juga berinteraksi buruk dengan : sebuah chunk 100 langkah adalah 20 detik pada 5 Hz, 3.3 pada 30 Hz.
4. Kamera
BridgeData V2 mengacak dua pose kamera setiap 50 lintasan, dan halaman proyeknya mencatat bahwa sebagian besar data hanya membawa tampilan tetap. DROID menggunakan dudukan ZED 2 yang dapat disesuaikan ditambah ZED Mini di pergelangan tangan. Anda memiliki dua webcam USB yang diposisikan secara manual. Pose kamera bukanlah variabel pengganggu untuk ; itu adalah sebagian besar dari apa yang menjadi fokus encoder visual, dan tidak ada dalam format file yang memberi tahu Anda bahwa pose-pose tersebut berbeda.
Bagian-bagiannya cukup cocok untuk dijalankan. Dataset dimuat, pelatihan dimulai, loss menurun, checkpoint muncul, tidak ada kesalahan. Kemudian kebijakan tidak melakukan hal yang dapat dikenali pada lengan dan Anda menghabiskan sehari mencari bug di skrip pelatihan Anda. Tidak ada bug: model mempelajari distribusi aksi Kartesian untuk robot yang tidak ada di ruangan Anda. Mulailah dari loss menurun, kebijakan tidak melakukan apa-apa, bukan dari hiperparameter Anda.
Apa yang terjadi jika Anda tetap mencoba menggabungkan data
Rencana yang jelas adalah menggabungkan: beberapa ribu episode DROID ditambah 50 episode Anda. LeRobot menolak, dan penolakan tersebut menyebutkan tiga hal yang berbeda.
- 1Ambil sampel 100 episode, bukan yang penuh 1.7 TB
2 GB cukup untuk melihat strukturnya.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Konversi RLDS ke format LeRobot
openx2lerobot membungkus transformasi standar OXE dan menganotasi jenis robot serta frekuensi kontrol. README menempatkan ini di 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 yang lainnya
Berkas ini menentukan apakah sisa hari Anda akan berjalan lancar.
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'])" - 4Coba penggabungan dan baca kesalahannya
merge memuat setiap dataset, lalu validate_all_metadata memeriksa fps, robot_type, dan fitur terhadap yang pertama dalam daftar, memunculkan kesalahan pada ketidakcocokan 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 referensi berasal dari dataset mana pun yang Anda cantumkan pertama, itulah sebabnya pesan tersebut mengeluh tentang 30 fps Anda daripada 15 fps DROID. Perbaiki fps dan Anda akan menemui pemeriksaan robot_type; perbaiki itu dan Anda akan menemui pemeriksaan fitur, 7 berbanding 6 untuk aksi. Tidak ada urutan yang berhasil, dan penjaga yang sama berjalan pada waktu perekaman melalui sanity_check_dataset_robot_compatibility.
Pada LeRobot main saat ini, so100_follower dan so101_follower keduanya terdaftar pada satu SOFollowerRobotConfig bersama, jadi string dari rekaman nyata belum tentu yang Anda harapkan. Bacalah dari meta/info.json Anda sendiri, dan anggap pemeriksaan yang harus Anda nonaktifkan sebagai pemeriksaan yang memberi tahu Anda sesuatu.
Jadi, apa yang sebenarnya ditransfer?
Bobot, bukan episode. Setiap kebijakan umum modern menyerap sebagian darinya dalam pra-pelatihan, dan ketika Anda dari yang dirilis, Anda mewarisinya sudah direkonsiliasi oleh orang-orang dengan komputasi yang memadai untuk melakukannya dengan benar. Makalah pi0 jujur tentang proporsinya: 9,1 persen dari campuran pra-pelatihannya, dihitung dalam langkah waktu, adalah data sumber terbuka termasuk OXE, Bridge v2, dan DROID. Angka itu milik pi0; campuran setiap vendor berbeda.
- Prior visual dan bahasa: encoder telah melihat ribuan dapur dan cangkir serta tahu apa yang dimaksud dengan "balok merah".
- Prior atas struktur manipulasi: mendekat, menutup, mengangkat, mengangkut, melepaskan, independen-embodimen bahkan ketika angka-angkanya tidak.
- Dataset yang terbukti baik untuk pengujian. Jika pekerjaan Anda tidak dapat melakukan overfitting pada 100 episode DROID, masalahnya adalah pengaturan Anda.
- Titik referensi: pada domain dataset skala kecil, RT-1-X mencapai tingkat keberhasilan rata-rata 50 persen lebih tinggi daripada metode asli atau RT-1, dan RT-2-X mengalahkan RT-2 sekitar 3x pada keterampilan yang muncul.
- Tidak ada supervisi aksi yang dapat digunakan. Target Kartesian 7-D bukanlah perintah sendi 6-D.
- Tidak ada transfer pose kamera, dan tidak ada dalam data yang memberi tahu Anda bahwa pose-pose tersebut berbeda.
- Tidak ada transfer waktu: sumber 3, 5, dan 15 fps dibandingkan perekam 30 fps.
- Tidak ada transfer gripper. Robotiq 2F-85 dan rahang cetak pada STS3215 berbeda dalam gaya, langkah, dan dinamika.
- Skala saja tidak cukup bahkan bagi para penulisnya: dalam domain dataset besar, RT-1-X tidak mengalahkan RT-1 yang dilatih hanya dengan dataset tersebut.
- Tidak ada pengurangan jumlah episode Anda sendiri yang Anda butuhkan.
| Lapisan model | Ditransfer? | Mengapa |
|---|---|---|
| Vision encoder | Ya, sangat | Objek dan adegan bersifat independen-embodimen |
| Language grounding | Ya | Instruksi adalah teks, bukan geometri |
| Cross-modal fusion | Sebagian besar | Memperhatikan objek yang disebutkan dalam prompt |
| Proprioception encoder | Tidak | Dimensi input dan semantik sendi berbeda |
| Action head | Tidak | Dilatih pada ruang Kartesian 7-D yang tidak Anda gunakan |
| Normalisation statistics | Tidak, dan berbahaya | Statistik asing menggeser setiap perintah |
Inilah mengapa SmolVLA berperilaku berbeda pada lengan berbiaya rendah. Makalahnya memilih 481 dataset komunitas dari Hugging Face, disaring berdasarkan jenis perwujudan (embodiment type), jumlah episode, kualitas data, dan cakupan frame: 22.9K episode, 10.6M frame, dievaluasi pada lengan SO-100 dan SO-101 asli. Kecil dan cocok mengalahkan besar dan tidak cocok. Bandingkan pada ACT against SmolVLA.
Tiga jalur yang patut dicoba
Jalur A: fine-tune dari checkpoint yang sudah menyerap data
Kebanyakan orang harus mengambil jalur ini. Anda tidak pernah menyentuh DROID atau Open X-Embodiment: pilih kebijakan yang pretraining-nya sudah menyerap data lintas-embodiment, rekam episode Anda sendiri, lalu fine-tune.
| Kebijakan | Parameter | Episode Min | Format Dataset | Tingkat GPU | Inferensi | Checkpoint Dasar |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 Juta dilatih dalam 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 adalah kasus ekstrem yang jujur: tidak ada model dasar, sehingga tidak ada data publik yang pernah mencapainya. Ini bukan kerugian secara otomatis, karena pada 20 ms per langkah aksi, ini adalah satu-satunya dari lima yang dapat menutup loop cepat, seperti halaman ACT menjelaskan. Pilih berdasarkan tugas menggunakan kelima model dibandingkan, GR00T N1.7 melawan Pi0.5, dan 332 hasil benchmark di 85 model di arena.
Jalur B: gunakan DROID sebagai perlengkapan uji
Sampel 100 episode adalah 2 GB terbaik yang akan Anda unduh bulan ini, dan bukan untuk pelatihan. Ini adalah dataset yang Anda tahu benar. Jalankan konverter, loader, dan pekerjaan GPU singkat Anda di atasnya; apa pun yang gagal adalah bug infrastruktur yang ditemukan saat biayanya murah. NVIDIA melakukan hal yang sama dalam skala besar: kartu GR00T N1.7 mencantumkan empat varian pasca-pelatihan, untuk Bridge dan Fractal di SimplerEnv, DROID, dan LIBERO.
Jalur C: rekam sendiri, dengan sengaja
Tiga puluh hingga lima puluh terdengar kecil dibandingkan 76.000 sampai Anda ingat bahwa milik Anda adalah satu-satunya yang menggunakan lengan, kamera, dan meja Anda. Dengan pengaturan default LeRobot, 50 episode adalah 100 menit waktu nyata. Lihat , dan .

Dua cara untuk beralih dari data publik ke kebijakan yang berfungsi
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.

Berapa biaya setiap jalur
| Jalur | Penyimpanan | Waktu manusia | Biaya GPU | Peluang menggerakkan lengan Anda |
|---|---|---|---|---|
| DROID yang dikonversi saja | 392 GB | hari konversi | 4 to 12 USD | sangat rendah, ruang aksi salah |
| DROID digabungkan dengan episode Anda | keduanya | blocked by validate_all_metadata | n/a | tidak ada, tidak berjalan |
| SmolVLA, 30 hingga 50 episode sendiri | beberapa GB | 100 min recording | 1 to 3 USD | tinggi |
| GR00T N1.7, 50 episode sendiri | beberapa GB | 100 min recording | 4 to 12 USD | tinggi |
| ACT dari awal, 50 episode sendiri | beberapa GB | 100 min recording | 1 to 3 USD | tinggi, inferensi 20 ms |
| Sampel DROID sebagai perlengkapan uji | 2 GB | satu sore | one short run | tinggi, sebagai validasi |
Asimetri adalah intinya: jalur yang meminjam data paling banyak adalah yang paling mahal dan paling kecil kemungkinannya untuk menggerakkan lengan Anda. Kurang dari dua jam teleoperasi Anda mengalahkan terabyte Franka milik orang lain. Belum punya lengan robot? /live menyiarkan SO-100 fisik tanpa perlu mendaftar. Kemudian latih kebijakan pertama Anda, dan SmolVLA di SO-100 untuk panduan spesifik.
Unduh sampel DROID 2 GB dan gunakan untuk membuktikan pipeline Anda. Abaikan 1.7 TB lainnya. Rekam 50 episode dari satu tugas dengan kamera tetap. Lakukan fine-tune SmolVLA terlebih dahulu, karena dengan minimal 30 episode pada kartu 24 GB, ini adalah yang termurah untuk diulang, lalu coba GR00T N1.7 pada data yang sama. Bandingkan pada tugas Anda, bukan pada benchmark.
Rekam dataset yang sudah sesuai dengan lengan robot Anda
Klien desktop menulis dataset format LeRobot langsung dari sesi teleop: lengan yang tepat, frame rate yang tepat, action space yang tepat. Tidak ada konversi RLDS, tidak ada pemetaan ulang.
Dapatkan klien desktopBisakah saya melatih kebijakan pada DROID dan menjalankannya di SO-100 saya?▾
Tidak secara langsung. Dalam build LeRobot, aksi DROID adalah perintah end-effector 7-D pada Franka Panda dengan 15 fps; dalam RLDS mentah, mereka adalah 6 kecepatan sendi ditambah posisi gripper. SO-100 mengambil 6 posisi sendi absolut. Anda akan membutuhkan lapisan kinematika invers, dan bahkan kemudian pergelangan tangan 5-DoF tidak dapat mereproduksi pose 6-DoF arbitrer.
Bisakah saya mencampur episode DROID atau Bridge dengan episode SO-100 saya sendiri?▾
Tidak. validate_all_metadata memerlukan fps, robot_type, dan skema fitur yang identik dan akan memunculkan ValueError pada ketidakcocokan pertama. Ketiganya berbeda: 15 atau 5 fps dibandingkan 30, franka atau widowx dibandingkan lengan Anda, bentuk aksi 7 dibandingkan 6. Menulis ulang metadata untuk melewati pemeriksaan tidak memperbaiki semantik.
Apakah Open X-Embodiment tidak berguna untuk lengan robot berbiaya rendah?▾
Tidak, tetapi nilainya sampai kepada Anda melalui bobot yang telah dilatih sebelumnya, bukan episode. Dataset open-source termasuk OXE, Bridge v2, dan DROID merupakan 9.1 persen dari campuran pra-pelatihan pi0, dan NVIDIA mengirimkan varian GR00T N1.7 yang dilatih pasca-pelatihan pada Bridge, Fractal, DROID, dan LIBERO. Yang tidak dapat Anda lakukan adalah menambahkan episode-episode tersebut ke rekaman Anda sendiri.
Kebijakan mana yang paling diuntungkan dari data cross-embodiment publik?▾
Pi0.5 dan model GR00T membawa pra-pelatihan cross-embodiment paling banyak, tetapi SmolVLA seringkali berperilaku terbaik pada lengan robot berbiaya rendah: set pra-pelatihannya adalah 481 dataset komunitas, 22.9K episode, dan 10.6M frame, dievaluasi pada lengan robot SO-100 dan SO-101 yang sebenarnya. ACT adalah kebalikannya: tidak ada model dasar, 20 ms per langkah aksi.
Berapa banyak episode saya sendiri yang sebenarnya saya butuhkan?▾
30 untuk SmolVLA, 50 untuk GR00T N1.7, GR00T N1.5, Pi0.5, dan ACT. Dengan pengaturan default LeRobot yaitu 60 detik per episode dan 60 detik reset, 50 episode adalah 100 menit waktu nyata. Data cross-embodiment yang dipinjam tidak menurunkan angka-angka tersebut.
Sources
- DROID: Sebuah Dataset Manipulasi Robot Skala Besar di Lingkungan Nyata
- Dokumentasi DROID: ukuran unduhan dan skema episode RLDS
- BridgeData V2: Sebuah Dataset untuk Pembelajaran Robot Skala Besar
- Halaman proyek BridgeData V2: komposisi dan cakupan kamera
- Open X-Embodiment: Dataset Pembelajaran Robotik dan Model RT-X
- Halaman proyek Open X-Embodiment
- google-deepmind/open_x_embodiment: daftar dataset dan checkpoint RT-1-X
- any4lerobot: konverter openx2lerobot dan status 8-D, aksi 7-D terpadunya
- IPEC-COMMUNITY/droid_lerobot: meta/info.json dan ukuran repo
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: irisan google_robot pada 3 fps
- huggingface/lerobot: pengikut SO, prosesor kinematika, konfigurasi agregat dan rekaman
- openpi: input kebijakan DROID dan checkpoint pi05_droid
- pi0: Model Aliran Visi-Bahasa-Aksi untuk Kontrol Robot Umum
- SmolVLA: Model Visi-Bahasa-Aksi untuk Robotika yang Terjangkau dan Efisien
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