DK1 सेटअप गाइड
अनबॉक्सिंग से लेकर द्वि-मैन्युअल डेटा संग्रह तक। अनुमानित समय: ~2 घंटे.
अनबॉक्सिंग और असेंबली
~30 मिनटकिसी भी चीज़ को चालू करने से पहले दोनों भुजाओं को सावधानीपूर्वक अनबॉक्स करें और सत्यापित करें कि सभी घटक मौजूद हैं।
डिब्बे में क्या है
असेंबली चेकलिस्ट
- दिए गए हार्डवेयर का उपयोग करके दोनों भुजाओं को टेबलटॉप पर सुरक्षित रूप से माउंट करें
- लीडर (डायनामिक्सल XL330) श्रृंखला पर सभी सर्वो कनेक्शन का निरीक्षण करें
- फॉलोअर पर सभी सर्वो कनेक्शन का निरीक्षण करें (DM4340 बेस, DM4310 कलाई/ग्रिपर)
- यूएसबी केबलों को संयुक्त यात्रा पथों से साफ़-साफ़ दूर रखें
- सत्यापित करें कि ग्रिपर तंत्र हाथ से स्वतंत्र रूप से खुलता और बंद होता है (बिजली बंद)
- को पढ़िए सुरक्षा पृष्ठ शक्ति लगाने से पहले
सॉफ़्टवेयर सेटअप/लेरोबोट इंस्टाल
~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
पोर्ट डिटेक्शन एवं कैलिब्रेशन
~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
पहला टेलीऑपरेशन सत्र
~30 मिनटद्वि-मैन्युअल मोड में जाने से पहले लीडर-फॉलोअर ट्रैकिंग को सत्यापित करने के लिए सिंगल-आर्म टेलीऑपरेशन सत्र से शुरुआत करें।
सिंगल-आर्म टेलीऑपरेशन
uv run lerobot-teleoperate \
--robot.type=dk1_follower \
--robot.port=/dev/ttyACM0 \
--teleop.type=dk1_leader \
--teleop.port=/dev/ttyACM2
क्या सत्यापित करें?
- फॉलोअर आर्म लीडर आर्म मूवमेंट को सुचारू रूप से ट्रैक करता है
- किसी भी जोड़ में कोई सर्वो त्रुटि या रुकावट नहीं
- लीडर ग्रिपर के जवाब में ग्रिपर खुलता और बंद होता है
- गति की पूरी श्रृंखला में कोई केबल नहीं फंसती
एक बार जब सिंगल-आर्म टेलीऑपरेशन सही ढंग से काम कर रहा हो, तो द्वि-मैन्युअल मोड पर आगे बढ़ने से पहले दूसरे आर्म पेयर के साथ परीक्षण दोहराएं।
द्वि-मैन्युअल डेटा रिकॉर्डिंग
चल रहेउपयोग 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 विकी प्लेटफ़ॉर्म एकीकरण विकल्पों के लिए.