Skip to content

192. Kinematic Behavior Monitoring

The kinematic_checker checker monitors a vehicle's dynamic performance and emits intervals and raises issues when any kinematic values (such as speed, acceleration, or jerk) exceed predefined thresholds. This checker supports both specification checking (OEM limits) and physical capability checking (absolute physical limits) depending on the configuration provided.

The kinematic_category_behavior modifier monitors specific kinematic categories such as speed, lon_acc, lat_acc, lon_jerk, or lat_jerk and uses a kinematic_checker_config struct linked via keep constraints for configuration.

192.0.1 Start condition

An interval is started when any monitored kinematic parameter (speed, longitudinal acceleration, lateral acceleration, longitudinal jerk, or lateral jerk) exceeds its configured upper threshold or falls below its configured lower threshold.

192.0.2 End condition

The interval ends when all monitored kinematic parameters return within their configured upper and lower limits. An issue is raised at the end of this interval, identifying the violation type (e.g., kinematic_behavior_spec or kinematic_behavior_physical).

192.1 Attributes

The following attributes define the behavior and characteristics of the evaluator.

Checker attribute Description
Parent object vehicle.kinematic_behavior
Issue category sut or other
Issue kind kinematic_behavior_spec, kinematic_behavior_physical
Default severity warning
Trigger condition Based on kinematic_category_behavior watcher

192.2 Configuration parameters

The following parameters can be configured to customize the evaluator's behavior.

Parameter Type Unit Description Default Value Range
speed_upper_threshold speed kph Upper speed threshold No default [0, 100]kph
speed_lower_threshold speed kph Lower speed threshold No default [0, 100]kph
lon_acceleration_upper_threshold acceleration mpsps Upper longitudinal acceleration threshold No default [0, 30]mpsps
lon_acceleration_lower_threshold acceleration mpsps Lower longitudinal acceleration threshold No default [0, 30]mpsps
lat_acceleration_upper_threshold acceleration mpsps Upper lateral acceleration threshold No default [0, 30]mpsps
lat_acceleration_lower_threshold acceleration mpsps Lower lateral acceleration threshold No default [0, 30]mpsps
lon_jerk_upper_threshold jerk mpspsps Upper longitudinal jerk threshold No default [0, 100]mpspsps
lon_jerk_lower_threshold jerk mpspsps Lower longitudinal jerk threshold No default [0, 100]mpspsps
lat_jerk_upper_threshold jerk mpspsps Upper lateral jerk threshold No default [0, 100]mpspsps
lat_jerk_lower_threshold jerk mpspsps Lower lateral jerk threshold No default [0, 100]mpspsps
issue_severity enum (ignore, info, warning, error_continue, error, error_stop_now) Issue severity for the kinematic checker warning
enabled bool Whether the checker is enabled true
log_level enum (info_level, debug_level, trace_level) Log level of the checker info_level

192.3 Metrics

The following metrics are recorded and tracked by the evaluator.

Metric Type Description Range Unit
max_lat_acceleration acceleration Maximum lateral acceleration of the vehicle mpsps
min_lat_acceleration acceleration Minimum lateral acceleration of the vehicle mpsps
max_lon_acceleration acceleration Maximum longitudinal acceleration of the vehicle mpsps
min_lon_acceleration acceleration Minimum longitudinal acceleration of the vehicle mpsps
max_lon_jerk jerk Maximum longitudinal jerk of the vehicle mpspsps
min_lon_jerk jerk Minimum longitudinal jerk of the vehicle mpspsps
max_lat_jerk jerk Maximum lateral jerk of the vehicle mpspsps
min_lat_jerk jerk Minimum lateral jerk of the vehicle mpspsps
max_speed speed Maximum speed of the vehicle kph
min_speed speed Minimum speed of the vehicle kph
issue_type enum (none, speed_too_high, speed_too_low, lon_acc_too_high, lon_acc_too_low, lat_acc_too_high, lat_acc_too_low, lon_jerk_too_high, lon_jerk_too_low, lat_jerk_too_high, lat_jerk_too_low) Type of kinematic issue

192.4 Log and Error Messages

Output Condition Description Default Severity Action
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_spec_speed_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_spec_lon_acc_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_spec_lat_acc_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_spec_lon_jerk_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_spec_lat_jerk_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_physical_speed_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_physical_lon_acc_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_physical_lat_acc_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_physical_lon_jerk_checker.data.issue_type Warning Investigate the SUT's behaviour.
After the interval ends, a warning is issued Kinematic violation, Issue type: kinematic_physical_lat_jerk_checker.data.issue_type Warning Investigate the SUT's behaviour.

192.5 Usage

192.5.1 How to instantiate

The kinematic_checker can be instantiated for any vehicle actor.

watcher kinematic_checker is kinematic(vehicle: actor)
checker new_kinematic_spec_lat_jerk_checker is kinematic_category_behavior(
       vehicle: sut.car,
       issue_category: lat_jerk
   ) 
   keep (new_kinematic_spec_lat_jerk_checker.kinematic_checker_config == ftlx_global_eval_config.ego_kinematic_spec_checker_config)

192.5.2 Set parameters at instantiation time

Pass parameters in the keep(...) binding at instantiation time, either from ftlx_global_eval_config or as explicit values.

checker new_kinematic_spec_lat_jerk_checker is kinematic_category_behavior(
       vehicle: sut.car,
       issue_category: lat_jerk
   )
   keep(new_kinematic_spec_lat_jerk_checker.kinematic_checker_config == ftlx_global_eval_config.ego_kinematic_spec_checker_config)

192.5.3 Define and use a custom parameter set

To customize thresholds and behavior, define a kinematic_checker_config struct with the required values:

const custom_kinematic_checker_config: kinematic_checker_config = new
set custom_kinematic_checker_config.speed_upper_threshold = 150kph
set custom_kinematic_checker_config.speed_lower_threshold = -20kph
set custom_kinematic_checker_config.lon_acceleration_upper_threshold = 5mpsps
set custom_kinematic_checker_config.lon_acceleration_lower_threshold = -5mpsps
set custom_kinematic_checker_config.lat_acceleration_upper_threshold = 2mpsps
set custom_kinematic_checker_config.lat_acceleration_lower_threshold = -2mpsps
set custom_kinematic_checker_config.lon_jerk_upper_threshold = 5mpspsps
set custom_kinematic_checker_config.lon_jerk_lower_threshold = -5mpspsps
set custom_kinematic_checker_config.lat_jerk_upper_threshold = 5mpspsps
set custom_kinematic_checker_config.lat_jerk_lower_threshold = -5mpspsps
set custom_kinematic_checker_config.log_level = trace_level
Then pass the struct to the checker at instantiation:
checker custom_kinematic_spec_lat_jerk_checker is kinematic_category_behavior(
       vehicle: sut.car,
       issue_category: lat_jerk
   ) 
   keep (custom_kinematic_spec_lat_jerk_checker.kinematic_checker_config == ftlx_global_eval_config.custom_kinematic_checker_config)

192.5.4 Disabling the evaluator

To disable the evaluator, set the enabled flag to false in the kinematic_checker_config struct:

const kinematic_checker_config: kinematic_checker_config = new
set kinematic_checker_config.enabled = false

192.6 Additional information

All parameters are required, but you don't need to customize all of them. For any parameter you don't customize with set, the default value defined in kinematic_checker_config is used.

Specification checking mode (kinematic_checker_config)

The following table lists the configurable parameters of kinematic_checker_config, their default values, and threshold descriptions used to verify that vehicle kinematic behavior remains within OEM specification limits.

Parameter Default Value Description
speed_upper_threshold 150 kph Maximum allowable vehicle speed per OEM spec
speed_lower_threshold -20 kph Minimum allowable vehicle speed (reverse) per OEM spec
lon_acceleration_upper_threshold 5 m/s² Maximum allowable longitudinal acceleration per OEM spec
lon_acceleration_lower_threshold -5 m/s² Maximum allowable longitudinal deceleration per OEM spec
lat_acceleration_upper_threshold 2 m/s² Maximum allowable lateral acceleration (right) per OEM spec
lat_acceleration_lower_threshold -2 m/s² Maximum allowable lateral acceleration (left) per OEM spec
lon_jerk_upper_threshold 5 m/s³ Maximum allowable longitudinal jerk per OEM spec
lon_jerk_lower_threshold -5 m/s³ Maximum allowable longitudinal jerk (negative) per OEM spec
lat_jerk_upper_threshold 5 m/s³ Maximum allowable lateral jerk (right) per OEM spec
lat_jerk_lower_threshold -5 m/s³ Maximum allowable lateral jerk (left) per OEM spec

Physical capability checking mode (kinematic_physical_checker_config) The following table lists the configurable parameters of kinematic_physical_checker_config, their default values, and threshold descriptions used to verify that vehicle kinematic behavior does not exceed absolute physical capability limits or indicate unrealistic data.

Parameter Default Value Description
speed_upper_threshold 250 kph Maximum physically possible vehicle speed
speed_lower_threshold -50 kph Minimum physically possible vehicle speed (reverse)
lon_acceleration_upper_threshold 9 m/s² Maximum physically possible longitudinal acceleration
lon_acceleration_lower_threshold -10 m/s² Maximum physically possible longitudinal deceleration
lat_acceleration_upper_threshold 10 m/s² Maximum physically possible lateral acceleration (right)
lat_acceleration_lower_threshold -10 m/s² Maximum physically possible lateral acceleration (left)
lon_jerk_upper_threshold 50 m/s³ Maximum physically possible longitudinal jerk
lon_jerk_lower_threshold -50 m/s³ Maximum physically possible longitudinal jerk (negative)
lat_jerk_upper_threshold 35 m/s³ Maximum physically possible lateral jerk (right)
lat_jerk_lower_threshold -35 m/s³ Maximum physically possible lateral jerk (left)