esmini란?
**esmini**는 스웨덴 ADAS 커뮤니티가 개발한 오픈소스 OpenSCENARIO 플레이어입니다. 의도적으로 최소한의 기능만 갖춘 플레이어로, OpenSCENARIO 1.x의 경량 레퍼런스로 널리 쓰입니다 — 코드를 통째로 읽을 수 있을 만큼 작고, 임베딩할 수 있을 만큼 빠르며, 검증 기준으로 삼을 수 있을 만큼 결과가 예측 가능합니다.
esmini가 하는 일
섹션 제목: “esmini가 하는 일”esmini는 OpenSCENARIO 1.x .xosc를 파싱하고, 거기서 참조하는 OpenDRIVE .xodr 도로 네트워크를 불러온 다음, storyboard를 실행합니다 — 궤적이나 컨트롤러를 따라 엔티티를 움직이며 결과 상태를 스트리밍합니다.
CARLA나 LGSVL 같은 완전한 물리 기반 시뮬레이터는 아닙니다. 오히려 그 최소성이 핵심입니다: esmini는 대부분의 OpenSCENARIO 도구가 기준으로 삼는, 오픈소스 진영의 “이 시나리오가 제대로 파싱되고 재생되는가” 검증선 역할을 합니다.
도구 생태계에서 esmini가 중요한 이유
섹션 제목: “도구 생태계에서 esmini가 중요한 이유”esmini가 가장 널리 쓰이는 오픈소스 OpenSCENARIO 1.x 소비자다 보니, “esmini에서 돌아가는가”는 OpenSCENARIO 내보내기 파이프라인 전반의 표준 검증 기준으로 자리 잡았습니다. ASAM 파일을 만드는 대부분의 도구는 OpenSCENARIO 지원을 내세우기 전에 esmini로 검증을 거칩니다 — RoadRunner도 마찬가지로, 공식 문서에 “CARLA, esmini, IPG CarMaker 등 OpenSCENARIO를 준수하는 모든 시뮬레이터·플레이어와 호환되는” 시나리오를 내보낸다고 밝히고 있습니다.
esmini에 넣는 일반적인 입력
섹션 제목: “esmini에 넣는 일반적인 입력”esmini는 최소한 다음이 필요합니다.
.xosc(OpenSCENARIO 시나리오)..xosc가 참조하는.xodr(OpenDRIVE 도로 네트워크).- 선택적으로 3D 뷰어 렌더링용
.osgb파일, 또는 차량 에셋이 담긴Models/디렉터리.
이 파일들을 하나의 독립 실행 가능한 zip으로 묶은 것을 비공식적으로 “esmini 번들”이라 부르기도 합니다. 이렇게 묶으면 시나리오를 다른 머신이나 CI 환경으로 그대로 옮길 수 있습니다.
drawtonomy의 위치
섹션 제목: “drawtonomy의 위치”drawtonomy는 esmini 자체를 — WebAssembly로 컴파일해서 — 브라우저 안에서 직접 구동합니다. storyboard를 저작하거나(또는 기존 .xosc를 열어서) 재생 버튼을 누르면 scenario editor가 페이지 안에서 바로 실행합니다: 재생 컨트롤, seek, follow 카메라, 고스트 궤적, 그리고 END·FAIL 조건에 따른 PASS / FAIL 판정까지 — 별도 설치도, 별도 플레이어도 필요 없습니다. 시뮬레이션 코어 자체가 esmini이고, drawtonomy는 그 위에 캔버스 네이티브 셸을 씌운 것입니다.
네이티브 esmini 설치 환경에서 직접 시나리오를 돌리고 싶다면(3D OpenSceneGraph 뷰어, CI 스윕, Python/C++ 파이프라인 등의 이유로), drawtonomy는 .xosc, .xodr, 실행용 run.sh가 담긴 zip도 내보냅니다.
unzip <name>.zipesmini --osc <name>/<name>.xosc --window 60 60 1024 768알아 둘 점:
- 브라우저 내장 플레이어는 OpenSCENARIO 1.x를 읽고, ASAM 내보내기는 OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8을 씁니다 — 둘 다 사양의 부분집합을 다룹니다. action, 조건부 trigger, phase, event는 모두 동작하며, OpenDRIVE 교차로 프리미티브와
<signal>항목도 함께 생성됩니다. 가져온.xodr에서 편집 없이 그대로 넘어온 교차로는 정확도가 높지만, 손으로 그린 차선 네트워크에서 합성한 교차로는 아직 신뢰도가 충분하지 않습니다. 파라미터 스윕과 커스텀·ML 기반 컨트롤러는 현재 생성되지 않습니다. - 차량 에셋은 기본적으로 esmini에 내장된 모델을 사용하므로 별도
.osgb가 필요 없습니다. - 대규모이거나 파라메트릭한 시나리오 스윕이 필요하다면 DSL이나 Python 라이브러리로 묶음(fleet)을 생성하세요 — 이는 여전히 시각적 편집기의 역할 범위 밖입니다.
관련 읽을거리
섹션 제목: “관련 읽을거리”- Scenario editor — 브라우저에서 esmini-WASM으로 storyboard를 저작하고 실행합니다.
- 기존 .xosc 열고 재생하기 —
.xosc를 드롭하고 재생 버튼만 누르면 됩니다. - OpenSCENARIO란?
- OpenDRIVE란?
- ASAM OpenDRIVE / OpenSCENARIO 내보내기