دليل مجموعات البيانات العامة لـ 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 إلى إجراءات طرفية 7D على أذرع ذات 6 و 7 درجات حرية. يأخذ SO-100 ستة أوضاع للمفاصل. ما الذي ينتقل، وما الذي لا ينتقل، وماذا نفعل بدلاً من ذلك.

النسخة المختصرة

  • تتشارك إصدارات LeRobot الثلاثة في اصطلاح واحد: حركة طرفية 7 أبعاد [x, y, z, roll, pitch, yaw, gripper] وحالة 8 أبعاد مع فتحة حشو. يأخذ SO-100 ستة مواضع مفصلية مطلقة.
  • هذا المتجه ذو الأبعاد السبعة هو نتاج المحول: حقل حركة RLDS الخاص بـ DROID هو 6 سرعات مفصلية بالإضافة إلى موضع القابض، مع العرض الديكارتي في action_dict.
  • أربع ساعات: DROID 15 إطارًا في الثانية، BridgeData V2 5 إطارات في الثانية، شريحة google_robot 3 إطارات في الثانية، تسجيل SO-100 بسرعة 30 إطارًا في الثانية.
  • لا يمكنك دمجها مع بياناتك الخاصة. تثير validate_all_metadata خطأ عند أول اختلاف في fps أو robot_type أو features، وجميع الثلاثة تختلف.
  • ما يتم نقله هو الأوزان المدربة مسبقًا، وليس الحلقات. البيانات مفتوحة المصدر تمثل 9.1 بالمائة من مزيج التدريب المسبق لـ pi0.
  • أرخص استخدام حقيقي لها هو أداة اختبار: عينة DROID جيدة ومعروفة بحجم 2 جيجابايت و100 حلقة تثبت كفاءة خط أنابيبك قبل التسجيل لعطلة نهاية الأسبوع.

توجد مجموعة بيانات عامة بمليون مسار على سلة Google Cloud وSO-100 على المكتب بتكلفة 110 إلى 150 يورو في الأجزاء. لماذا لا يمكن للأول أن يعلم الثاني؟ يمكنه جزئيًا، ولكن لا يحدث أي نقل تقريبًا حيث يتوقع الناس، والجزء الذي يبدو الأسهل لا يعمل على الإطلاق.

ما يلي: ما هو داخل DROID، BridgeData V2 وOpen X-Embodiment، حيث يتصادم كل منها مع ذراع 5 درجات حرية منخفضة التكلفة، وما يجب فعله بدلاً من ذلك. كل رقم أدناه جاء من الورقة البحثية أو بطاقة مجموعة البيانات أو ملف المصدر الذي ينتمي إليه.

ما تحتويه مجموعات البيانات الثلاث بالفعل

DROIDBridgeData V2Open X-Embodiment
الروبوتFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, منصة بحوالي 4,000 دولار أمريكي22 تجسيدًا، 60 مجموعة بيانات، 34 مختبرًا
النطاق76 ألف مسار، 350 ساعة60,096 مسارًاأكثر من مليون مسار، 527 مهارة
التنوع564 مشهدًا، 84 مهمة، 50 جامع بيانات24 بيئة، 13 مهارة160,266 مهمة، 21 مؤسسة
التركيبجميعها تعمل عن بعد50,365 تعمل عن بعد، 9,731 مبرمجةحسب المختبر المصدر
معدل التحكم15 Hz5 Hzيختلف، 3 إطارات في الثانية فما فوق
الكاميرات2 x ZED 2 خارجية، 1 x ZED Mini للمعصمحتى 4، معظم الحلقات تستخدم الكاميرا الثابتة فقطحسب ما استخدمه المختبر
التحميل الخام1.7 TB RLDS، 8.7 TB ستريو خامأرشيفات JPEGحاويات TFDS لكل مجموعة بيانات
نقطة الدخول هي تحويل LeRobot، وليس الحاوية الأصلية

قليل من الناس لا يزالون يقومون بتنزيل 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 Hz في كل من مساحة المفصل و المؤثر النهائي مساحة. جاءت تسميات اللغة لاحقًا عبر tasq.ai، بحد أقصى ثلاثة لكل حلقة.

  • 76 ألف مسار، 350 ساعة، 564 مشهدًا، 84 مهمة، 50 جامع بيانات في ثلاث قارات.
  • النتيجة الرئيسية هي التدريب المشترك، وليس التدريب المستقل: الدفعات المختلطة بنسبة 50/50 مع العروض التوضيحية داخل النطاق تتفوق على أفضل طريقة تالية بنسبة 22 بالمائة نجاحًا مطلقًا في التوزيع، و17 بالمائة خارجه.
  • IPEC-COMMUNITY/droid_lerobot: 92,233 حلقة، 27,044,326 إطارًا، franka، 15 إطارًا في الثانية، codebase_version v2.0، ثلاثة تدفقات AV1 بدقة 180x320، 392 جيجابايت.
  • عينة تصحيح أخطاء بحجم 2 جيجابايت و100 حلقة موجودة على gs://gresearch/robotics/droid_100. ابدأ من هناك.

BridgeData V2

الأقرب إلى إعداد هواة: ذراع WidowX 250 بست درجات حرية، 60,096 مسارًا عبر 24 بيئة و13 مهارة بتردد 5 هرتز. لاحظ التركيب: 50,365 عرضًا توضيحيًا خبيرًا يتم التحكم فيه عن بعد بالإضافة إلى 9,731 من سياسة اختيار ووضع عشوائية مبرمجة، لذا حوالي 16 بالمائة ليس عرضًا توضيحيًا بشريًا، وهو أمر مهم لجودة التعلم بالمحاكاة جودة. التنزيل المعتاد، IPEC-COMMUNITY/bridge_orig_lerobot، يبلغ عن 53,192 حلقة و1,893,026 إطارًا بمعدل 5 إطارات في الثانية، 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 درجات حرية (7-DoF)، لكنهم لا يقومون بمحاذاة إطارات الإحداثيات عبر مجموعات البيانات، ويسمحون لقيم الحركة بأن تكون مواضع أو سرعات مطلقة أو نسبية، وفقًا لنظام التحكم الأصلي لكل روبوت. استنتاجهم: قد يؤدي نفس متجه الحركة إلى حركات مختلفة جدًا لروبوتات مختلفة.

قائمة دليل مجموعات بيانات AY-Robots لمجموعات بيانات LeRobot العامة مع عدد الحلقات وأوصاف المهام
دليل مجموعات البيانات العامة في /directory: مجموعات بيانات بصيغة LeRobot بالفعل، وتطابق ذراعًا مدعومًا بالفعل.

عدم التطابق، في أربعة أجزاء

عادة ما يُعامل عدم تطابق التجسيد كمشكلة غامضة واحدة. لكنها أربع مشاكل، تفشل كل منها بطريقة مختلفة، واثنتان منها لا يمكن إصلاحهما بالبرمجة النصية.

1. درجات الحرية

يحتوي SO-100 على خمسة مفاصل ذراع بالإضافة إلى قابض. إذا تم عدها كمحركات، فهي ذراع ذات 6 درجات حرية، وورقة SmolVLA تسميها كذلك؛ وإذا تم عدها كآلية تحديد موضع، فهي ذات 5 درجات حرية، وLeRobot تسميها كذلك في وثيقة التوثيق الخاصة بها للحركية العكسية، والتي تصف الحركية العكسية ذات التوجيه المرن (soft-orientation IK) على SO-101 ذي 5 درجات حرية حيث يتتبع المعصم التوجيه جزئيًا فقط. يحتوي Franka على سبعة مفاصل تحديد موضع. تحدد هذه الفجوة الأوضاع الممكنة: لا تستطيع الذراع ذات 5 درجات حرية عمومًا الوصول إلى موضع وتوجيه عشوائيين في آن واحد، لذا يعيد المُحلل أقرب ما يمكنه الوصول إليه، وهي حركة مختلفة عن تلك التي تم عرضها. خلفية: درجات الحرية.

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 الجاهزة ليست اختصارًا. تشحن 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
فشل صامتقراءة دلتا كقيمة مطلقةذراع غير معاير
المتجه الديكارتي سباعي الأبعاد هو اصطلاح المحول، وليس اصطلاح DROID

يوثق ملف README الخاص بـ openx2lerobot حالة موحدة بثمانية أبعاد وإجراء بسبعة أبعاد لكل مجموعة بيانات يقوم بتحويلها، وهذا هو مصدر خانة pad. يختلف مخطط RLDS الخاص بـ DROID: فـ action على المستوى الأعلى هو متجه سباعي يتكون من 6 سرعات للمفاصل بالإضافة إلى موضع واحد للمقبض، مع وجود cartesian_position وcartesian_velocity وjoint_position وjoint_velocity تحت action_dict. يقرأ openpi عرض مساحة المفصل، بينما يقدم لك بناء LeRobot العرض الديكارتي. لا يمثل أي منهما ست زوايا سيرفو مطلقة.

يقدم LeRobot القطعة المفقودة: يحتوي تابع SO على معالج حركيات بخطوات InverseKinematicsEEToJoints و ForwardKinematicsJointsToEE. مفاتيحه هي ee.x و ee.y و ee.z بالإضافة إلى متجه دوران ee.wx و ee.wy و ee.wz و ee.gripper_pos، لذا حتى ترميز الاتجاه يختلف عن زوايا الانحدار والانعراج والدوران الموجودة في الملفات. تتطلب خطوة IK وزنًا للاتجاه (orientation_weight)، الافتراضي 0.01، ويشير وصفها إلى تعيينه على 0.0 لـ IK المعتمد على الموضع فقط للأذرع ذات التشغيل الناقص. يمكنك بناء الجسر، لكن النصف المتعلق بالاتجاه من كل إجراء مستعار يبقى تقريبيًا.

3. معدل التحكم

يعمل DROID بمعدل 15 هرتز، و BridgeData V2 بمعدل 5 هرتز، وشريحة google_robot بمعدل 3 إطارات في الثانية؛ يصف مؤلفو pi0 الجزء مفتوح المصدر من مزيجهم بأنه تحكم منخفض التردد يتراوح بين 2 و 10 هرتز. إعدادات DatasetRecordConfig الافتراضية لـ LeRobot هي 30 إطارًا في الثانية، و episode_time_s 60، و reset_time_s 60، و num_episodes 50. ، المدربة على بيانات 5 هرتز، تعلمت أن إجراءً واحدًا يغطي 200 مللي ثانية. عند إعادة تشغيله بمعدل 30 هرتز، تزحف الذراع؛ وإعادة أخذ العينات بشكل ساذج يؤدي إلى تشويه الإطار الذي يغلق فيه المقبض. كما يتفاعل بشكل سيء مع : قطعة مكونة من 100 خطوة تستغرق 20 ثانية عند 5 هرتز، و 3.3 ثانية عند 30 هرتز.

4. الكاميرات

BridgeData V2 عشوائية وضعيتي كاميرا كل 50 مسارًا، وتشير صفحة المشروع الخاصة به إلى أن معظم البيانات تحمل فقط المنظر الثابت على أي حال. استخدم DROID حوامل ZED 2 قابلة للتعديل بالإضافة إلى ZED Mini للمعصم. لديك كاميرتا ويب USB موضوعتان بالعين. وضع الكاميرا ليس متغيرًا مزعجًا لـ ؛ بل هو جزء كبير مما ركز عليه المشفر البصري، ولا يوجد شيء في تنسيق الملف يخبرك أن الأوضاع تختلف.

الفخ الذي يلتهم يومًا

تتلاءم الأجزاء معًا بشكل جيد بما يكفي للتشغيل. يتم تحميل مجموعة البيانات، ويبدأ التدريب، وينخفض ​​الخسارة، وتظهر نقاط الحفظ، ولا توجد أخطاء. ثم لا تقوم السياسة بأي شيء يمكن التعرف عليه على الذراع وتقضي يومًا في البحث عن خطأ في نص التدريب الخاص بك. لا يوجد خطأ: لقد تعلم النموذج توزيع حركة ديكارتي لروبوت غير موجود في غرفتك. ابدأ من انخفاض الخسارة، السياسة لا تفعل شيئًا، وليس من المعلمات الفائقة الخاصة بك.

ماذا يحدث عندما تحاول دمج البيانات على أي حال

الخطة الواضحة هي الدمج: بضعة آلاف من حلقات DROID بالإضافة إلى حلقاتك الخمسين. يرفض LeRobot، ويذكر الرفض الأشياء الثلاثة المختلفة.

  1. 1
    اسحب عينة الـ 100 حلقة، وليس الـ 1.7 تيرابايت الكاملة

    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
    جرب الدمج واقرأ الخطأ

    تقوم عملية الدمج بتحميل كل مجموعة بيانات، ثم تتحقق validate_all_metadata من fps ونوع الروبوت والميزات مقابل الأول في القائمة، وترفع خطأ عند أول عدم تطابق.

    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 إطارًا في الثانية لديك بدلاً من 15 إطارًا في الثانية لـ DROID. أصلح fps وستصطدم بفحص robot_type؛ أصلح ذلك وستصطدم بفحص الميزات، 7 مقابل 6 للإجراء. لا يوجد ترتيب يمر، ويتم تشغيل نفس الحماية في وقت التسجيل عبر 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 معدل نجاح متوسط أعلى بنسبة 50 بالمائة من الطريقة الأصلية أو RT-1، وتفوق RT-2-X على RT-2 بحوالي 3 أضعاف في المهارات الناشئة.
المقايضات
  • لا توجد إشراف عملي قابل للاستخدام. الهدف الديكارتي سباعي الأبعاد ليس أمرًا مفصليًا سداسي الأبعاد.
  • لا يوجد نقل لوضعية الكاميرا، ولا شيء في البيانات يخبرك أن الوضعيات تختلف.
  • لا يوجد نقل للتوقيت: مصادر 3 و 5 و 15 إطارًا في الثانية مقابل مسجل 30 إطارًا في الثانية.
  • لا يوجد نقل للمقبض. يختلف Robotiq 2F-85 والفك المطبوع على STS3215 في القوة والمدى والديناميكيات.
  • لم يكن الحجم وحده كافيًا حتى لمؤلفيه: في مجالات مجموعات البيانات الكبيرة، لم يتفوق RT-1-X على RT-1 المدرب على تلك المجموعة وحدها.
  • لا يوجد تقليل في عدد الحلقات الخاصة بك التي تحتاجها.
طبقة النموذجهل ينتقل؟لماذا
مشفّر الرؤيةنعم، بقوةالكائنات والمشاهد مستقلة عن التجسيد
التأريض اللغوينعمالتعليمات نصية، وليست هندسية
الاندماج متعدد الوسائطغالبًايهتم بالكائن المذكور في المطالبة
مشفّر الإحساس العميقلايختلف بُعد الإدخال ودلالات المفصل
رأس الإجراءلامدرب على مساحة ديكارتية سباعية الأبعاد لست فيها
إحصائيات التطبيعلا، وخطيرالإحصائيات الخارجية تحول كل أمر

هذا هو السبب في أن SmolVLA يتصرف بشكل مختلف على ذراع منخفضة التكلفة. تختار ورقته البحثية 481 مجموعة بيانات مجتمعية من Hugging Face، تم تصفيتها حسب نوع التجسيد، وعدد الحلقات، وجودة البيانات، وتغطية الإطارات: 22.9 ألف حلقة، 10.6 مليون إطار، تم تقييمها على أذرع SO-100 و SO-101 حقيقية. الصغير والمتطابق يتفوق على الكبير وغير المتطابق. قارن على ACT مقابل SmolVLA.

ثلاثة مسارات جديرة بالاهتمام

المسار أ: الضبط الدقيق من نقطة تحقق استوعبت البيانات بالفعل

يجب على معظم الناس اتباع هذا المسار. لا تلمس أبدًا DROID أو Open X-Embodiment: اختر سياسة استوعب تدريبها المسبق بيانات التجسيد المتقاطع بالفعل، سجل حلقاتك الخاصة، ثم قم بالضبط الدقيق.

السياسةالمعلماتالحد الأدنى للحلقاتتنسيق مجموعة البياناتفئة وحدة معالجة الرسومياتالاستدلالنقطة التحقق الأساسية
GR00T N1.7~3 مليار، ~40 مليون مدرب في الضبط الدقيق50LeRobot v2.0 or v2.1A100 or H100 80 GB152 مللي ثانية لكل خطوةnvidia/GR00T-N1.7-3B
GR00T N1.5~3 مليار50LeRobot v2.0 or v2.1A100 or H100 80 GB165 مللي ثانيةnvidia/GR00T-N1.5-3B
Pi0.5~3 مليار، بنية PaliGemma الأساسية50LeRobot v3.0A100 or H100 80 GB485 مللي ثانيةlerobot/pi05_base
SmolVLA~450 مليون30LeRobot v3.0RTX 4090 or any 24 GB245 مللي ثانيةlerobot/smolvla_base
ACT~80 مليون50LeRobot v3.0RTX 4090 or any 24 GB20 مللي ثانيةnone, from scratch

ACT هي الحالة الحدية الصادقة: لا يوجد نموذج أساسي، لذا لا تصل إليه أي من البيانات العامة. وهذا ليس عيبًا تلقائيًا، فبمعدل 20 مللي ثانية لكل خطوة عمل، هو الوحيد من بين الخمسة الذي يمكنه إغلاق حلقة سريعة، كما توضح صفحة ACT يوضح. اختر حسب المهمة باستخدام مقارنة الخمسة جميعًا، GR00T N1.7 مقابل Pi0.5، ونتائج 332 اختبار أداء عبر 85 نموذجًا في الساحة.

المسار ب: استخدام DROID كأداة اختبار

عينة الـ 100 حلقة هي أفضل 2 جيجابايت ستقوم بتنزيلها هذا الشهر، وليست للتدريب. إنها مجموعة بيانات تعلم أنها صحيحة. قم بتشغيل المحول واللّودر ووظيفة GPU قصيرة عليها؛ أي شيء يفشل هو خطأ في البنية التحتية تم العثور عليه بينما كان إصلاحه رخيصًا. تقوم NVIDIA بنفس الشيء على نطاق واسع: بطاقة GR00T N1.7 تسرد أربعة متغيرات مدربة لاحقًا، لـ Bridge و Fractal في SimplerEnv، و DROID و LIBERO.

المسار ج: سجل بياناتك الخاصة، بعناية

ثلاثون إلى خمسين تبدو صغيرة مقارنة بـ 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 مدمج مع حلقاتكbothblocked by validate_all_metadatan/aلا شيء، لا يعمل
SmolVLA، 30 إلى 50 حلقة خاصةa few GB100 دقيقة تسجيل1 to 3 USDعالية
GR00T N1.7، 50 حلقة خاصةa few GB100 دقيقة تسجيل4 to 12 USDعالية
ACT من الصفر، 50 حلقة خاصةa few GB100 دقيقة تسجيل1 to 3 USDعالية، 20 مللي ثانية استدلال
عينة DROID كأداة اختبار2 GBفترة ما بعد الظهرتشغيل قصير واحدعالية، كتحقق

عدم التماثل هو بيت القصيد: المسار الذي يستعير أكبر قدر من البيانات هو الأكثر تكلفة والأقل احتمالاً لتحريك ذراعك. أقل من ساعتين من التحكم عن بعد الخاص بك يتفوق على تيرابايت من بيانات Franka لشخص آخر. ليس لديك ذراع روبوت بعد؟ /live يبث SO-100 ماديًا بدون تسجيل. ثم تدريب سياستك الأولى، وSmolVLA على SO-100 للدليل المحدد.

خطة افتراضية معقولة

قم بتنزيل عينة DROID بحجم 2 جيجابايت واستخدمها لإثبات كفاءة مسار عملك. تجاهل 1.7 تيرابايت الأخرى. سجل 50 حلقة من مهمة واحدة بكاميرات ثابتة. قم بضبط SmolVLA أولاً، لأنه عند 30 حلقة كحد أدنى على بطاقة 24 جيجابايت، يكون الأرخص للتكرار عليه، ثم جرب GR00T N1.7 على نفس البيانات. قارن على مهمتك، وليس على معيار.

سجل مجموعات بيانات تتطابق بالفعل مع ذراعك

يكتب عميل سطح المكتب مجموعات بيانات بتنسيق LeRobot مباشرة من جلسة تحكم عن بعد: الذراع الصحيحة، معدل الإطارات الصحيح، مساحة الإجراء الصحيحة. لا يوجد تحويل RLDS، ولا إعادة تعيين.

احصل على عميل سطح المكتب
هل يمكنني تدريب سياسة على DROID وتشغيلها على SO-100 الخاص بي؟

ليس بشكل مباشر. في بنية LeRobot، تكون إجراءات DROID عبارة عن أوامر طرفية 7-D على Franka Panda بمعدل 15 fps؛ في RLDS الخام، تكون 6 سرعات مفصلية بالإضافة إلى موضع قابض. يتطلب SO-100 ستة مواضع مفصلية مطلقة. ستحتاج إلى طبقة حركية عكسية، وحتى عندئذٍ لا يمكن لمعصم بخمس درجات حرية (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 بالمائة من مزيج التدريب المسبق لـ 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 دقيقة من الوقت الفعلي. البيانات المستعارة للتجسيد المتقاطع لا تخفض هذه الأرقام.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started