دليل إعداد يد Orca
أكمل المسار خطوة بخطوة بدءًا من فتح العلبة وحتى الإمساك الأول. خطط لمدة 3-4 ساعات إجمالاً في البناء الأول.
التجميع والتفتيش
قم بوضع جميع المكونات قبل البدء: وحدات الأصابع (5×)، وحامل راحة اليد/الرسغ، وأجهزة توجيه الأوتار، والمثبتات، وأي وحدات استشعار اختيارية لأطراف الأصابع.
- وحدات الاصبع: قم بتثبيت كل وحدة إصبع في إطار راحة اليد بالترتيب - الإبهام، السبابة، الأوسط، الحلقة، الصغير. تحقق من أن كل مفصل يتحرك بحرية قبل توجيه الأوتار.
- جبل المعصم: قم بتوصيل مجموعة راحة اليد بلوحة المعصم باستخدام المثبتات المتوفرة. تأكد من أن نمط الحافة يطابق ذراع الروبوت الخاص بك.
- توجيه الأوتار: قم بتوجيه كل وتر (واحد لكل إصبع) من بكرة المشغل عبر أدلة القناة. اترك 2-3 ملم من الارتخاء قبل الشد - فالشد الزائد في هذه المرحلة يسبب الربط.
- أجهزة الاستشعار اللمسية (اختيارية): في حالة تركيب أجهزة استشعار تعمل باللمس بأطراف الأصابع، ضعها في مبيتات أطراف الأصابع قبل إغلاق أغطية الأصابع. قم بتوجيه كابلات المستشعر مرة أخرى عبر جسم الإصبع إلى موصل راحة اليد.
تثبيت البرامج
ال orca_core حزمة Python هي التبعية الوحيدة للبرنامج، ولا توجد متطلبات ROS. يتواصل مع جميع محركات Feetech STS3215 الـ 17 عبر اتصال تسلسلي USB واحد بسرعة 3 ميجابت في الثانية باستخدام بروتوكول Dynamixel. مطلوب بايثون 3.9+.
الخيار أ – التثبيت عبر الشعر (مستحسن):
git clone https://github.com/orcahand/orca_core.git cd orca_core poetry install
الخيار ب – التثبيت عبر النقطة:
pip install orca_core
منح الوصول إلى منفذ USB التسلسلي على Linux:
# Add your user to the dialout group (requires logout/login to take effect) sudo usermod -aG dialout $USER # Or grant temporary access without logging out sudo chmod 666 /dev/ttyUSB0
/dev/tty.usbserial-FT4TFV01. يفتح orca_core/models/orcahand_v1/config.yaml وتحديث port الحقل قبل الاتصال، أو تمرير سلسلة المنفذ بشكل صريح عند الإنشاء OrcaHand().
الاتصال والتحقق:
from orca_core import OrcaHand hand = OrcaHand() status = hand.connect() print(status) # (True, 'Connection successful')
معايرة
تعمل المعايرة على دفع كل وصلة من الوصلات الـ 17 إلى نقطة توقفها الميكانيكية الصلبة عند حد تيار مخفض (450 وحدة خام) لإنشاء إزاحة صفرية لكل محرك. قم دائمًا بالمعايرة قبل إصدار أوامر الموضع - قد يؤدي تخطي هذه الخطوة إلى حدوث أخطاء كبيرة في الموضع أو حركة غير متوقعة.
from orca_core import OrcaHand hand = OrcaHand() hand.connect() # Drives all joints to hard stops at calib_current=450 to establish zero offsets hand.calibrate() # Calibration results are saved automatically to: # models/orcahand_v1/calibration.yaml
calibrate() تقوم الطريقة بشكل متكرر بتحريك كل مفصل نحو توقفه الثابت بزيادات قدرها 0.3 درجة (قابلة للتكوين عبر calib_step_size) ، يعلن عن وجود مفصل بعد 10 قراءات مستقرة متتالية ضمن 0.01 درجة (قابل للتكوين عبر calib_num_stable و calib_threshold)، ثم يحفظ الإزاحات إلى calibration.yaml. إعادة التشغيل فقط بعد تغييرات الأجهزة.
بعد المعايرة، حرك جميع الوصلات إلى الوضع المفتوح/الصفر:
# Command all 17 joints to 0° (open position)
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})
اختبار الفهم الأول
التحقق من السيطرة المشتركة باستخدام orca_core واجهة برمجة تطبيقات بايثون. قيادة المفاصل الفردية بالاسم - يقوم SDK بترجمة أسماء المفاصل إلى معرفات المحركات تلقائيًا عبر joint_to_motor_map في config.yaml.
from orca_core import OrcaHand
hand = OrcaHand()
hand.connect()
hand.calibrate()
# --- Read current joint positions (degrees) ---
positions = hand.get_joint_pos()
print(positions)
# e.g. {'thumb_mcp': 0.0, 'thumb_abd': 0.0, 'index_mcp': 0.0, ...}
# --- Make a fist: flex all MCP and PIP joints ---
hand.set_joint_pos({
"index_mcp": 90, "index_pip": 110,
"middle_mcp": 90, "middle_pip": 110,
"ring_mcp": 90, "ring_pip": 110,
"pinky_mcp": 90, "pinky_pip": 110,
"thumb_mcp": 30, "thumb_pip": 100,
})
# --- Open hand back to zero ---
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})
# --- Torque control ---
hand.enable_torque() # Enable torque on all motors
hand.disable_torque(motor_ids=[1, 2]) # Disable specific motors (by ID)
# --- Disconnect (disables torque, closes serial port) ---
hand.disconnect()
إذا لم يصل أي مفصل إلى الزاوية المطلوبة، فتحقق من توجيه الكابل وشد الوتر لهذا المحرك. يستخدم كل إصبع جهاز Feetech STS3215 المخصص؛ عادة ما يكون الربط مشكلة توجيه أو توتر، وليس مشكلة برمجية.
التكامل مع ذراع الروبوت
قم بتركيب يد Orca على ذراع الروبوت الخاص بك باستخدام محول شفة المعصم القياسي. تتوافق اليد مع OpenArm 101، ومعظم الأذرع مزودة بنمط شفة قياسي ISO 9283.
- قم بتوصيل لوحة المعصم بشفة المؤثر النهائي للذراع باستخدام مسامير M4 بالنمط المقدم.
- قم بتوجيه الإشارة وكابلات الطاقة على طول هيكل الذراع، ويتم تثبيتها برباطات كابل لمنع التمزق أثناء الحركة.
- في مساحة عمل ROS2 بذراعك، أضف Orca Hand كعقدة مؤثر نهائي وقم بتشغيل كل من وحدات التحكم في الذراع واليد معًا.
للحصول على شرح تفصيلي كامل لسير عمل أبحاث التلاعب الماهر باستخدام Orca Hand، راجع دليل أبحاث SVRC.