Robotic Operating System (ROS) with MATLAB & Simulink

למידע ופרטים נוספים מלאו ושלחו את פרטיכם, ואנו נחזור אליכם בהקדם:


    ROS מהווה תווכה (Midware) בקוד פתוח, אשר נמצאת בשימוש בעולם הרובוטיקה במגוון רחב של תחומים, בים, באוויר וביבשה – במערכות רובוטיות כגון רחפנים, רובוטים ניידים על הקרקע, זרועות רובוטיות, מחסנים לוגיסטים חכמים ועוד. בנוסף, ניתן למצוא את ה- ROS בתעשיות רבות כגון תעופה, רכב, חקלאות, רפואה, מזון ועוד.

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

    האתגר העיקרי כיום עבור משתמשים המפתחים עם ROS היא העובדה שפלטפורמה זו עובדת בסביבת Linux והעבודה איתה מתבצעת באמצעות שפת ה- C++. צורת עבודה זו מצריכה מהמפתחים ללמוד מערכת הפעלה נוספת של המחשב, לעבוד עם שפת תכנות "מחמירה" מבחינת התחביר וניהול המשאבים וכמובן לנהל את הממשקים והעבודה עם המפעילים והחיישנים השונים במערכת המפותחת. אלו הן דרישות אפשריות כמובן, אך מצריכות זמן ומשאבים בכדי להקים תשתית מתאימה.

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

    פתרון ה- ROS Toolbox מאפשר התממשקות של MATLAB ו- Simulink עם ROS ו- ROS 2 ובכך לייצר רשת של קשרים בין האלמנטים במערכת. פתרון זה מכיל פונקציות MATLAB ובלוקים של Simulink המאפשרים את ההתממשקות לתווכה ובכך את האפשרויות לייבא ולנתח באופן אינטרקטיבי נתונים של ROS.
    בסביבת ROS, ניתן להגדיר את האלמנטים השונים הקיימים בתוכה הנקראים nodes, ואת צורת התקשורת והעברת הנתונים בינהם למשל: Client/Server, Publisher/Subscriber, Parameter Tree ועוד. בהתאם לגרסת ה- ROS עימה עובדים, ניתן אף לערוך את מבנה ההודעות העוברות במערכת.

    מבחינת העבודה עם ה- ROS Toolbox יחד עם פלטפורמות ROS & ROS 2 כתשתית, נתמכת שיטת העבודה בתהליך ייצור קוד C++ אוטומטי, הניתן לפריסה על גבי החומרה הנבחרת. יכולת זו מאפשרת לבדוק את האלגוריתמים והמודלים אשר פותחו במספר רמות, הן בסביבת סימולציה ועד המערכת הרובוטית עצמה.
    בנוסף, ההתממשקות עם תווכה זו מאפשרת לבחון את המודלים והאלגוריתמים גם מול סימולטור בשם Gazebo, סביבה פיזיקלית העובדת עם ROS & ROS 2, ובכך לבצע שכבה נוספת של בדיקות לפני שעובדים עם המערכת הפיזיקלית עצמה, דבר המאפשר לראות ויזואלית את התנהגות המערכת בסביבת עבודתה, לאסוף נתונים מחיישנים ולהגיע מוכנים יותר למערכת הסופית, כאשר אנחנו יודעים למה לצפות.

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

    כעת מפתחים יכולים להישאר בסביבת הפיתוח המוכרת של MATLAB / Simulink, בה הם פיתחו עד כה ואף להאיץ את קצב הפיתוח תוך יישום של תהליך ה- Model-Based Design, כלומר, לפתח בצורה מהירה את המודלים והאלגוריתמים, לבדוק את רכיבי התוכנה על המחשב ואף לייצר ממנו קוד המתאים ל- ROS ולהמשיך ולבדוק אותו ברמות שונות, עד עבודתו על גבי המוצר הסופי.

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