diff --git a/control/autoware_autonomous_emergency_braking/README.md b/control/autoware_autonomous_emergency_braking/README.md index 7133e4ea6b7f7..a878f74b9cd5c 100644 --- a/control/autoware_autonomous_emergency_braking/README.md +++ b/control/autoware_autonomous_emergency_braking/README.md @@ -288,37 +288,7 @@ When vehicle odometry information is faulty, it is possible that the MPC fails t ## Parameters -| Name | Unit | Type | Description | Default value | -| :--------------------------------- | :----- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| publish_debug_markers | [-] | bool | flag to publish debug markers | true | -| publish_debug_pointcloud | [-] | bool | flag to publish the point cloud used for debugging | false | -| use_predicted_trajectory | [-] | bool | flag to use the predicted path from the control module | true | -| use_imu_path | [-] | bool | flag to use the predicted path generated by sensor data | true | -| use_object_velocity_calculation | [-] | bool | flag to use the object velocity calculation. If set to false, object velocity is set to 0 [m/s] | true | -| check_autoware_state | [-] | bool | flag to enable or disable autoware state check. If set to false, the AEB module will run even when the ego vehicle is not in AUTONOMOUS state. | true | -| detection_range_min_height | [m] | double | minimum hight of detection range used for avoiding the ghost brake by false positive point clouds | 0.0 | -| detection_range_max_height_margin | [m] | double | margin for maximum hight of detection range used for avoiding the ghost brake by false positive point clouds. `detection_range_max_height = vehicle_height + detection_range_max_height_margin` | 0.0 | -| voxel_grid_x | [m] | double | down sampling parameters of x-axis for voxel grid filter | 0.05 | -| voxel_grid_y | [m] | double | down sampling parameters of y-axis for voxel grid filter | 0.05 | -| voxel_grid_z | [m] | double | down sampling parameters of z-axis for voxel grid filter | 100000.0 | -| cluster tolerance | [m] | double | maximum allowable distance between any two points to be considered part of the same cluster | 0.15 | -| cluster_minimum_height | [m] | double | at least one point in a cluster must be higher than this value for the cluster to be included in the set of possible collision targets | 0.1 | -| minimum_cluster_size | [-] | int | minimum required amount of points contained by a cluster for it to be considered as a possible target obstacle | 10 | -| maximum_cluster_size | [-] | int | maximum amount of points contained by a cluster for it to be considered as a possible target obstacle | 10000 | -| min_generated_imu_path_length | [m] | double | minimum distance for a predicted path generated by sensors | 0.5 | -| max_generated_imu_path_length | [m] | double | maximum distance for a predicted path generated by sensors | 10.0 | -| expand_width | [m] | double | expansion width of the ego vehicle for collision checking, path cropping and speed calculation | 0.1 | -| longitudinal_offset_margin | [m] | double | longitudinal offset distance for collision check | 2.0 | -| t_response | [s] | double | response time for the ego to detect the front vehicle starting deceleration | 1.0 | -| a_ego_min | [m/ss] | double | maximum deceleration value of the ego vehicle | -3.0 | -| a_obj_min | [m/ss] | double | maximum deceleration value of objects | -3.0 | -| imu_prediction_time_horizon | [s] | double | time horizon of the predicted path generated by sensors | 1.5 | -| imu_prediction_time_interval | [s] | double | time interval of the predicted path generated by sensors | 0.1 | -| mpc_prediction_time_horizon | [s] | double | time horizon of the predicted path generated by mpc | 1.5 | -| mpc_prediction_time_interval | [s] | double | time interval of the predicted path generated by mpc | 0.1 | -| aeb_hz | [-] | double | frequency at which AEB operates per second | 10 | -| speed_calculation_expansion_margin | [m] | double | expansion width of the ego vehicle footprint used when calculating the closest object's speed | 0.7 | -| path_footprint_extra_margin | [m] | double | this parameters expands the ego footprint used to crop the AEB input pointcloud | 1.0 | +{{ json_to_markdown("control/autoware_autonomous_emergency_braking/schema/autonomous_emergency_braking.schema.json") }} ## Limitations diff --git a/control/autoware_autonomous_emergency_braking/schema/autonomous_emergency_braking.schema.json b/control/autoware_autonomous_emergency_braking/schema/autonomous_emergency_braking.schema.json new file mode 100644 index 0000000000000..53b53fb86f899 --- /dev/null +++ b/control/autoware_autonomous_emergency_braking/schema/autonomous_emergency_braking.schema.json @@ -0,0 +1,215 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "autoware_autonomous_emergency_braking parameter", + "type": "object", + "definitions": { + "autoware_autonomous_emergency_braking": { + "type": "object", + "properties": { + "use_predicted_trajectory": { + "type": "boolean", + "description": "Flag to use the predicted path from the control module.", + "default": true + }, + "use_imu_path": { + "type": "boolean", + "description": "Flag to use the predicted path generated by sensor data.", + "default": true + }, + "limit_imu_path_lat_dev": { + "type": "boolean", + "description": "Flag to limit the lateral deviation of the IMU path.", + "default": false + }, + "limit_imu_path_length": { + "type": "boolean", + "description": "Flag to limit the length of the IMU path.", + "default": true + }, + "use_pointcloud_data": { + "type": "boolean", + "description": "Flag to use point cloud data for collision detection.", + "default": true + }, + "use_predicted_object_data": { + "type": "boolean", + "description": "Flag to use predicted object data.", + "default": false + }, + "use_object_velocity_calculation": { + "type": "boolean", + "description": "Flag to use object velocity calculation. If false, object velocity is set to 0 m/s.", + "default": true + }, + "check_autoware_state": { + "type": "boolean", + "description": "Flag to enable or disable Autoware state check.", + "default": true + }, + "imu_path_lat_dev_threshold": { + "type": "number", + "description": "Lateral deviation threshold for the IMU path.", + "default": 1.75 + }, + "min_generated_imu_path_length": { + "type": "number", + "description": "Minimum distance for a predicted path generated by sensors.", + "default": 0.5 + }, + "max_generated_imu_path_length": { + "type": "number", + "description": "Maximum distance for a predicted path generated by sensors.", + "default": 10.0 + }, + "imu_prediction_time_horizon": { + "type": "number", + "description": "Time horizon of the predicted path generated by sensors.", + "default": 1.5 + }, + "imu_prediction_time_interval": { + "type": "number", + "description": "Time interval of the predicted path generated by sensors.", + "default": 0.1 + }, + "mpc_prediction_time_horizon": { + "type": "number", + "description": "Time horizon of the predicted path generated by MPC.", + "default": 4.5 + }, + "mpc_prediction_time_interval": { + "type": "number", + "description": "Time interval of the predicted path generated by MPC.", + "default": 0.1 + }, + "publish_debug_pointcloud": { + "type": "boolean", + "description": "Flag to publish the point cloud used for debugging.", + "default": false + }, + "publish_debug_markers": { + "type": "boolean", + "description": "Flag to publish debug markers.", + "default": true + }, + "detection_range_min_height": { + "type": "number", + "description": "Minimum height of detection range used to avoid ghost braking by false positives.", + "default": 0.0 + }, + "detection_range_max_height_margin": { + "type": "number", + "description": "Margin for maximum height of detection range used to avoid ghost braking.", + "default": 0.0 + }, + "voxel_grid_x": { + "type": "number", + "description": "Downsampling parameter for x-axis in the voxel grid filter.", + "default": 0.1 + }, + "voxel_grid_y": { + "type": "number", + "description": "Downsampling parameter for y-axis in the voxel grid filter.", + "default": 0.1 + }, + "voxel_grid_z": { + "type": "number", + "description": "Downsampling parameter for z-axis in the voxel grid filter.", + "default": 0.5 + }, + "expand_width": { + "type": "number", + "description": "Expansion width of the ego vehicle for collision checking, path cropping, and speed calculation.", + "default": -0.2 + }, + "path_footprint_extra_margin": { + "type": "number", + "description": "Extra margin added to the ego vehicle footprint for cropping the point cloud.", + "default": 1.0 + }, + "speed_calculation_expansion_margin": { + "type": "number", + "description": "Expansion width of the ego vehicle footprint used for speed calculation.", + "default": 0.7 + }, + "cluster_tolerance": { + "type": "number", + "description": "Maximum allowable distance between two points in the same cluster.", + "default": 0.15 + }, + "cluster_minimum_height": { + "type": "number", + "description": "Minimum height of a cluster to be considered as a target.", + "default": 0.1 + }, + "minimum_cluster_size": { + "type": "integer", + "description": "Minimum number of points in a cluster to be considered as a target.", + "default": 10 + }, + "maximum_cluster_size": { + "type": "integer", + "description": "Maximum number of points in a cluster to be considered as a target.", + "default": 10000 + }, + "longitudinal_offset_margin": { + "type": "number", + "description": "Longitudinal offset distance for collision checking.", + "default": 1.0 + }, + "t_response": { + "type": "number", + "description": "Response time for the ego vehicle to detect a decelerating object.", + "default": 1.0 + }, + "a_ego_min": { + "type": "number", + "description": "Maximum deceleration value of the ego vehicle.", + "default": -3.0 + }, + "a_obj_min": { + "type": "number", + "description": "Maximum deceleration value of objects.", + "default": -1.0 + }, + "collision_keeping_sec": { + "type": "number", + "description": "Time duration to keep detecting a collision.", + "default": 3.0 + }, + "previous_obstacle_keep_time": { + "type": "number", + "description": "Time duration to keep the previous obstacle detected.", + "default": 1.0 + }, + "aeb_hz": { + "type": "number", + "description": "Frequency at which the AEB module operates.", + "default": 10.0 + } + }, + "required": [ + "use_predicted_trajectory", + "use_imu_path", + "publish_debug_markers", + "detection_range_min_height", + "voxel_grid_x", + "expand_width" + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/autoware_autonomous_emergency_braking" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false +}