דלגו לתוכן

מה זה esmini?

esmini הוא נגן OpenSCENARIO קוד-פתוח שפותח בידי קהילת ה-ADAS השוודית. זהו נגן מינימליסטי במכוון, שנמצא בשימוש נרחב כייחוס קל-משקל ל-OpenSCENARIO 1.x — קטן מספיק כדי לקרוא את הקוד שלו, מהיר מספיק כדי להטמיע, וצפוי מספיק כדי לשמש בדיקת תקינות.

esmini מנתח קובץ .xosc של OpenSCENARIO 1.x, טוען את רשת הכבישים .xodr של OpenDRIVE שאליה הוא מפנה, ומריץ את ה-storyboard — מניע ישויות לאורך מסלולים או בקרים, ומשדר את המצב המתקבל.

זה לא סימולטור פיזיקלי מלא כמו CARLA או LGSVL, והמינימליות היא בדיוק העניין: esmini הוא הבסיס הקוד-פתוח שרוב כלי ה-OpenSCENARIO משתמשים בו כדי לענות על השאלה “האם התרחיש הזה נטען ורץ כמו שצריך?”.

למה esmini חשוב לכלי פיתוח

Section titled “למה esmini חשוב לכלי פיתוח”

מכיוון ש-esmini הוא הצרכן הקוד-פתוח הנפוץ ביותר של OpenSCENARIO 1.x, השאלה “האם זה רץ ב-esmini?” היא בדיקת התקינות המקובלת לכל צינור ייצוא של OpenSCENARIO. רוב הכלים שמייצרים קבצי ASAM מאמתים אותם מול esmini לפני שהם מכריזים על תמיכה ב-OpenSCENARIO — כולל RoadRunner (שמייצא תרחישים “תואמים לכל סימולטור או נגן תואם-OpenSCENARIO, כמו CARLA, esmini ו-IPG CarMaker”) וכלים רבים נוספים.

esmini דורש, במינימום:

  • קובץ .xosc (תרחיש OpenSCENARIO).
  • קובץ .xodr (רשת כבישים OpenDRIVE) שאליו מפנה ה-.xosc.
  • אופציונלית, קובץ .osgb לרינדור בצופה תלת-ממדי, או תיקיית Models/ של נכסי רכב.

אריזת כל אלה יחד כ-zip עצמאי — שנקרא לעיתים באופן לא רשמי “חבילת esmini” — הופכת תרחישים לניידים בין מכונות ומערכות CI.

drawtonomy מריץ את esmini עצמו — מקומפל ל-WebAssembly — ישירות בדפדפן. כותבים storyboard (או פותחים .xosc קיים), לוחצים על “הפעל”, ועורך התרחישים מריץ אותו בתוך הדף: פקדי הפעלה, דילוג בזמן, מצלמת מעקב, שובלי רפאים (ghost trails), ופסיקת PASS / FAIL לפי תנאי הסיום וההיכשלות שהגדרת — בלי התקנה ובלי נגן נפרד. ליבת ההדמיה היא esmini; drawtonomy מוסיפה סביבה מבוססת-קנבס מסביבה.

אם עדיפה לך הרצה בהתקנת esmini רגילה (לצופה התלת-ממדי המבוסס OpenSceneGraph, למקצי CI, או לצינור עבודה ב-Python/C++), drawtonomy גם מייצאת zip עם .xosc, .xodr וקובץ run.sh מוכן להרצה:

Terminal window
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

דברים שכדאי לדעת:

  • הנגן בדפדפן קורא OpenSCENARIO 1.x, והייצוא ל-ASAM כותב OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — שניהם מכסים תת-קבוצה של המפרט: פעולות, תנאי הפעלה מותנים, שלבים ואירועים רצים, וגם פרימיטיבים של צמתי OpenDRIVE ורשומות <signal> נפלטים. צמתים שעוברים ללא עריכה מקובץ .xodr מיובא הם ברמת דיוק גבוהה; צמתים שנוצרים מרשת נתיבים שרישמת ידנית עדיין לא אמינים דיים. מעבר פרמטרים (parameter sweep) ובקרים מותאמים אישית או מבוססי-ML אינם נפלטים כיום.
  • נכסי הרכב כברירת מחדל הם המודלים המובנים של esmini, כך שלא נדרש .osgb נוסף.
  • לצי תרחישים גדול או פרמטרי, מפיקים את התרחישים מ-DSL או מספריית Python — זה נשאר מחוץ לטווח של העורך הוויזואלי.