ما هو esmini؟
esmini مشغّل OpenSCENARIO مفتوح المصدر طوّره مجتمع ADAS السويدي. هو مشغّل خفيف الوزن عن قصد، يُستخدم على نطاق واسع مرجعًا لـ OpenSCENARIO 1.x — صغير بما يكفي لقراءة شيفرته، وسريع بما يكفي لتضمينه، ومتوقع بما يكفي لاستخدامه للتحقق من الصحة.
ما يفعله esmini
Section titled “ما يفعله esmini”يُحلِّل esmini ملف OpenSCENARIO 1.x بامتداد .xosc، ويحمِّل شبكة الطرق المُشار إليها في OpenDRIVE بامتداد .xodr، وينفِّذ لوحة القصة — يقود الكيانات على مسارات أو بمتحكمات ويبث الحالة الناتجة.
ليس محاكيًا قائمًا على الفيزياء بالكامل كـ CARLA أو LGSVL. الهدف من محدوديته هو: esmini هو الخط الأساسي المفتوح المصدر لـ “هل يُحلَّل هذا السيناريو ويُشغَّل بصحة؟” الذي تستهدفه معظم أدوات OpenSCENARIO.
لماذا يهمّ esmini لتطوير الأدوات
Section titled “لماذا يهمّ esmini لتطوير الأدوات”نظرًا لأن esmini هو أكثر مستهلكي OpenSCENARIO 1.x مفتوحي المصدر شيوعًا، فإن “هل يعمل في esmini؟” هو الفحص المعياري لأي قناة تصدير OpenSCENARIO. معظم الأدوات التي تنتج ملفات ASAM تتحقق من صحتها مقابل esmini قبل الادعاء بدعم OpenSCENARIO — بما فيها RoadRunner (الذي يُصدِّر سيناريوهات “متوافقة مع أي محاكي أو مشغّل يدعم OpenSCENARIO، مثل CARLA وesmini وIPG CarMaker”) وغيرها كثير.
مدخلات esmini النموذجية
Section titled “مدخلات esmini النموذجية”يحتاج esmini في الحد الأدنى إلى:
- ملف
.xosc(سيناريو OpenSCENARIO). - ملف
.xodr(شبكة طرق OpenDRIVE) مُشار إليه من.xosc. - اختياريًا ملف
.osgbلتصيير العارض ثلاثي الأبعاد، أو مجلدModels/لأصول المركبات.
تغليف هذه الملفات معًا في أرشيف مضغوط مكتفٍ بذاته — يُسمى أحيانًا بشكل غير رسمي “حزمة esmini” — يجعل السيناريوهات محمولة بين الأجهزة ومنظومات CI.
مكانة drawtonomy
Section titled “مكانة drawtonomy”يُشغِّل drawtonomy esmini نفسه — مُصرَّفًا إلى WebAssembly — مباشرةً في المتصفح. تؤلِّف لوحة قصة (أو تفتح .xosc قائمًا)، تضغط تشغيل، وينفِّذها محرر السيناريو داخل الصفحة: أدوات تحكم بالتشغيل، وتقديم دقيق، وكاميرا متابعة، ومسارات شبحية، وحكم PASS / FAIL مبني على شروط END وFAIL التي تحددها — دون تثبيت ولا مشغّل منفصل. نواة المحاكاة هي esmini؛ يضيف drawtonomy الغلاف المبني حول لوحة الرسم حولها.
وإن كنت تفضِّل تشغيل السيناريو في تثبيت esmini أصلي (لعارض OpenSceneGraph ثلاثي الأبعاد، أو جولات CI، أو خط أنابيب Python/C++)، يُصدِّر drawtonomy أيضًا أرشيفًا مضغوطًا يضم .xosc و.xodr وأمر تشغيل run.sh:
unzip <name>.zipesmini --osc <name>/<name>.xosc --window 60 60 1024 768أمور جديرة بالمعرفة:
- يقرأ المشغّل داخل المتصفح OpenSCENARIO 1.x، ويكتب تصدير ASAM إصدارات OpenSCENARIO من 1.0 حتى 1.2 / OpenDRIVE 1.8 — وكلاهما يغطي جزءًا كبيرًا من المواصفة: تعمل الأفعال والمشغّلات الشرطية والمراحل والأحداث، كما تُصدَّر بنى تقاطع OpenDRIVE وإدخالات
<signal>أيضًا. التقاطعات المنقولة دون تعديل من ملف.xodrمستورَد عالية الدقة؛ أما التقاطعات المُركَّبة من شبكة مسارات مرسومة يدويًا فليست موثوقة بعد. لا تزال جولات المعاملات والمتحكمات المخصصة أو المستندة إلى تعلم الآلة غير مُصدَّرة اليوم. - تعتمد أصول المركبات افتراضيًا على النماذج المدمجة في esmini، فلا حاجة إلى ملف
.osgbإضافي. - للجولات الواسعة أو السيناريوهات المعاملية على نطاق كبير، وَلِّد الأسطول من DSL أو مكتبة Python — يبقى ذلك خارج نطاق المحرر المرئي.
قراءة ذات صلة
Section titled “قراءة ذات صلة”- محرر السيناريو — ألِّف لوحات القصة وشغّلها في المتصفح على esmini-WASM.
- فتح وتشغيل ملف .xosc قائم — أفلِت ملف
.xoscواضغط تشغيل. - ما هو OpenSCENARIO؟
- ما هو OpenDRIVE؟
- التصدير إلى ASAM OpenDRIVE / OpenSCENARIO