Директорията с публични набори от данни на AY-Robots, показваща набори от данни на LeRobot, записани на роботизирани ръце от клас SO-100
Набори от данниOpen X-EmbodimentDROIDSO-100LeRobot

Използване на DROID, BridgeData V2 и Open X на SO-100

AY-Robots ResearchAugust 23, 202618 мин четене

DROID, BridgeData V2 и Open X-Embodiment се преобразуват в 7-D действия на крайния ефектор за 6 и 7-степенни роботизирани ръце. SO-100 приема 6 позиции на ставите. Какво се прехвърля, какво не и какво да се направи вместо това.

Накратко

  • Компилациите на LeRobot и на трите споделят една конвенция: 7-D действие на крайния ефектор [x, y, z, roll, pitch, yaw, gripper] и 8-D състояние с pad slot. SO-100 приема шест абсолютни позиции на ставите.
  • Този 7-D вектор е артефакт на конвертора: собственото поле за действие на RLDS на DROID е 6 скорости на ставите плюс позиция на грипера, с Cartesian view в action_dict.
  • Четири такта: DROID 15 fps, BridgeData V2 5 fps, google_robot slice 3 fps, запис на SO-100 при 30 fps.
  • Не можете да ги обедините със собствените си данни. validate_all_metadata се задейства при първото от fps, robot_type или features, което се различава, а и трите се различават.
  • Това, което се прехвърля, са pretrained weights, а не епизоди. Данните с отворен код са 9.1 процента от сместа за предварително обучение на pi0.
  • Най-евтината им реална употреба е като тестово приспособление: доказано добра 2 GB, 100-епизодна DROID извадка, която доказва вашата pipeline, преди да записвате през уикенда.

Има публичен набор от данни с милион траектории в Google Cloud bucket и един SO-100 на бюрото, който струва 110 до 150 EUR за части. Защо първият не може да научи втория? Отчасти може, но почти никакъв трансфер не се случва там, където хората очакват, а частта, която изглежда най-лесна, изобщо не работи.

Следва: какво има в DROID, BridgeData V2 и Open X-Embodiment, където всеки се сблъсква с евтина 5-DoF ръка, и какво да правите вместо това. Всяко число по-долу идва от статията, картата на набора от данни или изходния файл, към който принадлежи.

Какво всъщност съдържат трите набора от данни

DROIDBridgeData V2Open X-Embodiment
РоботFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD rig22 embodiments, 60 datasets, 34 labs
Мащаб76k trajectories, 350 hours60,096 trajectories1M+ trajectories, 527 skills
Разнообразие564 scenes, 84 tasks, 50 collectors24 environments, 13 skills160,266 tasks, 21 institutions
Композициявсички телеоперирани50,365 teleoperated, 9,731 scriptedспоред изходната лаборатория
Честота на управление15 Hz5 Hzварира, от 3 кадъра в секунда нагоре
Камери2 x ZED 2 външни, 1 x ZED Mini на киткатадо 4, повечето епизоди само фиксиранатакаквото е използвала лабораторията
Изтегляне на сурови данни1.7 TB RLDS, 8.7 TB raw stereoJPEG архивиTFDS кофи за всеки набор от данни
Входната точка е конверсията на LeRobot, а не оригиналната кофа

Малко хора все още изтеглят 1.7 TB RLDS TFRecords. Общностната организация IPEC-COMMUNITY е преиздала по-голямата част от Open X-Embodiment във формат LeRobot dataset с AV1 видео, където DROID е 392 GB. Това е версията, с която ще работите, и нейният meta/info.json е това, което трябва да прочетете първо.

DROID

Най-стандартизираният от трите. Една и съща конфигурация навсякъде: Franka Panda с Robotiq 2F-85 грипер, две регулируеми ZED 2 стерео камери и ZED Mini на китката, телеоперирана с контролери Meta Quest 2, записана чрез Polymetis при 15 Hz както в пространството на ставите, така и в пространството на краен ефектор. Езиковите етикети дойдоха по-късно чрез 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 Hz. Обърнете внимание на състава: 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 степени на свобода (DoF), но не подравняват координатни системи между наборите от данни и позволяват стойностите на действията да бъдат абсолютни или относителни позиции или скорости, според оригиналната схема за управление на всеки робот. Тяхното заключение: един и същ векторен екшън може да предизвика много различни движения за различни роботи.

Директорията с набори от данни на AY-Robots, изброяваща публични набори от данни на LeRobot с брой епизоди и описания на задачите
Публичната директория с набори от данни на /directory: набори от данни, вече във формат LeRobot, вече съответстващи на поддържана ръка.

Несъответствието, в четири части

Несъответствието в изпълнението обикновено се третира като един неясен проблем. Всъщност са четири, те се провалят по различен начин и два от тях не могат да бъдат отстранени чрез скриптове.

1. Степени на свобода

SO-100 има пет раменни стави плюс захват. Броейки ги като мотори, това е 6-DoF рамо, и документът SmolVLA го нарича така; броейки го като позициониращ механизъм, то е 5-DoF, и LeRobot го нарича така в своя docstring за обратна кинематика, който описва IK с мека ориентация на 5-DOF SO-101, където китката проследява ориентацията само частично. Franka има седем позициониращи стави. Тази разлика определя кои пози съществуват: 5-DoF рамо обикновено не може да достигне едновременно произволна позиция и ориентация, така че решаващият алгоритъм връща най-близкото възможно, различно движение от демонстрираното. Предистория: степени на свобода.

python
# 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
Ляво: SO последовател на LeRobot, от src/lerobot/robots/so_follower/so_follower.py. Дясно: Вход на DROID политиката на openpi. Шест срещу осем.

Така че готов DROID checkpoint не е пряк път. 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 във формат LeRobotSO-100 в LeRobot
Вектор на действието7-D: x, y, z, roll, pitch, yaw, gripper6-D: една целева позиция на мотор
Вектор на състоянието8-D, със слот за запълване (google_robot използва кватернион)6-D, по един на мотор
Координатна системаДекартова, несъгласувана между наборите от даннипространство на ставите, калибриране за всяка ръка
Абсолютно или относителнокоето и да е, решено от изходната лабораторияабсолютни целеви позиции
Единицинормализирани за всеки набор от данни, след това дискретизираниградуси по подразбиране (use_degrees=True), иначе от -100 до 100
Тиха грешкаделта, прочетена като абсолютна стойностнекалибрирана ръка
7-D декартовият вектор е конвенция на конвертора, а не на DROID

README файлът на openx2lerobot документира унифицирано 8-измерно състояние и 7-измерно действие за всеки набор от данни, който конвертира, откъдето идва и слотът 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-стъпков блок е 20 секунди при 5 Hz, 3.3 при 30 Hz.

4. Камери

BridgeData V2 рандомизира две пози на камерата на всеки 50 траектории, а страницата на проекта отбелязва, че по-голямата част от данните така или иначе съдържат само фиксирания изглед. DROID използва регулируеми стойки ZED 2 плюс ZED Mini на китката. Имате две USB уебкамери, позиционирани на око. Позата на камерата не е променлива, която да създава проблеми за ; тя е голяма част от това, върху което визуалният енкодер се е фокусирал, и нищо във файловия формат не показва, че позите се различават.

Капанът, който изяжда един ден

Частите пасват достатъчно добре, за да работят. Наборът от данни се зарежда, обучението започва, загубата намалява, появяват се контролни точки, няма грешки. След това политиката не прави нищо разпознаваемо на ръката и прекарвате един ден в търсене на грешка във вашия скрипт за обучение. Няма грешка: моделът е научил декартово разпределение на действията за робот, който не съществува във вашата стая. Започнете от загубата намалява, политиката не прави нищо, а не от вашите хиперпараметри.

Какво се случва, когато все пак опитате да обедините данните

Очевидният план е да се конкатенират: няколко хиляди DROID епизода плюс вашите 50. LeRobot отказва, а отказът посочва трите неща, които се различават.

  1. 1
    Изтеглете извадката от 100 епизода, а не пълните 1.7 TB

    2 GB са достатъчни, за да се види структурата.

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    Конвертирайте RLDS във формат LeRobot

    openx2lerobot обвива стандартните трансформации на OXE и анотира типа робот и честотата на управление. README файлът поставя това в convert.sh.

    bash
    git 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. 3
    Прочетете meta/info.json преди всичко друго

    Този файл решава дали останалата част от деня ви ще работи.

    bash
    python -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. 4
    Опитайте сливането и прочетете грешката

    merge зарежда всеки набор от данни, след което validate_all_metadata проверява fps, robot_type и features спрямо първия в списъка, като повдига грешка при първото несъответствие.

    bash
    lerobot-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 fps, а не от 15-те на DROID. Коригирайте fps и ще се сблъскате с проверката за robot_type; коригирайте това и ще се сблъскате с проверката за характеристиките, 7 срещу 6 за действието. Никакво подреждане не минава, а същата защита се изпълнява по време на запис чрез sanity_check_dataset_robot_compatibility.

Не хардкодирайте robot_type, за да заобиколите проверката

В текущия LeRobot main so100_follower и so101_follower са регистрирани към една споделена SOFollowerRobotConfig, така че низът от реален запис не е непременно този, който очаквате. Прочетете го от собствения си meta/info.json и третирайте проверката, която е трябвало да деактивирате, като проверка, която ви е казвала нещо.

И така, какво всъщност се прехвърля?

Тежести, не епизоди. Всяка модерна обща политика е абсорбирала част от това в предварителното обучение и когато от пуснат вие го наследявате, вече съгласувано от хора с изчислителна мощност да го направят правилно. Докладът на pi0 е откровен относно пропорцията: 9.1 процента от неговата смес за предварително обучение, отчетена във времеви стъпки, са данни с отворен код, включително OXE, Bridge v2 и DROID. Тази цифра е на pi0; сместа на всеки доставчик се различава.

Публични данни за междутелесност по проект SO-100
Предимства
  • Визуални и езикови априорни знания: енкодерът е виждал хиляди кухни и чаши и знае какво означава „червеният блок“.
  • Априорно знание за структурата на манипулацията: приближаване, затваряне, повдигане, транспортиране, освобождаване, независимо от въплъщението, дори когато числата не са.
  • Известен добър набор от данни за тестване. Ако вашата задача не може да преобучи 100 DROID епизода, проблемът е във вашата настройка.
  • Референтни точки: в домейни с малки набори от данни RT-1-X достигна 50 процента по-висок среден процент на успех от оригиналния метод или RT-1, а RT-2-X надмина RT-2 с около 3 пъти по отношение на нововъзникващи умения.
Компромиси
  • Без използваемо наблюдение на действията. 7-D декартова цел не е 6-D команда за става.
  • Без прехвърляне на пози на камерата и нищо в данните не показва, че позите се различават.
  • Без прехвърляне на времеви данни: 3, 5 и 15 fps източници срещу 30 fps записващо устройство.
  • Без прехвърляне на захват. Robotiq 2F-85 и отпечатана челюст на STS3215 се различават по сила, ход и динамика.
  • Само мащабът не беше достатъчен дори за неговите автори: в домейните с големи набори от данни RT-1-X не надмина RT-1, обучен само върху този набор от данни.
  • Без намаляване на броя на собствените ви епизоди, от които се нуждаете.
Слой на моделаПрехвърля ли се?Защо
Визуален енкодерДа, силноОбектите и сцените са независими от въплъщението
Езиково заземяванеДаИнструкциите са текст, не геометрия
Кръстосано-модално сливанеПредимноОбръща внимание на обекта, посочен в подканата
Проприоцептивен енкодерНеРазмерността на входа и семантиката на ставите се различават
Глава за действиеНеОбучен върху 7-D декартово пространство, в което не се намирате
Статистика за нормализацияНе, и опасноЧужди статистики изместват всяка команда

Ето защо SmolVLA се държи различно на нискобюджетна ръка. Неговият документ избира 481 общностни набора от данни от Hugging Face, филтрирани по тип на въплъщение, брой епизоди, качество на данните и покритие на кадрите: 22.9K епизода, 10.6M кадъра, оценени на реални SO-100 и SO-101 ръце. Малкото и съвпадащото превъзхожда голямото и несъвпадащото. Сравнете на ACT срещу SmolVLA.

Три пътя, които си струва да поемете

Път А: фина настройка от контролна точка, която вече е усвоила данните

Повечето хора трябва да изберат този. Никога не докосвате DROID или Open X-Embodiment: изберете политика, чието предварително обучение вече е абсорбирало данни за кръстосано въплъщение, запишете собствените си епизоди, направете фина настройка.

ПолитикаПараметриМин. епизодиФормат на набора от данниНиво на GPUИнференцияБазова контролна точка
GR00T N1.7~3 B, ~40 M trained in fine-tuning50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms per stepnvidia/GR00T-N1.7-3B
GR00T N1.5~3 B50LeRobot v2.0 or v2.1A100 or H100 80 GB165 msnvidia/GR00T-N1.5-3B
Pi0.5~3 B, PaliGemma backbone50LeRobot v3.0A100 or H100 80 GB485 mslerobot/pi05_base
SmolVLA~450 M30LeRobot v3.0RTX 4090 or any 24 GB245 mslerobot/smolvla_base
ACT~80 M50LeRobot v3.0RTX 4090 or any 24 GB20 msnone, from scratch

ACT е честният краен случай: няма базов модел, така че нито една от публичните данни никога не достига до него. Това не е автоматично недостатък, тъй като при 20 ms на стъпка на действие е единственият от петте, който може да затвори бърз цикъл, както страницата на ACT описва. Изберете по задача, използвайки сравнението на всички пет, GR00T N1.7 срещу Pi0.5, и 332-та резултата от бенчмаркове за 85 модела в арената.

Път Б: използвайте DROID като тестово приспособление

Примерът от 100 епизода е най-добрите 2 GB, които ще изтеглите този месец, и не е за обучение. Това е набор от данни, за който знаете, че е правилен. Пуснете вашия конвертор, зареждащ модул и кратка GPU задача върху него; всичко, което се провали, е инфраструктурен бъг, открит докато е било евтино. NVIDIA прави същото в голям мащаб: картата GR00T N1.7 изброява четири варианта след обучение, за Bridge и Fractal в SimplerEnv, DROID и LIBERO.

Път C: запишете свои собствени, целенасочено

Тридесет до петдесет звучи малко в сравнение със 76 000, докато не си спомните, че вашите са единствените с вашата ръка, вашите камери и вашата маса. При настройките по подразбиране на LeRobot, 50 епизода са 100 минути реално време. Вижте , и .

Страницата с урока за запис на AY-Robots, показваща стъпките за заснемане на набор от данни на LeRobot от сесия за телеоперация
Ръководството за запис на /learn/record-your-first-dataset: стъпката, която публичните данни не могат да заменят.

Два начина да преминете от публични данни към работеща политика

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.

  1. 1
    Install LeRobot with the extras the scripts need

    The record and train entry points each declare their own extra.

    bash
    pip install 'lerobot[core_scripts]'   # lerobot-record
    pip install 'lerobot[training]'      # lerobot-train
    pip install gsutil tensorflow tensorflow-datasets
  2. 2
    Get a small, known-good slice

    100 DROID episodes, 2 GB.

    bash
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  3. 3
    Convert to LeRobot form

    Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.

    bash
    python openx_rlds.py \
        --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \
        --local-dir ~/lerobot_droid100 \
        --repo-id you/droid100_lerobot \
        --use-videos
  4. 4
    Check 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.

    bash
    python src/lerobot/scripts/convert_dataset_v21_to_v30.py \
        --repo-id=you/droid100_lerobot
  5. 5
    Record your own episodes

    Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.

    bash
    lerobot-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"
  6. 6
    Fine-tune on your data only

    Weights from public data, actions from your own. Do not mix the datasets.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=you/so100_pick_block \
      --policy.device=cuda \
      --batch_size=4 \
      --steps=20000
Where the time actually goes

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.

Страницата за изтегляне на десктоп клиента на AY-Robots, клиентът, който записва набори от данни във формат LeRobot от телеоперационна сесия
Десктоп клиентът на /download записва LeRobot набори от данни директно от телеоперационна сесия, заобикаляйки RLDS конверсията.

Какво струва всеки път

ПътСъхранениеЧовешко времеРазход за GPUШанс да раздвижи ръката ви
Конвертиран DROID самостоятелно392 GBдни за конверсия4 to 12 USDмного нисък, грешно пространство за действия
DROID, обединен с вашите епизодии дветеblocked by validate_all_metadatan/aняма, не се изпълнява
SmolVLA, 30 до 50 собствени епизоданяколко GB100 мин запис1 to 3 USDвисок
GR00T N1.7, 50 собствени епизоданяколко GB100 мин запис4 to 12 USDвисок
ACT от нулата, 50 собствени епизоданяколко GB100 мин запис1 to 3 USDвисок, 20 ms инференция
DROID проба като тестово приспособление2 GBедин следобедедно кратко изпълнениевисок, като валидация

Асиметрията е съществена: пътят, който заема най-много данни, е най-скъп и най-малко вероятно да движи ръката ви. По-малко от два часа ваша собствена телеоперация превъзхожда терабайт чужда Franka. Все още нямате ръка? /live предава физически SO-100 без регистрация. След това обучете първата си политика, и SmolVLA на SO-100 за конкретното ръководство.

Разумен план по подразбиране

Изтеглете 2 GB DROID проба и я използвайте, за да докажете своя пайплайн. Игнорирайте останалите 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-степенна китка не може да възпроизведе произволни 6-степенни пози.

Мога ли да смесвам 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 процента от сместа за предварително обучение на 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 минути реално време. Заимстваните данни за междутелесност не намаляват тези числа.

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started