ROS Robot Operating System Overview and Key Points

ROS Robot Operating System Overview and Key Points

أهداف تصميم نظام ROS

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

يعود أصل نظام ROS إلى تعاونٍ جمع بين مشروعٍ أُطلق عام 2007 في مختبر الذكاء الاصطناعي بجامعة ستانفورد وبرنامج الروبوتات الشخصية في Willow Garage. وبعد عام 2008، انتقلت قيادة التطوير إلى Willow Garage. وقد لفت نظام ROS الأنظار إليه بفضل ما حققته روبوتاته المبكرة، وعلى رأسها روبوت PR2، من إنجازات لافتة كطي الملابس وتوصيل الأجهزة الكهربائية وتحضير وجبة الفطور. وطمح القائمون على Willow Garage إلى استثمار التطوير مفتوح المصدر لتحويل PR2 إلى روبوتٍ "متعدد الاستخدامات".

تم إطلاق PR2 بسعر مرتفع جداً، حيث بلغ سعره 400,000 دولار أمريكي في عام 2011. ويُستخدم اليوم بشكل أساسي في الأبحاث العلمية والتجارب التقنية. يمتلك الروبوت ذراعين، كل ذراع تحتوي على سبعة مفاصل، وتعمل الأطراف الطرفية له كقابضات للإمساك بالأشياء. أما بالنسبة للحركة، فهي تعتمد على أربع عجلات مثبتة في قاعدته السفلية. تم تزويد PR2 بمجموعة متطورة من أجهزة الاستشعار، تشمل كاميرات عالية الدقة، وأجهزة قياس المسافات بالليزر، ووحدات قياس القصور الذاتي، وأجهزة استشعار للمس، بالإضافة إلى معدات استشعار متقدمة أخرى، موزعة على الرأس والصدر والمرفقين والقابضات. في قاعدة الروبوت، يوجد جهازا كمبيوتر، كل منهما مزود بثمانية أنوية، يعملان كمركز تحكم واتصال لجميع المكونات المادية للروبوت. يعمل كلا الجهازين بنظام Ubuntu وبيئة ROS.

أهداف تصميم نظام ROS

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

أبرز مزايا نظام ROS للروبوتات الصناعية

تعتمد بنية تشغيل ROS على إطار معالجة يستخدم وحدات الاتصال الخاصة به لإنشاء شبكة اتصالات لا مركزية (من نظير إلى نظير) بين الوحدات، مع فصل مرن بينها. تدعم هذه البنية عدة أنماط اتصال، منها: الاتصال المتزامن القائم على الخدمات عبر استدعاء الإجراءات عن بُعد (RPC)، والاتصال غير المتزامن القائم على الموضوعات لتدفق البيانات، إضافةً إلى تخزين البيانات على خادم المعلمات. غير أن ROS لا يوفر بطبيعته قدرات زمنية حقيقية.

أهم خصائص نظام ROS في نقاط موجزة

  • تصميم من نظير إلى نظير

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

  • دعم متعدد اللغات

يميل معظم المبرمجين إلى تفضيل لغات برمجة معيّنة عند كتابة الأكواد، وتعود هذه التفضيلات إلى عدّة عوامل؛ منها الوقت المستغرق في البرمجة بكل لغة، وفعالية تصحيح الأخطاء، وتركيب الجمل البرمجية، وسرعة التنفيذ، فضلاً عن اعتبارات تقنية وثقافية متعددة. ولمواجهة هذه التحديات، صمّمنا ROS ليكون إطار عمل محايداً تجاه اللغة المستخدمة. يدعم ROS اليوم لغات عديدة، مثل C++ وPython وOctave وLISP، كما يوفّر واجهات متعددة للغات أخرى.

يتميّز نظام ROS في المقام الأول بطبقة التواصل بين الرسائل، لا بالمستويات الأعمق منه. فالاتصالات المباشرة بين الأطراف وإعداداتها تتم عبر آلية XML-RPC، التي تشمل تطبيقات موثّقة توثيقًا جيدًا لمعظم لغات البرمجة الرئيسية. نسعى إلى أن يتوافق تطبيق ROS مع طبيعة كل لغة برمجية وقواعدها النحوية، بدلًا من فرض واجهات مستندة إلى لغة C على اللغات الأخرى. غير أن الاستفادة من المكتبات القائمة لتغليف دعم لغات جديدة قد تكون عملية مريحة في بعض الحالات؛ فعلى سبيل المثال، بُني عميل Octave باستخدام مكتبة تغليف بلغة C++.

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

يولّد مولّد الأكواد الخاص بكل لغة ملفات الكود الأصلي المقابلة لها. وعند إرسال الرسائل واستقبالها، يقوم ROS تلقائياً بتجميع هذه الملفات وتنفيذها بالتوازي، ما يوفّر وقتاً كبيراً في البرمجة ويحدّ من الأخطاء. فملف IDL المكوّن من ثلاثة أسطر يتوسّع تلقائياً إلى 137 سطراً من كود C++، و96 سطراً من كود Python، و81 سطراً من كود Lisp، و99 سطراً من كود Octave. وبما أنّ الرسائل تُولَّد تلقائياً من ملفات نصية بسيطة، يصبح من السهل تعداد أنواع جديدة منها. وحتى تاريخ كتابة هذا المقال، تضمّ مكتبات الأكواد المعروفة المبنية على ROS أكثر من أربعمائة نوع من الرسائل، تنقل بيانات الحساسات وتمكّن الأجسام من استشعار محيطها.

تتيح النتيجة النهائية معالجة الرسائل بغضّ النظر عن اللغة المستخدمة، ما يسمح بالجمع بين لغات متعددة ومزجها بحرية تامة.

  • تكامل وتبسيط العمليات الصناعية

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

لمواجهة هذا الاتجاه، ننصح بتطوير المشغّلات والخوارزميات تدريجياً لتصبح مكتبات مستقلة لا تعتمد على ROS. تتميز الأنظمة المبنية على ROS بالبنية المعيارية، إذ يُجمَّع الكود داخل كل وحدة على حدة. وتدعم أداة CMake المستخدمة في التجميع مفهوم التبسيط. تقوم ROS بتغليف الكود المعقد داخل مكتبات، وتكتفي بإنشاء تطبيقات صغيرة تعرض وظائف هذه المكتبات. هذا يتيح نقل الكود البسيط وإعادة استخدامه خارج مرحلة النماذج الأولية. ومن المزايا الإضافية أن اختبار الوحدات يصبح أسهل بكثير عندما يتوزع الكود على مكتبات متعددة، إذ يمكن لبرنامج اختبار واحد التحقق من عدة وظائف داخل المكتبة.

يعتمد ROS على شيفرات برمجية من مشاريع مفتوحة المصدر متعددة. فهو يستعير من مشروع Player شيفرات التحكم بالمشغلات والحركة والمحاكاة، ومن OpenCV خوارزميات الرؤية، ومن OpenRAVE خوارزميات التخطيط، وغيرها الكثير. وفي كل حالة، يوفّر ROS خيارات تهيئة متنوعة ويسهّل تبادل البيانات بين المكونات البرمجية مع إدخال تعديلات طفيفة على الشيفرات. ويتطوّر ROS باستمرار عبر صيانته من قبل المجتمع، إذ تُدمج التحديثات من المكتبات البرمجية الأخرى وتصحيحات التطبيقات في شفرته المصدرية.

  • مجموعة أدوات شاملة

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

  • برمجيات مفتوحة المصدر ومجانية بالكامل

نُتيح جميع أكواد ROS المصدرية للعموم. نرى في ذلك خطوةً تعزّز تصحيح الأخطاء على جميع مستويات برمجيات ROS وتضمن تحسينها باستمرار. صحيح أنّ البرامج غير مفتوحة المصدر مثل Microsoft Robotics Studio وWebots تقدّم مزايا جديرة بالتقدير، إلّا أنّنا نؤمن بأنّ المنصة مفتوحة المصدر لا بديل عنها. يتجلّى هذا بوضوحٍ خاص عند تصميم وتصحيح الأجهزة والبرمجيات على جميع المستويات بشكلٍ متزامن. نُتيح جميع أكواد ROS المصدرية للعموم، ونعتقد أنّ ذلك يحفّز حتمًا تصحيح الأخطاء على جميع مستويات برمجيات ROS ويؤدّي إلى تحسينها المستمر. ورغم ما تتمتّع به البرامج غير مفتوحة المصدر مثل Microsoft Robotics Studio وWebots من مزايا عديدة تستحقّ الإشادة، نرى أنّ المنصة مفتوحة المصدر تبقى خيارًا لا يُستغنى عنه، لا سيّما عند تصميم وتصحيح الأجهزة والبرمجيات على جميع المستويات في آنٍ واحد.

روبوتات تمثيلية تعمل بنظام ROS في السوق

تُمثّل الروبوتات العاملة بنظام ROS في الأسواق نموذجاً حياً على مرونة هذا الإطار مفتوح المصدر في دعم مختلف التطبيقات. فعلى سبيل المثال، روبوتات متنقلة تُستخدم منصات مثل TurtleBot وHusarion ROS bot على نطاق واسع في التعليم والبحث العلمي. أما روبوتات الخدمة كـ Fetch وPR2 فتتميز بقدرات متقدمة في المناولة والملاحة. وفي المقابل، تبرهن المنصات الصناعية مثل Husky من Clearpath على تكامل ROS في البيئات القاسية. تعكس هذه الأمثلة مرونة نظام ROS وقابليته للتوسع في المجالين الأكاديمي والتجاري على حد سواء.

فيما يلي أبرز الروبوتات العاملة بنظام ROS، وتشمل الروبوتات رباعية الأرجل، والروبوتات ذات العجلات، والروبوتات المجنزرة.

أفضل الروبوتات الرباعية العاملة بنظام ROS

اسم كوبمايالدولةصورة الروبوتالتطبيقالموقع الرسمي
يونيتري روبوتكسالصينيونيتري روبوتكس التعليم والبحث والمهام الصناعيةhttps://www.unitree.com/go2
بوسطن ديناميكسالولايات المتحدة الأمريكيةبوسطن دايناميكسالتفتيش الصناعيhttps://bostondynamics.com/products/spot/

أفضل 5 روبوتات تعمل بعجلات تعتمد على ROS

اسم كوبمايالدولةصورة الروبوتسعة الحمولةالموقع الرسمي
ميرالدنماركروبوت MiR600 كجمhttps://www.mobile-industrial-robots.com
روبوتنيك روبوتإسبانياروبوت Robotnik Automation150 كجمhttps://bostondynamics.com/products/spot/
Robotnikإسبانياأفضل 5 روبوتات تعمل بعجلات تعتمد على ROS250 كجم
Clearpath RoboticsكنداClearpath Robotics100 كجمhttps://clearpathrobotics.com
Fdata Robotالصينالروبوت الزراعي A0251000 كجمhttps://www. fdatabot.com

أفضل الروبوتات المجنزرة المزودة بتكامل ROS

اسم كوبمايالدولةصورة الروبوتالتطبيقالموقع الرسمي
سوبردرويد

روبوتات

كنداالروبوت الآلي الخارق روبوت تكتيكي روبوت تكتيكي تكتيكيhttps://www.superdroidrobots.com/store/tracked-robots

تبحث عن حلول روبوتات مخصصة؟ اتصل بنا

تواصل معنا

Fdata هي مصنّع روبوتات متنقلة في الصين، متخصصة في حلول الروبوتات المتنقلة المُخصصة، لمساعدة العملاء من الفكرة إلى الإنتاج الضخم.

حلول الروبوتات المتنقلة المخصصة الخاصة بك تبدأ من هنا

شركة تصنيع OEM/ODM مقرها الصين — أنظمة إدارة الموارد (AMR)، المركبات ذاتية القيادة (AGV)، أتمتة المستودعات. بدءًا من التصميم والبحث والتطوير وصولاً إلى التسليم العالمي.

  • أكثر من 10 سنوات في تصنيع المركبات ذاتية التنقل (AMR) والمركبات ذاتية القيادة (AGV)
  • حلول مخصصة تم نشرها في أكثر من 50 دولة
  • تقييم مجاني للمشروع وتحليل العائد على الاستثمار
  • الرد من المهندس في غضون 24 ساعة
نموذج الاتصال

متخصصة في مجال الروبوتات لدى شركة FdataBot، وتتمتع بخبرة تزيد عن 8 سنوات في مجال الروبوتات المتنقلة، وأنظمة AMR/AGV، وتطوير هياكل الروبوتات، والتخصيص وفقًا لمتطلبات OEM/ODM. تساعد أدلتها المشترين العالميين على تقييم الموردين، ومقارنة الخيارات التقنية، واتخاذ قرارات أكثر موثوقية فيما يتعلق بالتوريد.

استفسر الآن