What is ASAM OpenSCENARIO® DSL?

ASAM OpenSCENARIO® DSL 2.1.0 (OSC DSL 2.1.0) is a human-readable scenario definition language that is a standardized format used to describe test scenarios for the development, testing, and validation of Advanced Driver-Assistance Systems (ADAS) and Automated Driving Systems (ADS) functions. The declarative domain-specific programming language is combined with a domain model, specifying entities with their properties.  

The language supports abstract, logical and concrete abstraction levels of scenario description.  In comparison, ASAM OpenSCENARIO® XML covers concrete and logical scenario abstraction but not abstract scenarios.

OSC DSL 2.1.0 is maintained and developed by the ASAM e.V. (Association for Standardization of Automation and Measuring Systems), a non-profit international organization focused on standardization in the automotive industry for automotive development and testing.  The ASAM standards are developed by industry experts from ASAM member companies.

This standard helps companies developing autonomous vehicle systems to efficiently test autonomous vehicles (AV) and advanced driver-assistance systems (ADAS), by allowing large-scale simulations for verification and validation (V&V) purposes that test the safety and functionality of AVs and ADAS.  The standard supports both physical and simulation testing. It focuses on building complex scenarios from reusable scenario descriptions, making testing faster and more efficient. 

Key characteristics of ASAM OpenSCENARIO® DSL:

  • Domain-specific: Designed specifically for the ADAS and ADS development landscape, ASAM OpenSCENARIO® DSL uses terminology and concepts familiar to engineers working in these fields. This makes it easier to create and understand test scenarios compared to general-purpose programming languages.
  • Focuses on intent: OSC DSL 2.1.0 allows specification of the overall goal or intent of the test scenario. This includes defining Key Performance Indicators (KPIs) that will be used to measure the success of the test. The language supports abstract, logical, and concrete levels of abstraction. This high-level approach enables engineers to explore the broader functionality space and identify potential edge cases or unexpected situations.
  • Reusable scenarios: Scenarios don’t have to be built from scratch every time. OSC DSL 2.1.0 allows for the creation of reusable scenario elements or modules. These modules can then be combined to form more complex scenarios, promoting efficiency and flexibility in test design.  The modules can be part of a library that can be used to create complex interactions and ODD conditions. 
  • Test Platform Support: Designed to support all test platforms: Software in the loop (SIL), Hardware in the loop (HIL), Vehicle-in-the-Loop(VIL), Model-in-Loop (MIL), and Proving Grounds.
  • Integrated with OpenDRIVE and OpenCRG: The ADAS and AD development process involves multiple aspects beyond just the scenario itself. OSC DSL 2.1.0 integrates seamlessly with other ASAM standards like OpenDRIVE, which describes road networks, and OpenCRG, which describes traffic signal configurations. This integration facilitates a holistic development environment where different components work together effectively.

OSC DSL 2.1.0 provides three different levels of abstraction:

ASAM OpenSCENARIO® DSL Code

 

 

 

Scenario composition allows for combining simple scenarios in serial or parallel:

ASAM OpenSCENARIO® DSL Scenario

 

 

 

 

 

 

Road abstraction:

This feature is the ability to describe the features of the road network in an abstract way that influences the actor’s behavior during a scenario. The ability to use abstract road description enables creating scenarios according to given road topology, but without being tied to a specific map or location. This is key for reusing these scenarios in different locations.

Code example of road abstraction:

my_junction:junction
road_1, road_2, road_3, road_4: road
jr_12, jr_34:road

r1:map.roads_follow_in_junction(junction:my_junction, in_road: road_1, out_road: road_2, junction_route:jr_12)
r3:map.roads_follow_in_junction(junction:my_junction, in_road: road_3, out_road: road_4, junction_route:jr_34)

Comparison with ASAM OpenSCENARIO® XML:

It’s important to note that ASAM offers two OpenSCENARIO® standards:

  • OpenSCENARIO® XML: This standard utilizes an XML schema for describing scenarios. It focused on defining precise trajectories for vehicles and allows for detailed parameterization of various elements within the scenario. However, its focus on low-level details can make it less efficient for high-level scenario design and exploration.
  • OpenSCENARIO® DSL: In contrast, the focus of OpenSCENARIO® DSL is on the scenario’s intent and overall functionality. This makes it ideal for exploring the broader test space and facilitating the generation of a larger number of test cases.

Applications of ASAM OpenSCENARIO® DSL:

  • Virtual development, simulation, and testing: OSC DSL 2.1.0 plays a crucial role in creating simulated test environments for ADAS and AD functions. This enables engineers to identify and address potential issues before real-world testing is conducted.
  • X-in-the Loop: Hardware-in-the-Loop (HIL) and Software-in-the-Loop (SIL) simulations: HIL simulations involve testing ADAS and AD functions on actual hardware while simulating the surrounding environment. OSC DSL 2.1.0 can be used to create test specifications that guide these simulations, as well as SIL simulations.
  • Real-world driving data analysis and scenario reconstruction: Data gathered from real-world driving scenarios, including proving grounds, can be valuable for improving ADAS and AD systems. OpenSCENARIO® DSL can be used to reconstruct these scenarios for further analysis and development purposes.

File format:

OpenSCENARIO® DSL uses the *.osc file format.

Code Sample for Lane Cut-in with 2 Vehicles:

OpenSCENARIO® 2.1.0 utilizes a dedicated domain-specific language (DSL), with the characteristics of a human and machine readable software programming language.

Here’s a code example using a simplified syntax:

ASAM OpenSCENARIO® DSL Code

 

 

 

 

 

 

 

 

 

 

 

This example represents a simplified scenario outlining the basic concept. Depending on your specific needs, you can further customize the code to include additional details like lane change distances, acceleration profiles, and sensor data generation.

OSC DSL 2.1.0 Visual Example: NCAP Car to Pedestrian nearside child
This NCAP example is a scenario with the Ego (the DUT or SV) drives at different speeds towards a pedestrian. The pedestrian’s path overlaps the Ego’s path by various amounts.

 

ASAM OpenSCENARIO® DSL Scenario

ASAM OpenSCENARIO® DSL Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Standard authors:

The authors contributing to the standard include the following organizations:
51WORLD High Technology Co.,Ltd., Akkodis Germany Consulting GmbH, AVENYR GmbH, AVL List GmbH, BMW Group, CARIAD SE, DENSO Automotive, dSPACE GmbH, Five AI, Foretellix Ltd, Fraunhofer Institut für Verkehrs- und Infrastruktursysteme IVI, e.V., Hexagon Manufacturing Intelligence GmbH, IPG Automotive GmbH, Luxoft GmbH, MathWorks, PMSF IT Consulting, RA Consulting GmbH, Robert Bosch GmbH, Siemens AG, Tencent, Torc Robotics, TraceTronic GmbH, Vayavya labs Pvt Ltd., Vector Informatik GmbH, Volvo Autonomous Solutions, Volvo Car Corporation

References:

 

Additional content for you

Register to receive ALKS scenarios verification code examples

Subscribe to our newsletter