द्वि-मैन्युअल डेटा संग्रह
DK1 को शुरुआत से ही द्वि-मैनुअल टेलीऑपरेशन डेटा संग्रह के लिए डिज़ाइन किया गया है। इस गाइड में दोनों हथियारों और कैमरों को वायरिंग करना, लीडर/फॉलोअर रिकॉर्डिंग प्रक्रिया चलाना, द्वि-मैनुअल डेटासेट स्कीमा को समझना और आपके डेटा को एसीटी प्रशिक्षण के लिए तैयार करना शामिल है।
द्वि-मैन्युअल रिकॉर्डिंग के लिए हार्डवेयर कनेक्शन
द्वि-मैनुअल रिकॉर्डिंग के लिए सिंगल-आर्म सेटअप की तुलना में अधिक कनेक्शन की आवश्यकता होती है। LeRobot शुरू करने से पहले प्रत्येक कनेक्शन को सत्यापित करें - मध्य सत्र में कनेक्शन गुम होने से एपिसोड ख़राब हो जाता है।
लीडर आर्म (डायनामिक्सल XL330)
लीडर आर्म से होस्ट पीसी तक यूएसबी-सी। यह भुजा संचालक के हाथ से चलती है। टेलीऑप के दौरान आकस्मिक वियोग से बचने के लिए छोटी केबल (1 मीटर) का उपयोग करें। सत्यापित करें: ls /dev/ttyACM0
अनुयायी शाखा (DM4340 + पावर)
फॉलोअर आर्म से होस्ट पीसी प्लस डीसी बिजली की आपूर्ति तक यूएसबी-सी। फॉलोअर आर्म को बाहरी पावर की आवश्यकता होती है - कभी भी अकेले यूएसबी पावर पर न चलें। सत्यापित करें: ls /dev/ttyACM1
कलाई कैमरा (अनुयायी भुजा)
फॉलोअर आर्म के एंड-इफ़ेक्टर पर एक USB वेबकैम माउंट करें। यह प्राथमिक हेरफेर कैमरा है. USB 3.0 के माध्यम से कनेक्ट करें. सत्यापित करें: ls /dev/video0
ओवरहेड/कार्यस्थान कैमरा
~70 सेमी ऊंचाई पर, 30° नीचे कोण पर, द्वि-मैनुअल कार्यक्षेत्र के ऊपर कैमरा स्थापित किया गया। दोनों भुजाओं को एक साथ पकड़ लेता है। दूसरा यूएसबी 3.0 पोर्ट. सत्यापित करें: ls /dev/video2
महत्वपूर्ण: द्वि-मैन्युअल तुल्यकालन। दो भुजाओं और दो कैमरों के साथ, DK1 के लिए सिंक्रनाइज़ेशन सबसे महत्वपूर्ण डेटा गुणवत्ता कारक है। LeRobot होस्ट पीसी घड़ी से सभी स्ट्रीम को टाइमस्टैम्प करता है। टाइमस्टैम्प विषमता को कम करने के लिए: (1) कैमरों और हथियारों के लिए अलग-अलग यूएसबी बस नियंत्रकों का उपयोग करें, (2) स्थिर घड़ियों के साथ यूएसबी 3.0 हब का उपयोग करें, (3) सीपीयू गवर्नर को प्रदर्शन मोड पर सेट करें। लक्ष्य: <5 एमएस सभी चार धाराओं के बीच तिरछा। बाएँ और दाएँ हाथ की स्थिति के बीच 10 एमएस का डीसिंक संपर्क-समृद्ध कार्यों पर ACT प्रशिक्षण विफलताओं का कारण बन सकता है।
नेता/अनुयायी टेलीऑपरेशन रिकॉर्डिंग प्रक्रिया
प्रत्येक DK1 रिकॉर्डिंग सत्र के लिए इन चरणों का पालन करें। एकल-हाथ संग्रह की तुलना में द्वि-मैनुअल प्रक्रिया में कुछ अतिरिक्त चरण होते हैं।
सत्र पूर्व सुरक्षा जांच
दोनों भुजाओं के बीच साझा कार्यक्षेत्र साफ़ करें (1.5 मीटर × 1 मीटर)। सत्यापित करें कि दोनों भुजाएँ बिना टकराव के साझा कार्यक्षेत्र तक पहुँचें। रिकॉर्डिंग से पहले ई-स्टॉप का परीक्षण करें। देखना सुरक्षा पृष्ठ.
दोनों भुजाओं को जोड़ें और सत्यापित करें
# Verify serial ports are available
ls /dev/ttyACM*
# Expected: /dev/ttyACM0 (leader) and /dev/ttyACM1 (follower)
# Quick connection test
python -m lerobot.scripts.control_robot \
--robot.type=bi_dk1_follower \
--robot.config=~/.lerobot/robots/dk1_bimanual.yaml \
--control.type=none
कैमरा फ़ीड सत्यापित करें
LeRobot प्रारंभ करने से पहले दोनों कैमरों को स्ट्रीमिंग करना होगा। एक गुम कैमरा चुपचाप शून्य छवि फ्रेम के साथ एपिसोड तैयार करेगा।
python3 -c "
import cv2
for i in [0, 2]:
cap = cv2.VideoCapture(i)
if cap.isOpened():
ret, frame = cap.read()
print(f'Camera {i}: OK ({frame.shape[1]}x{frame.shape[0]})')
else:
print(f'Camera {i}: FAILED')
cap.release()
"
भुजाओं को प्रारंभिक स्थिति में ले जाएँ
लीडर आर्म को मैन्युअल रूप से प्रारंभिक टेलीपॉप स्थिति में ले जाएं। अनुयायी भुजा इसे प्रतिबिंबित करेगी। वार्मअप अवधि शुरू होने से पहले सिंक्रनाइज़ेशन की पुष्टि करने के लिए लीडर आर्म को 2-3 सेकंड के लिए स्थिर रखें।
कार्य दृश्य सेट करें
दोनों भुजाओं के लिए वस्तुओं को एक समान आरंभिक स्थिति में रखें। आरंभिक कॉन्फ़िगरेशन का फ़ोटोग्राफ़ लें. द्वि-मैन्युअल कार्यों के लिए, टेप के साथ सटीक स्थिति को चिह्नित करें - दृश्य स्थिरता और भी महत्वपूर्ण है क्योंकि दोनों हाथों के प्रक्षेपवक्र संगत होने चाहिए।
द्वि-मैनुअल लेरोबोट रिकॉर्डिंग प्रारंभ करें
source ~/.venvs/dk1/bin/activate
python -m lerobot.scripts.control_robot \
--robot.type=bi_dk1_follower \
--robot.config=~/.lerobot/robots/dk1_bimanual.yaml \
--control.type=record \
--control.fps=30 \
--control.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--control.num_episodes=50 \
--control.single_task="Pick up block with left arm, place in bin with right arm" \
--control.warmup_time_s=5 \
--control.reset_time_s=15
अधिक समय तक प्रयोग करें reset_time_s द्वि-हाथ वाले कार्यों के लिए - दो भुजाओं और दृश्य को रीसेट करने में एकल-हाथ सेटअप की तुलना में अधिक समय लगता है।
एपिसोड की समीक्षा करें और दोबारा चलाएं
10 एपिसोड के प्रत्येक बैच के बाद, जारी रखने से पहले दोबारा चलाएं और समीक्षा करें। भुजाओं के समन्वय पर ध्यान दें - बाएँ और दाएँ भुजाओं के बीच अंतराल अनुयायी की गतिविधियों में घबराहट के रूप में दिखाई देगा।
python -m lerobot.scripts.visualize_dataset \
--repo_id=your-username/dk1-bimanual-pick-place-v1 \
--episode_index=0
हगिंगफेस हब पर पुश करें
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/dk1-bimanual-pick-place-v1
द्वि-मैनुअल के लिए लेरोबोट डेटासेट प्रारूप (DK1)
DK1 द्वि-मैनुअल डेटासेट स्कीमा एकल-हाथ रिकॉर्डिंग की तुलना में संयुक्त राज्य फ़ील्ड को दोगुना कर देती है। प्रत्येक एपिसोड में नेता और अनुयायी दोनों पक्षों और सभी कैमरों से समकालिक अवलोकन शामिल हैं।
निर्देशिका संरचना
your-username/dk1-bimanual-pick-place-v1/
├── meta/
│ ├── info.json # Dataset metadata, fps, shapes, robot_type
│ ├── episodes.jsonl # Per-episode metadata (task, length, outcome)
│ └── stats.json # Min/max/mean/std for all fields
├── data/
│ └── chunk-000/
│ ├── episode_000000.parquet
│ └── ...
└── videos/
└── chunk-000/
├── observation.images.wrist_cam/
│ ├── episode_000000.mp4
│ └── ...
└── observation.images.overhead_cam/
└── ...
एपिसोड डेटा स्कीमा (द्विमैनुअल)
द्वि-मैनुअल डेमो के लिए गुणवत्ता जांच सूची
सिंगल-आर्म डेटा की तुलना में द्वि-मैनुअल डेटासेट में गुणवत्ता की सख्त आवश्यकताएं होती हैं। हथियारों के बीच ख़राब समन्वय DK1 नीति प्रशिक्षण विफलता का प्रमुख कारण है।
-
1आर्म सिंक्रोनाइज़ेशन डेल्टा 10 एमएस से कम है जाँचें
arm_sync_delta_msप्रत्येक एपिसोड में फ़ील्ड. 10 एमएस से ऊपर के स्पाइक्स यूएसबी बस विवाद या गिराए गए सीरियल पैकेट का संकेत देते हैं। निरंतर उच्च डेल्टा वाले एपिसोड हटाएं। -
2संपर्क के दौरान अनुयायी के हाथ का कोई कंपन नहीं संपर्क बिंदुओं (ग्रैस्प, हैंडऑफ़, प्लेसमेंट) पर अनुयायी बांह प्रक्षेपवक्र की समीक्षा करें। दोलन उच्च-आवृत्ति शोर के रूप में प्रकट होता है
observation.state. यदि मौजूद हो तो पीडी लाभ कम करें। देखना सॉफ़्टवेयर समस्या निवारण. -
3दोनों भुजाएँ एक ही कड़ी में कार्य पूरा करती हैं द्वि-मैन्युअल कार्यों के लिए, एक एपिसोड केवल तभी मान्य होता है जब दोनों पक्ष अपने निर्धारित उप-कार्यों को पूरा करते हैं। यदि बायां हाथ सफल हो गया लेकिन दाहिने हाथ ने वस्तु गिरा दी, तो एपिसोड को विफल के रूप में चिह्नित करें और इसे हटा दें या एनोटेट करें।
-
4कोई कैमरा फ़्रेम गायब नहीं दोनों कैमरा स्ट्रीम में फ़्रेम की अपेक्षित संख्या होनी चाहिए। किसी भी कैमरे से गायब फ़्रेम विज़ुओमोटर नीति के इनपुट को दूषित कर देता है। के साथ जांच
lerobot.scripts.visualize_dataset. -
5कार्य दृश्य को एपिसोड के बीच समान रूप से रीसेट किया गया था प्रत्येक एपिसोड के लिए दोनों भुजाओं का कार्यक्षेत्र रीसेट किया जाना चाहिए। ऑब्जेक्ट की स्थिति, आर्म स्टार्टिंग कॉन्फ़िगरेशन और कैमरा एंगल सभी मेल खाने चाहिए। संदर्भ के रूप में फोटोग्राफ किए गए प्रारंभिक कॉन्फ़िगरेशन का उपयोग करें।
-
6एपिसोड की लंबाई सुसंगत है सभी सफल एपिसोड औसत लंबाई के ±25% के भीतर होने चाहिए। द्वि-हाथ वाले कार्यों में अक्सर एकल-हाथ वाले कार्यों की तुलना में अधिक भिन्नता होती है, लेकिन अत्यधिक आउटलेर्स (3× माध्यिका) को छोड़ दिया जाना चाहिए।
-
7डेटासेट आँकड़े दोनों भुजाओं के लिए सममित हैं में
meta/stats.json, जाँच करें किaction_leftऔरaction_rightआँकड़े आपके कार्य ज्यामिति के लिए प्रशंसनीय हैं। यदि एक भुजा शून्य विचरण दिखाती है, तो वह भुजा हिल नहीं रही थी - पोर्ट असाइनमेंट की जाँच करें। -
8टेलिओप प्रदर्शन शैली सुसंगत है सभी प्रदर्शनों में समान दृष्टिकोण पथ, समझ की रणनीति और हैंडऑफ़ तकनीक का उपयोग करना चाहिए। मिश्रित रणनीतियाँ मल्टीमॉडल क्रिया वितरण उत्पन्न करती हैं जो ACT प्रशिक्षण को भ्रमित करती हैं। प्रति कार्य संस्करण एक एकल ऑपरेटर का उपयोग करें।
आपके द्वि-मैन्युअल डेटासेट पर प्रशिक्षण अधिनियम
एक बार जब आपका डेटासेट गुणवत्ता जांच सूची पास कर लेता है, तो सीधे LeRobot के साथ ACT या डिफ्यूजन पॉलिसी को प्रशिक्षित करें। DK1 द्वि-मैन्युअल कार्यों के लिए ACT की अनुशंसा की जाती है - इसकी खंडित कार्रवाई भविष्यवाणी एकल-चरण नीतियों की तुलना में हथियारों के बीच समन्वय को बेहतर ढंग से संभालती है।
ट्रेन अधिनियम (दो मैनुअल के लिए अनुशंसित)
python -m lerobot.scripts.train \
--policy.type=act \
--dataset.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--policy.chunk_size=100 \
--policy.n_action_steps=100 \
--training.num_epochs=5000 \
--training.batch_size=8 \
--output_dir=outputs/dk1-act-bimanual
ट्रेन प्रसार नीति (संपर्क-समृद्ध कार्यों के लिए)
python -m lerobot.scripts.train \
--policy.type=diffusion \
--dataset.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--training.num_epochs=8000 \
--output_dir=outputs/dk1-diffusion-bimanual
गहरे जाना: पूरा पढ़ें डेटा संग्रहण पाइपलाइन अवलोकन एपिसोड संरचना, डेटासेट संस्करण, सिंक्रोनाइज़ेशन रणनीतियों और बहु-कार्य द्वि-मैनुअल डेटासेट संरचना के संपूर्ण उपचार के लिए रोबोटिक्स लाइब्रेरी में।