בדף הזה מפורטים פרטי פרויקט של כתיבה טכנית שאושר להשתתפות בתוכנית Google Season of Docs.
סיכום הפרויקט
- ארגון בקוד פתוח:
- Webots
- כותבים טכניים:
- ערוץ Soft illusion
- שם הפרויקט:
- סדרת סרטוני הדרכה ל-Webots (שילוב עם ROS2)
- אורך הפרויקט:
- אורך סטנדרטי (3 חודשים)
תיאור הפרויקט
תובנות:
סדרת סרטוני ההדרכה הזו תאפשר למשתמשים חדשים להתחיל לעבוד בצורה הטובה ביותר עם Webots, ותספק לצופים פתרונות ברורים שלב אחרי שלב להשגת סימולציות ספציפיות.
יעד:
בסוף הסדרה הזו, הצופים יוכלו ליצור צמתים בסיסיים של ROS2 ולנהל אינטראקציה עם Webots, וגם לקבל את הביטחון הנדרש לעבודה על פרויקטים מתקדמים ברוביטים ניידים. סדרת הסרטונים הזו גם תספק הסברים תיאורטיים טובים על מספר מושגים חיוניים בתחום הרובוטיקה.
פרטי סדרת הסרטונים:
התקנה והגדרה של מאגר ב-Visual Studio Code לפי תקן ROS 2. כולל התקנה של ROS2 לפי פקודות והעקרונות הבסיסיים של הפעולה שלו. שנית, הוא יכלול גם הגדרה של סביבת העבודה של ROS ב-VS Code ופונקציונליות של כרטיסיות בסיסיות ב-VS Code.
דוגמה בסיסית ל-ROS2 ול-Webots. נשתמש בדוגמאות של Webots ROS2 כדי לעורר עניין בקרב הצופים ולהסביר להם מה אפשר לעשות אם משתמשים ב-ROS2 עם Webots לצורך סימולציה. בנוסף, נסביר על תורות בסיסיות של תקשורת בין ROS2 לבין Webots.
שימוש בשירותי ROS2 כדי ליצור אינטראקציה עם Webots. הוראה בסיסית של שירות ROS שמסבירה את ההבדל בין שירותים ב-ROS וב-ROS2. בנוסף, הצגת מדריכים מפורטים לקריאה לשירותים ולהפעלת נושא החיישנים למדידות ולאקטואטורים לתנועה.
שליטה ברובוט מותאם אישית באמצעות בעל אתר ROS2. איך מפרסמים הודעות באמצעות ROS2 publishers ל-Webots. אנחנו יכולים להטמיע דוגמה לשליטה בתנועת הרובוט על ידי פרסום פלט המקלדת בנושא, ששירותי ROS יכולים להשתמש בו לתנועה ב-Webots.
קבלת משוב מהרובוט באמצעות ROS2 Subscriber. בסרטון הזה נירשם לקריאות החיישנים של חיישני המרחק ונפסיק את הרובוט אם הוא עומד להתנגש. בעיקרון, זה יהיה צומת להתחמקות מכשול עם פרסום הודעות אינטראקטיביות.
רובוטים של מאסטר(בעל תוכן דיגיטלי) ושל עבדים(מנויים) באמצעות ROS2. בסרטון הזה נשליט רובוט אחד באמצעות מקלדת ונגרום לרובוט אחר לברוח מהרובוט הידני. דומה לתרחיש של 'גנב ושוטרים' :) [זה יהיה המשך של 3,4,5 סרטונים]. כך הצופים יוכלו לבדוק את התקשורת ולזהות כשלים בסימולציה אם יש בעיה ב-ROS.
הגדרת Rviz (הצגת פלט של חיישנים שונים). בסרטון הזה נוסיף כמה חיישנים נוספים ונפרסם את הנתונים שלהם ב-Rviz. בסוף הסרטון הזה, הצופה יוכל להגדיר את Rviz (כלומר, להוסיף חיישנים כמו Lidar, מצלמה וכו' להמחשה חזותית), לשמור את ההגדרות ולהפעיל את ההגדרות השמורות בפעם הבאה.
סרטון של ניפוי באגים (Rostopic echo, Rostopic info, RQT_graph). הסרטון הזה יכלול פונקציונליות שגויה מכוונת בכמה נושאים, כדי לעזור לכם להבין את הטכניקה של ניפוי באגים. נבצע תהליך של הצגת תרשים RQT ושל זיהוי הנושאים שגורמים לבעיה. משתמשים ב-rostopic echo כדי לבדוק אם הנושא מתפרסם, ובסוף בודקים את rostopic info כדי למצוא את הבעיה. פותרים את הבעיה ומקבלים פונקציונליות תקינה.
סרטון לניפוי באגים(rqt_console, rqt_gui) בסרטון הזה נעשה שימוש בהודעות Ros(info, debug, error וכו') בצומת, ונבחן את השימוש ב-rqt_console. הסרטון הזה יורחב גם כדי להשתמש ב-rqt_gui לפרסום הודעות דמה כדי לקבל את הפונקציונליות הנדרשת. זוהי גישה חלופית לתיקון באגים מסוימים.
סרטונים בנושאים מתקדמים: שילוב של ספריית SLAM בסביבה לא מוכרת (ערכת הכלים של SLAM או LaMa) [חלק 1] הסרטון הזה יתחיל בתיאור התיאוריה הבסיסית של בעיות SLAM. לאחר מכן נשתמש בתשתית של המושגים שלמדנו למעלה כדי להבין את עיקר העניין בפרויקט. לסיום, נוצר את הצמתים הנחוצים דרך מסוף ונראה את הפלט של המיפוי ב-Rviz.
סרטונים בנושאים מתקדמים: שילוב של ספריית SLAM בסביבה לא מוכרת (SLAM toolbox או LaMa) [חלק 2] הסרטון הזה הוא המשך של הסרטון ה-10. בסרטון הזה אראה איך ליצור קובץ הפעלה כדי להפעיל את כל הצמתים יחד, ואבדוק את rqt_graph כדי להבין את המושגים במסגרת ROS. בסוף, נשמור את המפה שנוצרה על ידי החבילה באמצעות שרת מפות.
סרטונים בנושאים מתקדמים: על השילוב של OpenCV (זיהוי תגי AR, חבילת Ar_track_alvar) [חלק 1] בסרטון נסביר מהם תגי AR ומה המשמעות שלהם בביצוע לוקליזציה באמצעות ראיית מכונה. לאחר מכן נמשיך ונסביר איך פועלת חבילת ה-AR Track Alvar. כך תוכלו לקבל תמונה כללית של הפרויקט. בשלב האחרון, השירות יופעל כדי לאפשר סטרימינג של פריימים מ-Webots לנושא ROS.
סרטונים בנושאים מתקדמים: שילוב של OpenCV (זיהוי תג AR, חבילת Ar_track_alvar) [חלק 2] הסרטון הזה יהיה המשך של הסרטון ה-12, שבו מקור התמונות שלמעלה ישמש את החבילה, ויפורסם נושא של טרנספורמציה בין הרובוט לבין תג ה-AR, שניתן לצפות בו ב-Rviz. לבסוף, כשנעביר את הרובוט, נראה תגים שונים שמתמקמים והמיקום שלהם משתנה ב-Rviz ובהודעות rostopic.
סיכום:
פרויקט GSOD הזה הוא חבילה עצמאית שמאפשרת הבנה בסיסית של השילוב של ROS2 עם Webots. החבילה הזו תכלול גם יישום מעשי של המושגים ב-ROS2, כמו נושאים, שירותים, צמתים, קובצי הפעלה, גורם פרסום, מנויים, כלים שונים לניפוי באגים ושימוש ב-VS Code. בנוסף, נעסוק בפרויקטים בנושאים מתקדמים כמו SLAM ו-OpenCV. כך הצופים יוכלו לראות דוגמה לעבודה מקצה לקצה באמצעות ROS2 ו-Webots.