ROS ببساطه – تعلم بيئة تطوير الروبوتات – الدرس اﻷول

مرحبا بك إلى عالم ROS

 REEM - Hi

ROS

الدرس الأول: المقدمة

    1. ما هو ROS ؟

      ROS هو بيئة عمل كامله مفتوحه المصدر لتطوير الروبوتات (Robotic Framework) . و ROS هو اختصارا ل Robot Operating System و لكن برغم هذه التسمية إلا انه ليس فعليا نظام تشغيل (Operating System OS) بل هو meta-operating system أو Framework يعمل على العديد من نظم التشغيل الأخرى مثل Linux و apple OS-X و غيرهم.

    2. ما هي الRobotics Framework

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

      و تساعد هذه الframeworks في بناء الروبوتات سواء كانت سيتم التحكم فيها يدويا أو ستكون ذاتيه التحكم (autonomous) أو خليط من الاثنين معا.

       اليك بعض التطبيقات و المشاريع لتوضيح الشرح اكثر:

       google auto car otto UGV - inventoriesindutrial arm fanuc NAO

      الأول:  Google autonomous car و هي سياره ذاتيه القيادة و لا تستعجب من إدراجها كروبوت ففي النهاية السيارات ذاتيه القيادة لديها نفس أجهزة الاستشعار (sensors) و البرامج الموجودة في الروبوتات الأخري

      الثاني:  OTTO روبوت يساعد فى نقل البضائع فى المستودعات من شركه CLEARPATH robotics

      الثالث:  Nao Robot روبوتhumanoid من شركه Aldebaran Robotics (softbank Robotics now)

      الرابع:  Fanuc Industrial Arm و يتم استخدامها فى الصناعه

      لماذا نحتاج إلى الRobotic Frameworks

      من بعض الوظائف الأساسية التي تتطلبها جميع الروبوتات السابقة للعمل هي تحديد مكانها و شكل حركتها و تسجيل هذه البيانات (كما فى صوره الروبوت Nao).

      nao_tf

      في حاله وجود Framework موحد لكل هذه الروبوتات سيمكن إعادة استخدام المكتبات (libraries) المسئولة عن وصف الحركة في كل هذه الروبوتات بسهوله لكن إذا كان لكل روبوت نظام مختلف عن الأخر سيضطر بناء هذه الخاصية لكل روبوت على حده و بدلا من أن يستثمر المطورين وقتهم في بناء وظائف جديده للروبوتات سيضيع معظم وقتهم في بناء الوظائف الأساسية لكل روبوت من جديد.

      ببساطه المطلوب هو إعادة استخدام المكتبات و الأكواد (code-reuse) و الأهم أن يتم ذلك بطريق سهله و سريعه أيضا. طبعا ستشترك هذه الروبوتات في خواص اكثر بكثير من ذلك , و لكن المثال للتوضيح فقط.

      كما ان سبب اختياري لهذه الروبوتات بالتحديد لإعطائك صوره عن المدى الواسع من التطبيقات التي يستخدم فيها ROS

      فمثلا شركه BMW تستخدم ROS لتطوير السيارات ذاتيه القيادة لديها و كما أن شركه AMAZOM تستخدم روبوتات لإدارة و تسريع مستودعاتها فهناك منافس يستخدم ROS مثل OTTO و مثال على استخدام الHumanoid robots لROS هو الروبوت Nao

      و التطبيق الأخير هو استخدام ROS لجعل الIndustrial ِِِArms التي تستخدم في الصناعة اكثر ذكاءا بدلا من اعتمادها الحالي على التلقين و هذا مشروع كامل داخل ROS يسمي ROS-Industrial.

      كما يوجد العديد من التطبيقات التي ربما شاهدتها و لم تعرف أنها تعتمد على ROS بالأساس.

    3. ROS و الframeworks الأخري

      ببساطه ROS هو اكثر الframeworks انتشارا الآن. و اغلب الframeworks الأخري التي كانت موجوده عند بداية تطوير ROS انقطع التطوير و الدعم عنها و أغلقت مشاريعها مثال على ذلك CARMEN و ORCOS و YARP و MOOS و Microsoft Developer Robotics Studio و البعض الأخر تم نقل بعض المكتبات منه إلى ROS مثل Player. و باستثناء عدد من الsimulators الموجودة الآن فلا يوجد منافس لROS يقوم بنفس وظيفته كامله الآن.

      لكن ما هي الميزة الأساسية التي تمتع بها ROS في مقابلهم؟

      ROS لم يصمم ليكون هو الframework الأكبر الذي به اكبر عدد من المكتبات (بغض النظر انه الآن كذلك) و لكن صمم ليسهل إعادة استخدام المكتبات بين الروبوتات المختلفة بطريقه سهله. فROS ركز اكثر على توفير البنية الأساسية لتطوير الروبوتات و هو ما سيوضح اكثر لاحقا في شرح المزايا و طريقه عمله و كيف يمكن استخدامه على أي نظام تشغيل أو معالج (processor) باختلاف معماريتهم.

      طريقه عمل و تصميم ROS جذب البعض لاستخدامه في بعض التطبيقات غير المتعلقة بالروبوتات

    4. تاريخ ROS و بداية تطويره

      بداية تطوير ROS كانت تحت اسم Switch-yard في Staford Artificial intelligence laboratory بعدها تحول التطوير الأساسي (البداية الفعلية لROS) إلىWillow Garage وبعدها تم تأسيس OSRF (Open Source Robotics Foundation) و هى المشرف على ROS حتى الآن و لديها مشاريع أخري مرتبطه بROS مثل Gazebo و هو Physical Simulator (سنتحدث عنه بالتفصيل لاحقا في دروس اخري)

      لكن المساهمة في ROS لم تكن منهم فقط, فانROS مفتوح المصدر (open source) تحت رخصه BSD و بالتالي فان شريحه المطورين له و العاملين به كبيره جدا فيوجد مجموعات و شركات أخري تساهم في تطويره , أيضا ROS يستخدم رخصه BSD التي لا تشترط بان تكون الأعمال المشتقة مفتوحه المصدر و هذا يجعل ROS يستخدم في استخدامات مغلقه المصدر و تجاريه.

      عمر ROS الآن 9 سنوات لمشاهده بعض ما حققه خلال هذه السنوات شاهد هذه الفيديوهات

      celebrating 5 years of ROS

      celebrating 8 years of ROS

    5. ما هي البيئة التي يعمل عليها الROS؟

          • بيئة نظام التشغيل OS ؟

            يعمل ROS على العديد من الOS و بالتحديد الUNIX-like OS و اشهرهم هم Linux وapple OSX ولكن الدعم الأساسي على نظام تشغيل Ubuntu و هي احدي توزيعات الLinux طبعا استخدام ROS مع توزيعات الLinux الأخري سهل جدا.

            ubuntu

          • يمكن استخدام ROS مع اى انظمه تشغيل اخرى حيث توفر دعم في بعض النسخ منه لMicrosoft Windows و لكنه الدعم الآن قديم و نادر الاستخدام و لم يكن يوما بالكفاءه المطلوبة.

            إذا كنت ما زلت تتعلم الROS فأنصحك باستخدام Ubuntu حتى لا تضيع وقتك في بناء الأكواد من المصدر (source code) بالإضافة إلى  توافر الدعم بشكل اكبر على Ubuntu.

            • الHardware ؟

              كما ذكرت يمكن لROS ان يعمل على اى UNIX-like OS فأي جهاز قادر على تشغيل Linux هو قادر على تشغيل ROS سواء كان laptop او بورده مدمجه مثل raspberry pi.

              لا تنس نقطه القوه التي يعطيها Linux لROS هنا. فLinux قادر على العمل على شريحه كبيره جدا جدا من المعالجات باختلاف معماريتها و قدرتها و بالتالي ROS له نفس الصلاحية, فباستخدام Yocto Project يمكنك أن تجعل ROS يعمل على اى جهاز ليس له دعم بطريقه سهله, فاROS له دعم إلى حد كبير في Yocto Project خاصه في المكتبات و الحزم الرئيسية.

               

          • أهداف ROS الرئيسية و اهم نقط قوته

                • Code Reuse & ROS-agnostic Libraries

                  اهم نقطه فى تطوير الروبوتات ان يتم إعادة استخدام الاكواد بطريقه سهله و سريعه. يعالج ROS هذه النقطة بحيث يكون تطوير اى برنامج مصمم أصلا للعمل ROS بالتالي يسهل استخدامه مع اى روبوت يعمل به.  أو يتم بناء برنامج wrapper للتواصل بين ROS و البرامج الأخري لتسهيل التعامل معها.

                • لغات البرمجة المدعومة

                  ROS مصمم بحيث لا يكون مرتبط أو متوقف على أي لغة برمجه معينه. يمكن ببساطه أضافية اى لغه جديده للعمل معه في أي وقت. اغلب الاكواد الآن مكتوبه ب ++C و python و لكن هناك العديد من اللغات المدعومة مثل Java و Ruby والعديد.

                • الحوسبة الموزعة distributed processing

            كل برنامج في ROS يعمل في عمليه (Process) منفصله لها أو عدد من العمليات و يربط بينهم باستخدام بنيه اتصالاتROS الأساسية (ROS communication infrastructure). لا يهم إذا كانت هذه العمليات على نفس الجهاز أم لا. فاROS مصمم ليعمل على أي عدد من الأجهزة معا, يمكن أن يكون لديك أي عدد من الأجهزة تعمل بلينكس معا لايوجد مشكله في ذلك.و يتم ذلك بطريق سهله دون التأثير على باقي البرامج الموجودة على أي جهاز منهم.

                • Scaling

                  ROS قادر على تشغيل اى روبوت سواء كان معقد جدا أو بسيط جدا. حيث ان متطلبات تشغيل ROS تكبر أو تصغر حسب تطبيق الروبوت.

                • سهوله بناء الحزم (packages) في ROS

                  يعتمد ROS على مجموعه من الأدوات لتسهيل بناء و إدارة الحزم بداخله لتسهيل نقلها هي أيضا بين انظمه التشغيل و هي أدوات Cmake

          • سهوله استخدام أجهزة الاستشعار (Sensor)

      يوفر ROS مجموعه كبيره جدا من الdrivers. تقريبا يوجد drivers لأي Sensor يمكن أن تفكر في استخدامه نتيجة لكبر شريحه المطورين. كما يوفر تكامل سهل للحصول على البيانات من الSensors المتصلة بالمتحكمات الدقيقة مثل Arduino و غيره.

          • Bag files

            تعتبر ميزه قاتله في ROS فعليا. لقد ذكرت أن أي برنامج يعمل في ROS يعمل على هيئه عمليه أو عدد من العمليات المنفصلة و بالتالي أي Sensor يعمل فيROS له عمليه منفصلة, يتم التواصل بين هذه العمليات عن طريق رسائل Messages.

            الbag files هي أداة تستطيع تسجيل الmessages فى ROS . و يمكن تسجيل كل الرسائل في النظام إذا رغبت, و هذا معناه انه يمكنك تسجيل كل القراءات التي تمت من أي sensor أو أي عمليات تمت عليها و أي خرج من أي عمليه و استخدام هذه التسجيلات قي اختبارات لاحقه و كل هذا كتابه بسطر واحد فقط في سطر أوامر لينكس (Linux cmd line). هذه الأداة توفر ساعات كبيره جدا من العمل لمطوري الروبوتات و تمكنك في بعض الأحيان من القيام بأعمال لن تقدر عليها بدونها.

            سأعطي مثالا للتوضيح اكثر من ذلك. تخيل انك تريد بناء map (خريطة ثلاثيه الأبعاد لمكان ما) باستخدام طائره بدون طيار (drone) و لكن للقيام بذلك يجب ان يتوفر معالج سريع على الطائره. في حاله عدم توافر ذلك, و كنت تستخدم ROS يمكنك تسجيل كل البيانات من الكاميرات و الٍsensors الأخري مثلا ال IMU (سيشرح بالتفصيل لاحقا في دروس أخري) و بعد تسجيلها تعيد استخدام هذه البيانات لبناء الخريطة باستخدام الlaptop مثلا بدون إعادة استخدام الطائرة. هذا مجرد مثال و هناك drones قادره على ذلك

            parrot ardrone 2 - pic 3

    6. متطلبات العمل على ROS؟ من سيفيده تعلم ROS؟ ماذا ستتعلم من ROS؟

      متطلبات العمل على ROS؟

      • سطر أوامر لينكس Linux command line

        للعمل على ROS يجب أن يكون لديك معرفه بالعمل على نظام لينكس عموما. ROS لا يتطلب معرفه كبيره بلينكس مجرد المبادئ فقط و لكن إذا كنت خبير فذالك سيوفر عليك الكثير من الوقت بالتأكيد.

        نقطه مهمه جدا هنا أنه يمكنك اتخاذ ROS للبدء في تعلم لينكس فالمبادىء البسيطة التي يطليها ROS لن تأخذ الكثير من الوقت لتعلمها كما أنني سأحاول توفير اكبر قدر من المساعدة خلال هذه الدروس لمن ليس لديه أي خبره في استخدام لينكس.

      • لغة برمجه واحده على الأقل

        يفضل معرفه python لأنة سيتم استخدامها عامه في معظم الدروس هنا, و لكن إذا لم يكن لديك معرفه بأي لغه أخرى فلغه python سهل جدا تعلمها إذا كنت على معرفه بأي لغة أخرى.

        ملحوظات أخرى مهمه هنا

        تعلم ROS لن يفيد المهتمين بعلوم الروبوت فقط, ROS سيعرضك للكثير من مفاهيم الهندسة الإلكترونية و علوم الحاسب. كثير من مطوري ROS ليسوا من دارسي هندسة الميكاترونيكس أو الهندسة الميكانيكية.

        فأي نظام تبنيه فى ROS سيشمل عملك على الاتى (ماذا ستتعلم من ROS؟)

        • العمل على sensors مختلفه

        • استخدام المتحكمات الدقيقه Micro-controllers و يمكن ان يتعددوا و يختلفوا في المشروع الواحد

        • ستتعامل مع بروتوكولات الاتصال المختلفة و أحيانا ستضطر للاختيار بين انسبها في حالات معينه

        • فهم طريقه عمل انظمه التشغيل خاصة لينكس

        • بناء الأكواد و المكتبات و الحزم من المصدر(source code) و يمكن أن تضطر لبناء نظام لينكس نفسه من المصدر

        • العمل على معماريات المعالجات المختلفة في المشروع الواحد

        • يمكن أن تستخدم عده لغات برمجه

        • استخدام الsoftware version control لإدارة الملفات المصدرية مثل Git و SVN

        • تقليل الاعتماد على بيئات التطوير IDE و الدخول في عمليه بناء الأكواد (compiling) يدويا بشكل اكبر

        • ستتعرض لبعض مفاهيم شبكات الحاسب

          هذه المهارات الأساسية دون دخول في تفاصيل التطبيق المطلوب من الروبوت أصلا, فيمكن ان يضم

        • معالجه الصور الرقمية (image processing)

        • بناء الخرائط للبيئة المحيطة بالروبوت SLAM: Simultaneous Localization And Mapping

        • تمييز الأشياء object recognition

        • التعرف على الوجوه Face recognition

          و غيره من التطبيقات المستخدمة فى الروبوتات

        مهارات أخرى مهمه ستكتسبها على المستوى الشخصي, مثل؟

        • حل مشاكل الsystems الكبيرة (debugging) فى وقت قصير

          بما أن أي System يعمل باستخدام ROS يكون به عدد كبير من الHW و الSW. فوجود أي مشكله تعنى وجود خطأ يجب تصحيحه في أي منهما. مثلا يمكن أن يكون الخطأ في إحدى التوصيلات أو خطأ في أي كود سواء كان في إحدى المتحكمات الدقيقة أو في نظام لينكس و أو مشاكل متعلقه بالذاكرة في أي منهما أو أي نوع أخر من المشاكل. في النهاية ستتعلم أيجاد أي مشكله في اقل وقت ممكن.

        • البحث الجيد قبل القيام باى عمل

          ابحث ثم ابحث ثم ابحث قبل أن تبدأ العمل

          أسوا ما يمكن أن تقوم به هو أن تعمل فتره طويله على برنامج لتكتشف انه موجود من البداية و مفتوح المصدر لكنك لم تبحث كفاية, ستتعرض لذلك الموقف كل مره تقوم بالبحث عن برنامج يؤدى وظيفه معينه في ROS و ستتعلم رغما عنك كيف تبحث جيدا قبل أن تبدأ في العمل.

          كل هذا المدى الواسع من المهارات سيساعدك ROS على بنائها و تحسينها إذا كانت لديك. فببساطه مدى المهارات التي يتطلبها ROS واسع جدا و ليس مقتصر على علوم الروبوت. فهو بيئة جيده لتعلم الكثير.

    7. متى يجب استخدام ROS؟ ما هي طريقة العمل النمطية في ROS؟

      هل يمكن الاستغناء عن ROS تماما؟ متى؟

      هل ROS له فائدة أصلا؟ ستواجه من يتمسك بانه يمكن الاستغناء عن ROS و انه يفضل تطوير أكواده بنفسه و سيكون متمسك برأيه بعند عجيب. D: ماذا يكون ردك؟

      إذا كنت قادر على استخدام متحكم دقيق Micro-controller لتطوير الروبوت بالكامل, فانت لن تحتاج إلى ROS. كل تطبيق على حسب حاجته و حسب تعقيده. مثلا اشهر روبوت يمكن القيام بعمله خلال التعلم هو line follower robot, إذا قررت استخدام ROS لتطوير تطبيق بسيط كهذا فستكون أضعت وقتك بدون داعى. و لكن ماذا لو كان لديك برنامج لمعالجة الصور الرقمية (image processing) فبالتأكيد انت تحتاج إلى مكتبه تساعدك على العمل مثل OpenCV و بما أن تطبيقك مرتبط بالروبوتات فاستخدامك لتكامل ROS مع OpenCV سيسهل الموضوع اكثر و اكثر و هنا طبعا استخدام ROS ضروري و تركه سيكون بمثابه عذاب.

      التصميم النمطي لsystem يستخدم ROS:

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

      نفترض كمثال لهذه الحالة انك كتبت كود للتحكم في سرعه مواتير مباشره من خلال raspberry pi GPIO متصله بالmotor driver, ففي حاله انك قررت استبدال الraspberry pi بأي بورده أخرى لسبب مثلا يتعلق بسرعه المعالج (لنفترض وجود برنامج image processing و كان ادائه بطىء على raspberry pi) , فأنك ستضطر إلى إعادة تعديل الكود ليتناسب مع مكتبه البودر الجديدة. لكن إذا اتبعت التصميم السابق فلن تضطر إلى تعديل أي أكواد, فالmotor driver سيكون متصل باردوينو و الاردوينو متصل بالمتحكم الاكبر أيا كان (raspberry pi هنا فى المثال), هنا سيتم كتابه كود زياده على المتحكم الأكبر لاستقبال البيانات من اردوينو و إدخالها في ROS و لكن عند تغيير الraspberry pi ببورده اخرى سيكون هذه الكود ثابت عليهم كلهم دون تغيير.ببساطه المتحكمات الدقيقة هي فقط المسئولة عن التحكم قي الهاردوير مباشره.

    8. مقدمه بسيطه عن طريقه عمل ROS

      خلال الشرح تم ذكر بعض مفاهيم ROS, ساعيد شرحها هى و باقى المفاهيم بسرعه, يكفى المعرفة السطحية بهذه المفاهيم الآن و الدخول في تفاصيل اكثر سيكون في الدروس القادمة.

      • Nodes: هي كل برنامج صغير يعمل داخلROS. مثال لوظيفه الnode يمكن ان تكون برنامج خاص بقراءة بيانات sensor معين أو التواصل مع متحكم دقيق micro-controller أو التحكم ف سرعه الروبوت خلال سيره ذاتيا (autonomous), يمكن أن تكون أي وظيفه. سبب اختيار ROS للعمل بهذه الطريقة لتسهيل التعديلات, فعند الرغبة إجراء تغيير في وظيفه الروبوت مثلا بدلا من أن تقوم بتعديل الاكواد كل مره يمكنك تشغيل الnode التي تريدها أن تعمل و تترك الباقي, ذلك يوفر وقت كبير.

        كل node في ROS تعمل في عمليه (process) خاصه بها. إذا كان لديك علم بطريقه عمل أي نظام تشغيل فأن ROS يعمل بنفس الطريقة (لهذا سمى بهذا الاسم مع انه ليس OS حقيقي)

      • Messages: هي طريقه اتصال الNodes و تبادل البيانات بين بعضهم

        ROS nodes

        • Topics هي المكان الذي يتم نشر الmessages عليه, و يمكن أن ينشر عليها اكثر من Node أو يقرأ منها اكثر من Node في نفس الوقت.

          • Services مثل الTopic و لكن ينشر عليها node واحده فقط و يقرأ منها Node واحده فقط

          • Bag و يتم عليها تسجيل الmessages التي تريدها

          • ROS Master و هي الnode المسئولة عن تنظيم الاتصال بين الnodes

            ملحوظه الاتصال بين الnodes يكون عباره عن peer-to-peer-network, أي بمجرد علم الnodes بمكان بعضهم يحدث بينهم اتصال مباشر بعيدا عن اتصال الMaster

          • rostools هى مجموعه أدوات من الcmd line يوفرها ROS للعمل عليه

            الشرح بطريقه أعمق سيكون في الدروس القادمة

          بعض الروبوتات التي تستخدم ROS:

          لتصفح لتصفح قائمه كلمه بالروبوتات التى تستخدم ROS و لديها دعم ثابت له, ستجد في الصفحة دعم لUGV و UAV و ROS و سيارات و industrial ARMS

          اهم روبوت يجب ذكره هنا هو الروبوتPR2, و هو الروبوت الذي بدا عليه تطويرROS في بداياته في willow garage, فيديو يوضح قدرات الروبوت.

          الsensors الموجودة به (الخاصة بالرؤية):

          • Stereo camera

          • MS Kinect

          • laser scanner في قاعده الروبوتات

          • laser scanner متحرك اسفل الرأس

          • 2 camera واحده في كل ذراع

            لتصفح كل المواصفات

            pr2 - pic 2

    9. معلومات عن الدروس

          • سيضم الدرس القادم تثبيت نظام Ubuntu و تثبيت ROS و ف النهاية شرح مفصل اكثر لطريق عمل ROS و مثال بسيط

          • بعدها سيتبعه عددا من المشاريع كلها تقوم بشرح نفس الأدوات, الاختلاف سيكون في الhardware المستخدم. المطلوب منك هو تطبيق درس واحد فقط على الأقل على حسب الsensors المستخدمة و المتوافر منها لديك

          • الhardware المطلوب في كل درس (اختار درس واحد فقط او المتوفر لديك)

            للمشروع الاول:

            MS kinect سواء 360 او ONE , يمكنك شراء الsensor مستعمل فى حدود 700 جنيه مصرى او يمكنك شراء من AMAZON عن طريق شركه ادفعلى فى حدود من 600 الى 900 جنيه, لا تنسى شراء kinect adapter و هي وصله للباور و تحويله لUSB لان وصله الkinect مختلفه – غالبا ما يتم بيعها مع الkinect (الاسعار السابقه تتضمنها)

            الأسعار متفاوته للنسختين, و الأسعار السابقة يمكن أن توجد للنسختين.

            للمشروع الثانى مطلوب:

            arduino uno

            DC Motor بها Magnetic Encoders

            L298 Motor driver (يمكن استبدالها ببعض الTransistor – دائره بسيطه)

            للمشروع الثالث مطلوب:

      any arduino board

      servo Motor

    10. الأحداث المتعلقة بROS؟

       ROSCON و هو مؤتمر يعقد كل سنه يعرض فيه المطورين الجديد الذي أضافوه

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

      ROS Wiki و هى المكان الاساسى لتوثيق كل ROS Packages و يجب أن تكون دائما المرجع الأساسي لك لان تطوير ROS سريع جدا و تجد أن اغلب الكتب يتم تحديثها بصوره بطيئه. ملحوظه أخري أن بعض الpackages لا يتم توثيقها على ROS WIKI و لكن البحث على ROS answers يكون مفيد في هذه الحالة (لا تبحث أيضا في موضوعات قديمه لأنها لن تغطى الpackages الجديدة).

      قناه OSRF على Vimeo و ينشر علىها تسجيلات من ROSCON

      القناه تضم شرح مهم جدا لكثير من الpackages في ROS و في بعض الأحيان تضم معلومات لن تجدها موثقه إلا بها, يفضل متابعه شرح أي package قبل استخدامها لأول مره من هذه القناه بعد تصفح توثيقها على ROS Wiki

      ROS Answers تقريبا أي مشكله ستواجهك ستجد حلها هناك

      أين تتابع أخبار ROS؟

      ROS Planet يتم نشر أخبار ROS و أخبار الحزم الجديدة التي تم إصدارها و طلبات العمل

      Mailing Lists

      مؤتمرات بحثيه متعلقه بالروبوتات IROS & ICRA

    11. مشروع من عملى

      الهدف من المشروع بناء روبوت ذاتي التحكم قادر على الوصول من مكانه إلى أي نقطه اطلب منه الوصول إليها (عن طريق برنامج RVIZ – برنامج يوضح قراءات الروبوت الحالية)

      robot combined

      فيديوهات توضح عمل الروبوت

    12. المصادر

      مصادر لم يتم ذكرها:

      aMoSeRo – a Mobile Sensor Robot

11 thoughts on “ROS ببساطه – تعلم بيئة تطوير الروبوتات – الدرس اﻷول

  1. Pingback: ROS ببساطه – تعلم بيئة تطوير الروبوتات – الدرس الثانى - آردوينو ببساطة

لديك سؤال او تعليق...