370. Introduction to Global Evaluators
Global evaluators are part of the Evaluation V-Suite Library. Events of interest trigger them and can identify critical or unsafe behavior or add context to a situation. These evaluators are enabled by default for the generative runs and evaluation pipeline across all scenarios.
Global Evaluators are organized in two categories:
-
Global Watchers focus on observable conditions by adding contextual intervals, helping with triaging and reducing the number of needed KPIs in the evaluation scenarios. Examples include the curvature of a road, the current speed limit, the type of road, or the weather.
-
Global Checkers focus on observable Ego behavior, primarily identifying situations that indicate unsafe or unintended driving behavior. Examples include ride comfort events, driving too close to objects, collisions, and lane departure situations.
Note
Checkers are language constructs used to declare watchers that monitor specific conditions and emit intervals. Each interval can be linked to an issue if a violation occurs. The Checker API provides methods to create, attach, and manage issues, as well as access interval data. For details, see Defining watchers and checkers.
Global evaluators create intervals and additional data in the form of KPIs, coverage items, and contextual data in addition to the evaluation scenario matches. The combination of scenarios and global evaluators enables the user to identify relevant situations and analyze the verdict of such situations based on the additional context provided by the evaluators.
These intervals are created based on specified triggering conditions or by analyzing the current driving environment, regardless of whether real-world or simulation data is injected into the Foretellix toolchain. Depending on the type of event and evaluator, the intervals can vary in length from single-frame events to longer intervals.
370.1 Parameter Customization for Global Evaluators
Global evaluators incorporate user-configurable parameters to control key aspects of their behavior. Default values for these parameters are defined in the config file located at $FTX/tool/user_interface/domain_model/checks/ftlx_global_eval_config_top.osc. Users can override these default values to suit their specific requirements. Each global evaluator uses this configuration during setup, eliminating the need for code modifications.
To customize these parameters, the user should create a custom config file by extending the default ftlx_global_eval_config struct and setting the required values. Below is an excerpt of the default config file, located at $FTX/tool/user_interface/domain_model/checks/ftlx_global_eval_config_top.osc:
struct ftlx_global_eval_config:
# General units
const default_speed_unit: string = "kph"
const ego_static_object_too_close_checker_config = static_object_too_close_checker_config = new
# Default distance threshold to trigger the static_object_too_close checker
set ego_static_object_too_close_checker_config.default_obj_too_close_distance_threshold = 0.5m
The customized file may look like this:
# New file for user configuration
extend ftlx_global_eval_config:
set default_speed_unit = "mph"
# Disable a specific checker
set ego_kinematic_spec_checker_config.enabled = false
# Adjust other parameters for enabled checkers
set ego_static_object_too_close_checker_config.default_obj_too_close_distance_threshold = 1m
370.2 Global Checkers
| Name | Flow | Actors | Modifier | Description |
|---|---|---|---|---|
| Crash | generation, evaluation | Physical objects | physical_object.global_checkers |
Monitors all physical objects in the simulation and detects collisions. For details, see [Crash checker][crash]. |
| Off-road | generation, evaluation | Vehicles | vehicle.off_road_checker |
Detects when a vehicle drives off-road. For details, see [Off-road checker][vehicle-policy-off_road]. |
| Ride Comfort Event | generation, evaluation | Ego | sut_vehicle.ride_comfort_event |
Detects ride comfort events by analyzing the vehicle's acceleration and jerk. For details, see Ride Comfort Event. |
| Kinematic spec | generation, evaluation | Ego | sut_vehicle.kinematic_behavior |
Validates Ego kinematic values against OEM specification limits. Warns when speed, acceleration, or jerk exceed acceptable operational thresholds. For details, see Kinematic spec checker. |
| Kinematic physical | generation, evaluation | Ego | sut_vehicle.kinematic_behavior |
Validates Ego kinematic values against physical boundaries. Warns when speed, acceleration, or jerk reach physically impossible levels. For details, see Kinematic physical checker. |
| Static Object Too Close | generation, evaluation | Ego | sut_vehicle.static_object_too_close |
Detects when a vehicle passes by a static object within a specified distance threshold. For details, see Static Object Too Close. |
| System Signal | generation, evaluation | Ego | sut_vehicle.system_signal |
Monitors the state of the vehicle's signals and raises issues if needed. For details, see System Signal. |
| Lane Departure | generation, evaluation | Ego | sut_vehicle.lane_departure |
Monitors whether the vehicle maintains its lane and detects deviations that cross lane boundaries. Classifies the outcome as a return to lane, lane change, timeout, or undefined maneuver. For details, see Lane Departure. |
| Teleportation | generation, evaluation | Vehicles | sut_vehicle.teleportation |
Detects physically impossible vehicle movements by monitoring its traveled distance. For details, see Teleportation. |
370.3 Global Watchers
| Name | Flow | Actors | Modifier | Description |
|---|---|---|---|---|
| Curvature | generation, evaluation | Ego | sut_vehicle.curvature |
Detects and categorizes road curvature according to a configurable radius threshold when the vehicle operates on a curved road. For details, see [Curvature][curvature]. |
| Speed Limit | generation, evaluation | Ego | sut_vehicle.speed_limit |
Monitors the current speed limit of the road the Ego is driving on. Triggers when the road's speed limit changes, providing valuable context for interval-based analysis. For details, see [Speed Limit][speed-limit]. |
| Type of Road | generation, evaluation | Ego | vehicle.type_of_road |
Classifies the Ego's road context in real-time by evaluating route elements (junction, roundabout, ramp, cloverleaf, fork, construction zone). Emits intervals whenever the Ego's current position matches a configured road type. For details, see [Type of Road][type-of-road]. |