جمع البيانات
يعد SO-101 أحد أكثر أذرع جمع البيانات شيوعًا في مجتمع LeRobot. يغطي هذا الدليل كل شيء بدءًا من اتصالات الأجهزة وحتى تسجيل الحلقات ودفع مجموعة البيانات الخاصة بك إلى HuggingFace.
إعداد الأجهزة للتسجيل
يعد إعداد جمع البيانات SO-101 أبسط من أذرع CAN-bus، حيث يعمل كل شيء عبر USB. هنا هو ما للاتصال.
كاميرا مساحة العمل
أشارت كاميرا الويب USB إلى مساحة العمل من الأعلى أو من الجانب. قم بالتثبيت في موضع ثابت — لا تحركه بين الحلقات. يؤكد: ls /dev/video*
كاميرا المعصم (اختياري)
كاميرا USB صغيرة مثبتة على المؤثر النهائي. يضيف عرض الشخص الأول. مطلوب منفذ USB ثاني. يدعم LeRobot مزامنة الكاميرات المتعددة.
ذراع التابع (USB تسلسلي)
الذراع التي تنفذ الأفعال. الاتصال عبر وحدة تحكم مضاعفات USB. التحقق من المنفذ مع ls /dev/ttyUSB*
ذراع القائد (USB تسلسلي)
SO-101 ثانٍ في وضع الامتثال - حركه بيدك لقيادة التابع. الاتصال بمنفذ USB الثاني. يعطي مظاهرات أعلى جودة.
لا يوجد ROS ولا برامج تشغيل kernel: على عكس إعدادات CAN-bus، تعمل مجموعة جمع البيانات SO-101 بالكامل عبر USB التسلسلي. يمكنك التسجيل على كمبيوتر محمول MacBook أو Windows - دون الحاجة إلى Ubuntu.
سير عمل التسجيل خطوة بخطوة
التحقق من المعايرة الحالية
قم بإجراء المعايرة قبل كل جلسة جديدة إذا تم تفكيك الذراع أو نقله. يرى البرمجيات → المعايرة.
python -m lerobot.scripts.control_robot \
--robot.type=so101 --robot.port=/dev/ttyUSB0 \
--control.type=calibrate
التحقق من خلاصات الكاميرا
python -c "
import cv2
for i in range(4):
cap = cv2.VideoCapture(i)
if cap.isOpened():
print(f'Camera {i}: OK')
cap.release()
"
حرك الذراع إلى وضع المنزل
ضع ذراع التابع في موضعه الأصلي (ممتد بالكامل، والمؤثر النهائي يشير إلى الأمام). أعد ضبط ذراع القائد على نفس الوضع قبل بدء التقريب.
قم بإعداد مشهد المهمة
ضع الأشياء في مواضع البداية الثابتة الخاصة بها. ضع علامة على الجدول إذا لزم الأمر - فالشروط الأولية المتسقة ضرورية لتعميم السياسات.
ابدأ تسجيل LeRobot
python -m lerobot.scripts.control_robot \
--robot.type=so101 \
--robot.port=/dev/ttyUSB1 \
--robot.leader_arms.main.type=so101 \
--robot.leader_arms.main.port=/dev/ttyUSB0 \
--control.type=record \
--control.fps=30 \
--control.repo_id=your-username/so101-pick-place-v1 \
--control.num_episodes=50 \
--control.single_task="Pick the red block and place it in the bin" \
--control.warmup_time_s=3 \
--control.reset_time_s=8
يطالب LeRobot قبل كل حلقة. أثناء عملية الإحماء، يمكنك ضبط قبضتك على ذراع القائد قبل بدء التسجيل.
مراجعة وإعادة الحلقات
python -m lerobot.scripts.visualize_dataset \
--repo_id=your-username/so101-pick-place-v1 \
--episode_index=0
احذف الحلقات ذات الجودة الرديئة على الفور. تحقق من سقوط إطارات الكاميرا، أو سرعات المفاصل غير المنتظمة، أو عدم اكتمال تنفيذ المهمة.
ادفع إلى HuggingFace Hub
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/so101-pick-place-v1
تنسيق مجموعة البيانات SO-101
يستخدم SO-101 تنسيق مجموعة بيانات LeRobot / HuggingFace القياسي، وهو مخطط مطابق لـ OpenArm وKoch وأذرع LeRobot الأخرى. وهذا يعني أن مجموعات البيانات الخاصة بك متوافقة بشكل مباشر مع النظام البيئي الكامل لتدريب LeRobot.
مخطط بيانات الحلقة
SO-101 ملاحظات محددة
تستخدم مساحة العمل SO-101 مواضع مشتركة بالدرجات (وحدات مؤازرة Feetech)، وليس بالراديان. عند مزج مجموعات البيانات SO-101 وOpenArm للتدريب عبر الأنظمة الأساسية، قم بتسوية كليهما إلى الراديان أولاً باستخدام الإحصائيات الموجودة في meta/stats.json.
قائمة مراجعة الجودة للبيانات المجمعة
قم بإجراء هذا بعد كل جلسة تسجيل قبل الدفع إلى المحور.
-
1أطوال الحلقة متسقة عادةً ما تعني الحلقات ذات الطول الخارجي توقف المشغل مؤقتًا، أو انزلاق القابض، أو انقطاع التسجيل. احتفظ بها ضمن ±30% من متوسط الطول.
-
2لا توجد طفرات في سرعة المؤازرة تتمتع أجهزة STS3215 بنطاق ترددي محدود - حيث ترتفع السرعة المفاجئة
observation.stateتشير إلى التسرب من الحافلة التسلسلية. احذف تلك الحلقات -
3تتم محاذاة إطارات الكاميرا مع البيانات المشتركة تأكد من أن الطوابع الزمنية للكاميرا والطوابع الزمنية المشتركة تقع ضمن نطاق 20 مللي ثانية من بعضها البعض. يمكن أن يتسبب زمن الوصول التسلسلي لـ USB في الانجراف عبر التسجيلات الطويلة. إعادة مزامنة الكاميرات كل 100 حلقة.
-
4كان تتبع ذراع القائد سلسًا إذا تأخر المتابع بشكل ملحوظ أثناء التسجيل (بسبب زمن الوصول التسلسلي لـ USB)، فسيتم تغيير تسميات الإجراء من الملاحظات. إعادة التشغيل للتحقق.
-
5كان مشهد المهمة ثابتًا في بداية كل حلقة الكائنات في نفس الموقف والاتجاه. إن التكرار المنخفض لـ SO-101 (مقابل أذرع CAN) يجعل هذا أمرًا مهمًا بشكل خاص - فالتباين في الظروف الأولية يضر بالتدريب على السياسات.
-
6يتم تسجيل فتح/إغلاق القابض بوضوح حالة القابض SO-101 هي المفصل 6. تحقق من أن أحداث الفهم تظهر انتقالًا واضحًا لموضع المفصل (مفتوح → مغلق) في البيانات، وليس انحرافًا تدريجيًا.
تدريب سياسة من مجموعة البيانات الخاصة بك
بمجرد اجتياز مجموعة البيانات الخاصة بك اختبارات الجودة، قم بتدريب ACT أو سياسة النشر مع LeRobot.
تدريب أكت
python -m lerobot.scripts.train \
--policy.type=act \
--dataset.repo_id=your-username/so101-pick-place-v1 \
--policy.chunk_size=100 \
--training.num_epochs=5000 \
--output_dir=outputs/act-so101-pick-place
سياسة نشر القطار
python -m lerobot.scripts.train \
--policy.type=diffusion \
--dataset.repo_id=your-username/so101-pick-place-v1 \
--training.num_epochs=8000 \
--output_dir=outputs/diffusion-so101-pick-place
مجموعات بيانات المجتمع: يحتوي SO-101 على واحدة من أكبر مجموعات البيانات المجتمعية في نظام LeRobot البيئي. قبل جمع البيانات الخاصة بك، تحقق HuggingFace Hub لمجموعات البيانات SO-101 الموجودة - قد تتمكن من الضبط الدقيق لمجموعة بيانات أساسية موجودة وتوفير وقت التسجيل.