מה זה OpenSCENARIO?
OpenSCENARIO הוא תקן פתוח של ASAM לתיאור תרחישי נהיגה דינמיים — מה שרכב האגו ושאר משתתפי התנועה עושים לאורך זמן, בפורמט שסימולטורים יודעים להריץ מחדש. זהו פורמט חילופי הנתונים המקובל בפועל לבדיקות מבוססות-תרחישים של מערכות נהיגה אוטומטיות.
שתי משפחות של OpenSCENARIO
Section titled “שתי משפחות של OpenSCENARIO”מאחורי השם המשותף מסתתרות למעשה שתי מפרטים עצמאיים כמעט לגמרי:
- OpenSCENARIO 1.x — מבוסס XML, יציב ונתמך בהרחבה. גרסה 1.3 היא יעד הייצור הנוכחי של רוב הכלים.
- OpenSCENARIO 2.0 / DSL — שפה ייעודית לתרחישים מופשטים, פרמטריים והסתברותיים. חדשה יותר, עוצמתית יותר, ותמיכת הכלים בה הולכת וגדלה.
שני הפורמטים אינם בני-החלפה, אבל כיום רוב הסימולטורים וצינורות הבדיקה של SOTIF / ISO 21448 עובדים עם 1.x.
מה יש בקובץ OpenSCENARIO 1.x
Section titled “מה יש בקובץ OpenSCENARIO 1.x”תרחיש 1.x טיפוסי בנוי מ:
- הפניית RoadNetwork — לרוב קובץ OpenDRIVE מסוג
.xodr, לעיתים יחד עם קובץ scene-graph כמו.osgb. - בלוק Entities — הרכבים, הולכי הרגל ושאר האובייקטים בסצנה.
- Storyboard — הפעולות, התמרונים והאירועים המסודרים בציר זמן שהישויות מבצעות.
- פעולות Init — מיקומי התחלה, מהירויות והגדרת פרמטרים.
ה-XML קריא בקלות עבור תרחיש קצר בודד, אבל הופך לקשה לתחזוקה כשעוברים לעשרות וריאציות. כאן נכנסים לתמונה כלי כתיבה ו-DSL.
גישות כתיבה נפוצות
Section titled “גישות כתיבה נפוצות”- XML כתוב ידנית. נפוץ בצוותים קטנים ובקבצי ייחוס (ground truth).
- 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 (כותב storyboard מלא ב-OpenSCENARIO 1.x ומריץ אותו בדפדפן על esmini-WASM).
בייצור בפועל בדרך כלל משלבים כמה מהגישות האלה — למשל ספריית Python או DSL לתרחישים עצמם, לצד עורך ויזואלי לרשת הכבישים.
איפה drawtonomy נכנס לתמונה
Section titled “איפה drawtonomy נכנס לתמונה”drawtonomy היא סביבת כתיבה והרצה ל-OpenSCENARIO 1.x שרצה בדפדפן — לוח לבן שבו הסצנה שאתה משרטט הופכת ל-storyboard רץ. היא מייבאת OpenSCENARIO 1.x ומייצאת OpenSCENARIO 1.0–1.2 (1.3 בדרך), לצד OpenDRIVE 1.8:
- שרטוט נתיבים, צמתים, כלי רכב, הולכי רגל, רמזורים וסימוני כביש על קנבס דו-ממדי ממבט-על.
- בניית ה-storyboard בצורה ויזואלית — שלבים, אירועים, 35 סוגי פעולות ו-19 תנאי הפעלה — והרצתו בדפדפן על esmini שמקומפל ל-WebAssembly, עם תצוגה מקדימה תלת-ממדית (מצלמות מעקב / מבט-על / נהג) לצד הקנבס הדו-ממדי.
- ייבוא זוג קיים של
.xosc+.xodrועריכתו, או ייצוא הזוג להרצה על התקנת esmini רגילה. - יצירת תרחיש מתיאור בשפה טבעית: drawtonomy מנסח טיוטת storyboard, בודק אותה מול ארבעה שערי אימות (כולל הרצה אמיתית של esmini), ומיישם אותה על הקנבס.
המייצא כיום פולט גם מבני OpenDRIVE מסוג <junction> / <connection> / <laneLink> וגם רשומות <signal> — זה כבר לא סעיף בתוכנית העתידית. הפער החשוב באמינות: כבישים שעוברים ללא עריכה מקובץ .xodr מיובא שומרים על טופולוגיית הצמתים המקורית שלהם ברמת דיוק גבוהה, אבל צמתים שנוצרים מנתיבים שרישמת מאפס עדיין לא אמינים דיים. מה שעדיין חסר: מעבר פרמטרים (parameter sweep) ובקרים מותאמים אישית או מבוססי-ML.
צי תרחישים — אצוות גדולות ופרמטריות — עדיין עדיף להפיק מ-DSL או מספריית Python; זה נשאר מחוץ לטווח של העורך הוויזואלי. מה ש-drawtonomy מוסיפה הוא נתיב ויזואלי מהיר מרעיון (או פרומפט בשפה טבעית) לתרחיש רץ וניתן לסקירה.
קריאה נוספת
Section titled “קריאה נוספת”- עורך התרחישים — כתיבת שלבים, אירועים, פעולות ותנאי הפעלה בדפדפן, והרצתם.
- בניית התרחיש הראשון שלך — החלפת נתיב מקנבס ריק.
- מונחי RoadRunner מול OpenSCENARIO — טבלת תרגום בין שתי אוצרות המילים.
- מה זה OpenDRIVE?
- מה זה esmini?
- השוואה: drawtonomy מול XML כתוב ידנית ל-OpenSCENARIO