جمع البيانات

يعد 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.

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

سير عمل التسجيل خطوة بخطوة

1

التحقق من المعايرة الحالية

قم بإجراء المعايرة قبل كل جلسة جديدة إذا تم تفكيك الذراع أو نقله. يرى البرمجيات → المعايرة.

python -m lerobot.scripts.control_robot \
  --robot.type=so101 --robot.port=/dev/ttyUSB0 \
  --control.type=calibrate
2

التحقق من خلاصات الكاميرا

python -c "
import cv2
for i in range(4):
    cap = cv2.VideoCapture(i)
    if cap.isOpened():
        print(f'Camera {i}: OK')
    cap.release()
"
3

حرك الذراع إلى وضع المنزل

ضع ذراع التابع في موضعه الأصلي (ممتد بالكامل، والمؤثر النهائي يشير إلى الأمام). أعد ضبط ذراع القائد على نفس الوضع قبل بدء التقريب.

4

قم بإعداد مشهد المهمة

ضع الأشياء في مواضع البداية الثابتة الخاصة بها. ضع علامة على الجدول إذا لزم الأمر - فالشروط الأولية المتسقة ضرورية لتعميم السياسات.

5

ابدأ تسجيل 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 قبل كل حلقة. أثناء عملية الإحماء، يمكنك ضبط قبضتك على ذراع القائد قبل بدء التسجيل.

6

مراجعة وإعادة الحلقات

python -m lerobot.scripts.visualize_dataset \
  --repo_id=your-username/so101-pick-place-v1 \
  --episode_index=0

احذف الحلقات ذات الجودة الرديئة على الفور. تحقق من سقوط إطارات الكاميرا، أو سرعات المفاصل غير المنتظمة، أو عدم اكتمال تنفيذ المهمة.

7

ادفع إلى 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.

مخطط بيانات الحلقة

الحقول في كل حلقة ملف الباركيه
مراقبة.حالة تعويم32[6] مواضع المفاصل بالدرجات (6 DOF - 5 مفاصل + القابض)
الملاحظة.الصور.* مسار الفيديو مرجع للإطار في ملف فيديو MP4 لكل كاميرا
فعل تعويم32[6] استهداف المواقع المشتركة من ذراع القائد
الطابع الزمني float64 الطابع الزمني لنظام Unix بالثواني
frame_index int64 رقم الإطار داخل الحلقة
الحلقة_index int64 رقم الحلقة ضمن مجموعة البيانات
next.done منطقي صحيح في الإطار الأخير من كل حلقة
Task_index int64 قم بالفهرسة في جدول البحث الخاص بوصف المهمة

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 الموجودة - قد تتمكن من الضبط الدقيق لمجموعة بيانات أساسية موجودة وتوفير وقت التسجيل.

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

ادفع مجموعة البيانات الخاصة بك إلى HuggingFace وقم بتدريب ACT أو سياسة الانتشار.