مشروع التخرج
روبوت متنقل ذاتي مزوّد بذراع لينة
روبوت متنقل يحدد موقعه باستخدام علامات ArUco ويتعامل مع الأجسام بواسطة ذراع لينة (Soft Arm)، مبني على ROS2.
روبوتاتROS2تحديد الموقعروبوتات لينة
الأدوات
ROS2GazeboPythonOpenCVArUcoC++
المشكلة
الأذرع الصلبة دقيقة لكنها لا تسامح الخطأ: أي خطأ بسيط في تحديد الموقع يتحول إلى اصطدام أو سقوط الجسم، خصوصًا على قاعدة متحركة لا تكون ثابتة تمامًا عند الوصول. هدف هذا المشروع هو دمج قاعدة متحركة (AMR) مع ذراع لينة ومرنة، بحيث يُمتص خطأ التموضع بواسطة مرونة الذراع نفسها، مع الحاجة لدقة كافية في تحديد الموقع لمعرفة أين يجب أن تصل الذراع.
المنهجية
النظام مقسم إلى ثلاثة أنظمة فرعية على ROS2 تتواصل عبر topics/actions قياسية:
- الإدراك وتحديد الموقع — كاميرا على الروبوت تكتشف علامات ArUco على الهدف
ومحطة الرسو، ويُستخدم
solvePnPمن OpenCV لتقدير الوضعية، مع دمج ذلك مع قراءات العجلات (odometry) للحصول على تقدير موقع موثوق حتى عند اختفاء العلامة للحظات. - الملاحة — يستخدم الروبوت حزمة الملاحة في ROS2 (خرائط تكلفة + مخطط محلي) للوصول إلى موضع قريب من العلامة، ثم ينتقل لمرحلة تقارب نهائي موجّه بصريًا للسنتيمترات الأخيرة حيث يكون خطأ التموضع التراكمي أكثر تأثيرًا.
- المعالجة والإمساك — مرونة الذراع اللينة هي ما يجعل الخطوة الأخيرة متسامحة: بدلاً من حساب موضع نهائي بدقة الميليمتر، يكفي أن يقترب المتحكم بما فيه الكفاية، وتتكفل مرونة الذراع بالباقي أثناء التلامس.
النتائج
- خطأ تحديد الموقع في مرحلة التقارب النهائي:
[أضف القيمة بالسنتيمتر] - نسبة نجاح الإمساك والوضع عبر
[عدد]محاولة:[أضف النسبة] - زمن تنفيذ المهمة كاملة:
[أضف الزمن بالثواني]
ما الذي سأحسّنه لاحقًا
- استبدال تحديد الموقع بالعلامات بنموذج تعلّم لتقدير الوضعية دون الاعتماد على علامات مرجعية في البيئة.
- إضافة تغذية راجعة للقوة من الذراع اللينة بدلاً من الاعتماد فقط على مرونتها السلبية.