مشروع RoboComp

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

ملخص المشروع

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

وصف المشروع

الحافز

يعتبر RoboComp أحد أطر عمل الروبوت المعروفة في مجال الأبحاث والتطبيقات العملية. يتضمّن مستودع robocomp مجموعة كبيرة من المكونات (يتم الاحتفاظ بها في مستودع أصغر باسم robocomp-robolab) لتطبيقات الروبوت المختلفة مثل التحكم في الحركة والأقلمة وإعداد الخرائط والتنقل والتعرف وغير ذلك. ومع ذلك، تفتقر مستودع المكونات إلى المستندات التفصيلية لتجميع كل مكون أو استخدامه، وبالتالي فإن قابلية الاستخدام المحدودة للمطورين الجدد. يهدف هذا الاقتراح إلى حل هذه المشكلة من خلال توثيق المكونات الأساسية لآلية RoboComp وكذلك تجميع نموذج مستند للاستخدام لدمج مكونات مختلفة لحل مهمة روبوتات محددة. ستتم مناقشة تفاصيل عملية التوثيق في القسم التالي ثم يليها قسم المعلم الرئيسي لتخطيط الإطار الزمني لإنجاز المشروع. وأخيرًا، تم ذكر بعض الملاحظات حول عملية التوثيق.

الوصف

وكما ذكرنا سابقًا، يهدف هذا المشروع إلى هدفين رئيسيين:

  • وصف تفاصيل المستندات وتجميعها وتثبيتها وعملية الإعداد والاستخدام والمشاكل المعروفة المتعلقة بكل مكوّن في RoboComp
  • اكتب مثالاً لدليل يستخدم مكونات مختلفة في بيئة RoboComp لحل مهمة روبوتات محدَّدة، مثل الأقلمة.

تفتقر معظم المكونات الأساسية في مستودع robocomp-robolab repo حاليًا إلى تعليمات تفصيلية حول كيفية التجميع وكيفية الاستخدام في إعدادات ضبط المعلَمات المختلفة. وهذا يشكل عقبة كبيرة للمطورين الجدد الذين يرغبون في استخدام مكونات في مشروعهم أو المساهمة في إطار العمل. والسبب هو أن العديد من المكونات هي برنامج تضمين لبرنامج تشغيل خارجي أو مكتبات لها العديد من التبعيات، مما يجعل تجميع المهمة وتثبيتها أمرًا صعبًا. علاوة على ذلك، يدمج العديد من المكونات برنامج تشغيل الجهاز المعقد (أي hokuyoComp العام) لتوفير واجهة الرسالة في RoboComp والتي تتطلب معرفة خاصة بالجهاز لضبط المعلمات.

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

https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp

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

  • الوصف
  • التحويل البرمجي والتركيب
  • مَعلمات الضبط
  • بدء المكوِّن (الاستخدامات)
  • المشاكل المعروفة

في المثال، يجمع أحد أولاً معلومات حول مواصفات مستشعر Hokuyo، ويقرأ التعليمات البرمجية للمكون لفهم صورة وظائف المكون من أجل كتابة أوصاف المكون. بعد ذلك، سيساعد فهم بيئة RoboComp ومعرفة المعلمات الخاصة بالجهاز وكذلك تبعيات المكتبة توثيق عملية التجميع والتثبيت والضبط للمكوِّن. على سبيل المثال، يحتاج تجميع hokuyoComp إلى حزمة liburg0-dev deb القديمة من Ubuntu 14.04، ولكن تتم إزالة حزمة deb من Ubuntu PPA في الإصدار اللاحق، وبالتالي يجب علينا تنفيذ الحل البديل للتجميع كما هو مذكور في المستند. في هذه العملية، يمكننا أيضًا تسجيل المشكلات المعروفة لتسريع تصحيح الأخطاء للمطورين الجدد. وأخيرًا، يتم توثيق استخدامات المكوّنات لسيناريوهات الاستخدام المختلفة لتسهيل دمج المكوّن مع تصميم RoboComp لمهام الروبوت المختلفة.

الأحداث المهمة

يخطط هذا القسم لإطار زمني أولي لإنجاز الأهداف المذكورة للمشروع. سنختار مستندات المكوّنات للكتابة استنادًا إلى الفئات (أي مكوّنات الكاميرا ومكونات الليزر). يعتمد التقدير الحالي للوقت لإكمال مستند المكونات على وقت إكمال أمثلة لمستندات hokuyoComp. في ما يلي الجدول الزمني:

  • 1 آب (أغسطس) - 1 سبتمبر: الترابط بين أفراد المنتدى:

    1. إعداد اجتماع أسبوعي لتحديد نطاقات المشروع بالإضافة إلى التوقعات من كل من الكتاب والمرشدين.
    2. فهم آلية عمل RoboComp
  • 2 أيلول (سبتمبر) - 2 تشرين الثاني (نوفمبر): كتابة المستندات لكل مكوّن في مستودع robocomp-robolab مع التحسينات التكرارية بين المرشدين والكاتبين من خلال الاجتماعات (من المتوقع إكمال معظم المستندات غير المُوثَّقة)

  • 2 - 26 نوفمبر: كتابة مستند عام كمثال لاستخدام مكونات مختلفة لحل مهمة الروبوتات.

  • 27 - 29 نوفمبر: نهاية تقارير المشروع.

  • بعد GSoD 2019: أريد البقاء على تواصل مع RoboComp لتحسين أعمالي وصيانتها بشكل أكبر.

الملاحظات النهائية

من الضروري كتابة مثال عام حول كيفية دمج المكوّنات المختلفة في بيئة RoboComp لكي يتمكّن المستخدمون من فهم الصورة الكبيرة لوظائف RoboComp. وستتم مناقشة نموذج المستند هذا بشكل أكبر مع الموجّهين لتحديد مهمة الروبوتات المناسبة وفقًا للاستخدام الحالي لآلية RoboComp.