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
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) |