دليل إعداد DK1
من فتح العلبة إلى جمع البيانات يدويًا. الوقت المقدر: ~ 2 ساعة.
فتح العلبة والتجميع
~ 30 دقيقةقم بإخراج كلا الذراعين بعناية وتأكد من وجود جميع المكونات قبل تشغيل أي شيء.
ماذا يوجد في الصندوق
قائمة مراجعة التجميع
- قم بتركيب كلا الذراعين بشكل آمن على سطح الطاولة باستخدام الأجهزة المتوفرة
- افحص جميع التوصيلات المؤازرة على السلسلة الرائدة (Dynamixel XL330).
- افحص جميع التوصيلات المؤازرة على المتابع (قاعدة DM4340، المعصم/المقبض DM4310)
- قم بتوجيه كبلات USB بشكل نظيف بعيدًا عن مسارات السفر المشتركة
- التحقق من أن آليات القابض تفتح وتغلق بحرية باليد (إيقاف التشغيل)
- اقرأ صفحة السلامة قبل تطبيق السلطة
إعداد البرنامج / تثبيت LeRobot
~ 30 دقيقةيتكامل DK1 مع LeRobot باعتباره مكونًا إضافيًا للأجهزة من الدرجة الأولى. قم بتثبيته جنبًا إلى جنب مع بيئة LeRobot الموجودة لديك.
المتطلبات الأساسية
- بايثون 3.10+ مع
uvمدير الحزم - تم تثبيت LeRobot في بيئة Python الخاصة بك
- 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 متاحة تلقائيًا لأي LeRobot CLI في نفس بيئة Python. لا حاجة للتسجيل اليدوي. ال GIT_LFS_SKIP_SMUDGE=1 تكون العلامة مطلوبة لأنه يتم سحب LeRobot باعتباره تبعية ويقوم بتخزين أصول كبيرة عبر Git LFS - يؤدي تخطي smudge إلى تجنب تنزيلها أثناء التثبيت.
أذونات المنفذ التسلسلي لنظام التشغيل Linux
على Linux، المنافذ التسلسلية تحت /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 عرضًا توضيحيًا لكل مهمة قبل التدريب
- تختلف مواضع الكائنات واتجاهاتها عبر الحلقات
- حافظ على ثبات تعرض الكاميرا بين الجلسات
- تحقق من تحميلات مجموعة البيانات إلى Hugging Face Hub بعد كل جلسة
- استخدام وصفي
--dataset.taskأسماء للتصفية في وقت لاحق
الخطوات التالية
بمجرد الانتهاء من جمع البيانات، قم بتدريب نموذج ACT أو سياسة النشر باستخدام نصوص تدريب LeRobot. انظر DK1 ويكي لخيارات تكامل النظام الأساسي.