سیستمعامل روبات
سیستم عامل ربات (به انگلیسی: Robot Operating System) یا ROS یک میانافزار رباتیک (یعنی مجموعه ای از چارچوبهای نرمافزاری برای توسعه نرمافزار ربات) است. اگر چه ROS یک سیستم عامل نیست اما سرویسهایی را فراهم میکند که برای خوشهای از کامپیوترهای همگون طراحی شدهاند مثل فراهم کردن یک لایه انتزاعی برای سختافزار، کنترل دستگاه در سطح پایین، پیادهسازی عملیاتهای معمول رباتیک، انتقال پیام بین فرایندها، و مدیریت بسته. علیرغم اهمیت واکنشیبودن و زمان تأخیر کم در کنترل ربات، ROS یک سیستم عاملی بیدرنگ نیست، گرچه امکان ادغام کدهای بیدرنگ با ROS وجود دارد.[۲] مشکل عدم پشتیبانی سیستمعامل بیدرنگ در نسخه ROS 2.0 حل شدهاست.[۳]
نویسنده(های) اصلی | گاراژ ویلو Stanford Artificial Intelligence Laboratory |
---|---|
انتشار اولیه | ۲۰۰۷ |
انتشار پایدار | Lunar Loggerhead[۱]
/ ۲۳ مه ۲۰۱۷ |
مخزن | |
نوشتهشده با | سی پلاسپلاس or پایتون (زبان برنامهنویسی) |
سیستمعامل | لینوکس، مکاواس |
نوع | سوییت رباتیک, سیستمعامل، کتابخانه (رایانه) |
مجوز | پروانههای بیاسدی |
وبگاه |
نرمافزارها در اکوسیستم 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 ممکن است با سایر انتشارهای ناسازگار باشد و اغلب به وسیلهٔ نام کد بهجای شماره نسخه مشخص میشود. انتشارهای اصلی تا کنون:
پورتها به روباتها و بوردها
ویرایش- 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
همکاری برای توسعه
ویرایشROS زمینهای را فراهم کرده تا توسعهدهندگان نرمافزارهای رباتیک با یکدگر همکاری کند. بهعنوانمثال، یک آزمایشگاه ممکن است درزمینهٔ نقشهبرداری محیطهای داخلی تخصص داشته باشد و میتواند سیستم طبقهبندی جهانی را برای تولید نقشهها به کار گیرد. گروه دیگری ممکن است در استفاده از نقشهها برای حرکت تخصص داشته باشد، و درعینحال گروهی دیگر ممکن است دارای یک رویکرد بینایی کامپیوتری باشد که بهخوبی برای شناخت اشیاء کوچک درهمشکسته کار میکند. ROS بهطور خاص برای گروههایی مانند اینها طراحیشدهاست تا با یکدیگر همکاری کنند.[۳۰]
آموزش فارسی
ویرایش"ایران رآس" را میتوان به عنوان تنها مرجع تخصصی آموزش فارسی ROS نام برد. محققین میتوانند ضمن استفاده از آموزشهای گام به گام، در بخش "پرسش و پاسخ "سوالات و مشکلات خود را مطرح کنند و از راهنمایی کارشناسان بهره ببرند. همچنین افراد توانمند نیز میتوانند در این بخش خود پاسخگوی سؤالات دیگران باشند.
جستارهای وابسته
ویرایش- باز سختافزار
- رباتیک میان
- نرمافزار منبع باز
منابع
ویرایش- ↑ "ROS Lunar Loggerhead". Wiki.ros.org. Retrieved 11 September 2017.
- ↑ ROS-Introduction http://wiki.ros.org/ROS/Introduction
- ↑ Kay, Jackie. "Proposal for Implementation of Real-time Systems in ROS 2". Retrieved 16 August 2016.
- ↑ "Browsing packages for indigo". ROS.org. ROS. Archived from the original on 24 September 2015. Retrieved 21 February 2016.
- ↑ "Package Summary". ROS.org. ROS. Retrieved 21 February 2016.
- ↑ "Package SUmmary". ROS.org. ROS. Retrieved 21 February 2016.
- ↑ "Package Summary". ROS.org. ROS. Retrieved 21 February 2016.
- ↑ "client libraries". ROS.org. Retrieved 12 December 2017.
- ↑ "ROS/Installation - ROS Wiki". Wiki.ros.org. 29 سپتامبر 2013. Retrieved 12 July 2014.
- ↑ "android - ROS Wiki". Wiki.ros.org. 12 آوریل 2014. Retrieved 12 July 2014.
- ↑ "Industrial - ROS Wiki". ROS.org. Retrieved 12 December 2017.
- ↑ "Home". ROS-Industrial. Retrieved 12 December 2017.
- ↑ Baxter http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/ بایگانیشده در ۴ اوت ۲۰۱۴ توسط Wayback Machine
- ↑ K U leuven http://people.mech.kuleuven.be/~u0062536/embsensor.html بایگانیشده در ۱۲ مه ۲۰۱۳ توسط Wayback Machine
- ↑ "CMU Personal Robotics Lab". personalrobotics.Intel-Research.net. Retrieved 12 December 2017.
- ↑ "Husky UGV - Outdoor Field Research Robot by Clearpath". ClearPathRobotics.com. Retrieved 12 December 2017.
- ↑ "Stanford Personal Robotics Program". personalrobotics.Stanford.edu. Retrieved 12 December 2017.
- ↑ «PR2». بایگانیشده از اصلی در ۲۰ ژوئن ۲۰۱۰. دریافتشده در ۷ ژانویه ۲۰۱۸.
- ↑ B. 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.
- ↑ "BioRobotics Laboratory | Biorobotics Laboratory - University of Washington". Brl.ee.washington.edu. Archived from the original on 14 July 2014. Retrieved 12 July 2014.
- ↑ rosbridge protocol and server http://www.ros.org/wiki/rosbridge
- ↑ brown-robotics http://brown-robotics.org/
- ↑ SDH
- ↑ STAIR I and II http://stair.stanford.edu/index.php بایگانیشده در ۸ نوامبر ۲۰۱۱ توسط Wayback Machine
- ↑ "Summit XL - Robotnik". Robotnik.es. Retrieved 12 July 2014.
- ↑ "nao - ROS Wiki". Ros.org. 28 اکتبر 2013. Retrieved 12 July 2014.
- ↑ G.T. Jay, Post to ros-users mailing list announcing ROS support for the Nao بایگانیشده در ۱۰ مه ۲۰۱۳ توسط Wayback Machine
- ↑ "Specification". Unbounded Robotics. Archived from the original on 28 April 2015. Retrieved 12 July 2014.
- ↑ Ackerman, Evan (21 اکتبر 2013). "UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation - IEEE Spectrum". Spectrum.ieee.org. Retrieved 12 July 2014.
- ↑ «درباره رآس – ایران رآس| اولین مرجع آموزش و توسعه ROS در ایران».
پروژههای مرتبط
ویرایش- RT middleware – Robot middleware standard/implementations. RT-component is discussed / defined by the Object Management Group.