جمع البيانات
سير عمل التسجيل الكامل لـ LinkerBot O6. التشغيل عن بعد بين القائد والتابع، وتنسيق مجموعة بيانات LeRobot، وقائمة التحقق من جودة الحلقة، والروابط إلى خط أنابيب جمع البيانات الأوسع.
تسجيل سير العمل لـ O6
العملية الكاملة بدءًا من الأجهزة الجاهزة وحتى حلقة مجموعة البيانات الأولى. اتبع الخطوات بالترتيب.
التحقق من الأجهزة وواجهة CAN
تأكد من تركيب O6 وتشغيله وتشغيل واجهة CAN. يجري candump can0 والتحقق من ظهور حزم نبضات القلب الحركية قبل المتابعة.
تكوين المهمة وتخطيط الكاميرا
حدد وصف المهمة، وقم بإعداد الكاميرا (الكاميرات) بالزوايا الصحيحة، ثم ضع كائنات المهمة في مساحة العمل. يعد إعداد المشهد المتسق عبر الحلقات أمرًا بالغ الأهمية لتعميم السياسة.
ابدأ جلسة التسجيل
قم بتشغيل البرنامج النصي للتحكم LeRobot باستخدام ملف record وضع. هذا يسلح النظام لتسجيل الحلقة. ستنتظر الجلسة مشغل البداية قبل التقاطها.
python -m lerobot.scripts.control_robot \
--robot.type=linkerbot_o6 \
--control.type=record \
--control.fps=30 \
--control.repo_id=your-username/o6-task-name \
--control.num_episodes=50 \
--control.single_task="Pick up the blue block"
العمل عن بعد وتسجيل الحلقات
استخدم ذراعًا قياديًا (أو لوحة المفاتيح الخاصة بك لإجراء اختبارات بسيطة) لتشغيل O6 عن بعد. اضغط على مفتاح البدء/الإيقاف لوضع كل حلقة بين قوسين. إعادة ضبط المشهد بين الحلقات لتحقيق الاتساق.
مراجعة وتصفية الحلقات
استخدم أداة إعادة التشغيل LeRobot لمراجعة كل حلقة بشكل مرئي. تجاهل أي شيء يفشل في قائمة التحقق من الجودة أدناه. الجودة أكثر من الكمية: 30 حلقة ممتازة تتفوق على 100 حلقة متوسطة المستوى.
python -m lerobot.scripts.control_robot \
--robot.type=linkerbot_o6 \
--control.type=replay \
--control.repo_id=your-username/o6-task-name \
--control.episode=0
تحميل إلى HuggingFace Hub
ادفع مجموعة البيانات التي تمت تصفيتها إلى HuggingFace Hub للمشاركة والتدريب. مجموعة البيانات متاحة على الفور للتدريب على السياسات في LeRobot.
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/o6-task-name
تنسيق مجموعة بيانات LeRobot لـ O6
يتم تخزين كل حلقة مسجلة بتنسيق مجموعة بيانات LeRobot HuggingFace القياسي. يتوافق هذا التنسيق بشكل مباشر مع ACT وDiffusion Policy وجميع خوارزميات التدريب الأخرى المدعومة من LeRobot.
هيكل الحلقة
dataset/
data/
episode_000000/
observation.state.npy # [T, 12] — 6 joint positions + 6 velocities
action.npy # [T, 6] — 6 target joint positions
observation.images.wrist_cam/
frame_000000.png # 640x480 @ 30 fps
...
observation.images.overhead_cam/
frame_000000.png
...
episode.json # {task, success, duration_s, num_frames}
meta_data/
info.json # dataset schema version, robot type, fps
stats.json # per-channel mean, std, min, max
أبعاد الدولة والفعل
# observation.state: [T, 12]
# Columns: [j0_pos, j1_pos, j2_pos, j3_pos, j4_pos, j5_pos,
# j0_vel, j1_vel, j2_vel, j3_vel, j4_vel, j5_vel]
# Units: radians and radians/second
# action: [T, 6]
# Columns: [j0_target, j1_target, j2_target, j3_target, j4_target, j5_target]
# Units: radians
تدريب سياسة من مجموعة بيانات O6 الخاصة بك
python -m lerobot.scripts.train \
--dataset_repo_id=your-username/o6-task-name \
--policy.type=act \
--output_dir=./checkpoints/o6-act-v1 \
--training.num_epochs=100
قائمة التحقق من جودة الحلقة
قم بتطبيق قائمة التحقق هذه على كل حلقة قبل تضمينها في مجموعة بيانات التدريب الخاصة بك. البيانات السيئة أسوأ من البيانات الأقل.
- ✓تمت المهمة بنجاح — وصلت الذراع إلى حالة الهدف دون تدخل بشري. لا يوجد اكمال جزئي
- ✓الحركة سلسة ومتعمدة - لا توجد تصحيحات متشنجة أو تجاوزات أو تغييرات مفاجئة في الاتجاه. المظاهرات السلسة تدرب سياسات أكثر سلاسة.
- ✓جميع إطارات الكاميرا موجودة — لا توجد إطارات مُسقطة، ولا يوجد انسداد في منطقة مساحة العمل ذات الصلة بالمهمة.
- ✓الدول المشتركة مستمرة — لا توجد فجوات زمنية أكبر من 40 مللي ثانية في سجل الحالة.
- ✓مدة الحلقة متسقة - النوبات التي تقل مدتها عن 3 ثوانٍ أو أطول من 30 ثانية عادةً ما تكون قيمًا متطرفة. قم بمراجعتها قبل تضمينها.
- ✓تمت إعادة ضبط المشهد بشكل مماثل - تم إرجاع كائنات المهمة إلى نفس موضع البداية قبل بدء الحلقة.
- ✓لا توجد أخطاء أثناء التسجيل - يفحص
candump can0سجلات لإطارات الخطأ أثناء الجلسة.