سیستم‌عامل روبات

سیستم عامل ربات  یا ROS یک میان‌افزار رباتیک (یعنی مجموعه ای از چارچوب‌های نرم‌افزاری برای توسعه نرم‌افزار ربات) است. اگر چه ROS یک سیستم عامل نیست اما سرویس‌هایی را فراهم می‌کند که برای خوشه‌ای از کامپیوترهای همگون طراحی شده‌اند مثل فراهم کردن یک لایه انتزاعی برای سخت‌افزار، کنترل دستگاه در سطح پایین، پیاده‌سازی عملیات‌های معمول رباتیک، انتقال پیام بین فرایندها، و مدیریت بسته. علی‌رغم اهمیت واکنشی‌بودن و زمان تأخیر کم در کنترل ربات، ROS یک سیستم عاملی بی‌درنگ نیست، گرچه امکان ادغام کدهای بی‌درنگ با ROS وجود دارد.ROS-Introduction http://wiki.ros.org/ROS/Introduction مشکل عدم پشتیبانی سیستم‌عامل بی‌درنگ در نسخه ROS 2.0 حل شده‌است.

نرم‌افزارها در اکوسیستم ROS را می‌توان به سه گروه مجزا تقسیم‌بندی کرد:
 ابزارهای مستقل از زبان و مستقل از پلتفرم برای ساخت و توزیع نرم‌افزارهای برپایه ROS
 پیاده‌سازی کتابخانه کلاینت ROS مثل roscpp با rospy با و roslisp;
 بسته حاوی کدهای مرتبط با نرم‌افزار که از یک یا چند کتابخانه کلاینت ROS استفاده می‌نماید.
هر دو ابزار مستقل از زبان و کتابخانه‌های کلاینت اصلی (C++، پایتون و Lisp) تحت مجوز BSD منتشر شده‌اند و بنابراین متن‌باز هستند و برای استفاده تجاری و تحقیقاتی رایگان می‌باشند. اغلب سایر بسته‌های تحت سایر مجوزهای متن‌باز هستند که عملیات‌های معمول و کاربردهایی مثل درایورهای سخت‌افزار، مدل‌های ربات، انواع‌داده‌ای، طرح‌ریزی، ادراک، محلی‌سازی و نقشه‌برداری همزمان (Simultaneous localization and mapping)، ابزارهای شبیه‌سازی، و سایر الگوریتم‌ها را پیاده‌سازی می‌کنند.

کتابخانه‌های کلاینت اصلی (C++, Python و Lisp) بیشتر به دلیل وابستگی‌شان به مجموعه بزرگی از نرم‌افزاهای متن‌باز، منطبق با سیستم‌های شبه-یونیکس هستند. برای این کتابخانه‌های کلاینت، اوبونتو به عنوان «پشتیبانی‌شده» لیست شده‌است در حالی که سایر سیستم‌عامل‌ها مثل فدورا، مک‌اواس، و ماکروسافت ویندوز «آزمایش» هستند و به وسیلهٔ جامعه متن‌باز پشتیبانی می‌شوند. کتابخانه مشتری ROS جاوا نیتیو، rosjava، این محدودیت‌ها را ندارد و امکان نوشتن نرم‌افزارهای برپایه ROS برای اندروید را فراهم کرده‌است.

 برنامه‌های کاربردی 
بخش‌های ROS عبارتند از:
 یک گره هماهنگی مستر
 انتشار یا به اشتراک جریان داده: تصاویر، استریو، لیزر، کنترل، محرک، تماس …
 تسهیم اطلاعات
 ایجاد و تخریب گره
 گره‌ها به صورت یکپارچه توزیع شده هستند و امکان توزیع عملیات روی چند هسته، چند پردازشگر، gpuها و خوشه‌ها را فراهم می‌کنند
 رویدادنگاری
 سرور پارامتر
 سیستم‌های تست
بسته‌های نرم‌افزای ROS در حوزه‌های زیر هستند:
 ادراک
 شی شناسایی
 تقسیم‌بندی و تشخیص
 تشخیص چهره
 تشخیص حرکت
 ردیابی حرکت
 egomotion
 فهم حرکت
 ساختار از حرکت (SFM)
 دید استریو: ادراک عمق از طریق دو دوربین
 حرکت
 mobile robotics
 کنترل
 برنامه‌ریزی
 grasping
ROS-Industrial یک برنامه توسعه نرم‌افزار برای ایجاد Unified Robot Description Format (URDF) برای ربات‌های صنعتی تحت مجوز BSD است.

 تاریخچه نسخه 
انتشارهای ROS ممکن است با سایر انتشارهای ناسازگار باشد و اغلب به وسیلهٔ نام کد به‌جای شماره نسخه مشخص می‌شود. انتشارهای اصلی تا کنون:
 نام  تاریخ انتشار لوگو تاریخ پایان پشتیبانیLunar Loggerhead۲۳ مه ۲۰۱۷76x76پیکسلMay, 2019Kinetic Kame۲۳ مه ۲۰۱۶75x75پیکسل2021-05-30Jade Turtle۲۳ مه ۲۰۱۵79x79پیکسل2017-05-30Indigo Igloo۲۲ ژوئیه ۲۰۱۴75x75پیکسل2019-04-30Hydro Medusa۴ سپتامبر ۲۰۱۳80x80پیکسل2014-05-31Groovy Galapagos۳۱ دسامبر ۲۰۱۲104x104پیکسل2014-07-31Fuerte Turtle۲۳ آوریل ۲۰۱۲97x97پیکسل  Electric Emys۳۰ اوت ۲۰۱۱75x75پیکسل  Diamondback۲ مارس ۲۰۱۱99x99پیکسل  C Turtle۲ اوت ۲۰۱۰75x75پیکسل  Box Turtle۲ مارس ۲۰۱۰75x75پیکسل  

 پورت‌ها به روبات‌ها و بوردها 
 ABB, Adept, Fanuc, Motoman و Universal Robots به وسیلهٔ ROS-Industrial پشتیبانی می‌شوند.
 Baxter at Rethink Robotics, Inc.Baxter http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/ 
 BeagleBoard. آزمایشگاه رباتیک دانشگاه Katholieke Universiteit Leuven بلژیک:K U leuven http://people.mech.kuleuven.be/~u0062536/embsensor.html  ROS را به Beagleboard پورت کرده‌است.
 HERB که در دانشگاه کارنگی ملون و برنامه رباتیک شخصی اینتل توسعه یافته‌است.
 نیرومند و درشت هیکل A200 ربات توسعه یافته (و یکپارچه به ROS) توسط Clearpath رباتیک
 ربات شخصی PR1 توسعه یافته در آزمایشگاه Ken Salisbury در دانشگاه استنفورد
 ربات شخصی PR2 توسعه یافته در Willow Garge
 پلتفرم تحقیقاتی رباتیک جراحی پزشکی Raven IIB. Hannaford, J. Rosen, Diana CW Friedman, H. King, P. Roan, L. Cheng, D. Glozman, J. Ma, S.N. Kosari, L. White, 'Raven-II: AN Open Platform for Surgical Robotics Research,' IEEE Transactions on Biomedical Engineering, vol. 60, pp. 954-959, April 2013.
 پروتکل و سرور rosbridgerosbridge protocol and server http://www.ros.org/wiki/rosbridge که دانشگاه براونbrown-robotics http://brown-robotics.org/ برای فراهم کردن امکان ادغام ROS با هر ربات یا هر محیط محاسباتی با استفاده از پیام‌رسانی برپایه JSONتوسعه داده‌است مثل مرورگرهای وب، متلب، مایکروسافت ویندوز، OS X، و سیستم‌های نهفته
 Shadow Robot HandSDH – یک دست انسان‌نمای ماهر
 ربات‌های STAIR I و STAIR IISTAIR I and II http://stair.stanford.edu/index.php  که به وسیلهٔ آزمایشگاه Andrew Ng در دانشگاه استنفورد توسعه داده شده‌است.
 SummitXL: mobile robot توسعه یافته توسط Robotnik، یک شرکت مهندسی متخصص در mobile robotها، دست‌های رباتیک و راه‌حل‌های صنعتی برپایه معماری ROS.
 ربات Nao انسان‌نما: آزمایشگاه ربات‌های انسان‌نمای دانشگاه فرایبورگ ادغام ROS با ربات انسان‌نمای Nao برپایه پروت اولیهٔ دانشگاه براون را توسعه داده‌است.G.T. Jay, Post to ros-users mailing list announcing ROS support for the Nao 
 ربات UBR1 توسعه داده شده توسط Unbounded Robotics.

 بسته‌های ROS 
ROS شامل تعداد زیادی پیاده‌سازی متن‌باز ز عملیات‌ها و الگوریتم‌های رباتیک است که در قالب بسته سازمان‌دهی شده‌اند. بسیاری از بسته‌ها به عنوان بخشی از توزیع ROS منتشر می‌شوند و سایر بسته‌ها ممکن است توسط اشخاص توسعه داده شده و از طریق سایت‌های اشتراک کد مثل گیت‌هاب، توزیع شوند. برای اطلاع از لیست بسته‌های موجود برای ROS آدرس زیر را ببینید: http://www.ros.org/browse/list.php

 همکاری برای توسعه 
ROS زمینه‌ای را فراهم کرده تا توسعه‌دهندگان نرم‌افزارهای رباتیک با یکدگر همکاری کند. به‌عنوان‌مثال، یک آزمایشگاه ممکن است درزمینهٔ نقشه‌برداری محیط‌های داخلی تخصص داشته باشد و می‌تواند سیستم طبقه‌بندی جهانی را برای تولید نقشه‌ها به کار گیرد. گروه دیگری ممکن است در استفاده از نقشه‌ها برای حرکت تخصص داشته باشد، و درعین‌حال گروهی دیگر ممکن است دارای یک رویکرد بینایی کامپیوتری باشد که به‌خوبی برای شناخت اشیاء کوچک درهم‌شکسته کار می‌کند. ROS به‌طور خاص برای گروه‌هایی مانند این‌ها طراحی‌شده‌است تا با یکدیگر همکاری کنند.

 آموزش فارسی 
"ایران رآس" را می‌توان به عنوان تنها مرجع تخصصی آموزش فارسی ROS نام برد. محققین می‌توانند ضمن استفاده از آموزش‌های گام به گام، در بخش "پرسش و پاسخ "سوالات و مشکلات خود را مطرح کنند و از راهنمایی کارشناسان بهره ببرند. همچنین افراد توانمند نیز می‌توانند در این بخش خود پاسخگوی سؤالات دیگران باشند.

 جستارهای وابسته 
 باز سخت‌افزار
 رباتیک میان
 نرم‌افزار منبع باز

 منابع 

 پروژه‌های مرتبط 
 RT middleware – Robot middleware standard/implementations. RT-component is discussed / defined by the Object Management Group.

 پیوند به بیرون 
 مرجع آموزش ROS
 مرجع آموزش و توسعه ROS

 ویکی رسمی

 ROS پاسخ (سوالات)
 لیست ربات‌های در حال اجرا ROS
 سایت ROS-Industrial

رده:مهندسی رباتیک در ۲۰۰۷ (میلادی)
رده:ربات‌های متن‌باز
رده:سوییت رباتیک
رده:سیستم‌عامل‌های آزاد
رده:نرم‌افزارهای ۲۰۰۷ (میلادی)
رده:نرم‌افزارهایی که از پروانه بی‌اس‌دی استفاده می‌کنند