[Documentation] [TitleIndex] [WordIndex

ما هو ROS؟

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

Player، وYARP، وOrocos، وCARMEN، وOrca، وMOOS، وMicrosoft Robotics Studio.

يعتبر "بيان (Graph)" تشغيل ROS شبكة سيرورات ند لند Peer-to-Peer (من المحتمل أن تكون موزعة على عدة آلات) ضعيفة التداخل فيما بينها، وتستخدم بنية ROS التحتية للتواصل. ينجز ROS عدة أساليب للتواصل، تشمل أسلوب RPC-style المتزامن للتواصل الذي تم تنجيزه عبر الخدمات services، ووتدفق المعطيات غير المتزامن الذي تم تنجيزه عبر المواضيع topics، وتخزين المعطيات على مُخدِّم الوسطاء Parameter Server. لقد تم شرح هذه المفاهيم بتفصيل جيد في فصل النظرة العامة على المفاهيم Conceptual Overview.

لا يعتبر ROS إطار عمل بالزمن الحقيقي (Realtime)، لكن من الممكن مكاملته مع برامج الزمن الحقيقي. مثلاً يستخدم روبوت The Willow Garage PR2 نظاماً يسمى pr2_etherCAT، الذي ينقل رسائل ROS داخل وخارج عملية الوقت الفعلي. كما أن ROS لديه آلية تكاملية في seamless integration with the Orocos Real-time Toolkit.

الأهداف

يسأل كثير من الناس: "كيف يختلف ROS عن X؟" حيث X هي منصة إنسالة برمجية أخرى. من الصعب الإجابة على هذا السؤال حيث أن ROS لم يصمم ليكون إطار عمل مع معظم الميزات، الهدف الأساسي لـ ROS هو دعم وإعادة استخدام الشفرة البرمجية -الكود- في البحث والتطوير في مجال الإنسالات. يعتبر ROS إطار عمل موزع للعمليات (يُعرف أيضًا باسم العقد Nodes)، والتي تسمح بتصميم الملفات التنفيذية بشكل مستقل عن بعضها البعض، ويكون ارتباطها فيما بينها ضعيفاَ أثناء التشغيل. يتم تجميع هذه العمليات في حزم Packages وكُوَم Stacks، والتي يمكن بكل سهولة مشاركتها وتوزيعها. كما يدعم ROS أيضًا نظامًا موحدًا لمستودعات- Repositories الشفرات البرمجية التي يسمح بتوزيع مهمات العمل الجماعي. يسمح هذا التصميم من مستوى نظام الملفات إلى مستوى التواصل، باتخاذ قرارات مستقلة حول التطوير والتنجيز، والتي يمكن أن تجدها جميعاً في أدوات بنية ROS التحتية.

ومن أجل دعم الهدف الرئيسي في التعاون والمشاركة، صيغت عدة أهداف أخرى لإطار عمل ROS:

إذاً "كيف يختلف ROS عن س؟" من الصعب الإجابة من أجل كل س، لكن إن اخترت استخدام س، فنأمل أن تتمكن من الاستفادة من المكتبات الكثيرة الموزعة مع ROS. بتفصيل أكبر: تشرح هذه الرسالة الإلكترونية التي كتبها Brian Gerkey (مشارك في Player وROS) إلى البريد الإلكتروني لمستخدمي ROS قائمة بالفروقات بين Player وROS، تتضمن مكاملة مكتبة OpenCV، ومكتبات أخرى:

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

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

أعتقد أنه من العدل أن نقول إن ROS أكثر قوة ومرونة من Player ، ولكن ، كالعادة ، تأتي القوة والمرونة الأكبر على حساب تعقيد أكبر. بينما نعمل بجد لجعل ROS سهل الاستخدام ، لا يزال هناك منحنى تعليمي مهم. بالطبع ، بشكل مألوف مع Player يجب أن يساعد في تعلم استخدام ROS ، حيث أن العديد من المفاهيم الأساسية متشابهة.

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

يجب أن أشير إلى أن ROS تستفيد من الكثير من التعليمات البرمجية من مشروع المشغل. هناك عقد ROS تعيد استخدام الكود من العديد من برامج تشغيل المشغل ، ويتم دعم كل من Stage و Gazebo جيدًا ويستخدمان على نطاق واسع في مجتمع ROS

أنظمة التشغيل

يعمل ROS حالياً فقط على أنظمة التشغيل المعتمدة على Unix. يتم اختبار برامج ROS بشكل أساسي على أنظمة Ubuntu وMac OS X، كما يساعد مجمتع ROS في نشر نسخ تدعم الأنظمة Fedora وGentoo وArch Linux وغيرها من منصات Linux.

نظرياً من الممكن استيراد ROS لأنظمة Microsoft Windows، لكن عملياً لم يكتمل ذلك بعد.

الإصدارات

يتم بشكل دوري إصدار نسخ جديدة من صميم ROS والأدوات والمكتبات المفيدة على شكل توزيعات ROS Distribution. تشبه هذه التوزيعات توزيعات Linux، وتؤمن مجموعة من البرامج المتوافقة كي يستخدمها الآخرون ويبنوا عليها.

المساهمة

حيث أن ROS مفتوح المصدر، نأمل أن تأخذ بعين الاعتبار مساهمتك مع ROS والمكتبات المتوافقة معه. رجاء راجع فقرتنا حول المساهمة Contributing من أجل مزيد من المعلومات حول كيفية مشاركتك في مجتمع ROS.

التالي

مفاهيم ROS


2023-01-28 12:27