LeRobot documentation

OpenArm

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

OpenArm

OpenArm هي ذراع إنسانية مفتوحة المصدر ذات سبع درجات حرية، مصممة لأبحاث ونشر الذكاء الاصطناعي المادي.

للحصول على OpenArm، سواءً كانت مجمّعة أو مبنية يدوياً، والانضمام إلى المجتمع العالمي، تصفّح المصنّعين المعتمدين والموثوقين حول العالم على openarm.dev.

ما الذي يميزه؟

  • التصميم بمقياس بشري: صُمم OpenArm بنسب تشبه الإنسان، مُصغَّرًا ليناسب شخصًا طوله حوالي 160-165 سم. وهذا يوفر توازنًا مثاليًا بين مدى عملي وإعجاز قابل للإدارة، لضمان تشغيل آمن وسريع الاستجابة.

  • بنية تضع السلامة في المقام الأول: صُمم OpenArm بمحركات قابلة للتشغيل العكسي من نوع QDD وبمرونة عالية، مما يجعله يولي الأولوية للتفاعل الآمن بين الإنسان والروبوت مع الحفاظ على قدرات حمل عملية (6.0 كجم ذروة / 4.1 كجم اسمي) للقيام بمهام حقيقية.

  • مصمَّم ليدوم: تُستخدم في المكونات الهيكلية الحرجة مواد من الألومنيوم والفولاذ المقاوم للصدأ، مما يضمن أداءً متينًا لجمع البيانات المتكرر والاستخدام المستمر في البحث.

  • قابلة للوصول والبناء بالكامل: كل مكوّن، من الأجزاء المصنوعة بتقنية CNC والأغلفة المطبوعة بتقنية الطباعة ثلاثية الأبعاد إلى الأسلاك الكهربائية، مصمّم ليكون قابلاً للشراء والبناء من قبل الباحثين الأفراد والمختبرات، مع توفير بيانات التصنيع الكاملة.

  • عملي وبأسعار معقولة: مقابل 6500 دولار أمريكي لنظام ثنائي اليد كامل، يوفر OpenArm قدرات بمستوى البحث العلمي بتكلفة أقل بكثير من تكلفة روبوتات humanoid التقليدية.

متطلبات المنصة

**Linux Only**: OpenArm currently only works on Linux. The CAN bus USB adapter does not have macOS drivers and has not been tested on Windows.

دليل السلامة

قبل تشغيل OpenArm، يرجى قراءة دليل السلامة الرسمي. النقاط الرئيسية:

  • تثبيت آمن: ثبّت الذراع على سطح مستوٍ وثابت باستخدام براغي أو مشابك
  • المسافة الآمنة: إبقاء أجزاء الجسم والأجسام خارج نطاق الحركة أثناء التشغيل
  • معدات الحماية: ارتدِ دائمًا نظارات السلامة؛ واستخدم معدات الحماية الشخصية الإضافية عند الحاجة
  • حدود الحمولة: لا تتجاوز حدود الحمولة المحددة (6.0 كجم ذروة / 4.1 كجم اسمي لكل ذراع)
  • التوقف الطارئ: معرفة موقع جهاز التوقف الطارئ وطريقة تشغيله
  • الفحص الدوري: تحقق من براغي مفكوكة، حدود ميكانيكية تالفة، أصوات غير طبيعية، وأضرار في الأسلاك

إعداد العتاد

اتبع وثائق OpenArm المادية الرسمية من أجل:

  • قائمة المواد والمصادر
  • تعليمات الطباعة ثلاثية الأبعاد
  • التجميع الميكانيكي
  • التوصيلات الكهربائية

تتوفر مستودعات العتاد على github.com/enactic/openarm.

إعداد حافلة CAN

OpenArm uses CAN bus communication with Damiao motors. Once you have the CAN bus USB adapter plugged into your Linux PC, follow the Damiao Motors and CAN Bus guide to configure the interface.

الإعداد السريع:

# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1

# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1

تثبيت LeRobot 🤗

اتبع دليل التثبيت، ثم ثبّت دعم محرك Damiao:

pip install -e ".[damiao]"

الاستخدام

ذراع المتابعة (روبوت)

أمر
مثال على واجهة برمجة التطبيقات
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

ذراع القائد (مشغّل عن بُعد)

تُستخدم الذراع القائدة للتشغيل عن بُعد - أي تحريكها يدويًا للتحكم في الذراع المتتبعة.

أمر
مثال على واجهة برمجة التطبيقات
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

التشغيل عن بُعد

للتحكم في OpenArm عن بُعد باستخدام التحكم بالمتزعم والمتبوع:

lerobot-teleoperate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

استخدم نفس --robot.id و--teleop.id كما في مرحلة المعايرة، حتى يجد LeRobot ملفات المعايرة.

التشغيل عن بُعد بإيد

للتحكم عن بُعد في إعداد OpenArm ثنائي الذراع باستخدام ذراعين قائدتين وذراعين تابعتين:

lerobot-teleoperate \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can0 \
    --robot.left_arm_config.side=left \
    --robot.right_arm_config.port=can1 \
    --robot.right_arm_config.side=right \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can2 \
    --teleop.right_arm_config.port=can3 \
    --teleop.id=my_bimanual_leader

تسجيل البيانات

لتسجيل مجموعة بيانات أثناء التشغيل عن بُعد:

lerobot-record \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader \
    --dataset.repo_id=${HF_USER}/my_openarm_dataset \
    --dataset.single_task="Describe your task here" \
    --dataset.fps=30 \
    --dataset.num_episodes=10

lerobot-record يضيف تاريخ الجلسة ووقتها إلى اسم مجموعة البيانات، لذا تُحفظ باسم my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS. راجع دليل التسجيل للكاميرات والتحكم بلوحة المفاتيح وباقي سير العمل.

خيارات التهيئة

إعدادات المتابع

معاملافتراضيالوصف
port-واجهة CAN (مثل can0)
sideNoneالجهة: "left"، "right"، أو None للحدود المخصصة
use_can_fdTrueتفعيل CAN FD لمعدلات بيانات أعلى
can_bitrate1000000معدل البت الاسمي (1 ميغابت في الثانية)
can_data_bitrate5000000معدل بيانات CAN FD (5 ميغابت/ثانية)
max_relative_targetNoneحد الأمان للمواقع النسبية للأهداف
position_kpلكل مفصلكسب التناسب للتحكم في الموضع
position_kdلكل مفصلمكاسب مشتقة التحكم في الموضع

إعدادات القائد

معاملافتراضيالوصف
port-واجهة CAN (مثل can1)
manual_controlTrueتعطيل العزم للحركة اليدوية
use_can_fdTrueتفعيل CAN FD لمعدلات بيانات أعلى
can_bitrate1000000معدل البت الاسمي (1 ميغابت في الثانية)
can_data_bitrate5000000معدل بيانات CAN FD (5 ميغابت/ثانية)

إعداد المحرك

يستخدم OpenArm محركات Damiao مع الإعداد الافتراضي التالي:

مفصلينوع المحركإرسال المعرّفمعرف الاستلام
joint_1 (تدوير الكتف)DM80090x010x11
joint_2 (رفع الكتف)DM80090x020x12
joint_3 (دوران الكتف)DM43400x030x13
joint_4 (ثني المرفق)DM43400x040x14
joint_5 (دوران المعصم)DM43100x050x15
joint_6 (انحناء المعصم)DM43100x060x16
joint_7 (دوران المعصم)DM43100x070x17
gripperDM43100x080x18

استكشاف الأخطاء وإصلاحها

لا توجد استجابة من المحركات

  1. تحقق من توصيلات مصدر الطاقة
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. تشغيل التشخيصات: lerobot-setup-can --mode=test --interfaces=can0
  4. راجع دليل استكشاف أخطاء Damiao لمزيد من التفاصيل

لم يتم العثور على واجهة CAN

تأكد من إعداد واجهة CAN:

ip link show can0

الموارد

Update on GitHub