AY-Robots нийтийн өгөгдлийн багцын сан нь SO-100 ангиллын гарт бичигдсэн LeRobot өгөгдлийн багцуудыг харуулсан
Өгөгдлийн багцуудOpen X-EmbodimentDROIDSO-100LeRobot

DROID, BridgeData V2 болон Open X-ийг SO-100 дээр ашиглах нь

AY-Robots ResearchAugust 23, 202618 мин унших

DROID, BridgeData V2 болон Open X-Embodiment нь 6 болон 7-DoF гарт зориулсан 7-D төгсгөлийн үйлдэлд хувирдаг. SO-100 нь 6 үений байрлалыг авдаг. Юу шилжих вэ, юу шилжихгүй вэ, оронд нь юу хийх вэ.

Товч хувилбар

  • Гурван LeRobot-ийн бүх хувилбар нэг ерөнхий дүрмийг баримталдаг: 7-D end-effector үйлдэл [x, y, z, roll, pitch, yaw, gripper] болон pad slot-той 8-D төлөв. SO-100 нь зургаан үнэмлэхүй үений байрлалыг авдаг.
  • Тэрхүү 7-D вектор нь хөрвүүлэгчийн бүтээл юм: DROID-ийн өөрийн RLDS үйлдлийн талбар нь 6 joint velocities болон gripper position бөгөөд 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 бөгөөд episodes биш юм. Open-source data нь pi0-ийн pre-training mixture-ийн 9.1 хувийг эзэлдэг.
  • Тэдгээрийн хамгийн хямд бодит хэрэглээ нь test fixture юм: таныг амралтын өдрөөр бичлэг хийхээс өмнө таны pipeline-ийг баталгаажуулах, сайн гэж үзэгдсэн 2 GB, 100-episode DROID sample.

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 биелэл, 60 өгөгдлийн багц, 34 лаборатори
Хэмжээ76k траектори, 350 цаг60,096 траектори1M+ траектори, 527 ур чадвар
Олон янз байдал564 үзэгдэл, 84 даалгавар, 50 цуглуулагч24 орчин, 13 ур чадвар160,266 даалгавар, 21 байгууллага
Бүтэцбүгд алсаас удирддаг50,365 алсаас удирддаг, 9,731 скриптлэгдсэнэх үүсвэр лаборатори тус бүрээр
Удирдлагын хурд15 Hz5 Hzянз бүр, 3 fps ба түүнээс дээш
Камер2 x ZED 2 гадна, 1 x ZED Mini бугуй4 хүртэл, ихэнх ангиудад зөвхөн тогтмол нэг ньлабораторийн ашигласан зүйл
Түүхий таталт1.7 TB RLDS, 8.7 TB түүхий стереоJPEG архивөгөгдлийн багц тус бүрийн 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 Гц давтамжтайгаар үе болон ажлын төгсгөл орон зайд бичигдсэн. Хэлний шошго нь дараа нь tasq.ai-аар дамжуулан, нэг үйл явдал тутамд гурав хүртэлх тоогоор нэмэгдсэн.

  • 76k траектори, 350 цаг, 564 үзэгдэл, 84 даалгавар, гурван тивийн 50 цуглуулагч.
  • Гол үр дүн нь бие даасан сургалт биш, хамтарсан сургалт юм: домэйн доторх үзүүлбэрүүдтэй 50/50 холилдсон багцууд нь дараагийн шилдэг аргыг тархалтад 22 хувийн үнэмлэхүй амжилтаар, түүнээс гадуур 17 хувиар давсан.
  • 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.
  • 2 GB хэмжээтэй, 100 ангит дибаг хийх дээж gs://gresearch/robotics/droid_100 хаягт байрладаг. Тэндээс эхэлнэ үү.

BridgeData V2

Сонирхогчийн тохиргоонд хамгийн ойр: WidowX 250 6-DoF гар, 24 орчин, 13 ур чадварын дагуу 5 Гц давтамжтай 60,096 траектори. Бүтэцд анхаарна уу: 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

Ижил утгатай өгөгдлийн багц биш: 34 лабораторийн 60 роботын өгөгдлийн багцыг нэг RLDS цуглуулгад нэгтгэсэн бөгөөд энэ нь 22 биелэл болон нэг сая гаруй траекторийг хамардаг. BridgeData V2 нь дотор нь bridge_orig хэлбэрээр байрладаг; google_robot хэсэг болох fractal20220817_data нь 3 fps хурдтайгаар 87,212 эпизод болж хувирдаг.

Энэхүү нэгтгэл нь тухайн баримт бичигт шууд дурдсан анхааруулгыг агуулдаг. RT-X туршилтуудын хувьд зохиогчид эх сурвалж бүрийг 7-DoF төгсгөлийн-эффекторын үйлдэл болгон хувиргадаг боловч өгөгдлийн багцуудын хоорондох координатын хүрээг тааруулахгүй бөгөөд үйлдлийн утгыг робот бүрийн анхны хяналтын схемд нийцүүлэн үнэмлэхүй эсвэл харьцангуй байрлал эсвэл хурд байхыг зөвшөөрдөг. Тэдний дүгнэлт: ижил үйлдлийн вектор нь өөр өөр роботуудад маш өөр хөдөлгөөнийг үүсгэж болно.

AY-Robots өгөгдлийн багцын лавлах нь нийтийн LeRobot өгөгдлийн багцуудыг эпизодын тоо болон даалгаврын тайлбартайгаар жагсаасан байна.
Нийтийн өгөгдлийн багцын лавлах /directory хаягт: LeRobot хэлбэрээр байгаа, дэмжигдсэн гартай таарч байгаа өгөгдлийн багцууд.

Үл нийцэл, дөрвөн хэсэгт

Биеллийн үл нийцлийг ихэвчлэн нэг бүдэг асуудал гэж үздэг. Энэ нь дөрвөн төрөл бөгөөд өөр өөрөөр алдаа гардаг, мөн хоёрыг нь скриптээр засах боломжгүй.

1. Эрх чөлөөний зэрэг

SO-100 нь таван гарын үе болон атгагчтай. Мотор гэж тооцвол энэ нь 6-DoF гар бөгөөд SmolVLA-ийн баримт бичигт ингэж нэрлэсэн байдаг; байршлын механизм гэж тооцвол энэ нь 5-DoF бөгөөд LeRobot үүнийг урвуу кинематикийн docstring-дээ ингэж нэрлэсэн байдаг. Уг docstring нь бугуй нь чиглэлийг зөвхөн хэсэгчлэн хянадаг 5-DOF SO-101 дээрх зөөлөн чиглэлийн IK-г тайлбарладаг. 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
Зүүн талд: LeRobot-ийн SO дагагч, src/lerobot/robots/so_follower/so_follower.py файлаас. Баруун талд: openpi-ийн DROID бодлогын оролт. Зургаа наймын эсрэг.

Иймээс бэлэн 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 хүртэл
Чимээгүй алдааабсолют утгаар уншигдсан дельтатохируулагдаагүй гар
7 хэмжээст Картезиан вектор нь хөрвүүлэгчийн конвенц болохоос DROID-ийнх биш

openx2lerobot README нь хөрвүүлдэг өгөгдлийн багц бүрийн хувьд нэгдсэн 8 хэмжээст төлөв болон 7 хэмжээст үйлдлийг баримтжуулдаг бөгөөд pad үүрнээс үүдэлтэй. DROID-ийн өөрийн RLDS схем нь өөр: түүний дээд түвшний action нь 6 үений хурд нэмэх 1 баригчийн байрлал-ын 7 вектор бөгөөд action_dict-ийн доор cartesian_position, cartesian_velocity, joint_position болон joint_velocity байна. 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 нь дутуу хөдөлгөөнтэй гар дээр зөвхөн байрлалын IK хийхэд 0.0-ийг тохируулахыг заасан байдаг. Та гүүрийг барьж болно, гэхдээ зээлсэн үйлдлийн чиглэлийн тал нь үргэлж ойролцоогоор үлдэнэ.

3. Хяналтын хурд

DROID нь 15 Hz, BridgeData V2 5 Hz, google_robot хэсэг нь 3 fps; pi0-ийн зохиогчид өөрсдийн хольцын нээлттэй эхийн хэсгийг 2-оос 10 Гц хоорондох бага давтамжийн хяналт гэж тодорхойлсон. LeRobot-ийн DatasetRecordConfig нь анхдагчаар fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50 байна. , 5 Гц өгөгдөл дээр сургагдсан нь нэг үйлдэл 200 мс-ийг хамардаг болохыг сурсан. Үүнийг 30 Гц-ээр дахин тоглуулахад гар нь мөлхөж, гэнэнээр дахин түүвэрлэхэд баригч хаагдах хүрээг будна. Энэ нь мөн -тэй муугаар харилцан үйлчилдэг: 100 алхамтай хэсэг нь 5 Гц-ээр 20 секунд, 30 Гц-ээр 3.3 секунд байна.

4. Камерууд

BridgeData V2 нь 50 траектори тутамд хоёр камерын байрлалыг санамсаргүй байдлаар сонгосон бөгөөд төслийн хуудаснаас харахад ихэнх өгөгдөл нь зөвхөн тогтмол харагдацыг агуулдаг. DROID нь тохируулгатай ZED 2 бэхэлгээ болон бугуйн ZED Mini-г ашигласан. Та хоёр USB вэбкамерыг нүдээр байрлуулсан. Камерын байрлал нь харааны-хэлний-үйлдлийн загвар; энэ нь харааны кодлогчийн гол анхаарсан зүйлсийн ихэнх нь бөгөөд файлын формат нь байрлалууд өөр байгааг танд хэлэхгүй.

Нэг өдрийг залгидаг урхи

Бүх хэсгүүд ажиллахад хангалттай сайн нийцэж байна. Өгөгдлийн багц ачаалж, сургалт эхэлж, алдагдал буурч, шалгах цэгүүд гарч ирж, ямар ч алдаа гараагүй. Гэтэл бодлого нь гарт ямар ч танигдахуйц зүйл хийхгүй бөгөөд та сургалтын скриптээсээ алдаа хайж нэг өдрийг өнгөрөөнө. Алдаа байхгүй: загвар нь таны өрөөнд байхгүй роботын хувьд Картезийн үйлдлийн тархалтыг сурсан байна. Гиперпараметрүүдээсээ биш, харин алдагдал буурч, бодлого юу ч хийхгүй гэсэн хэсгээс эхэл.

Өгөгдлийг нэгтгэхийг оролдоход юу болох вэ

Илэрхий төлөвлөгөө бол хэдэн мянган DROID анги дээр таны 50-ийг нэмж нэгтгэх явдал юм. LeRobot татгалзаж, татгалзсан шалтгаан нь ялгаатай гурван зүйлийг нэрлэв.

  1. 1
    Бүрэн 1.7 ТБ биш, 100 ангит жишээг татаж авах

    Бүтцийг харахад 2 ГБ хангалттай.

    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 болон онцлогуудыг жагсаалтын эхнийхтэй харьцуулж шалгадаг бөгөөд эхний зөрүү дээр алдаа гаргадаг.

    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.

Лавлах утгууд нь таны эхэнд жагсаасан өгөгдлийн багцаас ирдэг бөгөөд энэ нь DROID-ийн 15-ын оронд таны 30 fps-ийг мессеж гомдоллох шалтгаан юм. fps-ийг засахад та robot_type шалгалтанд тулгарна; үүнийг засахад та үйлдлийн хувьд 6-гийн эсрэг 7-той онцлогийн шалгалтанд тулгарна. Ямар ч дараалал амжилттай болохгүй, мөн ижил хамгаалалт нь sanity_check_dataset_robot_compatibility-ээр дамжуулан бичлэг хийх үед ажилладаг.

Шалгалтыг алгасахын тулд robot_type-ийг хатуу кодлох хэрэггүй

Одоогийн LeRobot-ийн үндсэн хувилбар дээр so100_follower болон so101_follower хоёулаа нэг SOFollowerRobotConfig-д бүртгэгдсэн тул бодит бичлэгээс ирсэн мөр нь таны хүлээж буй мөр биш байж болно. Үүнийг өөрийн meta/info.json файлаас уншиж, таны идэвхгүй болгох шаардлагатай болсон шалгалтыг танд ямар нэгэн зүйл хэлж байсан шалгалт гэж үзээрэй.

Тэгэхээр юу шилждэг вэ?

Эпизод биш, жин. Орчин үеийн ерөнхий зориулалтын бодлого бүр урьдчилсан сургалтад үүний заримыг шингээсэн бөгөөд та гаргасан та үүнийг зөв хийх тооцоололтой хүмүүсээр аль хэдийн зохицуулсан байдлаар өвлөн авдаг. pi0-ийн баримт бичигт урьдчилсан сургалтын хольцын 9.1 хувь нь цагийн алхамаар тооцогддог бөгөөд OXE, Bridge v2, DROID зэрэг нээлттэй эхийн өгөгдөл болохыг илэн далангүй дурдсан байдаг. Энэ тоо нь pi0-ийнх; ханган нийлүүлэгч бүрийн хольц өөр өөр байдаг.

SO-100 төслийн олон нийтийн бие даасан өгөгдөл
Давуу талууд
  • Харааны болон хэлний урьдчилсан мэдлэг: кодлогч нь олон мянган гал тогоо, аяга харсан бөгөөд "улаан блок" гэж юуг хэлж байгааг мэддэг.
  • Удирдлагын бүтцийн урьдчилсан мэдлэг: ойртох, хаах, өргөх, тээвэрлэх, суллах, тоо нь бие даасан биш байсан ч бие даасан байдал.
  • Туршилтад зориулсан сайн мэдээллийн багц. Хэрэв таны ажил 100 DROID эпизодыг хэтрүүлэн тохируулах боломжгүй бол асуудал таны тохиргоонд байна.
  • Лавлах цэгүүд: жижиг хэмжээний өгөгдлийн багц домэйнуудад RT-1-X нь анхны арга эсвэл RT-1-ээс 50 хувиар илүү амжилтын дундаж үзүүлэлтэд хүрсэн бөгөөд RT-2-X нь шинээр гарч ирж буй ур чадваруудаар RT-2-ыг ойролцоогоор 3 дахин давсан.
Сул талууд
  • Ашиглах боломжтой үйлдлийн хяналт байхгүй. 7 хэмжээст Картезийн зорилго нь 6 хэмжээст үений тушаал биш.
  • Камерын байрлал шилжихгүй, мөн өгөгдөл дэх юу ч байрлалууд өөр байгааг хэлэхгүй.
  • Цагийн шилжүүлэг байхгүй: 3, 5, 15 fps эх үүсвэрүүд 30 fps бичигчийн эсрэг.
  • Баригчийн шилжүүлэг байхгүй. Robotiq 2F-85 болон STS3215 дээрх хэвлэсэн эрүү нь хүч, цус харвалт, динамикаараа ялгаатай.
  • Зөвхөн масштаб нь зохиогчдод ч хангалтгүй байсан: том өгөгдлийн багц домэйнуудад RT-1-X нь зөвхөн тэр өгөгдлийн багц дээр сургагдсан RT-1-ийг давж гараагүй.
  • Таны өөрийн хэрэгцээтэй эпизодуудын тоо буурахгүй.
Моделийн давхаргаШилждэг үү?Яагаад?
Харааны кодлогчТийм, хүчтэйОбъект болон үзэгдлүүд нь бие даасан байдаг
Хэлний үндэсТиймЗаавар нь текст, геометр биш
Загвар хоорондын нэгдэлИхэнхдээСануулгад нэрлэгдсэн объектыг анхаардаг
Проприоцепцийн кодлогчҮгүйОролтын хэмжээс болон үений семантик ялгаатай
Үйлдлийн толгойҮгүйТаны байхгүй 7 хэмжээст Картезийн орон зайд сургагдсан
Хэвийн болгох статистикҮгүй, мөн аюултайГадаад статистик нь тушаал бүрийг шилжүүлдэг

Ийм учраас SmolVLA хямд өртөгтэй робот гар дээр өөрөөр ажилладаг. Түүний судалгааны ажил нь Hugging Face-ээс 481 олон нийтийн өгөгдлийн багцыг сонгосон бөгөөд биеийн төрөл, үйл явдлын тоо, өгөгдлийн чанар, фрэймийн хамрах хүрээгээр шүүсэн: 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 мс-ээр энэ нь хурдан давталтыг хаах чадвартай таван загвараас цорын ганц нь юм, үүнийг ACT хуудас тодорхойлсон. Даалгавраар сонгохдоо тавууланг нь харьцуулсан, GR00T N1.7-г Pi0.5-тай харьцуулсан, мөн 85 загварын 332 бенчмарк үр дүнг аренад.

Зам B: DROID-г туршилтын хэрэгсэл болгон ашиглах

100 ангит дээж бол энэ сард таны татаж авах хамгийн шилдэг 2 ГБ бөгөөд сургалтад зориулагдаагүй. Энэ бол зөв гэдгийг та мэдэх өгөгдлийн багц юм. Үүн дээр хөрвүүлэгч, ачаалагч болон богино GPU ажлыг ажиллуул; амжилтгүй болсон аливаа зүйл нь хямд байхад нь олдсон дэд бүтцийн алдаа юм. NVIDIA үүнийг том хэмжээгээр хийдэг: GR00T N1.7 карт нь SimplerEnv-ийн Bridge болон Fractal, DROID болон LIBERO-д зориулсан дөрвөн сургалтын дараах хувилбарыг жагсаасан байна.

Зам C: өөрийнхөөхийг зориудаар бичих

Гучин тавин нь 76,000-ийн хажууд бага сонсогдож байгаа ч таных ганцхан таны гар, камер, ширээтэй гэдгийг санаарай. LeRobot-ийн анхдагч тохиргоогоор 50 эпизод нь 100 минутын бодит хугацаа юм. Үзнэ үү: , болон .

The AY-Robots recording tutorial page showing the steps to capture a LeRobot dataset from a teleoperation session
The recording walkthrough at /learn/record-your-first-dataset: the step public data cannot replace.

Нийтийн өгөгдлөөс ажиллах бодлого руу шилжих хоёр арга

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.

The AY-Robots desktop client download page, the client that records LeRobot-format datasets from a teleoperation session
The desktop client at /download writes LeRobot datasets directly from a teleop session, sidestepping RLDS conversion.

Зам тус бүрийн зардал

ЗамХадгалах санХүний цагGPU зардалГараа хөдөлгөх магадлал
Зөвхөн хөрвүүлсэн DROID392 GBхөрвүүлэлтийн өдрүүд4 to 12 USDмаш бага, буруу үйлдлийн орон зай
Таны ангиудтай нэгтгэсэн DROIDхоёулааblocked by validate_all_metadatan/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 мс дүгнэлт
Туршилтын хэрэгсэл болгон DROID-ийн жишээ2 GBнэг үдээс хойшнэг богино ажиллагааөндөр, баталгаажуулалт болгон

Асимметрийн гол утга нь: хамгийн их өгөгдөл ашигладаг зам нь хамгийн үнэтэй бөгөөд таны гарыг хөдөлгөх магадлал хамгийн бага юм. Өөрийнхөө хоёр цагаас бага хугацааны телеоперац нь бусдын Franka-ийн нэг терабайтыг давна. Одоохондоо гар байхгүй юу? /live нь бүртгэлгүйгээр физик SO-100-г шууд дамжуулдаг. Дараа нь анхны бодлогоо сурга, мөн SO-100 дээрх SmolVLA гэсэн тусгай гарын авлагыг үзнэ үү.

Боломжийн үндсэн төлөвлөгөө

2 ГБ DROID загварыг татаж аваад, өөрийн дамжуулах хоолойгоо батлахад ашиглана уу. Бусад 1.7 ТБ-ыг үл тоомсорло. Тогтмол камертай нэг даалгаврын 50 ангийг бичнэ үү. Эхлээд SmolVLA-г нарийн тааруул, учир нь 24 ГБ карт дээр хамгийн багадаа 30 ангитай байхад давтах нь хамгийн хямд байдаг, дараа нь ижил өгөгдөл дээр GR00T N1.7-г туршиж үзээрэй. Үнэлгээний шалгуур дээр биш, өөрийн даалгавар дээр харьцуул.

Таны гартай аль хэдийн таарсан өгөгдлийн багцыг бичээрэй

Ширээний компьютер клиент нь телеоперацын сессээс шууд LeRobot-форматтай өгөгдлийн багцыг бичдэг: зөв гар, зөв фреймийн хурд, зөв үйлдлийн зай. RLDS хөрвүүлэлт, дахин зураглал хийх шаардлагагүй.

Ширээний компьютерын клиентийг авах
DROID дээр бодлого сургаад, SO-100 дээр ажиллуулж болох уу?

Шууд боломжгүй. LeRobot-ийн бүтцэд DROID-ийн үйлдлүүд нь Franka Panda дээр 15 fps хурдтай 7-D төгсгөлийн эффект командууд байдаг; түүхий 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 зэрэг нээлттэй эхийн өгөгдлийн багцууд нь pi0-ийн урьдчилсан сургалтын хольцын 9.1 хувийг эзэлдэг бөгөөд NVIDIA нь Bridge, Fractal, DROID болон LIBERO дээр сургагдсан GR00T N1.7 хувилбаруудыг нийлүүлдэг. Та эдгээр ангиудыг өөрийн бичлэгт нэмэх боломжгүй.

Олон нийтийн хөндлөн биеийн өгөгдлөөс аль бодлого хамгийн их ашиг хүртдэг вэ?

Pi0.5 болон GR00T загварууд нь хамгийн их хөндлөн биеийн урьдчилсан сургалтыг агуулдаг боловч SmolVLA нь ихэвчлэн хямд өртөгтэй гар дээр хамгийн сайн ажилладаг: түүний урьдчилсан сургалтын багц нь 481 олон нийтийн өгөгдлийн багц, 22.9K анги, 10.6M фрейм бөгөөд бодит SO-100 болон SO-101 гар дээр үнэлэгдсэн. ACT нь эсрэгээрээ: суурь загвар байхгүй, үйлдлийн алхам тутамд 20 мс.

Би өөрийн хэдэн анги хэрэгтэй вэ?

SmolVLA-д 30, GR00T N1.7, GR00T N1.5, Pi0.5 болон ACT-д 50. LeRobot-ийн үндсэн тохиргоо болох анги тутамд 60 секунд, дахин тохируулахад 60 секундээр тооцвол 50 анги нь 100 минутын бодит хугацаа юм. Зээлсэн хөндлөн биеийн өгөгдөл эдгээр тоог бууруулахгүй.

Sources

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started