Przejdź do głównej zawartości

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.

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.

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.

  • 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.

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.