جمع البيانات

تم تصميم VLAI L1 لجمع بيانات التشغيل عن بعد على نطاق واسع. إن مسار التسجيل بنقرة واحدة، والتزامن ثنائي الذراع، وتقنية VR teleop المدمجة تجعله أسرع مسار من تسليم الروبوت إلى مجموعة البيانات الجاهزة للتدريب.

تسجيل سير العمل

تسجيل العمليات عن بعد بتقنية الواقع الافتراضي (VR) بكلتا اليدين

1

الاتصال والتحقق من جميع الأنظمة

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

انقل L1 إلى موضع التسجيل

قم بقيادة L1 إلى مساحة عمل المهمة باستخدام WASD في لوحة المتصفح. تعيين ارتفاع الرفع للمهمة (على سبيل المثال، 130 سم للتلاعب على سطح الطاولة). أوقفها وأغلق العجلات.

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

قم بإعداد مسرح المهمة والكاميرات

ضع كائنات المهمة في مواضع بداية ثابتة. تحقق من عروض الكاميرا في لوحة المتصفح - يجب أن تغطي كل من كاميرات المعصم (Developer Max) وأي كاميرات خارجية مساحة عمل المهمة.

4

ابدأ جلسة التسجيل عبر CLI

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

مراجعة الحلقات

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

يُظهر العارض جميع تدفقات الكاميرا + السلاسل الزمنية المشتركة للحالة متزامنة. احذف الحلقات الضعيفة قبل الدفع.

6

ادفع إلى HuggingFace Hub

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
تنسيق مجموعة البيانات

مخطط مجموعة البيانات L1

ينتج مسار التسجيل L1 مجموعة بيانات متعددة الوسائط بكلا الذراعين وقاعدة الهاتف المحمول وجميع الكاميرات والتعليقات التوضيحية اللغوية الاختيارية.

الحقول في كل حلقة ملف الباركيه
مراقبة.left_arm_state تعويم32[8] مواضع مفصل الذراع الأيسر بالراديان (8 DOF)
مراقبة.right_arm_state تعويم32[8] مواضع مفصل الذراع الأيمن بالراديان (8 DOF)
Observation.base_state تعويم32[3] القاعدة المتنقلة x، y، الاتجاه بالأمتار والراديان
Observation.lift_height float32 ارتفاع رفع الجذع بالأمتار
الملاحظة.الصور.* مسار الفيديو كاميرات المعصم (يسار، يمين)، كاميرا الرأس، كاميرا مساحة العمل الخارجية
action.left_arm تعويم32[8] استهدف مواضع مفصل الذراع اليسرى من VR teleop
action.right_arm تعويم32[8] استهدف مواضع مفصل الذراع الأيمن من VR teleop
language_instruction خيط وصف مهمة اللغة الطبيعية لتكييف VLA
الطابع الزمني float64 الطابع الزمني لنظام Unix بالثواني
next.done منطقي صحيح في الإطار الأخير من كل حلقة
ضمان الجودة

قائمة مراجعة الجودة

يمكن أن يقدم Teleop VR الخاص بـ L1 مشكلات فريدة في جودة البيانات حول زمن الوصول والتنسيق بين اليدين. قم بتشغيل هذا قبل الدفع إلى المحور.

  • 1
    كان زمن الوصول إلى VR أقل من 50 مللي ثانية أثناء التسجيل تحقق من مراقبة الكمون في لوحة المتصفح أثناء التسجيل. أكثر من 50 مللي ثانية، تتأخر حركات يد المشغل عن تصرفات الروبوت، مما يؤدي إلى عدم تطابق سببي في مجموعة البيانات. أعد التسجيل على قناة WiFi ذات زمن وصول أقل إذا لزم الأمر.
  • 2
    تم تحريك كلا الذراعين على النحو المنشود (لا توجد حلقات بذراع واحدة) بالنسبة للمهام اليدوية، تأكد من أن كلا الذراعين يظهران حركة كبيرة للداخل observation.left_arm_state و observation.right_arm_state. قد تشير الحلقات المهيمنة بذراع واحدة إلى أن المشغل يفضل يدًا واحدة.
  • 3
    كانت القاعدة المتنقلة ثابتة أثناء التلاعب بالذراع إلا إذا كنت تقوم بتسجيل مهام التلاعب بالهاتف المحمول، observation.base_state يجب أن تكون ثابتة تقريبًا في كل حلقة. تؤدي الحركة الأساسية أثناء التلاعب إلى تحول مساحة العمل بالنسبة إلى الكاميرات.
  • 4
    جميع تيارات الكاميرا موجودة للحلقة الكاملة قد يؤدي عرض النطاق الترددي WiFi الخاص بـ L1 إلى إسقاط الإطارات تحت الحمل. يجري rc validate_dataset --dataset ~/datasets/l1-pour-v1 للتحقق من الإطارات المفقودة عبر جميع تدفقات الكاميرا.
  • 5
    يتطابق تعليم اللغة مع ما تم توضيحه يتم ضبط تعليمات اللغة قبل بدء التسجيل. إذا ارتجل المشغل أسلوبًا مختلفًا (على سبيل المثال، استخدم ذراعًا واحدة بدلاً من ذراعين)، فقم بتحديث التعليمات أو حذف الحلقة.
الخطوة التالية

تدريب VLA من مجموعة البيانات الخاصة بك

بمجرد أن تكون مجموعة البيانات الخاصة بك على HuggingFace Hub، قم بضبط VLA باستخدام مساحة الإجراء L1.

ضبط OpenVLA على بيانات L1

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

نشر VLA المضبوط بدقة على الجهاز (Developer Pro/Max)

RC نشر VLA \ --مخرجات النموذج/openvla-l1-pour \ --تكميم int4 \ --الجهاز l1 \ --المضيف 192.168.1.45 # تشغيل السياسة: سياسة تشغيل RC \ --المهمة "التقط الزجاجة واسكبها في الكوب" \ --max_steps 100

مجموعة البيانات جاهزة؟ ابدأ التدريب.

ادفع إلى HuggingFace Hub وقم بضبط نموذج VLA على بيانات المعالجة اليدوية الخاصة بك.