Czym jest OpenSCENARIO?
OpenSCENARIO to otwarty standard ASAM do opisu dynamicznych scenariuszy jazdy — tego, co pojazd ego i pozostałe uczestniki ruchu robią w czasie, w formie możliwej do odtworzenia przez symulatory. Jest to de facto format wymiany dla testowania opartego na scenariuszach w systemach jazdy autonomicznej.
Dwie rodziny OpenSCENARIO
Dział zatytułowany „Dwie rodziny OpenSCENARIO”Istnieją dwa w dużej mierze niezależne standardy noszące tę samą nazwę:
- OpenSCENARIO 1.x — oparty na XML. Stabilny i szeroko wspierany. Wersja 1.3 to aktualny cel produkcyjny dla większości narzędzi.
- OpenSCENARIO 2.0 / DSL — język dziedzinowy do tworzenia abstrakcyjnych, parametrycznych i probabilistycznych scenariuszy. Nowszy, bardziej ekspresywny, z rosnącym wsparciem narzędziowym.
Oba formaty nie są wymienne, ale to właśnie 1.x jest dziś konsumowany przez większość symulatorów i potoków testowych SOTIF / ISO 21448.
Co zawiera plik OpenSCENARIO 1.x
Dział zatytułowany „Co zawiera plik OpenSCENARIO 1.x”Typowy scenariusz 1.x składa się z:
- Odniesienia RoadNetwork — zazwyczaj plik OpenDRIVE
.xodr, opcjonalnie sparowany z plikiem sceny jak.osgb. - Bloku Entities — pojazdy, piesi i inne obiekty.
- Storyboard — ułożone chronologicznie akty, manewry i zdarzenia wykonywane przez uczestników.
- Akcji Init — pozycje startowe, prędkości i przypisania parametrów.
XML jest czytelny dla pojedynczego krótkiego scenariusza, ale staje się trudny w utrzymaniu przy dziesiątkach wariantów. Tu z pomocą przychodzą narzędzia do tworzenia scenariuszy i DSL.
Typowe podejścia do tworzenia scenariuszy
Dział zatytułowany „Typowe podejścia do tworzenia scenariuszy”- Ręcznie pisany XML. Popularne dla małych zespołów i referencyjnych przypadków testowych.
- DSL / generowanie kodu. OpenSCENARIO 2.0 DSL, Scenic lub własne generatory emitujące XML z opisu wyższego poziomu.
- Biblioteki Python. scenariogeneration (dawniej
pyoscx/pyodrx) udostępnia programowe API dla OpenSCENARIO + OpenDRIVE, pokrywając wersje V1.0 do V1.3.1. - Silniki scenariuszy dołączone do symulatorów. CARLA ScenarioRunner definiuje i wykonuje scenariusze dla CARLA z obsługą Pythona oraz OpenSCENARIO 1.0 / 2.0.
- Edytory wizualne. MathWorks RoadRunner (eksport XML i DSL), Truevision Designer (skupiony na OpenDRIVE), Blender Driving Scenario Creator (wtyczka Blendera) oraz drawtonomy (tablica w przeglądarce z częściowym eksportem).
Produkcyjne tworzenie scenariuszy zazwyczaj łączy kilka z powyższych — często bibliotekę Python lub DSL dla samych scenariuszy oraz edytor wizualny dla sieci drogowej.
Miejsce drawtonomy w ekosystemie
Dział zatytułowany „Miejsce drawtonomy w ekosystemie”drawtonomy to tablica w przeglądarce z częściowym eksporterem OpenSCENARIO 1.3 / OpenDRIVE 1.8. Zgodnie z jego dokumentacją eksportera:
- Umieszcza pasy, skrzyżowania, pojazdy, pieszych, sygnalizację i oznakowanie poziome na płaskim płótnie z widokiem z góry.
- Eksportuje archiwum zip z
.xosc+.xodr+run.sh, które odtwarza proste sceny w esmini.
Eksporter pokrywa świadomy podzbiór specyfikacji. Elementy, których dziś nie emituje (wymienione jako pozycje planu w SDK):
- Prymitywy skrzyżowań OpenDRIVE (
<junction>). - Znaki drogowe jako wpisy
<signal>w OpenDRIVE. - Profile przyspieszeń, zdarzenia zatrzymania, ścieżki uwzględniające sygnalizację, akcje zmiany pasa ani bardziej rozbudowane storyboardy z wieloma aktorami.
- Wyzwalacze warunkowe, przeglądy parametrów, niestandardowe lub sterowane ML kontrolery.
W praktyce eksport OpenSCENARIO z drawtonomy należy traktować jako punkt startowy szkicu — przydatny jako linia bazowa do ręcznej edycji lub do tworzenia rysunku towarzyszącego scenariuszowi, a nie jako pełnoprawna ścieżka tworzenia scenariuszy produkcyjnych.