מערכת ההפעלה לרובוטים (Robot Operating System)

רובוטיקה

הגדרה

ROS היא ערכת תוכנת-ביניים בקוד פתוח לפיתוח רובוטים — למרות שמה היא אינה מערכת הפעלה, אלא שכבת תשתית לתקשורת בין רכיבי הרובוט.

מערכת ההפעלה לרובוטים (Robot Operating System), הידועה בראשי-התיבות ROS, היא ערכת תוכנת-ביניים בקוד פתוח לפיתוח רובוטים — למרות שמה היא אינה מערכת הפעלה, אלא שכבת תשתית לתקשורת בין רכיבי הרובוט. היא רצה מעל מערכת הפעלה קיימת ומספקת הפשטה של החומרה, בקרת התקנים, העברת הודעות וניהול חבילות-תוכנה.

הארכיטקטורה בנויה על מודל של פרסום-ומינוי. כל רכיב הוא תהליך עצמאי הנקרא צומת: אחד מפעיל את המצלמה, אחר מזהה עצמים, שלישי שולט במנועים. הצמתים אינם פונים זה לזה ישירות, אלא מפרסמים הודעות לערוצים בעלי שם הנקראים נושאים, וכל צומת שהמידע רלוונטי לו נרשם לאותו נושא. היתרון מעשי: אפשר להחליף מצלמה אחת באחרת, או להריץ במקומה קובץ הקלטה, בלי לגעת בשאר המערכת. לצד זאת קיימים שירותים, המאפשרים בקשה ותשובה ישירה בין שני צמתים, ושרת-פרמטרים המשמש כמאגר הגדרות משותף.

הפרויקט נולד ב-2007 במעבדת הרובוטיקה של אוניברסיטת סטנפורד, כשהסטודנטים אריק ברגר וקינן ויירובק הרחיבו מסגרת קודמת של מורגן קוויגלי בשם switchyard. בין 2007 ל-2013 פיתחה אותו חברת Willow Garage לצד רובוט המחקר PR2. ספריות הליבה מופצות ברישיון BSD, החופשי לשימוש מסחרי ומחקרי כאחד. הקרן שהוקמה ב-2012 לניהול הפרויקט שינתה את שמה ב-2017 ל-Open Robotics, והיא מתחזקת אותו עד היום.

הגרסה הראשונה לא תוכננה למשימות זמן-אמת, וזו הייתה אחת המגבלות שהובילו לפיתוח יורשת. ROS 2 הוכרזה בכנס ROSCon של 2014 ושוחררה לראשונה בדצמבר 2017, במטרה לתמוך בתכנות בזמן-אמת ובמגוון רחב יותר של סביבות מחשוב. סביב שתיהן נבנה מאגר חבילות רחב לניווט, למניפולציה, לתפיסה ולתכנון תנועה, וכן חיבור לסימולטורים.

חשיבותה של ROS מעשית בעיקרה: היא חסכה לאינספור מעבדות את הצורך לכתוב מחדש נהגי-חומרה ומנגנוני תקשורת בסיסיים, והיא משמשת כיום בייצור, במחקר וברובוטיקת חלל כאחד.