الأربعاء، 21 ديسمبر 2016

Aasem Shork

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

Aasem Shork بتاريخ عدد التعليقات : 0

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) و البرامج الموجودة في الروبوتات الأخري
      الثالث:  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 وبعدها تم تأسيسOSR(Open Source Robotics Foundationو هى المشرف على ROS حتى الآن و لديها مشاريع أخري مرتبطه بROS مثل Gazebo و هو Physical Simulator (سنتحدث عنه بالتفصيل لاحقا في دروس اخري)
      لكن المساهمة في ROS لم تكن منهم فقطفانROS مفتوح المصدر (open source) تحت رخصه BSD و بالتالي فان شريحه المطورين له و العاملين به كبيره جدا فيوجد مجموعات و شركات أخري تساهم في تطويره أيضا ROS يستخدم رخصه BSD التي لا تشترط بان تكون الأعمال المشتقة مفتوحه المصدر و هذا يجعل ROS يستخدم في استخدامات مغلقه المصدر و تجاريه.
      عمر 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 الجديدة).
      القناه تضم شرح مهم جدا لكثير من الpackages في ROS و في بعض الأحيان تضم معلومات لن تجدها موثقه إلا بها,يفضل متابعه شرح أي package قبل استخدامها لأول مره من هذه القناه بعد تصفح توثيقها على ROS Wiki
      أين تتابع أخبار ROS؟
      ROS Planet يتم نشر أخبار ROS و أخبار الحزم الجديدة التي تم إصدارها و طلبات العمل
      مؤتمرات بحثيه متعلقه بالروبوتات IROS & ICRA
    11. مشروع من عملى
      الهدف من المشروع بناء روبوت ذاتي التحكم قادر على الوصول من مكانه إلى أي نقطه اطلب منه الوصول إليها (عن طريق برنامج RVIZ – برنامج يوضح قراءات الروبوت الحالية)
      robot combined
    12. المصادر
      مصادر لم يتم ذكرها:

no image
تقييمات المشاركة : ROS ببساطه – تعلم بيئة تطوير الروبوتات – الدرس اﻷول 9 على 10 مرتكز على 10 ratings. 9 تقييمات القراء.

مواضيع قد تهمك

0 تعليق

اتبع التعليمات لاضافة تعليق
  • يرجى ترك تعليق على الموضوع. سيتم حذف التعليقات التي تتضمن روابط مباشرة، والإعلانات، أو ما شابه ذلك.
  • لإضافة كود ضعه في : هنا الكود
  • لإضافة كود طويل ضعه في : هنا الكود
  • لإضافة اقتباس ضعه في : اكتب هنا
  • لإضافة صورة ضعها في : رابط الصورة هنا
  • لإضافة فيديو استعمل : [iframe] هنا رابط تضمين الفيديو [/iframe]
  • * قبل ادخال كود عليك بتحويله أولا
  • شكرا لك

تعديل

يتم التشغيل بواسطة Blogger.

تعديل

نص

Followers

تعديل

أرشيف المدونة الإلكترونية

عن المدونة

مواضيع عشوائية

تابعنا

تحميل

اضافات بلوجر

قوالب بلوجر

مواضيع مميزة

مشاركات شائعة