סימולציה, תרחישים ונהיגה עצמית - דרך SAE AutoDrive

עדכון: 20 במאי 2021
סימולציה, תרחישים ונהיגה עצמית - דרך SAE AutoDrive

מבוא

האתגר של SAE AutoDrive הוא תחרות עיצוב מכללות בת 4 שנים, בה משתתפות 8 צוותים מארה"ב וקנדה. המטרה הטכנית הגבוהה לשנה 3 של תחרות זו היא לנווט במהלך קורס נהיגה עירונית במצב נהיגה אוטומטי כמתואר על ידי SAE דרגה 4.

MathWorks מאתגר צוותים להשתמש בסימולציה

סימולציה היא כלי שימושי מאוד לפיתוח רכב אוטונומי. בדיקות מבוססות מודלים יכולות לסייע בפיתוח אלגוריתמים, בדיקות ברמת היחידות ובמערכות ובבדיקת תרחישים מקריים. עולם אמיתי חיישן ניתן להקליט ולהשמיע נתונים למערכת בכדי לכוון אלגוריתמי היתוך. ניתן ליצור סביבת סימולציה כדי לדגמן סביבות בעולם האמיתי וניתן להשתמש בה לבדיקת אלגוריתמים ומיקומי חיישנים שונים. ניתן לבחור באלגוריתמים ובמיקומי החיישנים הטובים ביותר העונים על דרישות הצוות בהתבסס על תוצאות הביצועים.

מדי שנה מאתגר MathWorks צוותים להשתמש בסימולציה באמצעות אתגר סימולציה. בלוג זה יסקור בקצרה את הזוכים במקום הראשון והשני של אתגר 1 (אוניברסיטת טורונטו ואוניברסיטת קטרינג), תכנון המערכת שלהם, וכיצד השתמשו בכלי MathWorks בכדי לסייע בהשגת יעדי התחרות הכוללים. הקבוצות נשפטו על סמך אופן השימוש בכלים לביצוע:

  • בדיקת תפיסה בלולאה פתוחה - סינתזת נתונים לבדיקת לולאה פתוחה, הערכת נכונות האלגוריתמים
  • בדיקת בקרות בלולאה סגורה - סינתזת תרחישים של לולאה סגורה, הערכת ביצועי אלגוריתמים
  • יצירת קוד של אלגוריתמי בקרות - יצירת קוד לאלגוריתמים, שילוב קוד שנוצר ברכב
  • חדשנות באמצעות כלי MathWorks – טכניקה/טֶכנוֹלוֹגִיָה שונה באופן מובהק מ-3 הקטגוריות לעיל

אוניברסיטת טורונטו

צוות הסטודנטים מאוניברסיטת טורונטו, אאוטורונטו, זכה במקום הראשון באתגר.

בדיקת תפיסה בלולאה פתוחה

הצעד הראשון של צוות זה היה לסנתז נתונים לבדיקת תפיסת לולאה פתוחה. הם בחרו לבדוק את אלגוריתם היתוך החיישנים שלהם. כדי לסנתז נתונים סינתטיים לבדיקה, הם השתמשו ב- (DSD). יישום זה מאפשר לך לעצב תרחישי נהיגה סינתטיים לבדיקת הנהיגה האוטונומית שלך. הצוות השתמש במכ"ם וב -3 מצלמות באלגוריתמי היתוך החיישנים, אשר מוגדרים כפי שמוצג באיור 1.

איור 1: מיקומי חיישני צוות (© aUToronto)

הם עיצבו את חיישני המצלמה - יחד עם המיקומים, הכיוונים והתצורות שלהם - באפליקציית DSD במטרה לסנתז נתוני חיישנים שיוזנו באלגוריתמי היתוך החיישנים שלהם. ה- DSD מדמה את פלט המצלמה לאחר אלגוריתמי עיבוד התמונה וראיית המחשב של הצוות, ומוסיף רעש וחריגים לנתונים.

בלוק קורא התרחיש שימש לקריאת מידע על תרחישים שנוצר באמצעות DSD. תנוחות השחקן נשלחו כקלט למחוללי הגילוי המרובים. זיהויים עבור חיישנים שונים אלה נארזו כמערכי הודעות ROS (מערכת הפעלה רובוטית) בגודל משתנה ונשלחו כהודעות ROS מותאמות אישית לנושאי ROS ספציפיים (איור 2).

איור 2: מודל סימולינק לבדיקת לולאה פתוחה (© aUToronto)

הצוות השווה את התפוקה ממעקב האובייקטים שלהם לערכי אמת קרקעיים של כלי רכב. מדד ה- RMSE (שגיאת ריבוע ממוצע) שימש להערכת ביצועים.

בדיקת בקרות בלולאה סגורה

המיקוד העיקרי של הצוות היה בבדיקת המתכנן המתוקן עבור יכולות חדשות כמו ניתוב מחדש לאזורי בנייה ודחיפה סביב מכשולים. המתכנן עוצב מחדש כך שישתמש במבנה סריג שבו קצוצים גזומים מהמפה כדי למצוא שבילים סביב אובייקטים לפי הצורך (איור 3). DSD שוב שימש ליצירת תרחישים. לתרחישים נוספו גם חסמים ורמזורים.

איור 3: מבנה סריג למציאת שבילים (© aUToronto)

הצוות עיצב מודל של מפרסם רמזור באמצעות Stateflow (איור 4). כאשר רכב האגו נמצא מחוץ לטווח הרמזור (> 50 מטר), מתפרסם מצב לא ידוע. כאשר האגו נכנס לטווח, מתפרסמת הודעת נורה אדומה. ההודעה עוברת לאור ירוק לאחר שהאגו נעצר למשך 5 שניות.

איור 4: Stateflow לבקר הדגם (© aUToronto)

הבקר, המתכנן וצמתים ROS של דגם הרכב הושקו. אם המכשול היה בטווח של 50 מטר מרכב האגו, מיקומו נשלח כהודעת ROS למודל סימולינק (איור 5).

איור 5: לוגיקה למשלוח הודעת מיקום (© aUToronto)

יצירת קוד של אלגוריתמי בקרות

הצוות יצר קוד עבור אלגוריתם הטיפול בתמרור עצור (איור 6). Simulink Coder שימש להמרת Stateflow לקוד C++. עצמאי מודול נוצר באמצעות פונקציית אריזת הקוד. לאחר מכן מוזג המודול שנוצר לתוך בסיס הקוד של הצוות.

איור 6: לוגיקה של בקרת אור עצור Stateflow (© aUToronto)

חדשנות באמצעות כלי MathWorks - כיול מצלמות Lidar

כדי לפרש במדויק את האובייקטים בסצנה עם כניסות ממכסה וחיישן מצלמה, יש צורך להתיך את יציאות החיישן יחד. לפיכך, הצוות ביצע טרנספורמציה בין Lidar לבין מצלמת הצוות כדי להקרין נקודות לידר על תמונה או להיפך לצורך מיזוג חיישנים. במקום להשתמש במדידות ידיים ובמצלמות מסתובבות עד שהתחזיות נראו טוב, הצוות השתמש בכלי הכיול החדש של Lidar Camera שפותח מארגז הכלים של Lidar. כלי זה מעריך מטריצת טרנספורמציה נוקשה הקובעת את ההתאמות בין הנקודות במישור התלת-ממדי לפיקסלים במישור התמונה.

הם בנו לוח כיול גדול יותר שכן הנוכחי שלהם היה קטן מדי בשביל הכלי. כלי הכיול של המצלמה שימש כדי להשיג את המטריצה ​​הפנימית למצלמה שלהם. פינות הלוח נמצאו בכל תמונה ונתוני לידר. נמצאה מטריצת השינוי הנוקשה בין לידאר למצלמה. תהליך זה פלט טרנספורמציה שבה ניתן להשתמש כדי להקרין את נתוני ענן הנקודות על גבי תמונות או להיפך. שלבים אלה מוצגים באיור 7.

איור 7: (א) מטריצה ​​פנימית של המצלמה (ב) פינות לוח שחמט (ג) לידר למטריצת טרנספורמציה של המצלמה (© aUToronto)

אוניברסיטת קטרינג

אל האני צוות סטודנטים מאוניברסיטת קטרינג, זכתה במקום השני באתגר.

בדיקת תפיסה בלולאה פתוחה

הצוות השתמש ב- Unreal Engine כדי ליצור תרחישים שונים. מצלמה נוספה לרכב האגו ב- Unreal באמצעות בלוק המצלמה התלת-ממדי. נעשה שימוש במודל סימולינק לביצוע איתור נתיבים באמצעות התמונות הלא אמיתיות (איור 3). הריבועים הכחולים מציינים את פונקציות זיהוי הנתיב והצהוב מציין את הפלטים בכל שלב. נתוני תפוקה אלה מוצגים באיור 8.

איור 8: מודל סימולינק לבדיקת לולאה פתוחה (© אוניברסיטת קטרינג)

איור 9: תפוקות איתור נתיבים (© אוניברסיטת קטרינג)

בדיקת בקרות בלולאה סגורה

תכנון המערכת של הצוות כלל 2 מכונות מדינה - אורכיות ורוחביות. מכונות מדינה אלה, המוצגות באיור, שימשו למודל ההיגיון של בחירת בקר על סמך נתוני חיישנים וקבלת החלטות. הם היו קשורים זה בזה ומשמשים לאפשר ולאתחל את תת מערכות הבקר.

איור 10: מכונות מדינה (© אוניברסיטת קטרינג)

סימולציות בקר משולבות, עם מודל סימולינק באיור 11, נעשו כדי לאמת את העבודה של כל בקרי הצוות. תשומות לבקרים אלה סופקו באמצעות מחוונים ומדידים.

איור 11: מודל סימולינק לבדיקת לולאה סגורה (© אוניברסיטת קטרינג)

תתי מערכות הבקר של מכונת המצב האורך כוללות בקר מהירות אורך ובלימת חירום אוטומטית (AEB). המדינות נקבעו על ידי דינמיקות רכב אורכיות כמו האצה, שיוט, האטה, עמידה וחנייה.

מערכות המשנה לבקרה של מכונת המדינה לרוחב כוללות מסייע ליין שמור (LKA), בקרת שינוי, ובקרי סיבוב. המדינות נקבעו על סמך דינמיקת רכב רוחבית (איור 12). מהירות אורכית, שינוי נתיב ובקרי LKA נדונים להלן.

איור 12: מצבי בקר לרוחב (© אוניברסיטת קטרינג)

בקר אורכי

איור 13 מציג את מודל ה- Simulink המשמש לדגם הבקר האורכי. זה כלל PID המבוסס על מהירות. שיעורי מומנט הייחוס והתפוקה הוגבלו כדי להישאר בגבולות האצת התחרות והטלטול. כניסות המערכת אותחלו ונערכו באמצעות מחוונים והשתמש בהיקף לצפייה בנתונים. איור 14 מציג את תפוקת היעד ומהירות האורך בפועל.

איור 13: מודל Simulink של בקר אורכי (© אוניברסיטת קטרינג)

איור 14: השוואות מהירות אורכיות (© אוניברסיטת קטרינג)

בקר החלפת נתיב

בקר בקרת השינוי של הצוות השתמש ב- MPC אדפטיבי (בקרת חיזוי מודל). נתיב ייחוס נוצר באמצעות פונקציות פרמטריות, עם כניסות לשינוי נתיב כגון מהירות הרכב ורוחב הנתיב. היציאות לבקר היו מיקום רוחבי והתייחסות Yaw. נעשה שימוש במודל 3DOF (דרגת חופש) כדי לדמות את מרכב הרכב. איור 15 מציג את מודל ה- Simulink המשמש לסימולציה. איור 16 מציג את תפוקות הסימולציה עם מסלולי התייחסות ונתיבי שינוי נתיב, יחד עם הנתיבים שהושגו לאחר בדיקה ברכב.

איור 15: מודל סימולינק של החלפת נתיב (© אוניברסיטת קטרינג)

איור 16: השוואות נתיבי שינוי נתיב (© אוניברסיטת קטרינג)

דגם רכב

הצוות פיתח ותוקף דגם רכב חד-כיווני ורכב תלת-ממדי. האימות הראשוני בוצע באמצעות מודל אופניים ליניארי. אימות סופי בוצע עם נתוני בדיקות פיזיות. איור מראה את תפוקת השוואת התאוצה לרוחב עם אימות ראשוני וסופי, ללא ועם נתוני בדיקה.

איור 17: (א) השוואות תאוצה רוחבית (ב) השוואות עם נתוני בדיקה (© אוניברסיטת קטרינג)

חדשנות באמצעות כלי MathWorks - עיר לא אמיתית

הצוות השתמש ב- Unreal לבדיקת לולאה סגורה של כל הבקרים שלהם. הם יצרו עיר לא אמיתית עם תנועות הולכי רגל ורמזור. נוצרו שחקנים הניתנים להתאמה אישית והמידע שלהם כמו שם שחקן, סוג שחקן, פרטי שחקן, פרטי אנימציה ותגים נשמר לגישה מהירה. מפת רמזור נוצרה גם יחד עם מיקום האורות שכותרתו איור 18.

איור 18: מפת רמזור לא אמיתית (© אוניברסיטת קטרינג)

איור 19 מציג את מבנה תקשורת המערכת Simulink-Unreal. קבלת החלטות לסצנה הלא אמיתית, המורכבת ממיקום רכב, תנועת הולכי רגל, מצב רמזורים וכו 'נעשתה באמצעות Stateflow ונשלחה כקלט לבקרים (איור 20).

איור 19: מבנה תקשורת מערכתית לא אמיתי של Simulink (© אוניברסיטת קטרינג)

איור 20: Stateflow לקבלת החלטות סצנה לא אמיתית (© אוניברסיטת קטרינג)

לסיכום, צוותי הסטודנטים מאוניברסיטת טורונטו ומאוניברסיטת קטרינג הצליחו למנף את MATLAB ו- Simulink לתכנון, בנייה, בדיקה והערכה של אלגוריתמי מיזוג, מעקב וניווט כדי להתקרב צעד נוסף לבניית רכב אוטונומי ברמה 4 של SAE ב סימולציה. הם חיברו תרחישים מורכבים עם רמזורים ושחקנים מרובים בסביבות הדמיה שונות, שילבו את הסביבות עם Simulink, ופרסו ובדקו את האלגוריתמים שבחרו בתרחישים אלה. אלגוריתמים לתפיסת לולאה פתוחה ולולאה סגורה עוצבו ונבדקו באמצעות Simulink, ונוצר קוד עבור מערכות אלה. צוותים תכננו ובדקו גם אלגוריתמי בקר שונים באמצעות Simulink ו- Stateflow. כלי MathWorks שימשו באופן חדשני ונרחב על ידי שתי קבוצות האליפות הללו.