מה זה OpenSCENARIO?
OpenSCENARIO הוא תקן פתוח של ASAM לתיאור תרחישי נהיגה דינמיים — מה שרכב האגו ושאר משתתפי התנועה עושים לאורך זמן, בצורה שסימולטורים יכולים להריץ מחדש. זהו פורמט החלפת הנתונים הדה-פקטו לבדיקות מבוססות תרחישים של מערכות נהיגה אוטומטיות.
שתי משפחות OpenSCENARIO
Section titled “שתי משפחות OpenSCENARIO”קיימות שתי מפרטים עצמאיים ברובם שחולקים את השם:
- OpenSCENARIO 1.x — מבוסס XML. יציב, נתמך בהרחבה. הגרסה 1.3 היא יעד הייצור הנוכחי עבור רוב הכלים.
- OpenSCENARIO 2.0 / DSL — שפת תחום ספציפי לתרחישים מופשטים, פרמטריים והסתברותיים. חדשה יותר, ביטויית יותר, עם תמיכת כלים גוברת.
שני הפורמטים אינם ניתנים להחלפה, אך 1.x הוא מה שרוב הסימולטורים וצינורות SOTIF / ISO 21448 צורכים כיום.
מה מכיל קובץ OpenSCENARIO 1.x
Section titled “מה מכיל קובץ OpenSCENARIO 1.x”תרחיש 1.x מורכב בדרך כלל מ:
- הפניה לרשת כבישים RoadNetwork — בדרך כלל קובץ OpenDRIVE מסוג
.xodr, לעתים בצמוד לקובץ scene-graph כמו.osgb. - בלוק Entities — הרכבים, הולכי הרגל והאובייקטים השונים.
- Storyboard — הפעולות, תמרוני הנהיגה והאירועים המסודרים לפי זמן שהיישויות מבצעות.
- פעולות Init — מיקומי התחלה, מהירויות והגדרות פרמטרים.
קריאת ה-XML מרגישה טבעית לתרחיש קצר בודד, אך הופכת קשה לתחזוקה כשמגיעים לעשרות וריאנטים. שם נכנסים כלי כתיבה ו-DSL לתמונה.
גישות כתיבה נפוצות
Section titled “גישות כתיבה נפוצות”- XML כתוב ידנית. נפוץ בקבוצות קטנות ובמקרי בסיס.
- DSL ויצירת קוד. OpenSCENARIO 2.0 DSL, Scenic, או גנרטורים פנימיים מייצרים XML מתיאורים ברמה גבוהה.
- ספריות Python. scenariogeneration (לשעבר
pyoscx/pyodrx) מספקת API פרוגרמטי עבור OpenSCENARIO + OpenDRIVE, עם כיסוי של גרסאות V1.0 עד V1.3.1. - מנועי תרחישים מובנים בסימולטור. CARLA ScenarioRunner מגדיר ומריץ תרחישים עבור CARLA, עם תמיכה ב-Python וב-OpenSCENARIO 1.0 / 2.0.
- עורכים ויזואליים. MathWorks RoadRunner (מייצא XML ו-DSL), Truevision Designer (ממוקד OpenDRIVE), Blender Driving Scenario Creator (תוסף Blender), ו-drawtonomy (לוח לבן בדפדפן עם ייצוא חלקי).
כתיבת תרחישים לייצור משתמשת בדרך כלל באחד או יותר מאלה — לעתים קרובות ספריית Python או DSL לתרחישים עצמם, לצד עורך ויזואלי לרשת הכבישים.
איפה drawtonomy נכנס לתמונה
Section titled “איפה drawtonomy נכנס לתמונה”drawtonomy הוא לוח לבן בדפדפן עם מייצא חלקי של OpenSCENARIO 1.3 / OpenDRIVE 1.8. לפי תיעוד המייצא:
- גוררים נתיבים, צמתים, רכבים, הולכי רגל, רמזורים וסימוני כביש לקנבס דו-ממדי ממבט-על.
- מייצאים zip עם
.xosc+.xodr+run.shשמריץ סצנות פשוטות ב-esmini.
המייצא מכסה תת-קבוצה מכוונת של המפרט. דברים שהוא לא מייצא כיום (מצוינים כפריטי מפת-דרכים ב-SDK):
- פרמיטיבי צמתים של OpenDRIVE (
<junction>). - תמרורים כרשומות
<signal>של OpenDRIVE. - פרופילי האצה, אירועי עצירה, נתיבים מוּדעים-לאיתות, פעולות החלפת נתיב, או storyboard מורכב עם מספר שחקנים.
- טריגרים מותנים, רוחב פס פרמטרים, בקרים מותאמים אישית או מונחי ML.
בפועל, יש להתייחס לייצוא OpenSCENARIO של drawtonomy כנקודת התחלה לסקיצה — שימושי כבסיס לעריכה ידנית, או להפקת האיור שמלווה תרחיש, לא כנתיב כתיבת תרחישים לייצור.