دليل الإعداد SO-101
من الأجزاء إلى جمع البيانات الأولى. الوقت المقدر: ~ 3-4 ساعات (بدون احتساب وقت الطباعة ثلاثية الأبعاد).
حَشد
~60 دقيقة + وقت الطباعةSO-101 هو ذراع مفتوح المصدر بالكامل. جميع الأجزاء إما مطبوعة بتقنية ثلاثية الأبعاد أو متوفرة كأجهزة جاهزة مدرجة في LeRobot BOM على HuggingFace.
الأجزاء التي تحتاجها
- 6 × محركات مؤازرة Feetech STS3215
- الأجزاء الهيكلية المطبوعة ثلاثية الأبعاد (ملفات STL في SO-101 GitHub repo)
- كبل محول USB إلى تسلسلي (شريحة CH340 أو CP2102)
- مصدر طاقة 12 فولت (3 أمبير كحد أدنى)
- الكابلات المؤازرة وأجهزة الموصل (لكل قائمة مكونات الصنف)
قائمة مراجعة التجميع
- طباعة جميع المكونات الهيكلية (القاعدة، الروابط، المؤثر النهائي)
- قم بتثبيت ماكينات STS3215 في مبيتات الارتباط الخاصة بها
- قم بتوجيه كابلات المؤازرة عبر قنوات الكابل المطبوعة
- أجهزة سلسلة ديزي بالترتيب الصحيح (المعرفات 1-6 من القاعدة إلى الطرف)
- قم بتثبيت القاعدة على سطح ثابت قبل تشغيلها
- اقرأ صفحة السلامة قبل تطبيق السلطة
طباعة ثلاثية الأبعاد للأجزاء
~8-16 ساعة وقت الطباعةجميع المكونات الهيكلية لـ SO-101 قابلة للطباعة باستخدام FDM باستخدام طابعات سطح المكتب القياسية. يتم تنظيم ملفات STL في مطبوعات ملف واحد لكل ذراع، مما يجعل عملية التقطيع سهلة.
إعدادات القطاعة الموصى بها
ملفات STL - التي تريد طباعتها
تتوفر مطبوعات ملف فردي تم ترتيبها مسبقًا لأحجام الأسرّة الشائعة:
- سرير 220×220 مم (الطرف 3):
- المتابع:
STL/SO101/Follower/Ender_Follower_SO101.stl - قائد:
STL/SO101/Leader/Ender_Leader_SO101.stl
- المتابع:
- سرير 205×250 مم (Prusa / UP):
- المتابع:
STL/SO101/Follower/Prusa_Follower_SO101.stl - قائد:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- المتابع:
STL/Gauges/ واختبرها مقابل لبنة Lego أو STS3215. يؤكد التوافق الصحيح للمقياس على دقة معايرة الطابعة. اضبط القياس إذا لزم الأمر قبل الالتزام بالطباعة الكاملة.
تثبيت البرامج
~15 دقيقةيتم دعم SO-101 أصلاً بواسطة HuggingFace LeRobot. ليست هناك حاجة إلى مكون إضافي إضافي — فقط قم بتثبيت LeRobot.
تثبيت ليروبوت
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
أذونات المنفذ التسلسلي لنظام التشغيل Linux
على Linux، المنافذ التسلسلية تحت /dev/ttyACM* تتطلب أن يكون المستخدم في dialout مجموعة. قم بتشغيل هذا مرة واحدة وقم بتسجيل الخروج ثم الدخول مرة أخرى:
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
المتطلبات الأساسية
- بايثون 3.10+
- Linux (يوصى باستخدام Ubuntu 22.04) أو macOS
- تم تثبيت برنامج تشغيل USB إلى تسلسلي (برنامج تشغيل CH340 على نظام التشغيل macOS؛ وعادةً ما يكون مثبتًا مسبقًا على نظام التشغيل Linux)
كشف المنفذ والمعايرة
~20 دقيقةابحث عن منفذ USB التسلسلي الصحيح للذراع، ثم قم بتشغيل البرنامج النصي لمعايرة LeRobot لتعيين مواضع المؤازرة الصفرية.
ابحث عن المنفذ التسلسلي
python lerobot/scripts/find_motors_bus_port.py
قم بتوصيل وفصل كابل USB عند المطالبة بذلك. يحدد البرنامج النصي المنفذ الذي يتصل به الذراع. القيم النموذجية:
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
تشغيل المعايرة
حرك الذراع خلال نطاق حركته الكامل عندما يُطلب منك ذلك:
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
اختبار الحركة الأولى
~15 دقيقةقم بتشغيل البرنامج النصي للتشغيل عن بعد في وضع الذراع الواحدة للتحقق من استجابة جميع المفاصل بشكل صحيح قبل توصيل ذراع القائد.
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
ما للتحقق
- جميع المفاصل الستة تستجيب للأوامر دون تخطيها
- لا يوجد كشك مؤازر أو تحذيرات من التحميل الزائد في المحطة
- يفتح القابض ويغلق من خلال النطاق الكامل
- لا يوجد تمزق للكابل في أي موضع مشترك
التشغيل عن بعد
~ 30 دقيقةيعمل SO-101 كذراع مستقل أو كذراع تابع مع ذراع قائد للتشغيل عن بعد. يؤدي استخدام الذراع الثانية كقائد إلى إنتاج عروض توضيحية عالية الجودة للتعلم بالتقليد.
الوضع المستقل (لوحة المفاتيح / البرنامجي)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
مع ذراع قائد (على سبيل المثال قائد DK1)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
جمع البيانات
مستمرتسجيل المظاهرات باستخدام record.py. يتم حفظ البيانات بتنسيق LeRobot ويمكن دفعها مباشرة إلى HuggingFace Hub للتدريب.
التسجيل الأساسي
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
مع كاميرا USB
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
تسجيل أفضل الممارسات
- قم بتسجيل ما لا يقل عن 50 عرضًا توضيحيًا لكل مهمة قبل التدريب
- تختلف مواضع الكائنات واتجاهاتها عبر الحلقات
- استخدام وصفي
--dataset.taskأسماء للتصفية في وقت لاحق - تعمل كاميرات OAK-D أو Intel RealSense بشكل جيد لجمع البيانات ذات العمق
- تحقق من تحميلات مجموعة البيانات إلى HuggingFace Hub بعد كل جلسة
الخطوات التالية
بمجرد الانتهاء من جمع البيانات، قم بتدريب نموذج ACT أو سياسة النشر باستخدام نصوص تدريب LeRobot. قراءة كاملة مسار التعلم SO-101 للتقدم المنظم من الإعداد إلى نشر النموذج.