סימולציות תלת מימד מבוססות Unreal עם Simulink
נניח שכבר מידלתם זרוע רובוטית \ מטוס \ רכב \ רחפן או כל מערכת אחרת שעניין אתכם לבנות, ועכשיו אתם רוצים לבחון את התנהגות המערכת בצורה שקרובה ביותר למציאות, ולראות ויזואלית את התנהגותה בסביבה פיזיקלית – לשם כך כנראה שהשלב הבא הוא הרצת סימולציות הסביבת תלת מימד (3D).
סימולציות 3D נותנות תמונה ריאליסטית לסימולציה ונותנות למפתחים תחושה הרבה יותר חזקה לגבי התנהגות המערכת. לכן אין זה מפתיע שסימולציות תלת מימד נמצאות בשימוש בתעשיות רבות כמו למשל לפיתוח רחפנים ומל"טים, רכבים ונהיגה אוטונומית, רובוטיקה, תעופה, תעשיית הייצור 4.0 ועוד.
ניתן לטעות ולחשוב שסימולציות תלת מימד נותנות לנו יכולת ויזואלית יותר טובה לבחינת התנהגות המערכת וזו הסיבה היחידה שבגללה בוחרים להשתמש ביכולת זו. ובהחלט ויזואליזציה הינה מאוד חשובה – אבל ממש לא הסיבה היחידה לבצע סימולציות תלת מימדיות.
על ידי הרצת סימולציות 3D אפשר לעשות ניפוי שגיאות (Debug) בצורה הרבה יותר נוחה ולמצוא בעיות במערכת – בעיות שלא היינו רואים או שהיה לנו קשה לראות בדרך אחרת (למשל, ע"י נתונים המתקבל בדו מימד או חד מימד). כך שמדובר למעשה על רמה נוספת לביצוע בדיקות.
לדוגמא, ניתן לבצע אימות ותיקוף של אלגוריתמי הבקרה ואלגוריתמים נוספים, בצורה וירטואלית בסביבה תלת מימדית. כלומר ממש להגדיר ולבחון את התרחישים ולראות שהכל עובד (איפה מנגנון הבקרה כושל). אנחנו יכולים לבדוק שאין תאונות / התנגשויות בין מכוניות, זיהוי מסלולים ומעברים תקינים בין נתיבים, לבדוק שהמכונית עוצרת בתמרור "עצור" ועוד.
יכולת נוספת ומשמעותית שסימולציה תלת מימד מאפשרת הינה סימולציה של מודלים המכילים חיישנים, חיישנים אשר בסביבות תלת מימד מיצרים הרבה נתונים. כך למשל ניתן לראות כיצד רחפן יתפקד בהינתן דאטה המופק מחיישנים כגון: Lidar, Camera, Radar, GPS ועוד.
בסרטון ניתן לראות כיצד משתמשים בנתונים מחיישן Lidar המופק מסביבית ה- Unreal Engine, על מנת לפתח אלגוריתם עבור Perception של רחפן אוטונומי וביצוע SLAM, זאת בכדי להבין מול מה הוא מתמודד וללמוד את סביבת העבודה הלא ידועה.
בגרסה האחרונה (R2024a) יצאו לא מעט חידושים בתחום:
- תמיכה בגרסה העדכנית של Unreal Engine (5.1). התמיכה המתמידה בגרסאות העדכניות של Unreal Engine מקנה חסכון בזכרון, ביצוע Rendering יעיל יותר לתמונות וחישובים מתמטיים בדיוק double precision שמאפשר עבודה בעולמות וירטואלים גדולים יותר ומפורטים יותר.
- תמיכה במערכת הפעלה של Linux
- שיפורים במידול תנאי מזג אוויר שונים – אפקטים ריאליסטיים יותר כגון: טיפות גשם על עדשת המצלמה, עננים ושלג. יש כאן אלמנט חשוב של שיפור הנתונים המופקים מהחיישנים, שכן חיישנים שונים מושפעים בצורה שונה ממזג האוויר – מאפשר לקבל נתונים מציאותיים יותר.
- סנסור חדש להפקת נתונים של Radar.
- שליטה רחבה ונוחה יותר על סימולציות תלת מימד דרך סקריפט API של MATLAB
- הוספת ביאורים (Anotations) דרך שליטה בסקריפט MATLAB לקבלת מידע וקבלת תחושה טובה יותר על התנהגות המערכת
קיימות יכולות נוספות חדשות עליהם אינני מפרטת במסגרת פוסט זה – במידה ותרצו לשמוע עוד, אתם מוזמנים ליצור אתנו קשר ולראות כיצד אנחנו יכולים לתרום לכם בנושא!
למידע נוסף:
- Using Unreal Engine with Simulink – סדרת סרטונים קצרים
- Unreal Engine Simulation for Automated Driving – עמוד דוקומנטציה