Skip to content
Preview.xosc@modelscript/openscenario 10 diagnostic rules
Parser WASM GLR
Diagnostics 10 rules
DAE Arena Lowering
Simulation Native Solvers
Projections Modelica
Live ExampleHighwayCutInSafety.xosc

ASAM OpenSCENARIO Highway Cut-In & RSS Safety Check

Autonomous driving validation scenario where a challenger vehicle executes a lane-change cut-in ahead of the ego vehicle at 30 m/s.

Playground
Source (30 lines)
1<?xml version="1.0" encoding="UTF-8"?>
2<OpenSCENARIO>
3  <FileHeader revMajor="1" revMinor="2" description="Highway Cut-In RSS Verification" author="ModelScript" />
4  <Entities>
5    <ScenarioObject name="Ego">
6      <Vehicle name="EgoSedan" vehicleCategory="car" />
7    </ScenarioObject>
8    <ScenarioObject name="Challenger">
9      <Vehicle name="CutInSuv" vehicleCategory="car" />
10    </ScenarioObject>
11    <ScenarioObject name="LeadTruck">
12      <Vehicle name="FreightLiner" vehicleCategory="truck" />
13    </ScenarioObject>
14  </Entities>
15  <Storyboard>
16    <Init>
17      <Actions>
18        <Private entityRef="Ego">
19          <PrivateAction>
20            <LongitudinalAction>
21              <SpeedAction>
22                <SpeedActionTarget><AbsoluteTargetSpeed value="31.0" /></SpeedActionTarget>
23              </SpeedAction>
24            </LongitudinalAction>
25          </PrivateAction>
26        </Private>
27      </Actions>
28    </Init>
29  </Storyboard>
30</OpenSCENARIO>
OpenSCENARIO Multi-Actor Maneuver & RSS Envelope
Highway Cut-In RSS Verification Bird's-Eye View: Roadway Corridor & Trajectory Safety Envelopes 0m 36m 72m 108m 144m 180m RSS: 18.4m Ego 31.0 m/s Challenger 27.8 m/s LeadTruck 27.8 m/s Actors: Ego Vehicle Target Cut-In Obstacle
Drag to pan · Click % to reset

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 ​

ExtensionFormatDescription
.xoscASAM OpenSCENARIO 1.x XMLXML-based scenario description (storyboards, entities, maneuvers, triggers, actions)
.oscASAM OpenSCENARIO 2.0 DSLDomain-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 (a(t)), lane change (y˙(t)), 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 (E) and surrounding traffic (T):
    • Time-To-Collision (TTC):TTC=xlead−xegovego−vlead(for vego>vlead)
    • Mobileye RSS Longitudinal Safe Distance:dmin,long=[vr⋅ρ+12amax,accρ2+(vr+ρamax,acc)22amin,brake−vf22amax,brake]+where ρ is sensor reaction time, amax,acc is maximum acceleration, and amin,brake is minimum emergency braking deceleration.

3. Direct DAE Lowering ​

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

CodeRuleSeverityMessage
M8501dangling-entity-referenceerrorEntity '<entityName>' referenced in '<contextName>' is not defined in Entities catalog.
M8502unsatisfiable-triggerwarningTrigger condition '<conditionName>' is unsatisfiable: <reason>.
M8503unreachable-road-positionerrorRoad position specifies invalid road ID '<roadId>' or lane index '<laneId>'.
M8504cyclic-event-triggererrorCircular trigger condition detected between event '<eventA>' and event '<eventB>'.
M8505missing-ego-entityerrorScenario does not define an autonomous vehicle under test ('ego' vehicle).
M8506negative-speed-targeterrorSpeed action '<actionName>' specifies negative target velocity '<speed>' m/s.
M8507excessive-decelerationwarningAction demands deceleration '<decel>' m/s² for '<entityName>', exceeding vehicle limit '<limit>' m/s².
M8508imminent-collision-initial-stateerrorInitial positions for '<entityA>' and '<entityB>' violate collision envelope (distance: <value> m).
M8509empty-maneuver-groupwarningManeuver group '<groupName>' specifies no actors or no maneuvers.
M8510invalid-condition-delayerrorTrigger 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

Open-Core under the GNU AGPL v3 License; Enterprise Edition (ee/) under the ModelScript Enterprise License. • Trademark Policy