Blockly::ROS           









 



                                          מגישים :       גלעד בנט           300516374        
                                                           עומרי ברוכים       300477833                

                                    מנחה :         דר' אמיר שפירא
                                                     אוניברסיטת בן גוריון בנגב 

הקדמה

   ROS - מערכת הפעלה לרובוטים
  פותחה בשנת 2007 
•  המעבדה לבינה מלאכותית של אוניברסיטת סטנפורד
 מבוססת כולה על קוד פתוח
•  עקרון מנחה - המנעות מהמצאת הגלגל בכל פעם מחדש
•  הצעת פונקציות סטנדרטיות נפוצות 


                   ROS::

מטרת הפרויקט

•  הבעיה:
–  פלטפורמת ROS דורשת ידע מקיף וניסיון רב
–  הכרות מעמיקה עם שפות תכנות כגון:  CPP ו- PYTHON לשליטה ברובוט

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

מה נרצה להשיג?


• פישוט תהליך כתיבת הקוד
• המשתמש לא יידרש להכיר את שפת התכנות
התמקדות בלוגיקה של התוכנית ולא בתחביר השפה
• לחסוך את תהליך כתיבת הקוד ושגיאות כתיב מיותרות
• המשתמש הוא מגיל 9 עד 99

איך נשיג?

  
•  שימוש בתשתית Blockly לתכנות גרפי באמצעות בלוקים:
–  שומשה למספר פרוייקטים בתעשייה כגון: 
                                                                      Play i ,MIT App Inventor ...
–  פותחה בשפת JavaScript
           •   פיתוח Blockly::ROS לכתיבת תוכניות בשפת CPP

עקרונות מנחים בפיתוח המערכת


•   מערכת מבוססת WEB לשימוש בכל מערכות ההפעלה
•  שמירה על גנריות
•   קלה לשימוש
•   עוזרת ללימוד ROS וסלחנית בתהליך התכנות
•   ניתנת להרחבה בהמשך ע"י מפתחים בקהילת ROS

מערכת Blockly-ROS 


מיד נדגים, אבל שניה לפני..

 • Nodes   החלק הבסיסי ביותר ב-ROS
        – מהווה למעשה מופע של הפעלה
        – תוכנית הרצה המבצעת חישובים עד אשר מסתיימת                   

•  Topics    מערכת תעבורת מידע ונתונים באופן א-סינכרוני 
              –  תקשורת בין Node ל-Node
              – "פרסום" (Publish) של הודעות
      – "רישום" (Subscribe) לנושא מסוים. 


הבלוקים שפותחו

• הבלוקים מחולקים ל-2 קטגוריות:
בלוקים בסיסיים: 

בלוקיים יחודיים ל-ROS:







הדגמה

TAKE 1

 סימולציה

  •  לבחינת המערכת השתמשנו בסימולטור Bobcat
–   רכב 4X4 עם כף הרמה
–   הסימולציה היא בתוכנת Gazebo
  •  כתיבת בלוקים לשליטה בכל חלקי הרכב

   

דוגמא קטנה לפני.. 






הדגמה

TAKE 2

ממשק לפיתוח בלוקים 

  Block Builder


 •   ממשק פיתוח בלוקים מתקדמים
 •   יצירת קטגוריות חדשות לרובוטים יחודיים
 •   אפשרות לקהילת המפתחים ב- ROS להרחיב את המערכת
 •   חיסכון של כתיבת קוד גם בקבלת רובוט חדש

 Block Builder


בימים אלו.. 

 •   המערכת הועלתה לרשת האינטרנט לשימוש הכלל

 •   סרטוני הדגמה הופצו לקהילת מפתחי ROS 
 •   מופץ מדריך לממשיכי הדרך לפיתוח מודלים לרובוטים
     נוספים 
 •   Blockly::ROS משותף בקהילת הקוד הפתוח
                                                       (..GitHub)

נסכם..

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




נגמר..






תודה על ההקשבה!

Blockly::ROS

By Omri Bruchim

Blockly::ROS

Omri Bruchim & Gilad Banet

  • 645