डेटा संग्रहण
LinkerBot O6 के लिए संपूर्ण रिकॉर्डिंग वर्कफ़्लो। लीडर-फ़ॉलोअर टेलीऑपरेशन, लेरोबोट डेटासेट प्रारूप, एपिसोड गुणवत्ता चेकलिस्ट, और व्यापक डेटा संग्रह पाइपलाइन के लिंक।
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 को टेलीऑपरेट करने के लिए लीडर आर्म (या साधारण परीक्षणों के लिए अपने कीबोर्ड) का उपयोग करें। प्रत्येक एपिसोड को ब्रैकेट में रखने के लिए स्टार्ट/स्टॉप कुंजी दबाएँ। निरंतरता के लिए एपिसोड के बीच दृश्य को रीसेट करें।
एपिसोड की समीक्षा करें और फ़िल्टर करें
प्रत्येक एपिसोड की दृश्य समीक्षा करने के लिए लेरोबोट रीप्ले टूल का उपयोग करें। नीचे दी गई गुणवत्ता जांच सूची में विफल होने वाले किसी भी उत्पाद को हटा दें। मात्रा से अधिक गुणवत्ता: 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-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/o6-task-name
O6 के लिए LeRobot डेटासेट प्रारूप
प्रत्येक रिकॉर्ड किया गया एपिसोड मानक लेरोबोट हगिंगफेस डेटासेट प्रारूप में संग्रहीत किया जाता है। यह प्रारूप ACT, डिफ्यूजन पॉलिसी और अन्य सभी 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 सेकंड से अधिक लंबे एपिसोड आमतौर पर आउटलेयर होते हैं। शामिल करने से पहले उनकी समीक्षा करें.
- ✓दृश्य को हू-ब-हू रीसेट कर दिया गया - एपिसोड शुरू होने से पहले कार्य ऑब्जेक्ट को उसी प्रारंभिक स्थिति में लौटा दिया गया था।
- ✓रिकॉर्डिंग के दौरान कोई CAN त्रुटि नहीं - जाँच करना
candump can0सत्र के दौरान त्रुटि फ़्रेम के लिए लॉग।