Skip to content

Kinematic boundaries

The kinematic boundaries, or bounds of the driver are used to control the kinematic behavior of the driver; they constitute a set of parameters that are used by the behavioral and trajectory generation layers. The kinematic bounds are stored in the driver under the driving_profiles object, which actually stores the two sets of kinematic bounds: one for aggressive maneuvers and one for regular "comfort" driving.

FTX-HLM driver

The kinematic bounds are stored in FTX driver under the driving_profiles object.

The driving_profiles struct has the following members:

Policy Type Description
comfort_driving kinematic_bounds Set of values used for comfort driving (default).
aggressive_driving kinematic_bounds Set of values used for aggressive driving.

VRU driver

The kinematic bounds are stored in VRU driver under the moving_profiles object.

The moving_profiles struct has the following members:

Policy Type Description
walking kinematic_bounds Set of values used for comfort moving (default).
running kinematic_bounds Set of values used for aggressive moving.

kinetic_bounds struct

The kinematic_bounds struct is used for both FTX-HLM driver and VRU driver.

The kinematic_bounds struct has the following members:

Policy Type Description Default value comfort Default value agressive
acceleration_max acceleration Max allowed forward acceleration. 1.5m/sec^2 3m/sec^2
deceleration_max acceleration Max allowed forward deceleration. 4m/sec^2 10m/sec^2
lateral_abs_acceleration_max acceleration Max allowed lateral acceleration in acceleration units (e.g., meter/s^2). 3meter/s^2 6meter/s^2
lateral_abs_acceleration_max_lanes float Max allowed lateral acceleration in lane units (lane/s^2). 1lane/s^2 2lane/s^2
forward_speed_max speed Max allowed speed when driving forward. 150kph 200kph
backwar_speed_max speed Max allowed speed when driving backwards. 10kph 20kph
speed_min speed Min allowed speed (always set to 0). 0kph 0kph

Note

Speed and acceleration kinematic bounds are specified somewhat differently from the way they are expressed in modifiers in the scenarios and in the vehicle state, where "speed" and "acceleration" hold both positive and negative values to express forward and backward directions. For kinematic bounds, the "deceleration" term is used. There is also an explicit separation between "forward" and "backward" driving for kinematic bounds; therefore, all the values are positive.

The following example shows how to set the driving_profiles behavior defaults.

OSC2 code: change driving_profiles defaults
extend vehicle:
    keep( ftx_driver.driving_profiles.aggressive_driving.acceleration_max == 2mpsps )
    keep( ftx_driver.driving_profiles.aggressive_driving.forward_speed_max == 30kph )
    keep( ftx_driver.driving_profiles.aggressive_driving.lateral_abs_acceleration_max == 2mpsps )
    keep( ftx_driver.driving_profiles.comfort_driving.forward_speed_max == 30kph )
    keep( ftx_driver.driving_profiles.comfort_driving.lateral_abs_acceleration_max == 1mpsps )