द्वि-मैन्युअल डेटा संग्रह

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

सत्र पूर्व सुरक्षा जांच

दोनों भुजाओं के बीच साझा कार्यक्षेत्र साफ़ करें (1.5 मीटर × 1 मीटर)। सत्यापित करें कि दोनों भुजाएँ बिना टकराव के साझा कार्यक्षेत्र तक पहुँचें। रिकॉर्डिंग से पहले ई-स्टॉप का परीक्षण करें। देखना सुरक्षा पृष्ठ.

2

दोनों भुजाओं को जोड़ें और सत्यापित करें

# 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
3

कैमरा फ़ीड सत्यापित करें

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()
"
4

भुजाओं को प्रारंभिक स्थिति में ले जाएँ

लीडर आर्म को मैन्युअल रूप से प्रारंभिक टेलीपॉप स्थिति में ले जाएं। अनुयायी भुजा इसे प्रतिबिंबित करेगी। वार्मअप अवधि शुरू होने से पहले सिंक्रनाइज़ेशन की पुष्टि करने के लिए लीडर आर्म को 2-3 सेकंड के लिए स्थिर रखें।

5

कार्य दृश्य सेट करें

दोनों भुजाओं के लिए वस्तुओं को एक समान आरंभिक स्थिति में रखें। आरंभिक कॉन्फ़िगरेशन का फ़ोटोग्राफ़ लें. द्वि-मैन्युअल कार्यों के लिए, टेप के साथ सटीक स्थिति को चिह्नित करें - दृश्य स्थिरता और भी महत्वपूर्ण है क्योंकि दोनों हाथों के प्रक्षेपवक्र संगत होने चाहिए।

6

द्वि-मैनुअल लेरोबोट रिकॉर्डिंग प्रारंभ करें

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 द्वि-हाथ वाले कार्यों के लिए - दो भुजाओं और दृश्य को रीसेट करने में एकल-हाथ सेटअप की तुलना में अधिक समय लगता है।

7

एपिसोड की समीक्षा करें और दोबारा चलाएं

10 एपिसोड के प्रत्येक बैच के बाद, जारी रखने से पहले दोबारा चलाएं और समीक्षा करें। भुजाओं के समन्वय पर ध्यान दें - बाएँ और दाएँ भुजाओं के बीच अंतराल अनुयायी की गतिविधियों में घबराहट के रूप में दिखाई देगा।

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

हगिंगफेस हब पर पुश करें

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/
            └── ...

एपिसोड डेटा स्कीमा (द्विमैनुअल)

प्रत्येक एपिसोड में फ़ील्ड Parquet फ़ाइल - DK1 द्वि-मैनुअल (bi_dk1_follower)
अवलोकन.स्थिति फ्लोट32[16] अनुयायी बांह के जोड़ की स्थिति: 7 डीओएफ + ग्रिपर × 2 भुजाएं = 16 मान
अवलोकन.राज्य_बाएं फ्लोट32[8] बायाँ अनुयायी हाथ: 7 संयुक्त स्थितियाँ + 1 ग्रिपर (रेड)
अवलोकन.राज्य_सही फ्लोट32[8] दाहिना अनुयायी हाथ: 7 संयुक्त स्थितियाँ + 1 ग्रिपर (रेड)
कार्रवाई फ्लोट32[16] दोनों अनुयायी भुजाओं के लिए लक्ष्य स्थिति (लीडर आर्म टेलोप से)
कार्रवाई_बाएं फ्लोट32[8] नेता की ओर से बाएं हाथ के लिए लक्षित स्थान
कार्रवाई_सही फ्लोट32[8] नेता की ओर से दाहिने हाथ के लिए लक्षित स्थान
अवलोकन.छवियाँ.कलाई_कैम वीडियो पथ फॉलोअर आर्म एंड-इफ़ेक्टर पर कलाई पर लगा कैमरा
अवलोकन.छवियाँ.ओवरहेड_कैम वीडियो पथ फिक्स्ड ओवरहेड कैमरा पूर्ण द्वि-मैनुअल कार्यस्थान दिखा रहा है
TIMESTAMP फ्लोट64 होस्ट पीसी यूनिक्स टाइमस्टैम्प। इस टाइमस्टैम्प पर दोनों हथियारों का नमूना लिया गया है।
आर्म_सिंक_डेल्टा_एमएस फ्लोट32 DK1-विशिष्ट: बाएँ और दाएँ हाथ की स्थिति के बीच का समय डेल्टा पढ़ता है। ऐसे एपिसोड चिह्नित करें जहां यह 10 एमएस से अधिक हो।
अगला.किया बूल एक एपिसोड के आखिरी फ्रेम पर सच है
गुणवत्ता आश्वासन

द्वि-मैनुअल डेमो के लिए गुणवत्ता जांच सूची

सिंगल-आर्म डेटा की तुलना में द्वि-मैनुअल डेटासेट में गुणवत्ता की सख्त आवश्यकताएं होती हैं। हथियारों के बीच ख़राब समन्वय 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

गहरे जाना: पूरा पढ़ें डेटा संग्रहण पाइपलाइन अवलोकन एपिसोड संरचना, डेटासेट संस्करण, सिंक्रोनाइज़ेशन रणनीतियों और बहु-कार्य द्वि-मैनुअल डेटासेट संरचना के संपूर्ण उपचार के लिए रोबोटिक्स लाइब्रेरी में।

डेटासेट तैयार है? प्रशिक्षण प्रारंभ करें.

अपने द्वि-मैन्युअल डेटासेट को हगिंगफेस पर पुश करें और ACT का प्रशिक्षण शुरू करें।