OpenSCENARIO란?
OpenSCENARIO 는 동적 주행 시나리오 — 에고 차량과 다른 교통 참가자들이 시간에 따라 어떻게 행동하는지를 시뮬레이터가 재생할 수 있는 형태로 기술하는 — ASAM 개방 표준입니다. 자동화 운전 시스템의 시나리오 기반 테스트를 위한 사실상의 표준 교환 포맷입니다.
두 가지 OpenSCENARIO 계열
섹션 제목: “두 가지 OpenSCENARIO 계열”같은 이름을 공유하지만 사실상 독립적인 두 가지 사양이 있습니다.
- OpenSCENARIO 1.x — XML 기반. 안정적이고 광범위하게 지원됩니다. 현재 대부분의 도구가 목표로 하는 운영 버전은 1.3 개정판입니다.
- OpenSCENARIO 2.0 / DSL — 추상적, 파라메트릭, 확률적 시나리오를 위한 도메인 특화 언어. 더 최신이고 표현력이 높으며 도구 지원이 늘어나고 있습니다.
두 형식은 호환되지 않습니다. 현재 대부분의 시뮬레이터와 SOTIF / ISO 21448 테스트 파이프라인이 소비하는 것은 1.x입니다.
OpenSCENARIO 1.x 파일의 구성 요소
섹션 제목: “OpenSCENARIO 1.x 파일의 구성 요소”1.x 시나리오는 일반적으로 다음으로 구성됩니다.
- RoadNetwork 참조 — 보통 OpenDRIVE
.xodr파일이며, 선택적으로.osgb같은 씬 그래프 파일과 쌍을 이룹니다. - Entities 블록 — 차량, 보행자, 기타 객체들.
- Storyboard — 엔티티들이 수행하는 시간 순서의 액트, 기동, 이벤트.
- Init 액션 — 시작 위치, 속도, 파라미터 할당.
XML은 짧은 단일 시나리오에는 자연스럽게 읽히지만, 수십 개의 변형으로 확장하면 유지 관리가 어려워집니다. 바로 여기서 저작 도구와 DSL이 도움이 됩니다.
일반적인 저작 방식
섹션 제목: “일반적인 저작 방식”- 직접 작성하는 XML. 소규모 팀과 기준 픽스처에 흔합니다.
- DSL / 코드 생성. OpenSCENARIO 2.0 DSL, Scenic, 또는 사내 생성기가 고수준 기술에서 XML을 내보냅니다.
- Python 라이브러리. scenariogeneration (이전의
pyoscx/pyodrx)은 OpenSCENARIO V1.0부터 V1.3.1까지 지원하는 프로그래밍 방식 API를 제공합니다. - 시뮬레이터 번들 시나리오 엔진. CARLA ScenarioRunner는 CARLA용 시나리오를 Python과 OpenSCENARIO 1.0 / 2.0 지원으로 정의하고 실행합니다.
- 시각적 편집기. MathWorks RoadRunner (XML과 DSL 내보내기), Truevision Designer (OpenDRIVE 중심), Blender Driving Scenario Creator (Blender 애드온), drawtonomy (부분 내보내기 기능의 브라우저 화이트보드).
프로덕션 시나리오 저작에는 이들 중 하나 이상을 사용하는 경우가 많습니다 — 보통 시나리오 자체에는 Python 라이브러리나 DSL을, 도로 네트워크에는 시각적 편집기를 함께 사용합니다.
drawtonomy의 위치
섹션 제목: “drawtonomy의 위치”drawtonomy는 부분적인 OpenSCENARIO 1.3 / OpenDRIVE 1.8 내보내기 기능을 가진 브라우저 화이트보드입니다. 내보내기 문서에 따르면:
- 2D 탑다운 캔버스에 차선, 교차로, 차량, 보행자, 신호등, 노면 표시를 배치합니다.
- esmini에서 간단한 장면을 재생하는
.xosc+.xodr+run.shzip을 내보냅니다.
내보내기 기능은 사양의 일부 의도적인 부분집합을 다룹니다. 현재 내보내지 않는 항목 (SDK의 로드맵 항목으로 명시):
- OpenDRIVE 교차로 프리미티브 (
<junction>). <signal>항목으로서의 교통 표지.- 가속 프로파일, 정지 이벤트, 신호 인식 경로, 차선 변경 액션, 복잡한 다중 액터 스토리보드.
- 조건부 트리거, 파라미터 스윕, 커스텀 또는 ML 기반 컨트롤러.
실제로는 drawtonomy의 OpenSCENARIO 내보내기를 스케치 출발점으로 다루세요 — 시나리오의 그림을 생성하거나 손으로 편집할 수 있는 기준선으로서 유용하며, 프로덕션 시나리오 저작 경로로는 사용하지 마세요.