DK1 सेटअप गाइड

अनबॉक्सिंग से लेकर द्वि-मैन्युअल डेटा संग्रह तक। अनुमानित समय: ~2 घंटे.

1

अनबॉक्सिंग और असेंबली

~30 मिनट

किसी भी चीज़ को चालू करने से पहले दोनों भुजाओं को सावधानीपूर्वक अनबॉक्स करें और सत्यापित करें कि सभी घटक मौजूद हैं।

डिब्बे में क्या है

लीडर आर्म यूनिट
अनुयायी शाखा इकाई
यूएसबी केबल (द्वि-मैनुअल के लिए 2×)
टेबलटॉप माउंटिंग हार्डवेयर
बिजली अनुकूलक
त्वरित प्रारंभ कार्ड

असेंबली चेकलिस्ट

  • दिए गए हार्डवेयर का उपयोग करके दोनों भुजाओं को टेबलटॉप पर सुरक्षित रूप से माउंट करें
  • लीडर (डायनामिक्सल XL330) श्रृंखला पर सभी सर्वो कनेक्शन का निरीक्षण करें
  • फॉलोअर पर सभी सर्वो कनेक्शन का निरीक्षण करें (DM4340 बेस, DM4310 कलाई/ग्रिपर)
  • यूएसबी केबलों को संयुक्त यात्रा पथों से साफ़-साफ़ दूर रखें
  • सत्यापित करें कि ग्रिपर तंत्र हाथ से स्वतंत्र रूप से खुलता और बंद होता है (बिजली बंद)
  • को पढ़िए सुरक्षा पृष्ठ शक्ति लगाने से पहले
चालू करने से पहले सुनिश्चित करें कि दोनों भुजाएँ सुरक्षित रूप से लगी हुई हैं और कोई भी केबल संयुक्त यात्रा पथ को पार नहीं करता है। द्वि-मैन्युअल मोड का प्रयास करने से पहले सिंगल-आर्म ऑपरेशन का परीक्षण करें।
2

सॉफ़्टवेयर सेटअप/लेरोबोट इंस्टाल

~30 मिनट

DK1 प्रथम श्रेणी के हार्डवेयर प्लगइन के रूप में LeRobot के साथ एकीकृत होता है। इसे अपने मौजूदा LeRobot परिवेश के साथ स्थापित करें।

आवश्यक शर्तें

  • पायथन 3.10+ के साथ uv पैकेज प्रबंधक
  • आपके Python परिवेश में LeRobot स्थापित है
  • Linux (Ubuntu 22.04 अनुशंसित) या macOS

DK1 प्लगइन इंस्टॉल करें

# Clone the repo
git clone https://github.com/robot-learning-co/trlc-dk1.git
cd trlc-dk1

# Create a virtual environment
uv venv

# Install as LeRobot plugin (GIT_LFS_SKIP_SMUDGE=1 avoids downloading
# large LeRobot dependency assets during install)
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .

# Verify device types registered
python -c "from lerobot.common.robot_devices.robots.factory import make_robot; print('DK1 ready')"
प्लगइन डिटेक्शन कैसे काम करता है: बाद uv pip install -e ., डिवाइस प्रकार dk1_follower, dk1_leader, bi_dk1_follower, और bi_dk1_leader समान Python परिवेश में किसी भी LeRobot CLI के लिए स्वचालित रूप से उपलब्ध हैं। किसी मैन्युअल पंजीकरण की आवश्यकता नहीं है. GIT_LFS_SKIP_SMUDGE=1 फ़्लैग आवश्यक है क्योंकि LeRobot को एक निर्भरता के रूप में खींचा जाता है और Git LFS के माध्यम से बड़ी संपत्तियों को संग्रहीत करता है - स्मज स्किप करने से इंस्टॉल के दौरान उन्हें डाउनलोड करने से बचा जाता है।

लिनक्स सीरियल पोर्ट अनुमतियाँ

लिनक्स पर, सीरियल पोर्ट के अंतर्गत /dev/ttyACM* उपयोगकर्ता को इसमें शामिल होना आवश्यक है dialout समूह। इसे एक बार चलाएँ और फिर लॉग आउट करें और वापस इन करें:

sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
3

पोर्ट डिटेक्शन एवं कैलिब्रेशन

~20 मिनट

प्रत्येक आर्म किस USB सीरियल पोर्ट से जुड़ा है, इसकी पहचान करने के लिए बिल्ट-इन पोर्ट फाइंडर का उपयोग करें, फिर प्रत्येक आर्म के लिए कैलिब्रेशन चलाएँ।

स्वचालित रूप से पोर्ट ढूंढें

# Plug in one USB cable at a time to identify each arm's port
uv run lerobot-find-port

द्वि-मैन्युअल सेटअप के लिए विशिष्ट पोर्ट असाइनमेंट:

# Leader right arm:   /dev/ttyACM0
# Leader left arm:   /dev/ttyACM1
# Follower right:    /dev/ttyACM2
# Follower left:     /dev/ttyACM3

# On macOS these appear as /dev/tty.usbmodem* instead

प्रत्येक भुजा को कैलिब्रेट करें

प्रत्येक भुजा के लिए अलग-अलग अंशांकन चलाएँ। संकेत मिलने पर हाथ को उसकी पूरी सीमा तक घुमाएँ:

# Calibrate follower right arm
uv run lerobot-calibrate \
  --robot.type=dk1_follower \
  --robot.port=/dev/ttyACM0

# Calibrate follower left arm
uv run lerobot-calibrate \
  --robot.type=dk1_follower \
  --robot.port=/dev/ttyACM1

# Calibrate leader right arm
uv run lerobot-calibrate \
  --robot.type=dk1_leader \
  --robot.port=/dev/ttyACM2

# Calibrate leader left arm
uv run lerobot-calibrate \
  --robot.type=dk1_leader \
  --robot.port=/dev/ttyACM3
टकराव के बाद पुन: अंशांकन करें: सटीक संयुक्त शून्य स्थिति सुनिश्चित करने के लिए किसी भी अप्रत्याशित रुकने या टकराव के बाद फिर से अंशांकन चलाएँ।
4

पहला टेलीऑपरेशन सत्र

~30 मिनट

द्वि-मैन्युअल मोड में जाने से पहले लीडर-फॉलोअर ट्रैकिंग को सत्यापित करने के लिए सिंगल-आर्म टेलीऑपरेशन सत्र से शुरुआत करें।

सिंगल-आर्म टेलीऑपरेशन

uv run lerobot-teleoperate \
  --robot.type=dk1_follower \
  --robot.port=/dev/ttyACM0 \
  --teleop.type=dk1_leader \
  --teleop.port=/dev/ttyACM2

क्या सत्यापित करें?

  • फॉलोअर आर्म लीडर आर्म मूवमेंट को सुचारू रूप से ट्रैक करता है
  • किसी भी जोड़ में कोई सर्वो त्रुटि या रुकावट नहीं
  • लीडर ग्रिपर के जवाब में ग्रिपर खुलता और बंद होता है
  • गति की पूरी श्रृंखला में कोई केबल नहीं फंसती
आपातकालीन रोक बांह से संचार तुरंत काटने के लिए यूएसबी केबल को डिस्कनेक्ट करें। संचालित संचालन के दौरान हाथों को कार्यस्थल से दूर रखें।

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

5

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

चल रहे

उपयोग lerobot-record साथ bi_dk1_follower और bi_dk1_leader समकालिक द्वि-मैनुअल प्रदर्शन एकत्र करने के लिए डिवाइस प्रकार।

पूर्ण द्वि-मैन्युअल रिकॉर्डिंग कमांड

नीचे दिया गया कमांड दो लीडर आर्म्स को दो फॉलोअर आर्म्स से जोड़ता है और हेड और कलाई कैमरा स्ट्रीम के साथ सिंक्रोनाइज़्ड एपिसोड रिकॉर्ड करता है:

lerobot-record \
  --robot.type=bi_dk1_follower \
  --robot.right_arm_port=/dev/ttyACM0 \
  --robot.left_arm_port=/dev/ttyACM1 \
  --robot.joint_velocity_scaling=1.0 \
  --teleop.type=bi_dk1_leader \
  --teleop.right_arm_port=/dev/ttyACM2 \
  --teleop.left_arm_port=/dev/ttyACM3 \
  --robot.cameras="{
      head:        {type: opencv, index_or_path: /dev/video0, width: 960, height: 540, fps: 60, fourcc: MJPG},
      right_wrist: {type: opencv, index_or_path: /dev/video2, width: 960, height: 540, fps: 60, rotation: 180, fourcc: MJPG},
      left_wrist:  {type: opencv, index_or_path: /dev/video4, width: 960, height: 540, fps: 60, rotation: 180, fourcc: MJPG}
  }" \
  --dataset.repo_id=$USER/my_bimanual_dataset \
  --dataset.push_to_hub=false \
  --dataset.num_episodes=10 \
  --dataset.episode_time_s=30 \
  --dataset.reset_time_s=20 \
  --dataset.single_task="Bimanual pick and place task."

रिकॉर्डिंग से पहले कैमरा इंडेक्स खोजने के लिए:

uv run lerobot-find-cameras

सर्वोत्तम प्रथाओं को रिकॉर्ड करना

  • प्रशिक्षण से पहले प्रति कार्य कम से कम 50 प्रदर्शन रिकॉर्ड करें
  • प्रत्येक एपिसोड में वस्तु की स्थिति और झुकाव अलग-अलग हों
  • सत्रों के बीच कैमरा एक्सपोज़र को लगातार बनाए रखें
  • प्रत्येक सत्र के बाद हगिंग फेस हब पर अपलोड किए गए डेटासेट को सत्यापित करें
  • वर्णनात्मक प्रयोग करें --dataset.task बाद में फ़िल्टर करने के लिए नाम

अगले कदम

एक बार जब आपके पास डेटा एकत्र हो जाए, तो LeRobot की प्रशिक्षण स्क्रिप्ट का उपयोग करके ACT या डिफ्यूजन पॉलिसी मॉडल को प्रशिक्षित करें। देखें डीके1 विकी प्लेटफ़ॉर्म एकीकरण विकल्पों के लिए.

सेटअप पूरा हो गया?

परिणाम साझा करने और उन्नत कॉन्फ़िगरेशन में सहायता प्राप्त करने के लिए समुदाय में शामिल हों।