LC Semantics: Review Chapter 7
The headings refer to the sections of the OpenScenario Concept document.
7.1
- "
*validity* of the scenario shall be evaluated.
": This sentence seems quite heavy. - Against what is the scenario compared?
- How does the evaluation work? When is it valid?
Observers
- "
Observers can be seen as part of the scenario. However, it is reccomended to abstract them away from the scenario
"- It has to be semantically clear that that no information flows from the observer to the scenario.
Safety checkers
- What does e.g. "
Always keep a safe distance mean
"? Do we aim to pay attention to what happens in between discrete time steps? With e.g. interval reasoning? "Always
" as in an linear temporal logic (LTL) like setting? - "
safety checkers can help evaluate certain certification and/or qualification parameters (e.g. a flag to mark real-time execution)
".- I don't understand this.
- "
Safety checkers can also evaluate the validity of the scenario (e.g. at the compiler level).
"- I don't understand this.
7.3
- "
OpenSCENARIO 2.0 shall use temporal operators over first-order formulas involving state predicates
"- What kind of variables do we have?
- Variables with different sorts: one sort ranging over actors and another ranging over state variables?
- temporal operators:
always
,sometime
,at most once
,at end
,within
,hold during
,hold after
- Needs to be decided whether the operators can be nested
7.3.3
- The car must stop in ego lane only after the ego is moving fast enough.
- ensure abs(ego.longitudinal_speed()) > 50.0 mph sometime before (car.is_stopped() and car.in_ego_lane())
- I assume
car.in_ego_lane()
refers to the current lane of ego?- Do we need to refer to initial values, or to values reached sometime during execution?
- If this is needed; is it possible with the intended language for observers (as references to time are not wanted I believe)?
7.4
- "
The standard library of OpenSCENARIO 2.0 shall include a set of predefined API methods to collect various KPIs.
"
7.4.2
- "
Collect distance between the ego car and the car ahead (throughout duration of the scenario) as a function of time.
"- What if the ego infront of ego changes? --> Quantifiers over cars?
- Are there cases where we refer to non-specific cars, i.e. any car satisfying some condition?
7.5
- A DUT error means the DUT (ego car) did something wrong.
- The language should provide a way to indicate this, invoking a zero-time scenario, e.g., command in an exemplary psedo-code such as: dut.error().
- This usually indicates a bug or problem in the DUT that needs to be fixed.
- A scenario failure means that the scenario did not happen according to its definition.
- This should be indicated by calling the zero-time scenario automatically by the execution engine.
- This is for us!
- In case of DUT error and scenario failure calling a zero time scenario is suggested.
- Then we lose ability to distuingish those two?