جمع البيانات
تم تصميم VLAI L1 لجمع بيانات التشغيل عن بعد على نطاق واسع. إن مسار التسجيل بنقرة واحدة، والتزامن ثنائي الذراع، وتقنية VR teleop المدمجة تجعله أسرع مسار من تسليم الروبوت إلى مجموعة البيانات الجاهزة للتدريب.
تسجيل العمليات عن بعد بتقنية الواقع الافتراضي (VR) بكلتا اليدين
الاتصال والتحقق من جميع الأنظمة
rc connect --device l1 --host 192.168.1.45
rc status # check: arms, base, cameras, battery all green
انقل 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()"
قم بإعداد مسرح المهمة والكاميرات
ضع كائنات المهمة في مواضع بداية ثابتة. تحقق من عروض الكاميرا في لوحة المتصفح - يجب أن تغطي كل من كاميرات المعصم (Developer Max) وأي كاميرات خارجية مساحة عمل المهمة.
ابدأ جلسة التسجيل عبر 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
مراجعة الحلقات
rc replay \
--dataset ~/datasets/l1-pour-v1 \
--episode 0
يُظهر العارض جميع تدفقات الكاميرا + السلاسل الزمنية المشتركة للحالة متزامنة. احذف الحلقات الضعيفة قبل الدفع.
ادفع إلى HuggingFace Hub
huggingface-cli login
rc push_dataset \
--dataset ~/datasets/l1-pour-v1 \
--repo_id your-username/l1-pour-v1
مخطط مجموعة البيانات L1
ينتج مسار التسجيل L1 مجموعة بيانات متعددة الوسائط بكلا الذراعين وقاعدة الهاتف المحمول وجميع الكاميرات والتعليقات التوضيحية اللغوية الاختيارية.
قائمة مراجعة الجودة
يمكن أن يقدم 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