ما سوف تنجزه
في نهاية هذه الوحدة، سيكون لديك بيئة Python افتراضية مع تثبيت OpenArm SDK، وسيؤدي تشغيل برنامج نصي اختباري مكون من 5 أسطر إلى العودة True من arm.ping(). يعني هذا التأكيد أن كود بايثون الخاص بك يحتوي على قناة اتصال مباشرة للذراع، وهو الأساس الذي يبني عليه كل شيء في الوحدات 3-6.
وثائق التثبيت والتكوين الكاملة لـ SDK موجودة على الأجهزة/الذراع المفتوح/البرمجيات. تقوم هذه الوحدة بإطارات المعالجة مع السياق الذي تحتاجه وتغطي أوضاع الفشل الأكثر شيوعًا.
قم بتثبيت SDK
العمل من خلال دليل إعداد البرمجيات لتثبيت SDK الكامل. النسخة القصيرة:
يستغرق التثبيت من 5 إلى 15 دقيقة حسب اتصالك بالإنترنت. ال torch و lerobot الحزم كبيرة ولكنك ستحتاج إليها في الوحدتين 4 و5، لذا قم بتثبيتها الآن.
اختبار اتصال بايثون السريع
مع تشغيل ROS 2 (من الوحدة 1) وتنشيط بيئتك الافتراضية، قم بإجراء هذا الاختبار. إنها أسرع طريقة للتأكد من أن مجموعتك الكاملة تعمل من البداية إلى النهاية:
لو arm.ping() يعود True و arm.get_joints() تقوم بإرجاع الزوايا المشتركة الحالية، لقد انتهيت. انتقل إلى قسم استكشاف الأخطاء وإصلاحها فقط إذا رأيت أخطاء.
استكشاف الأخطاء وإصلاحها: أخطاء الاتصال الثلاثة الأكثر شيوعًا
الخطأ 1: ConnectionRefusedError أو تشغيل المهلة OpenArm()
ROS 2 لا يعمل أو أن خادم الإجراء لم يبدأ بعد. تحقق من ذلك ros2 node list يظهر /openarm_controller. إذا لم يكن الأمر كذلك، فارجع إلى محطة ROS 2 الخاصة بك وتأكد من اكتمال الإطلاق دون أخطاء. سبب فرعي شائع: لقد نسيت تحديد مصدر مساحة العمل الخاصة بك قبل التشغيل - راجع الوحدة 1، الخطوة الحاسمة 2.
الخطأ 2: can0: Network is down في محطة ROS 2
تم إسقاط واجهة المقبس. يحدث هذا إذا قمت بفصل محول USB-CAN وإعادة توصيله دون إعادة تشغيل الجهاز ip link set يأمر. يجري sudo ip link set can0 up type can bitrate 1000000، ثم أعد تشغيل تشغيل ROS 2. أضف هذا الأمر إلى البرنامج النصي لبدء التشغيل بحيث يتم تشغيله تلقائيًا عند التمهيد: sudo nano /etc/network/interfaces.d/can0.
الخطأ 3: arm.get_joints() تقوم بإرجاع جميع الأصفار حتى عندما لا يتم وضع الذراع
وهذا ليس خطأ، بل يعني الذراع يكون الإبلاغ عن حالتها المشتركة، ولكن المعايرة قد لا تكون كاملة. إذا كانت ذراعك فعليًا في وضع الصفر، فإن الأصفار صحيحة. إذا كان ذراعك بزاوية مختلفة ولكن لا يزال يُبلغ عن الأصفار، فأعد تشغيل المعايرة من واجهة مستخدم الويب (الوحدة 1، الخطوة الحاسمة 4). تحتاج أجهزة التشفير المشتركة إلى تسلسل صاروخ موجه لتحديد الموضع المطلق.
اكتملت الوحدة الثانية عندما...
arm.ping() يعود True في محطة بايثون الخاصة بك. يعمل البرنامج النصي للاختبار بدون أخطاء من البداية إلى النهاية. يمكنك رؤية تغير قيم زاوية المفصل في الوقت الفعلي عندما تقوم بتحريك الذراع فعليًا أثناء ذلك arm.get_joints() يتم الاستقصاء في حلقة. أنت جاهز للوحدة 3.