إن الروبوتات لم تعد مقتصرة على الشكل التقليدي بروبوتات مقيّدة بتعليمات محدّدة من قبل المصمّم. بل أصبحت أكثر ذكاءً وقدرة على اتخاذ القرارات وخاصة بمساعدة علوم الذكاء الصنعي Artificial Intelligence AI والشبكات العصبونية Neural Networks. أصبحت الروبوتات ذكية وحتى قادرة على التعاون فيما بينها لتنفيذ المهام وخاصة إذا تحدثنا عن الروبوتات الصناعية.
قصتنا اليوم من مصر وتحديداً من جامعة مصر للعلوم والتكنولوجيا Misr University for Science and Technology حيث قام 5 طلّاب بإنجاز مشروع تخرّج متميّز حول 3 روبوتات متحرّكة ومزوّدة بأذرع متعاونة فيما بينها لتنفيذ المهام. وقد وافق الفريق على الإجابة على مجموعة من الأسئلة التي ستعرض لنا لمحة عن تجربتهم وتنير الدرب أمام العديد من المهتمين بهذا العلم ومهندسي المستقبل.
قبل أن نبدأ المقابلة مع الفريق، لنتعرّف أولاً على النظام الروبوتي المنجز و سأستغل من أجل ذلك الأطروحة التي قاموا بإتاحتها للعلن لكي نأخذ لمحة معمّقة أكثر.
لتحميل الأطروحة
النظام الروبوتي
يتألف النظام الروبوتي من 3 روبوتات قادرة على التحرّك Mobile Robots وكل روبوت مزوّد بذراع روبوتيّة Robotic Arm ويجب أن تتعاون هذه الروبوتات مع بعضها البعض لتنفيذ المهمة والتي قد تكون صعبة أو مستحيلة الأداء في حال وجود روبوت واحد. يسمى اصطلاحاً هذا النظام بـ multi-agent system. لقد تألف عمل الفريق في هذا المشروع من أربعة أمور أساسية:
يتألف النظام الروبوتي من 3 روبوتات قادرة على التحرّك Mobile Robots وكل روبوت مزوّد بذراع روبوتيّة Robotic Arm ويجب أن تتعاون هذه الروبوتات مع بعضها البعض لتنفيذ المهمة والتي قد تكون صعبة أو مستحيلة الأداء في حال وجود روبوت واحد. يسمى اصطلاحاً هذا النظام بـ multi-agent system.
لقد تألف عمل الفريق في هذا المشروع من أربعة أمور أساسية:
1-التصميم الميكانيكي Mechanical Design
يلخّص الفريق مراحل التصميم الميكانيكي التي مرّ بها المشروع. بداية من تصميم الهيكل للروبوت المتحرّك Mobile Robot وانتقالهم عبر ثلاث تصاميم (الأول:بثلاث عجلات 3WD والثاني: بأربعة عجلات 4WD والثالث: بعجلتين2WD) حتى وصلوهم لنموذج نهائي مناسب تغلبوا فيه على مشاكل زيادة الوزن وصعوبة الحركة وغير ذلك.
ثم انتقلت الأطروحة بالتعريف بالذراع الروبوتيّة وتصنيعا وتجميعها وهي ذراع بـ 4 درجات من حريّة الحركة 4 DoF ومُتحكّم بها باستخدام الأردوينو.
2-إبصار الآلة Machine Vision
تم استخدام كاميرا Microsoft Lifecam Cinema من أجل إبصار النظام ككل لاستخلاص معلومات لازمة من أجل إصدار أوامر التحريك وأيضاً معرفة موقع وإحداثيات وزاوية توجّه كل روبوت في مكان العمل وتم استخدام كود من البرنامج الهندسي الشهير للبرمجة الصندوقيّة Labview وذلك من أجل معالجة الصورة وتحديد الإحداثيات.
كود اللاب فيو من أجل تحديد الاحداثيات باستخدام الكاميرا
ومن أجل معرفة زاوية التوجّه، كان هناك منهجيتين لذلك. الأولى: استخدام برنامج محاكاة اسمه v-rep والثانية باستخدام أداة تسمى Caliper function في الـLabview.
المحاكاة باستخدام V-Rep
3-نظام التحكّم Control System
لعرض حركة الأذرع استخدم الفريق الإضافة في برنامج Labview والمسمّاة SoftMotion من أجل ربط Labview مع برنامج التصميم ثلاثي الأبعاد Solidwork.
لقد استخدم الفريق نوع من الروبوتات المتحرّكة والمسمّاة Differential Wheeled Robot ويتم توليد كل الحركات (يمين-يسار-دوران-أمام-خلف) باستخدام محركين منفصلين (محرّك لكل عجلة).
حيث عندما تتحرّك العجلتين ولكن تكون حركة إحدى العجلتين بشكل أبطء من العجلة الأخرى فإن الروبوت سوف يتحرّك بالاتجاه الموافق للعجلة ذات الحركة الأبطأ، ولو تحركت العجلتين بنفس السرعة ولكن باتجاهين مختلفين، فإنه ينتج عنه دوران الروبوت. ولمزيد من الدراسة الحركيّة المفصّلة يمكن الاطلاع عليها في الأطروحة.
التحكم بمحركات الـDC تم استخدام نموذج التحكم PID وهذا نموذج تحكمي مشهور جداً حيث يقوم بمقارنة دائمة بين الوضع الحالي والوضع المطلوب ويقوم بتعديل في النظام إلى حين الحصول على أقل خطأ ممكن بين الوضع الحالي والوضع المطلوب.
المخطط الصندوقي لـPID
كما أن تخطيط المسار Trajectory Planning للروبوت المتحرّك والذراع الروبوتيّة يتم بمساعدة Matlab robotics toolbox.
4-نظام التواصل Communication
يتم تشغيل نظام Robot Operating System ROS على كل روبوت للتواصل مع الجهاز المركزي Host والذي يحوي البرنامج الرئيسي الذي تصدر منه الأوامر و قد تم استخدام أداة الاتصال المتوفرة عبر ROS واسمها RosSerial. يعد ROS عبارة عن framework وليس نظام تشغيل حقيقي ولكنه يقدم الكثير من الأدوات التي يقدمها نظام التشغيل الحقيقي ولذلك أطلق عليه اسم نظام تشغيل ولكنه بالواقع هو نظام تشغيل من حيث الفكرة وليس الواقع in concept.
يوجد في ROS اعتماد على فكرة وجود عقد nodes وتقوم كل عقدة بوظيفة معيّنة وهذا ما يشابه الإجرائية Process في نظم التشغيل وينظم عمل هذه العقد، عقدة رئيسية تسمى Master. تتواصل العقد فيما بينها عبر Topics ويتم تمرير رسائل بينها، ويضمن ROS تنظيم عملية تبادل الرسائل Message passing وهذا أيضاً يشبه فكرة عمل نظام التشغيل.
يضاف لذلك كله وجود عدد كبير جداً من الإضافات Packages التي يمكن استخدامها في ROS، كإضافة المحاكاة Gazebo أو إضافات الإبصار الحاسوبي وغيرها الكثير. ويسمح هذا المستوى من التجريد من وجود عقد تعمل بلغات برمجة مختلفة يدعمها نظام ROS وهي البايثون والسي بشكل رسمي والكثير من اللغات الأخرى بشكل تجريبي.
في كل روبوت متنقّل في هذا المشروع يوجد RasbperyPi 3، ويتم بدء تشغيل نظام ROS في كل روبوت عبر وصله بواسطة الإيثرنت والوصول لسطر الأوامر من أجل إعطاء أمر البدء لـROS.
لمزيد من المعلومات حول ROS اطلع على المقال التقني برمجة الروبوتات باستخدام نظام تشغيل الروبوت ROS.
بنية النظام ككل
يتألف نظام الروبوتات من واجهة رسومية مبنية باستخدام Labview.
أما طبقة العمل الوسطى فإنه تم استخدام الـMatlab و ROS فيها. وكما ذكرنا لاحقاً تعمل الروبوتات باستخدام بيئة ROS والذي يعمل على الراسبيري باي 3 الموجود في كل روبوت.
المقابلة
لنبدأ الآن بمجموعة أسئلة عتاديات كمقابلة مع هذا الفريق الرائع!
[عتاديات]: ما هي أهم المهارات المسبقة التي ساعدتكم في الانطلاق في المشروع وماهي أهم المهارات التي كنتم تتمنون لو كانت لديكم قبل البدء؟
[فريق إليت]:
أهم مهارة ساعدتنا في انجاز هذا المشروع هي تمتع جميع الأعضاء بمهارة العمل كفريق والتعاون بكل صوره، ومن مقتضیات هذه المهارة أن یتم توزيع المهام في الفريق بشكل يتناسب مع ما یتمیز كل فرد به في الفریق، ويكون كل شيء محدد من واجبات ومهام وأيضا حقوق لكل عضو، فاحترام الفریق لأعضائه واحترام العضو لفريقه هو أفضل طریق لبناء الكثير من الإنجازات.
المهارة التي كنا نتمنى لو كانت لدينا هي ترتيب وتنظيم بيئة ومكان العمل أثناء وخلال فترة العمل، لأن تنظیم المكان بعد الانتهاء من العمل لا يكفي أبداً، وينتج عنه ضياع الكثير من المكونات ، وعدم الحصول عليها إلا بعد فوات الأوان أو استبدالها بغيرها، مما يعطل ویأخر وتيرة العمل.
[عتاديات]: لو سألكم مبتدئ في مجال الروبوتات عن أبرز الأدوات والمهارات التي يجب أن يتقنها ليصل يوماً ما لمقدرة بناء نظام شبيه بنظامكم ماذا ستجيبوه؟
[فريق إليت]:
التعلم والتجربة المستمرة هي المهارات التي يجب لأي شخص سواء أكان مبتدئ أم غير ذلك أن يلتزم بها ، ولعلي أذكر لمن يقرأ هذا المقال أنه قبل أقل من ثلاث سنوات على إنجاز هذا المشروع كنا نسعد بمجرد إنارة الدايود الضوئي LED عن طریق المتحكم أردوينو ولكن كثرة التجربة وإنجاز المشاريع البسيطة المتعلقة بالمواد التعلیمیة في الجامعة، بالإضافة إلى ذلك الاشتراك في المسابقات المختصّة بالروبوتات زاد بشكل كبير سرعة تعلمنا وزادنا خبرة كبيرة خلال سنوات قليلة.
أما عن الأدوات فالانترنت هو أكبر أداة أتيحت لنا في وقتنا الحاضر، فعلى كل شخص يريد التعلم أن يستثمر وقته والإنترنت المتوفر له في التعلم وزيادة المعرفة ، والاطلاع على المشاريع مفتوحة المصدر التي تزداد یوما بعد یوم، وبشكل تقني فمتحكم الاردوینو كان هو المفتاح في حبنا وبدايتنا في مجال الروبوتات لسهولة التعامل معه وتوفر الكثير من المصادر لتعلمه وبعد ذلك أصبح من السهل تطوير الذات والتطلع لكل ما هو جدید.
[عتاديات]: ما هي الآلات والبرامج الأكثر أهمية لتصنيع وتصميم هياكل الروبوت؟ وما هي على وجه التحديد في مشروعكم؟
[فريق إليت]:
يوجد العديد من البرامج المستخدمة في تصميم الروبوتات وقمنا باستخدام برنامج Solidworks في تصميم الروبوت وعمل بعض الاختبارات علیه للتأكد من سلامة التصميم. وتم تصنيع الروبوت باستخدام آلات عدة منها ماكينة تقطيع اللیزر و الخراطة والثنایة.
[عتاديات]: لماذا اخترتم بناء وتصميم الهيكل والذراع من الصفر و عبر عدّة مراحل، هل هناك سبب مباشر لعدم استخدام هيكل وذراع جاهزة؟
[فريق إليت]:
هذا التصمیم مشابه لذراع آلي جاهز Dobot ولكن تكلفته باهظة الثمن فقمنا بالتصميم و التنفيذ بنفس الكفاءة و بتكلفة أقل بكثیر تصل إلى ربع تكلفة ذلك الذراع، وكانت للهندسة العكسیة فضل كبیر في ذلك بالإضافة إلى استخدامنا بعضاً من المصادر والمحتويات المرفوعة على الإنترنت لهذا الذراع بعد تعديلها بما يناسب القطع التي استطعنا الحصول عليها من مواتير وما إلى ذلك.
[عتاديات]: لاحظت استخدام Labview في قسم الإبصار وربطتم Labview مع Solidwork للتحكم و V-REP للمحاكاة وROS لتنفيذ المهام على كل روبوت وMatlab لبعض الوظائف الأخرى؟ هل تنوع استخدامكم للأدوات البرمجية الهندسيّة كان بسبب تميّز حقيقي لكل أداة في الوظيفة المختارة؟ في حال كانت الإجابة نعم أذكروا لنا مشكورين ما هو تميّز كل أداة برمجية استخدمتوها في الوظيفة المقابلة.
[فريق إليت]:
نعم تنوع الأدوات البرمجية كان له دور فعال في نجاح المشروع فإنّ كل برنامج من البرامج المستخدمة كل له دور معین في المشروع. مثلاً برنامج Labview في قسم الإبصار كان التعامل معه سهل وكان هناك بعض الأدوات التي تسهل لنا الأمر في تنفيذ المهمة و نقوم بعمل تحليل للصور بصورة اسهل و في وقت أقل.
اما الربط ما بين Labview و Solidwork فكان لاختیار المواتير المناسبة للذراع الآلي و ایضا للعربة المتحركة فبرنامج Labview یستطیع أن يحسب اقصى عزم لكل موتور وذلك عن طريق أداة توجد ما بین برنامج Solidwork و Labview.
أما برنامج rep-V فهذا البرنامج يمثل محاكاة للمشروع لكي نتأكد من اختیار المواصفات مثل نوع المادة التي تم التصنیع بها ونتأكد أیضا من اختیار المواتیر الصحیحة و نتاكد من تنفيذ المهمة الرئيسة للمشروع .
اما ROS عبارة عن بيئة لتشغيل أنظمة الروبوت لتسهل تنفیذ المهمة فهو یتمیز بالسرعة الفائقة في ایصال الأوامر دون حدوث اي خطأ في ایصال الأمر لكل روبوت .
أما برنامج Matlab فهذا البرنامج تم استخدامه لأنه المسؤول عن الحسابات وطریقة الحركة لكل روبوت فكل روبوت أو ذراع آلي یحتاج إلى سرعة معينة وهذا على حسب المهمة المعطاة لهذا الروبوت.
[عتاديات]: ما هي أهم المراجع الخارجيّة والمواقع التي بنيتم عليها معارفكم؟
[فريق إليت]:
هناك عدة من المصادر التي بنينا عليها معارفنا بالمشروع . فقد تم الاستعانة برسائل ماجستير تخص robot agent multi فهناك الكثير من الرسائل والأوراق البحثية موجودة على الإنترنت تختص بهذا الموضوع بشكل عام .
أما بشكل خاص فالمشروع يحتوي على أقسام عدة مثّل قسم الأبصار فقد تم الاستعانة بموقع labview فهذا الموقع يشرح بعض من الأدوات المتاحة في قسم الإبصار و ایضا البرنامج يحتوى على بعض الأمثلة على كيفية استخدام هذه الأدوات.
و بالنسبة للتحكم كـ PID أو المعادلات المستخدمة كـ kinamtics Invese ،planning Path فهناك مواقع مختصة بهذه المواضیع و أيضا بعض من الأوراق البحثية واستعنا ببعض من الدكاترة في القسم في الجامعة شرحوا لنا بعض من هذه الأساليب في كیفیة التحكم في الذراع الآلي والعربة المتحركة.
وأیضا من أهم المصادر الخبرة السابقة لدى كل عضو في هذا الفريق الذي تم تأسيسه من ثّلث سنوات وكانت هناك عدة من المشاريع والمسابقات التي تعلمنا منها وأخدنا خبرة في كیفیة التعامل مع المتحكمات الدقیقة microcontroller و ایضا أدى ذلك لتزوّد معرفتنا بالبرامج الهندسية كـ solidworks ،Labview ،Matlab rep-v
[عتاديات]: قبل بدء أي مشروع من الجيد معرفة الإطار الزمني؟ هل لكم أن تضعوا القارئ لمحة عن مراحل المشروع وكل مرحلة كم استهلكت من الوقت المخصّص له؟ (موجودة في الأطروحة ولكن يمكن ذكره باحترافيّة أكثر منكم للقارئ كونكم أصحاب التجربة)
[فريق إليت]:
مرَّ المشروع بمراحل عديدة منها:
– مرحلة العصف الذهني واختيار المشروع المناسب وعمل دراسة جدوى له وقد استغرق من الوقت اسبوعين تقريباً.
– ثم بعد ذلك تأتي مرحلة التصميم المبدأي لجميع اجزاء الروبوت وعمل الحسابات العلمية اللازمة وقد استغرقت من الوقت شهرين تقریباً.
– المرحلة التجریبیة للمشروع كامل على البرامج المختصة وقد استغرقت شهر تقریباً.
– المرحلة التنفیذیة للتصميم النهائي وقد استغرقت شهرين تقریباً.
– مرحلة التجريب العملي للمشروع بعد تنفيذه استغرقت شهر تقریباً.
– المرحلة النهائية وهي مرحلة تجهيز المشروع نهائيا للعرض وإتمام المهمة المطلوبة على أكمل وجه وقد استغرقت ثلاثة أسابيع.
[عتاديات]: هل الأكواد المصدرية موجودة في مكان ما ويمكن الإطلاع عليها؟
[فريق إليت]:
للأسف المشروع بالكامل حتى هذه اللحظة لیس مصدري، لأن جعله مصدري يحتاج إلى مجهود لجعل استعماله سهل ومفهوم لغيرنا ، ولكن نتمنى ذلك ونتمنى نشر ما تعلمناه، ولا نمانع أبداً في مشاركة خبرتنا مع الآخرين والمساعدة والإجابة عن أي أسئلة ولذلك قمنا بوضع إيميل ليتسنى للجميع التواصل معنا (eliteteam511-at-gmail).