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