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

سیستم عامل ربات یا ROS یک میان‌افزار رباتیک (یعنی مجموعه‌ای از چارچوب‌های نرم‌افزار ی برای توسعه نرم‌افزار ربات) است. اگر چه ROS یک سیستم عامل نیست اما سرویس‌هایی را فراهم می‌کند که برای خوشه‌ای از کامپیوترهای همگون طراحی شده‌اند مثل فراهم کردن یک لایه انتزاعی برای سخت‌افزار، کنترل دستگاه در سطح پایین، پیاده‌سازی عملیات‌های معمول رباتیک، انتقال پیام بین فرایندها، و مدیریت بسته. علی‌رغم اهمیت واکنشی‌بودن و زمان تاخیر کم در کنترل ربات، ROS یک سیستم عاملی بی‌درنگ نیست، گرچه امکان ادغام کدهای بی‌درنگ با ROS وجود دارد. مشکل عدم پشتیبانی سیستم‌عامل بی‌درنگ در نسخه 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, 2019
Kinetic Kame
۲۳ مه ۲۰۱۶
75x75پیکسل
2021-05-30
Jade Turtle
۲۳ مه ۲۰۱۵
79x79پیکسل
2017-05-30
Indigo Igloo
۲۲ ژوئیه ۲۰۱۴
75x75پیکسل
2019-04-30
Hydro Medusa
۴ سپتامبر ۲۰۱۳
80x80پیکسل
2014-05-31
Groovy Galapagos
۳۱ دسامبر ۲۰۱۲
104x104پیکسل
2014-07-31
Fuerte 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.
BeagleBoard. آزمایشگاه رباتیک دانشگاه Katholieke Universiteit Leuven بلژیک: ROS را به Beagleboard پورت کرده‌است.
HERB که در دانشگاه کارنگی ملون و برنامه رباتیک شخصی اینتل توسعه یافته‌است.
نیرومند و درشت هیکل A200 ربات توسعه یافته (و یکپارچه به ROS) توسط Clearpath رباتیک
ربات شخصی PR1 توسعه یافته در آزمایشگاه Ken Salisbury در دانشگاه استنفورد
ربات شخصی PR2 توسعه یافته در Willow Garge
پلتفرم تحقیقاتی رباتیک جراحی پزشکی Raven II
پروتکل و سرور rosbridge که دانشگاه براون برای فراهم کردن امکان ادغام ROS با هر ربات یا هر محیط محاسباتی با استفاده از پیام‌رسانی برپایه JSONتوسعه داده‌است مثل مرورگرهای وب، متلب، مایکروسافت ویندوز، OS X، و سیستم‌های نهفته
Shadow Robot Hand – یک دست انسان‌نمای ماهر
ربات‌های STAIR I و STAIR II که بوسیله آزمایشگاه Andrew Ng در دانشگاه استنفورد توسعه داده شده‌است.
SummitXL: mobile robot توسعه یافته توسط Robotnik، یک شرکت مهندسی متخصص در mobile robotها، دست‌های رباتیک و راه‌حل‌های صنعتی برپایه معماری ROS.
ربات Nao انسان‌نما: آزمایشگاه ربات‌های انسان‌نمای دانشگاه فرایبورگ ادغام ROS با ربات انسان‌نمای Nao برپایه پروت اولیه دانشگاه براون را توسعه داده‌است.
ربات UBR1 توسعه داده شده توسط Unbounded Robotics.
بسته‌های ROS
ROS شامل تعداد زیادی پیاده‌سازی متن‌باز ز عملیات‌ها و الگوریتم‌های رباتیک است که در قالب بسته سازمان‌دهی شده‌اند. بسیاری از بسته‌ها به عنوان بخشی از توزیع ROS منتشر می‌شوند و سایر بسته‌ها ممکن است توسط اشخاص توسعه داده شده و از طریق سایت‌های اشتراک کد مثل گیت‌هاب، توزیع شوند. برای اطلاع از لیست بسته‌های موجود برای ROS آدرس زیر را ببینید: http://www.ros.org/browse/list.php
باز سخت‌افزار
رباتیک میان
نرم‌افزار منبع باز