
DROID, BridgeData V2 та Open X-Embodiment перетворюються на 7-вимірні дії кінцевого ефектора на 6- та 7-ступеневих маніпуляторах. SO-100 приймає 6 позицій суглобів. Що передається, що ні, і що робити замість цього.
Коротка версія
- •Збірки LeRobot усіх трьох мають одну конвенцію: 7-D дію кінцевого ефектора [x, y, z, roll, pitch, yaw, gripper] та 8-D стан з додатковим слотом. SO-100 приймає шість абсолютних позицій суглобів.
- •Цей 7-D вектор є артефактом конвертера: власне поле дії RLDS DROID — це 6 швидкостей суглобів плюс позиція захвату, з декартовим видом у action_dict.
- •Чотири тактові частоти: DROID 15 fps, BridgeData V2 5 fps, зріз google_robot 3 fps, запис SO-100 на 30 fps.
- •Ви не можете об'єднати їх зі своїми даними. validate_all_metadata видає помилку на першому з fps, robot_type або features, що відрізняється, а всі три відрізняються.
- •Передаються попередньо навчені ваги, а не епізоди. Дані з відкритим кодом становлять 9.1 відсотка суміші попереднього навчання pi0.
- •Їх найдешевше реальне використання — це тестовий стенд: відомий справний зразок DROID об'ємом 2 ГБ, 100 епізодів, який перевіряє ваш конвеєр, перш ніж ви записуватимете дані протягом вихідних.
Існує публічний набір даних з мільйоном траєкторій на Google Cloud bucket та SO-100 на столі, який коштував 110-150 EUR за запчастини. Чому перший не може навчити другого? Частково може, але майже жодна передача не відбувається там, де люди очікують, а та частина, що виглядає найпростішою, взагалі не працює.
Далі: що всередині DROID, BridgeData V2 та Open X-Embodiment, де кожен стикається з недорогим 5-ступеневим маніпулятором, і що робити замість цього. Кожне число нижче взято з відповідної статті, картки набору даних або вихідного файлу.
Що насправді містять ці три набори даних
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Робот | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, ~4,000 USD rig | 22 embodiments, 60 datasets, 34 labs |
| Масштаб | 76k trajectories, 350 hours | 60,096 trajectories | 1M+ trajectories, 527 skills |
| Різноманітність | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| Склад | повністю телекерований | 50,365 teleoperated, 9,731 scripted | від кожної вихідної лабораторії |
| Частота керування | 15 Hz | 5 Hz | варіюється, від 3 кадрів/с і вище |
| Камери | 2 x ZED 2 зовнішні, 1 x ZED Mini на зап'ясті | до 4, більшість епізодів лише з фіксованою | будь-які, що використовувалися лабораторією |
| Сире завантаження | 1.7 TB RLDS, 8.7 TB raw stereo | архіви JPEG | TFDS-бакети для кожного набору даних |
Мало хто досі завантажує 1.7 ТБ RLDS TFRecords. Громадська організація IPEC-COMMUNITY перевидала більшу частину Open X-Embodiment у форматі набору даних LeRobot з відео AV1, де DROID займає 392 ГБ. Це версія, з якою ви будете працювати, і її meta/info.json — це те, що потрібно прочитати в першу чергу.
DROID
Найбільш стандартизований з трьох. Одна установка скрізь: Franka Panda з захватом Robotiq 2F-85, дві регульовані стереокамери ZED 2 та ZED Mini на зап'ясті, телекеровані контролерами Meta Quest 2, записані через Polymetis на частоті 15 Гц як у просторі суглобів, так і в просторі кінцевого ефектора . Мовні мітки з'явилися пізніше через tasq.ai, до трьох на епізод.
- 76k траєкторій, 350 годин, 564 сцени, 84 завдання, 50 збирачів на трьох континентах.
- Головний результат — це спільне навчання, а не автономне: пакети, змішані 50/50 з демонстраціями в межах домену, перевершили наступний найкращий метод на 22 відсотки абсолютної успішності в розподілі та на 17 відсотків поза ним.
- IPEC-COMMUNITY/droid_lerobot: 92,233 епізоди, 27,044,326 кадрів, franka, 15 fps, codebase_version v2.0, три потоки AV1 при 180x320, 392 GB.
- Зразок для налагодження об'ємом 2 GB, 100 епізодів, знаходиться за адресою gs://gresearch/robotics/droid_100. Почніть звідти.
BridgeData V2
Найближче до аматорської установки: рука WidowX 250 з 6 ступенями свободи, 60,096 траєкторій у 24 середовищах та 13 навичках при 5 Гц. Зверніть увагу на склад: 50,365 експертних телекерованих демонстрацій плюс 9,731 з рандомізованої скриптованої політики "взяти-і-покласти", тому близько 16 відсотків не є людськими демонстраціями, що має значення для навчання наслідуванням якості. Звичайне завантаження, IPEC-COMMUNITY/bridge_orig_lerobot, повідомляє про 53,192 епізоди та 1,893,026 кадрів при 5 fps, robot_type widowx: менше, ніж 60,096 у статті, тому читайте кількість з meta/info.json, а не цитуйте жодне з них.
Open X-Embodiment
Не набір даних у звичному розумінні: 60 існуючих наборів даних роботів з 34 лабораторій об'єднано в одну колекцію RLDS, що охоплює 22 втілення та понад мільйон траєкторій. BridgeData V2 знаходиться всередині як bridge_orig; фрагмент google_robot, fractal20220817_data, перетворюється на 87 212 епізодів зі швидкістю 3 кадри/с.
Об'єднання має застереження, яке прямо зазначено в статті. Для експериментів RT-X автори перетворюють кожне джерело на дію кінцевого ефектора з 7 ступенями свободи, але не вирівнюють системи координат між наборами даних і дозволяють значенням дій бути абсолютними або відносними позиціями чи швидкостями, відповідно до оригінальної схеми керування кожного робота. Їхній висновок: один і той же вектор дії може викликати дуже різні рухи для різних роботів.

Невідповідність, у чотирьох частинах
Невідповідність фізичного втілення зазвичай розглядається як одна розпливчаста проблема. Їх чотири, вони відрізняються за характером збоїв, і дві з них не можна виправити за допомогою скриптів.
1. Ступені свободи
SO-100 має п'ять суглобів руки плюс захват. Якщо рахувати як мотори, це 6-DoF рука, і стаття SmolVLA називає її так; якщо рахувати як механізм позиціонування, це 5-DoF, і LeRobot називає її так у своєму docstring для зворотної кінематики, який описує IK з м'якою орієнтацією для 5-DOF SO-101, де зап'ястя відстежує орієнтацію лише частково. Franka має сім позиційних суглобів. Цей розрив визначає, які пози існують: 5-DoF рука, як правило, не може одночасно досягти довільної позиції та орієнтації, тому розв'язувач повертає найближчу можливу, що є іншим рухом від продемонстрованого. Довідково: .
# 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-DОтже, готовий контрольний пункт DROID не є швидким рішенням. Physical Intelligence постачає pi05_droid за адресою gs://openpi-assets/checkpoints/pi05_droid, і той самий README, який вихваляє його широту, попереджає, що ці експертні контрольні пункти можуть не узагальнюватися до вашої конфігурації. Його стан — це вісім чисел суглобів Franka, а його ключі зображень — exterior_image_1_left та wrist_image_left. Жоден прапор не перетворює це на команду для шестимоторного SO-100.
2. Що насправді говорить вектор дії
Глибше, ніж розмірність. У перетвореннях LeRobot всі три вказують, куди має рухатися захват, у декартовому просторі. SO-100 вказує, куди мають рухатися шість сервоприводів. Перетворення потребує кінематичної моделі та розв'язувача, а не зміни форми.
| Властивість | OXE, DROID та Bridge у формі LeRobot | SO-100 у LeRobot |
|---|---|---|
| Вектор дії | 7-D: x, y, z, крен, тангаж, рискання, захват | 6-D: одна цільова позиція на двигун |
| Вектор стану | 8-D, з додатковим слотом (google_robot використовує кватерніон) | 6-D, один на двигун |
| Система координат | Декартова, не вирівняна між наборами даних | простір суглобів, калібрування для кожної руки |
| Абсолютний чи відносний | будь-який, визначається вихідною лабораторією | абсолютні цільові позиції |
| Одиниці | нормалізовані для кожного набору даних, потім дискретизовані | градуси за замовчуванням (use_degrees=True), інакше від -100 до 100 |
| Прихований збій | дельта, прочитана як абсолютне значення | некалібрована рука |
Файл openx2lerobot README документує уніфікований 8-dim стан та 7-dim дію для кожного набору даних, який він конвертує, звідки й походить слот pad. Власна схема RLDS DROID'а відрізняється: її верхньорівнева action — це 7-вектор з 6 швидкостей суглобів плюс 1 позиція захвату, з cartesian_position, cartesian_velocity, joint_position та joint_velocity під action_dict. openpi зчитує представлення в просторі суглобів, збірка LeRobot надає вам декартове. Жодне з них не є шістьма абсолютними кутами сервоприводів.
LeRobot дійсно постачає відсутню частину: SO follower має кінематичний процесор з кроками InverseKinematicsEEToJoints та ForwardKinematicsJointsToEE. Його ключі — це ee.x, ee.y, ee.z плюс вектор обертання ee.wx, ee.wy, ee.wz та ee.gripper_pos, тому навіть кодування орієнтації відрізняється від roll-pitch-yaw у файлах. Крок IK приймає orientation_weight, за замовчуванням 0.01, чий docstring вказує встановити 0.0 для IK лише за позицією на недоактуйованих руках. Ви можете побудувати міст, але орієнтаційна половина кожної запозиченої дії залишається апроксимованою.
3. Частота керування
DROID працює на 15 Hz, BridgeData V2 на 5 Hz, зріз google_robot на 3 fps; автори pi0 описують відкриту частину своєї суміші як низькочастотне керування між 2 та 10 Hz. DatasetRecordConfig LeRobot за замовчуванням встановлює fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. навчена на даних 5 Hz, дізналася, що одна дія охоплює 200 ms. Відтворення її на 30 Hz призводить до повільного руху руки; наївна передискретизація розмазує кадр, де захват закривається. Це також погано взаємодіє з : 100-step chunk становить 20 seconds при 5 Hz, 3.3 при 30 Hz.
4. Камери
BridgeData V2 рандомізував дві пози камери кожні 50 траєкторій, і на сторінці його проєкту зазначено, що більшість даних все одно містить лише фіксований вигляд. DROID використовував регульовані кріплення ZED 2 плюс зап'ястний ZED Mini. У вас є дві USB веб-камери, розташовані на око. Поза камери не є змінною, що заважає, для ; це значною мірою те, на що орієнтувався візуальний кодер, і ніщо у форматі файлу не вказує на те, що пози відрізняються.
Елементи достатньо добре поєднуються, щоб працювати. Набір даних завантажується, починається навчання, втрати зменшуються, з'являються контрольні точки, помилок немає. Потім політика не робить нічого розпізнаваного на руці, і ви витрачаєте день на пошук помилки у своєму скрипті навчання. Помилки немає: модель вивчила декартовий розподіл дій для робота, якого не існує у вашій кімнаті. Почніть з втрати зменшуються, політика нічого не робить, а не з ваших гіперпараметрів.
Що відбувається, коли ви все одно намагаєтеся об'єднати дані
Очевидний план — об'єднати: кілька тисяч епізодів DROID плюс ваші 50. LeRobot відмовляє, і в відмові названо три речі, які відрізняються.
- 1Завантажте 100-епізодний зразок, а не повні 1.7 ТБ
2 ГБ достатньо, щоб побачити структуру.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Перетворіть RLDS у формат LeRobot
openx2lerobot обгортає стандартні перетворення OXE та анотує тип робота і частоту керування. README розміщує це в 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 - 3Прочитайте meta/info.json перш за все
Цей файл вирішує, чи працюватиме решта вашого дня.
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'])" - 4Спробуйте об'єднання та прочитайте помилку
merge завантажує кожен набір даних, потім validate_all_metadata перевіряє fps, robot_type та features порівняно з першим у списку, викликаючи помилку при першій невідповідності.
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.
Еталонні значення походять з того набору даних, який ви вказали першим, тому повідомлення скаржиться на ваші 30 кадрів в секунду, а не на 15 кадрів DROID. Виправте fps, і ви натрапите на перевірку robot_type; виправте це, і ви натрапите на перевірку ознак, 7 проти 6 для дії. Жодне впорядкування не проходить, і той самий захист працює під час запису через sanity_check_dataset_robot_compatibility.
У поточній основній версії LeRobot so100_follower і so101_follower обидва зареєстровані на одному спільному SOFollowerRobotConfig, тому рядок з реального запису не обов'язково є тим, що ви очікуєте. Прочитайте його зі свого власного meta/info.json і розглядайте перевірку, яку вам довелося вимкнути, як перевірку, яка щось вам повідомляла.
Що ж насправді передається?
Ваги, а не епізоди. Кожна сучасна універсальна політика поглинула частину цього під час попереднього навчання, і коли ви її з випущеної ви успадковуєте її вже узгодженою людьми, які мають обчислювальні потужності для належного виконання. У статті pi0 відверто йдеться про пропорцію: 9,1 відсотка її суміші для попереднього навчання, підрахованої в кроках часу, становить дані з відкритим кодом, включаючи OXE, Bridge v2 та DROID. Ця цифра належить pi0; суміш кожного постачальника відрізняється.
- Візуальні та мовні апріорні знання: кодувальник бачив тисячі кухонь і чашок і знає, що означає «червоний блок».
- Апріорні знання про структуру маніпуляції: наближення, закриття, підняття, транспортування, відпускання, незалежні від втілення, навіть якщо числа не є такими.
- Відомий хороший набір даних для тестування. Якщо ваша задача не може перенавчитися на 100 епізодах DROID, проблема у вашій конфігурації.
- Опорні точки: у доменах з невеликими наборами даних RT-1-X досяг на 50 відсотків вищого середнього показника успіху, ніж оригінальний метод або RT-1, а RT-2-X перевершив RT-2 приблизно в 3 рази за новими навичками.
- Немає придатного для використання нагляду за діями. 7-вимірна декартова ціль не є 6-вимірною командою для суглобів.
- Немає передачі пози камери, і ніщо в даних не вказує на те, що пози відрізняються.
- Немає передачі часу: джерела 3, 5 і 15 кадрів/с проти записувача 30 кадрів/с.
- Немає передачі захоплювача. Robotiq 2F-85 і надрукована щелепа на STS3215 відрізняються за силою, ходом і динамікою.
- Самого масштабу було недостатньо навіть для його авторів: у доменах з великими наборами даних RT-1-X не перевершив RT-1, навчений лише на цьому наборі даних.
- Немає зменшення кількості власних епізодів, які вам потрібні.
| Рівень моделі | Передається? | Чому |
|---|---|---|
| Візуальний кодувальник | Так, сильно | Об'єкти та сцени не залежать від втілення |
| Мовне заземлення | Так | Інструкції — це текст, а не геометрія |
| Кросмодальне злиття | Переважно | Звертає увагу на об'єкт, названий у підказці |
| Пропріоцептивний кодувальник | Ні | Розмірність входу та семантика суглобів відрізняються |
| Голова дії | Ні | Навчена на 7-вимірному декартовому просторі, в якому ви не перебуваєте |
| Статистика нормалізації | Ні, і небезпечно | Чужі статистичні дані змінюють кожну команду |
Ось чому SmolVLA поводиться інакше на недорогому маніпуляторі. Його стаття відбирає 481 набір даних спільноти з Hugging Face, відфільтрованих за типом втілення, кількістю епізодів, якістю даних та покриттям кадрів: 22.9K епізодів, 10.6M кадрів, оцінених на реальних маніпуляторах SO-100 та SO-101. Мале та відповідне перевершує велике та невідповідне. Порівняйте ACT проти SmolVLA.
Три шляхи, які варто розглянути
Шлях A: доналаштування з контрольної точки, яка вже «з'їла» дані
Більшість людей повинні обрати цей шлях. Ви ніколи не торкаєтеся DROID або Open X-Embodiment: оберіть політику, попереднє навчання якої вже поглинуло дані з різних втілень, запишіть власні епізоди, доналаштуйте.
| Політика | Параметри | Мін. епізодів | Формат набору даних | Рівень GPU | Висновок | Базовий контрольний пункт |
|---|---|---|---|---|---|---|
| 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 — це чесний граничний випадок: немає базової моделі, тому жодні публічні дані ніколи не досягають її. Це не є автоматично недоліком, оскільки при 20 мс на крок дії це єдина з п'яти моделей, яка може закрити швидкий цикл, як сторінка ACT зазначає. Обирайте за завданням, використовуючи усі п'ять порівняних, GR00T N1.7 проти Pi0.5, а також 332 результати бенчмарків для 85 моделей у арені.
Шлях B: використовуйте DROID як тестовий пристрій
Зразок зі 100 епізодів — це найкращі 2 ГБ, які ви завантажите цього місяця, і не для навчання. Це набір даних, який, як ви знаєте, є правильним. Запустіть на ньому свій конвертер, завантажувач і коротке завдання GPU; будь-яка несправність — це помилка інфраструктури, виявлена, поки це було дешево. NVIDIA робить те саме у великих масштабах: карта GR00T N1.7 містить чотири варіанти після навчання, для Bridge та Fractal у SimplerEnv, DROID та LIBERO.
Шлях C: запишіть власні, цілеспрямовано
Від тридцяти до п'ятдесяти звучить мало поруч із 76 000, доки ви не згадаєте, що ваші — єдині з вашою рукою, вашими камерами та вашим столом. За замовчуванням LeRobot, 50 епізодів — це 100 хвилин реального часу. Дивіться , та .

Два способи перейти від публічних даних до робочої політики
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.

Вартість кожного шляху
| Шлях | Сховище | Час людини | Вартість GPU | Ймовірність, що він рухатиме вашу руку |
|---|---|---|---|---|
| Конвертований DROID окремо | 392 GB | днів конвертації | 4 to 12 USD | дуже низька, неправильний простір дій |
| DROID, об'єднаний з вашими епізодами | both | заблоковано через validate_all_metadata | n/a | немає, він не запускається |
| SmolVLA, 30-50 власних епізодів | кілька ГБ | 100 хв запису | 1 to 3 USD | висока |
| GR00T N1.7, 50 власних епізодів | кілька ГБ | 100 хв запису | 4 to 12 USD | висока |
| ACT з нуля, 50 власних епізодів | кілька ГБ | 100 хв запису | 1 to 3 USD | висока, 20 ms інференсу |
| Зразок DROID як тестовий пристрій | 2 GB | один день | one short run | висока, як валідація |
Асиметрія є ключовим моментом: шлях, який запозичує найбільше даних, є найдорожчим і найменш імовірним для руху вашої руки. Менш ніж дві години вашої власної телеоперації перевершують терабайт чужої Franka. Ще немає маніпулятора? /live транслює фізичний SO-100 без реєстрації. Потім навчіть свою першу політику, і SmolVLA на SO-100 для конкретного посібника.
Завантажте зразок DROID розміром 2 GB і використовуйте його для перевірки вашого конвеєра. Ігноруйте інші 1.7 TB. Запишіть 50 епізодів одного завдання з фіксованими камерами. Спочатку доналаштуйте SmolVLA, оскільки при мінімум 30 епізодах на карті 24 GB це найдешевший варіант для ітерацій, потім спробуйте GR00T N1.7 на тих самих даних. Порівнюйте на своєму завданні, а не на бенчмарку.
Записуйте набори даних, які вже відповідають вашому маніпулятору
Настільний клієнт записує набори даних у форматі LeRobot безпосередньо з сесії телеоперації: правильний маніпулятор, правильна частота кадрів, правильний простір дій. Без конвертації RLDS, без перепризначення.
Отримати настільний клієнтЧи можу я навчити політику на DROID і запустити її на своєму SO-100?▾
Не безпосередньо. У збірці LeRobot дії DROID — це 7-D команди кінцевого ефектора для Franka Panda з частотою 15 fps; у сирому RLDS це 6 швидкостей суглобів плюс позиція захвату. SO-100 приймає 6 абсолютних позицій суглобів. Вам знадобився б шар зворотної кінематики, і навіть тоді 5-DoF зап'ястя не зможе відтворити довільні 6-DoF пози.
Чи можу я змішувати епізоди DROID або Bridge зі своїми власними епізодами SO-100?▾
Ні. validate_all_metadata вимагає ідентичних fps, robot_type та feature schema і викликає ValueError при першій невідповідності. Всі три відрізняються: 15 або 5 fps проти 30, franka або widowx проти вашого маніпулятора, форми дій 7 проти 6. Перезапис метаданих для проходження перевірки не виправляє семантику.
Чи є Open X-Embodiment марним для недорогого маніпулятора?▾
Ні, але його цінність досягає вас через попередньо навчені ваги, а не епізоди. Набори даних з відкритим вихідним кодом, включаючи OXE, Bridge v2 та DROID, становлять 9.1 percent суміші попереднього навчання pi0, а NVIDIA постачає варіанти GR00T N1.7, донавчені на Bridge, Fractal, DROID та LIBERO. Чого ви не можете зробити, так це додати ці епізоди до власного запису.
Яка політика найбільше виграє від публічних даних крос-тілесності?▾
Pi0.5 та моделі GR00T мають найбільше попереднього навчання крос-тілесності, але SmolVLA часто поводиться найкраще на недорогому маніпуляторі: його набір для попереднього навчання складається з 481 громадського набору даних, 22.9K епізодів та 10.6M кадрів, оцінених на реальних маніпуляторах SO-100 та SO-101. ACT є протилежністю: без базової моделі, 20 ms на крок дії.
Скільки власних епізодів мені насправді потрібно?▾
30 для SmolVLA, 50 для GR00T N1.7, GR00T N1.5, Pi0.5 та ACT. За стандартних налаштувань LeRobot 60 s на епізод та 60 s скидання, 50 епізодів — це 100 minutes реального часу. Запозичені дані крос-тілесності не зменшують ці числа.
Sources
- DROID: Масштабний набір даних для маніпуляцій роботами в реальних умовах
- Документація DROID: розміри завантажень та схема епізодів RLDS
- BridgeData V2: Набір даних для масштабного навчання роботів
- Сторінка проєкту BridgeData V2: склад та охоплення камерами
- Open X-Embodiment: Набори даних для навчання роботів та моделі RT-X
- Сторінка проєкту Open X-Embodiment
- google-deepmind/open_x_embodiment: список наборів даних та контрольні точки RT-1-X
- any4lerobot: конвертер openx2lerobot та його уніфікований 8-D стан, 7-D дія
- IPEC-COMMUNITY/droid_lerobot: meta/info.json та розмір репозиторію
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: фрагмент google_robot зі швидкістю 3 кадри/с
- huggingface/lerobot: послідовник SO, кінематичний процесор, конфігурації агрегації та запису
- openpi: вхідні дані політики DROID та контрольна точка pi05_droid
- pi0: Модель потоку зір-мова-дія для загального керування роботами
- SmolVLA: Модель зір-мова-дія для доступної та ефективної робототехніки
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