مشروع Webots

تحتوي هذه الصفحة على تفاصيل مشروع كتابة تقنيّة تم قبوله في موسم المستندات من Google.

ملخص المشروع

المؤسسة المفتوحة المصدر:
برامج الروبوت
الكاتب التقني:
قناة خدعة ناعمة
اسم المشروع:
سلسلة فيديوهات تعليمية عن Webots (الدمج مع ROS2)
مدة المشروع:
المدة العادية (3 أشهر)

وصف المشروع

الدروس المستفادة:

ستتيح سلسلة الفيديوهات التعليمية هذه للمستخدمين الجدد الاستفادة إلى أقصى حدّ ممكن من برامج Webbot، كما تقدّم للمشاهدين حلولاً واضحة ومفصّلة خطوة بخطوة لتنفيذ عمليات محاكاة محدّدة.

الهدف:

في نهاية هذه السلسلة، سيتمكّن المشاهدون من إنشاء عقد ROS2 أساسي والتفاعل مع برامج Webbot وسيتمكّنون من العمل على المشاريع المتقدمة في برامج الروبوت على الأجهزة الجوّالة. تقدم سلسلة الفيديوهات هذه أيضًا تفسيرات نظرية جيدة للعديد من المفاهيم الحيوية في مجال الروبوتات.

تفاصيل سلسلة الفيديوهات:

  1. تثبيت ROS 2 وإعداد مستودع في Visual Studio Code. يتضمن ذلك تثبيت ROS2 بحكمة وأساسيات عمله. ثانيًا، سيتضمن أيضًا إعداد مساحة عمل ROS على التعليمات البرمجية VS ووظائف علامات التبويب الأساسية في رمز VS.

  2. مثال على ROS2 الأساسي وWebots. سيتم استخدام بعض الأمثلة على Webots ROS2 لجذب المشاهدين لفهم العجائب التي يمكن تنفيذها إذا استخدمنا ROS2 مع Webots للمحاكاة. سيتضمن هذا أيضًا نظريات الاتصال الأساسية بين ROS2 وWebots.

  3. استخدام خدمات ROS2 للتفاعل مع Webots. تدريس أساسيات خدمة ROS التي توضّح الفرق بين الخدمات في ROS وROS2. ثانيًا، يتم عرض دروس تعليمية تدريجية لطلب خدمات الاتصال وتفعيل موضوع أجهزة الاستشعار للقراءات والمشغّلات للحركة.

  4. يمكنك التحكّم في الروبوت المخصّص باستخدام ROS2 Publisher. التعرّف على كيفية نشر الرسائل على Webots باستخدام ناشرين من خلال ROS2 يمكننا تنفيذ مثال للتحكم في حركة الروبوت عن طريق نشر مخرجات لوحة المفاتيح على موضوع يمكن استخدامه بعد ذلك بواسطة خدمات ROS للحركة في Webots.

  5. يمكنك الحصول على ملاحظات من الروبوت من خلال "المشترِك في ROS2". سنسجّل في هذا الفيديو قراءات جهاز استشعار المسافة ونوقف الروبوت إذا كان على وشك التصادم. لذلك سيكون هذا في الأساس عقدة لتجنُّب العوائق مع الرسائل التفاعلية التي يتم نشرها.

  6. برامج الروبوت الرئيسية(الناشر) Slave(المشترِك) مع ROS2 في هذا الفيديو، سنتحكم في روبوت واحد باستخدام لوحة مفاتيح ونجعل روبوت آخر يهرب من الروبوت اليدوي. على غرار سيناريو فيلمَي Thief and Cops :) [يتضمّن هذا الفيديو تسلسلاً لـ 3,4,5 فيديوهات]. سيمكّن ذلك المشاهدين من اختبار التواصل والاطّلاع على عيوب في المحاكاة إذا كانت هناك مشكلة في ROS.

  7. جارٍ إعداد Rviz (يعرض مخرجات مختلفة للمستشعر). في هذا الفيديو، سنضيف بعض أدوات الاستشعار الأخرى وننشر بياناتها على Rviz. في نهاية هذا الفيديو، سيتمكن المشاهد من إعداد Rviz (أي إضافة أدوات استشعار مثل Lidar والكاميرا وغير ذلك للتمثيل المرئي)، وحفظ الإعدادات وإنشاء الإعدادات المحفوظة في المرة القادمة.

  8. فيديو تصحيح الأخطاء (Rostopic echo, Rostopic info, RQT_graph). سيتضمّن هذا الفيديو وظائف غير صحيحة بشكل متعمّد لبعض المواضيع للمساعدة في فهم أسلوب تصحيح الأخطاء. سنتابع عملية عرض الرسم البياني RQT ومعرفة المواضيع المسؤولة عن المشكلة. يمكنك استخدام ميزة ارتداد rostopic لمعرفة ما إذا كان يتم نشر الموضوع، وفي النهاية التحقُّق من معلومات المجموعة لمعرفة ما إذا كانت المشكلة قد تم حلّها. حلّ المشكلة وتكون ذات وظائف طبيعية.

  9. فيديو تصحيح الأخطاء(rqt_console, rqt_gui) في هذا الفيديو، سيتم استخدام رسائل Ros(المعلومات وتصحيح الأخطاء والخطأ وما إلى ذلك) في العقدة، وسيتم استكشاف استخدام rqt_console. سيتم أيضًا توسيع هذا الفيديو لاستخدام rqt_gui لنشر رسائل وهمية للحصول على الوظائف المطلوبة. يمكن أن يكون هذا حلاً بديلاً لإصلاح بعض الأخطاء.

  10. فيديوهات تتناول مواضيع متقدّمة: حول دمج مكتبة SLAM في بيئة غير معروفة (صندوق أدوات SLAM أو LaMa) [الجزء 1] سيبدأ هذا الفيديو بالنظرية الأساسية لمشكلات اتفاقية مستوى الخدمة (SLAM). وبعد ذلك سنستخدم البنية التحتية للمفاهيم التي تم تدريسها أعلاه لفهم أهمّية المشروع. وأخيرًا، سننتج العُقد الضرورية من خلال الوحدة الطرفية ونرى مخرجات التعيين في Rviz.

  11. فيديوهات عن مواضيع متقدّمة: حول دمج مكتبة SLAM في بيئة غير معروفة (مربع أدوات SLAM أو LaMa) [الجزء 2] كاستمرار في الفيديو العاشر، سأعلّم في هذا الفيديو كيفية إنشاء ملف بدء لتشغيل جميع العُقد معًا وفحص rqt_graph لفهم المفاهيم بشكل صحيح في إطار عمل ROS. في النهاية، سنحفظ الخريطة التي تم إنشاؤها بواسطة الحزمة باستخدام خادم خرائط.

  12. فيديوهات تتناول مواضيع متقدّمة: حول دمج تقنية OpenCV (اكتشاف علامات الواقع المعزّز، وحزمة Ar_track_alvar) [الجزء 1] سيبدأ الفيديو بتعريف علامات الواقع المعزّز وأهميتها في أقلمة المحتوى باستخدام الرؤية الحاسوبية. ثم سنبني على كيفية عمل حزمة Alvar لمسار الواقع المعزّز. سيساعد هذا في تقديم منظور شامل للمشروع. وأخيرًا، سيتم توفير الخدمة للسماح ببث إطارات فيديو من Webots إلى موضوع ROS.

  13. فيديوهات تتناول مواضيع متقدّمة: عند دمج ميزة OpenCV (اكتشاف علامات الواقع المعزّز، حزمة Ar_track_alvar) [الجزء 2] سيكون هذا الفيديو تكملة للفيديو الثاني عشر حيث سيتم استخدام مجموعة بث الصور أعلاه بواسطة الحزمة وسيتم نشر موضوع التحويل بين الروبوت وعلامة الواقع المعزّز (AR) ويمكنك مشاهدتهما على Rviz. وأخيرًا، بينما نحرّك الروبوت في المكان نفسه، سنرى علامات مختلفة ونلاحظ تغيّر موضعها في Rviz وفي رسائل rostopic.

الخاتمة:

مشروع GSOD هذا عبارة عن حزمة تعتمد على النفس لتوفير فهم أساسي لتكامل ROS2 مع Webots. ستشمل هذه الحزمة أيضًا التنفيذ العملي للمفاهيم في ROS2، مثل المواضيع والخدمات والعُقد وملفات الإطلاق والناشر والمشترك وأدوات تصحيح الأخطاء المختلفة واستخدام كود VS. وسيشمل ذلك أيضًا مشاريع تتناول مواضيع متقدّمة، مثل SLAM وOpenCV. سيقدّم ذلك للمشاهدين نموذجًا للعمل النهائي باستخدام ROS2 وWebot.