ASAM OpenSCENARIO Autonomous Driving (.xosc, .osc)
@modelscript/openscenario (languages/openscenario) provides zero-regex XML and domain DSL parsing, dynamic scenario orchestration, Time-To-Collision (TTC) monitoring, Mobileye Responsibility-Sensitive Safety (RSS) margin verification, linear DAE lowering, and Modelica 3.x projection for ASAM OpenSCENARIO 1.x & 2.0 autonomous vehicle validation scenarios.
Supported Extensions & Standards
| Extension | Format | Description |
|---|---|---|
.xosc | ASAM OpenSCENARIO 1.x XML | XML-based scenario description (storyboards, entities, maneuvers, triggers, actions) |
.osc | ASAM OpenSCENARIO 2.0 DSL | Domain-specific declarative and imperative scenario language for AV test generation |
Key Capabilities
1. Dynamic Scenario Orchestrator
- Executes storyboard acts, maneuver groups, and event-condition-action triggers across moving entities (ego vehicle, NPC traffic vehicles, pedestrians, cyclists):
- Triggers: Simulation time, relative longitudinal distance, headway time, velocity thresholds, reach position.
- Actions: Longitudinal speed change (
), lane change ( ), lateral offset, waypoint trajectory following.
- Couples directly with analytical clothoid road geometry imported from ASAM OpenDRIVE (
@modelscript/opendrive).
2. Time-To-Collision (TTC) & Mobileye RSS Safety Verification
- Continuously evaluates kinematic safety margins between the autonomous vehicle (
) and surrounding traffic ( ): - Time-To-Collision (TTC):
- Mobileye RSS Longitudinal Safe Distance:
where is sensor reaction time, is maximum acceleration, and is minimum emergency braking deceleration.
- Time-To-Collision (TTC):
3. Direct DAE Lowering
- Lowers entity kinematics (position, heading
, velocity , acceleration ) into @modelscript/runtime'sDAEBuilderlinear memory arena. - Enables co-simulation with vehicle multibody dynamics (
@modelscript/simpack,@modelscript/adams) and powertrain control loops (@modelscript/simulink).
4. Bidirectional Modelica 3.x Projection
- Projects scenario storyboards into Modelica vehicle tracking and path-following controllers.
Pre-Flight Diagnostics
The OpenSCENARIO analyzer validates actor references, trigger reachability, and safety margins:
10 rules7 error3 warning Run with msx openscenario lint
| Code | Rule | Severity | Message |
|---|---|---|---|
M8501 | dangling-entity-reference | error | Entity '<entityName>' referenced in '<contextName>' is not defined in Entities catalog. |
M8502 | unsatisfiable-trigger | warning | Trigger condition '<conditionName>' is unsatisfiable: <reason>. |
M8503 | unreachable-road-position | error | Road position specifies invalid road ID '<roadId>' or lane index '<laneId>'. |
M8504 | cyclic-event-trigger | error | Circular trigger condition detected between event '<eventA>' and event '<eventB>'. |
M8505 | missing-ego-entity | error | Scenario does not define an autonomous vehicle under test ('ego' vehicle). |
M8506 | negative-speed-target | error | Speed action '<actionName>' specifies negative target velocity '<speed>' m/s. |
M8507 | excessive-deceleration | warning | Action demands deceleration '<decel>' m/s² for '<entityName>', exceeding vehicle limit '<limit>' m/s². |
M8508 | imminent-collision-initial-state | error | Initial positions for '<entityA>' and '<entityB>' violate collision envelope (distance: <value> m). |
M8509 | empty-maneuver-group | warning | Maneuver group '<groupName>' specifies no actors or no maneuvers. |
M8510 | invalid-condition-delay | error | Trigger condition '<condName>' specifies negative activation delay '<delay>' s. |
Generated from languages/openscenario/src/errors.ts. All languages →
CLI Usage
bash
# Inspect entities, maneuvers, and triggers in an OpenSCENARIO file
msx openscenario inspect HighwayCutIn.xosc
# Run pre-flight linting and trigger feasibility checks
msx openscenario lint HighwayCutIn.xosc
# Simulate scenario execution and evaluate TTC / RSS safety margins
msx openscenario simulate HighwayCutIn.xosc --duration=10.0
# Lower scenario kinematic equations to ModelScript linear DAE arena
msx openscenario to-dae HighwayCutIn.xosc
# Project into Modelica 3.x vehicle kinematics model
msx openscenario to-modelica HighwayCutIn.xosc -o ScenarioSimulation.mo
