מה חדש במערכות אוטונומיות בגרסה R2022a
בואו להכיר את החידושים בגרסה R2022a, שיכולים לקצר את זמני הפיתוח שלכם ולהקל על תהליך העבודה! בפוסט זה אסקור בקצרה את השינויים המרכזיים בגרסה R2022a בכל הקשור למערכות אוטונומיות – עדכונים בכלים בתחום הרובוטיקה, התעופה והנהיגה האוטונומית.
רובוטיקה
ב-Robotics System Toolbox תוכלו למצוא אלגוריתמים עבור יישומי רובוטיים ניידים ומניפולטורים. הכלי מספק תהליך עבודה שלם מקצה לקצה, עם דוגמאות, חיבור סימולציות3D וממשק לחומרות שנמצאות בשימוש רחב. עבור מניפולטורים הכלי מכיל אלגוריתמים לבדיקת התנגשות, תכנון נתיבים, יצירת מסלול, קינמטיקה קדמית והפוכה (forward and inverse kinematics), וייצוג דינמיקה באמצעות rigid body tree. עבור רובוטים ניידים הכלי מכיל אלגוריתמים למיפוי, לוקליזציה, תכנון מסלול, עקיבה אחר מסלול ובקרת תנועה.
לעיתים קרובות, מתחילים את התהליך ביצירת אובייקט של rigid body tree robot model, ויש כמה דרכים לעשות זאת:
- בניית מודל באופן ישר בשימוש באובייקטים של MATLAB (כמו rigidBodyTree)
- ייבוא מודל מוכן מקובץ חיצוני כמו URDF או מודל Simscape Multibody. מגרסה R2021b ניתן לייבא גם קובץ SDF או Gazebo.
- שימוש באובייקט קיים מה-robot library, (שימוש ב-loadrobot על מנת לטעון מודל מוכן של רובוט)
בגרסאות החדשות הורחבה הספרייה בצורה משמעותית, והוספו שלל מודלים של רובוטים שונים. בנוסף, בגרסה R2022a, הושקה חבילת הרחבה בשם Robot Library Data, המכילה mesh data files שמקושרים לאותם אובייקטים (לשם ייבוא של המודלים מ-Simscape Multibody או מ-Gazebo).
איור 1 מודלים מתוך Robot Library Data
ישנה אפליקציה חדשה עבור פיתוח של זרועות רובוטיות, Inverse Kinematics Designer App, המאפשרת למשתמשים לקבוע בצורה אינטראקטיבית איפה הרובוט נמצא, ולתכנן waypoints ו-trajectories בשימוש בקינמטיקה הפוכה. המשתמש יכול להגדיר את המיקום והאוריינטציה של הרובוט באופן ישיר, ליצור קונפיגורציות, לכוון ולצפות בפותרנים (solvers) של קינמטיקה הפוכה, לנהל מספר רב של אילוצים במקביל ולבדוק התנגשויות עם אובייקטים בסביבה. לבסוף ניתן לייבא את המידע ל-Workspace של MATLAB.
איור 2 אפליקציית Inverse Kinematics Designer
על מנת לבחון תרחישים שונים ניתן לחבר את המודל לסימולטורים שונים כגון Unreal Engine או Gazebo. אחד הכלים המשמעותיים שהוספו ב-R2022a הוא Cuboid Simulator, שהיה קיים עבור מודלים של Automated Driving ו-UAV וכעת הוא אפשרי גם עבור רובוטים ניידים!
סימולטור זה מאפשר לבנות תרחישים עבור רובוטיים (Robot Scenarios), למדל סנסורים (כמו GPS, INS וענן נקודות מ-Lidar) ולשלב את הקריאות שלהם בחוג הבקרה.
תעופה
בגרסה R2020b הושק UAV Toolbox, התומך ביישומים עבור מערכות מוטסות אוטונומיות כגון מל"טים ורחפנים. הכלי מאפשר תכנון, סימולציה, ביצוע טסטים, ופריסה על פלטפורמות UAV. הוא מכיל סט אלגוריתמי UAV, מודלים מופשטים שיכולים לשמש כ-baseline להתחיל ממנו (שמטרתם לבחון את אלגוריתם האוטונומיה כבר בשלבים ראשונים של הפיתוח), בלוקים לעקיבה אחר נקודות ציון (Waypoint Follower) או מסלול מעגלי (Orbit Follower). בנוסף, אפשר באמצעותו לסמלץ תרחישים בשימוש בסימולטורים שונים כגון Cuboid Simulation, או ביצוע קו-סימולציה עם Unreal Engine, שבו ניתן למדל מצלמה ו-Lidar באמינות גבוהה יותר ובסביבה מפורטת יותר ביחס ל-Cuboid scenario. שימוש אינטראקטיבי ב-Flight Log Analyzer App עבור יבוא נתוני טיסה, וויזואליזציה וניתוח של נתונים אלו.
הכלי כולל תמיכה בפרוטוקולי תקשורת של MAVLink, כמו גם התחברות ופריסה לחומרה של הטייס האוטומטי הנפוץ PX4.
איור 3 היכולות הקיימות ב-UAV Toolbox
בגרסה R2022a נוספה היכולת לבצע סימולציית Hardware-in-the-loop (HIL) עם הטייס האוטומטי של Pixhawk ומודל Simulink של ה-plant – מה שמאפשר לבחון את האלגוריתמים על החומרה לפני ביצוע ניסויים בשטח. עבור אלגוריתמים שמוסיפים יכולות אוטונומיה (שהם מורכבים מבחינה חישובית), ניתן להשתמש במחשב מובנה על ה-UAV יחד עם הטייס האוטומטי. באמצעות Simulink ניתן לתכנן אלגוריתם אוטונומי מורכב ולפרוס אותו ישירות לפלטפורמת NVIDIA Jetson, שגם נהיית נפוצה לשימוש ברחפנים.
לצפייה בסיפור לקוח ישראלי על בניית פרויקטי בקרת טיסה עם Simulink ו-Pixhawk – תקציר (4:10):
וכאן להרצאה המלאה (37:14).
ניתן להשתמש ב-UAV Toolbox Support Package for PX4 Autopilots על מנת לבחון פריסת אלגוריתם אוטונומי על פלטפורמה כגון NVIDIA Jetson, לצד חומרה של Pixhawk, ב-HIL עם דינאמיקת UAV שממודלת ב-Simulink, כשלב תיקוף מקדים לניסויים בשטח.
איור 4 ארכיטקטורה אפשרית לסימולציית HIL
בגירסה R2022a נוספה אפליקציה חדשה לתכנון תרחישים – UAV Scenario Designer App. אפליקציה זאת מאפשרת תכנון אינטראקטיבי, ו-ויזואליזציה וסימולציה של תרחישי UAV, באמצעות הגדרת פני שטח, פלטפורמות שונות וסנסורים. ניתן לייבא, לייצא, ליצור ולערוך תרחישים, אובייקטים בזירה, מסלולים ועוד.
איור 5 אפליקציית UAV Scenario Designer
נהיגה אוטונומית
בגירסה R2022a הושק מוצר חדש בשם RoadRunner Scenario, המאפשר יצירה ובחינה של תרחישים עבור סימולציית נהיגה אוטומטית. כעת ניתן לבצע קו-סימולציה עם RoadRunner באמצעות מודלים של MATLAB ו-Simulink.
RoadRunner Scenario הוא עורך אינטראקטיבי המאפשר לתכנן תרחישים להדמיה ובדיקה של מערכות נהיגה אוטומטיות. הוא מאפשר להוסיף רכבים, נתיבים, מסלולים, להגדיר לוגיקה ולהגדיר פרמטרים של תרחישים, התחברות לסימולטורים אחרים וביצוע קו-סימולציה. ניתן לייצא את התרחישים שניבנו ל-ASAM OpenSCENARIO. אותם תרחישים שיוצאו יכולים לשמש לאחר מכן בסימולטורים אחרים. משתמשים יכולים לבחור בין שחקנים (actors) מובנים (רכבים, הולכי רגל, אופנועים ועוד) או לתכנן בעצמם את ה"שחקנים" שבסימולציה באמצעות MATLAB ו-Simulink, או CARLA.
איור 6 RoudRunner Scenerio
להרחבה על החידושים הנ"ל ועוד הרבה ניתן לפנות ל-Release Highlights ול-Release Notes.