자율주행 리서치 - esmini (2019–, 스웨덴 'Simulation Scenarios' 프로젝트 발): '테스트 시나리오를 표준 XML로 실행하라' — ASAM OpenSCENARIO XML 1.0–1.3 플레이어, Euro NCAP·UN ALKS 규제 시나리오가 전제하는 공개 검증 계층 (⭐945 · MPL-2.0 · 6주 6회 릴리스)

2026-09-25

주제 정보

  • 유형: GitHub 오픈소스 프로젝트 — ASAM OpenSCENARIO XML 표준을 실제로 '재생'하는 공개 시나리오 플레이어. 특정 논문의 구현체가 아니라 표준의 공개 실행 계층(reference player)에 가까운 위치를 차지한다
  • 저장소: esmini/esmini (Environment Simulator Minimalistic) — ⭐945 · 🍴264 · 워처 29 · 열린 이슈 224 · C++ · 저장소 크기 약 17MB · 기본 브랜치 master
  • 라이선스: MPL-2.0 (Mozilla Public License 2.0, GET /license 확인) — 파일 단위 copyleft. 상용 제품에 링크·배포할 수 있으나 esmini 소스 파일을 수정하면 그 파일은 소스 공개 의무가 생긴다
  • 생성/최근 활동: 2019-05-03 생성 · 마지막 푸시 2026-09-22 · 최신 릴리스 v3.8.2(2026-09-22, build 6400) · 아카이브 아님 · 6주에 6개 릴리스(v3.7.0 08-14 → v3.7.1 08-20 → v3.7.2 08-27 → v3.8.0 09-04 → v3.8.1 09-08 → v3.8.2 09-22)
  • 구현 표준: OpenSCENARIO XML v1.0–v1.3(OpenSCENARIO DSL 지원 계획은 없음) · OpenDRIVE(정적 도로망) · ASAM OSI v3.5.0(시뮬레이션 GroundTruth 출력)
  • 구성: 라이브러리 2개 — esminiRMLib(RoadManager: OpenDRIVE 도로망 질의) + esminiLib(ScenarioEngine: OpenSCENARIO 재생·뷰어·API, RoadManager 내장). 앱: esmini / esmini-dyn / odrplot / odrviewer / replayer / osireceiver
  • 연동: Python 바인딩 · Unity 플러그인(Win/Linux/Mac) · C#·MATLAB/Simulink를 염두에 둔 평평한 C API — 바이너리는 Windows/Linux/Mac, 설계 목표에는 Android 포함
  • 기원: 2018년 스웨덴 협력 연구 프로젝트 "Simulation Scenarios"에서 시작 · 주 개발자 eknabevcc(누적 2,995 커밋, 다음 기여자 187 커밋 — 사실상 유지보수자 1인 체제)
  • 토픽: opendrive · openscenario · simulationscenarios · trafficscenarios
  • 원문: https://github.com/esmini/esmini

핵심 내용

이 블로그는 시뮬레이터 축을 이미 두 번 다뤘다 — 도시 전체 교통을 1초 단위로 돌리는 Eclipse SUMO(09-19)와 센서·렌더링을 갖춘 CARLA(09-09)다. 그런데 그 둘 사이에 빠진 계층이 하나 있다. "무엇을 테스트할 것인가"를 기계가 읽는 형식으로 선언하는 계층이다. 자율주행 검증은 실제 도로에서 안전-크리티컬 엣지 케이스를 반복 재현할 수 없으므로, 시나리오를 문서(XML)로 선언하고 시뮬레이터가 그것을 동일하게 재생할 수 있어야 한다. ASAM OpenSCENARIO XML이 그 선언 형식이고, esmini는 그 파일을 실행하는 공개 플레이어다.

왜 유명한가 / 활용 가치

시사점 및 결론

esmini가 보여주는 것은 "시뮬레이터를 하나 더 만들었다"가 아니라 검증의 병목이 알고리즘이 아니라 형식이라는 사실이다. 인지 모델·계획 모델이 아무리 좋아져도, 그 모델이 규제를 통과하는지는 결국 같은 시나리오를 몇 번이나 동일하게 재생할 수 있는가로 판정된다. 그래서 Euro NCAP 테스트 프로토콜과 UN ALKS 규정이 XML 묶음으로 공개되고, 그 XML을 실행하는 도구가 인프라가 된다. esmini는 인용수가 아니라 4,000줄 규모의 표준 준수 여부 표(osc_coverage.txt)와 7년간 끊기지 않은 릴리스 리듬으로 그 자리를 지키고 있다. 이 블로그에서 반복 확인한 계보와 정확히 같은 결론이다 — MapTR(09-22)은 HD맵을 벡터로 바꿔 온라인화했고, RSS(09-18)는 "누구의 잘못인가"를 수식으로 정의했으며, esmini는 테스트 시나리오를 표준 XML로 바꿔 재현 가능한 검증으로 만들었다. 셋 모두 모델을 키우는 대신 문제의 형식을 고정해 이겼다.

실무 관점의 시사점은 역할 분담이다. 도로망은 OpenDRIVE로 한 번 정의하고, 교통 흐름은 SUMO(09-19)가, 사실적 센서는 CARLA(09-09)가, 규제 시나리오의 재현과 판정은 esmini가 맡는 구조가 이미 산업 표준으로 굳어졌다. 자율주행을 "학습시키는" 쪽에 관심이 쏠릴 때일수록, 그 모델이 안전하다고 증명되는 경로를 먼저 확보하는 편이 낫다 — esmini는 그 경로에서 가장 값싸게 시작할 수 있는 입구다. 다만 XML 전용이라는 노선과 80% 커버리지는 분명한 제약이므로, 교통 밀집·신호 연동이 필요한 검증은 도구를 하나 더 얹는 설계를 전제로 삼아야 한다.

원문: https://github.com/esmini/esmini

목록으로 돌아가기