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