דלגו לתוכן

מה זה OpenSCENARIO?

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

קיימות שתי מפרטים עצמאיים ברובם שחולקים את השם:

  • OpenSCENARIO 1.x — מבוסס XML. יציב, נתמך בהרחבה. הגרסה 1.3 היא יעד הייצור הנוכחי עבור רוב הכלים.
  • OpenSCENARIO 2.0 / DSL — שפת תחום ספציפי לתרחישים מופשטים, פרמטריים והסתברותיים. חדשה יותר, ביטויית יותר, עם תמיכת כלים גוברת.

שני הפורמטים אינם ניתנים להחלפה, אך 1.x הוא מה שרוב הסימולטורים וצינורות SOTIF / ISO 21448 צורכים כיום.

תרחיש 1.x מורכב בדרך כלל מ:

  • הפניה לרשת כבישים RoadNetwork — בדרך כלל קובץ OpenDRIVE מסוג .xodr, לעתים בצמוד לקובץ scene-graph כמו .osgb.
  • בלוק Entities — הרכבים, הולכי הרגל והאובייקטים השונים.
  • Storyboard — הפעולות, תמרוני הנהיגה והאירועים המסודרים לפי זמן שהיישויות מבצעות.
  • פעולות Init — מיקומי התחלה, מהירויות והגדרות פרמטרים.

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

  • 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 הוא לוח לבן בדפדפן עם מייצא חלקי של OpenSCENARIO 1.3 / OpenDRIVE 1.8. לפי תיעוד המייצא:

  • גוררים נתיבים, צמתים, רכבים, הולכי רגל, רמזורים וסימוני כביש לקנבס דו-ממדי ממבט-על.
  • מייצאים zip עם .xosc + .xodr + run.sh שמריץ סצנות פשוטות ב-esmini.

המייצא מכסה תת-קבוצה מכוונת של המפרט. דברים שהוא לא מייצא כיום (מצוינים כפריטי מפת-דרכים ב-SDK):

  • פרמיטיבי צמתים של OpenDRIVE (<junction>).
  • תמרורים כרשומות <signal> של OpenDRIVE.
  • פרופילי האצה, אירועי עצירה, נתיבים מוּדעים-לאיתות, פעולות החלפת נתיב, או storyboard מורכב עם מספר שחקנים.
  • טריגרים מותנים, רוחב פס פרמטרים, בקרים מותאמים אישית או מונחי ML.

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