Skip to content

Commit

Permalink
fixup! docs(avoidance): json schema
Browse files Browse the repository at this point in the history
  • Loading branch information
satoshi-ota committed Apr 11, 2024
1 parent fa97d45 commit 7005444
Show file tree
Hide file tree
Showing 8 changed files with 896 additions and 225 deletions.
100 changes: 1 addition & 99 deletions planning/behavior_path_avoidance_module/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -760,105 +760,7 @@ WIP

The avoidance specific parameter configuration file can be located at `src/autoware/launcher/planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/avoidance/avoidance.param.yaml`.

### General parameters

{{ json_to_markdown("planning/behavior_path_avoidance_module/schema/behavior_path_avoidance_module.schema.json") }}

| Name | Unit | Type | Description | Default value |
| :------------------ | ---- | ---- | --------------------------------------------------------------------------------------- | ------------- |
| output_debug_marker | [-] | bool | Flag to publish debug marker (set `false` as default since it takes considerable cost). | false |
| output_debug_info | [-] | bool | Flag to print debug info (set `false` as default since it takes considerable cost). | false |

### Avoidance target filtering parameters

namespace: `avoidance.target_object.`

This module supports all object classes, and it can set following parameters independently.

{{ json_to_markdown("planning/behavior_path_avoidance_module/schema/behavior_path_avoidance_module_target_objects.schema.json") }}

namespace: `avoidance.target_filtering.`

{{ json_to_markdown("planning/behavior_path_avoidance_module/schema/behavior_path_avoidance_module_target_filtering.schema.json") }}

### Safety check parameters

namespace: `avoidance.safety_check.`

{{ json_to_markdown("planning/behavior_path_avoidance_module/schema/behavior_path_avoidance_module_safety_check.schema.json") }}

### Avoidance maneuver parameters

namespace: `avoidance.avoidance.lateral.`

| Name | Unit | Type | Description | Default value |
| :---------------------------- | :--- | :----- | :-------------------------------------------------------------------------------------------------------------------------- | :------------ |
| road_shoulder_safety_margin | [m] | double | Prevents the generated path to come too close to the road shoulders. | 0.0 |
| lateral_execution_threshold | [m] | double | The lateral distance deviation threshold between the current path and suggested avoidance point to execute avoidance. (\*2) | 0.499 |
| lateral_small_shift_threshold | [m] | double | The shift lines whose lateral offset is less than this will be applied with other ones. | 0.501 |
| max_right_shift_length | [m] | double | Maximum shift length for right direction | 5.0 |
| max_left_shift_length | [m] | double | Maximum shift length for left direction | 5.0 |

namespace: `avoidance.avoidance.longitudinal.`

| Name | Unit | Type | Description | Default value |
| :----------------------------------- | :---- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- |
| prepare_time | [s] | double | Avoidance shift starts from point ahead of this time x ego_speed to avoid sudden path change. | 2.0 |
| longitudinal_collision_safety_buffer | [s] | double | Longitudinal collision buffer between target object and shift line. | 0.0 |
| min_prepare_distance | [m] | double | Minimum distance for "prepare_time" x "ego_speed". | 1.0 |
| min_avoidance_distance | [m] | double | Minimum distance of avoidance path (i.e. this distance is needed even if its lateral jerk is very low) | 10.0 |
| min_nominal_avoidance_speed | [m/s] | double | Minimum speed for jerk calculation in a nominal situation (\*1). | 7.0 |
| min_sharp_avoidance_speed | [m/s] | double | Minimum speed for jerk calculation in a sharp situation (\*1). | 1.0 |
| min_slow_down_speed | [m/s] | double | Minimum slow speed for avoidance prepare section. | 1.38 (5km/h) |
| buf_slow_down_speed | [m/s] | double | Buffer for controller tracking error. Basically, vehicle always cannot follow velocity profile precisely. Therefore, the module inserts lower speed than target speed that satisfies conditions to avoid object within accel/jerk constraints so that the avoidance path always can be output even if the current speed is a little bit higher than target speed. | 0.57 (2.0km/h) |

### Yield maneuver parameters

namespace: `avoidance.yield.`

| Name | Unit | Type | Description | Default value |
| :------------- | :---- | :----- | :------------------------------------------------------------ | :------------ |
| yield_velocity | [m/s] | double | The ego will decelerate yield velocity in the yield maneuver. | 2.78 |

### Stop maneuver parameters

namespace: `avoidance.stop.`

| Name | Unit | Type | Description | Default value |
| :----------- | :--- | :----- | :---------------------------------------------------------------------------------------------------- | :------------ |
| min_distance | [m] | double | Minimum stop distance in the situation where avoidance maneuver is not approved or in yield maneuver. | 10.0 |
| max_distance | [m] | double | Maximum stop distance in the situation where avoidance maneuver is not approved or in yield maneuver. | 20.0 |
| stop_buffer | [m] | double | Buffer distance in the situation where avoidance maneuver is not approved or in yield maneuver. | 1.0 |

### Constraints parameters

namespace: `avoidance.constraints.`

| Name | Unit | Type | Description | Default value |
| :------------------------ | :--- | :--- | :--------------------------------------------------------------------------------------- | :------------ |
| use_constraints_for_decel | [-] | bool | Flag to decel under longitudinal constraints. `TRUE: allow to control breaking mildness` | false |

namespace: `avoidance.constraints.lateral.`

| a Name | Unit | Type | Description | Default value |
| :----------------------- | :----- | :----- | :-------------------------------------------------------------------------------------------- | :------------ |
| prepare_time | [s] | double | Avoidance shift starts from point ahead of this time x ego_speed to avoid sudden path change. | 2.0 |
| min_prepare_distance | [m] | double | Minimum distance for "prepare_time" x "ego_speed". | 1.0 |
| nominal_lateral_jerk | [m/s3] | double | Avoidance path is generated with this jerk when there is enough distance from ego. | 0.2 |
| max_lateral_jerk | [m/s3] | double | Avoidance path gets sharp up to this jerk limit when there is not enough distance from ego. | 1.0 |
| max_lateral_acceleration | [m/s3] | double | Avoidance path gets sharp up to this accel limit when there is not enough distance from ego. | 0.5 |

namespace: `avoidance.constraints.longitudinal.`

| Name | Unit | Type | Description | Default value |
| :------------------- | :------ | :----- | :------------------------------------- | :------------ |
| nominal_deceleration | [m/ss] | double | Nominal deceleration limit. | -1.0 |
| nominal_jerk | [m/sss] | double | Nominal jerk limit. | 0.5 |
| max_deceleration | [m/ss] | double | Max decelerate limit. | -2.0 |
| max_jerk | [m/sss] | double | Max jerk limit. | 1.0 |
| max_acceleration | [m/ss] | double | Maximum acceleration during avoidance. | 1.0 |

(\*2) If there are multiple vehicles in a row to be avoided, no new avoidance path will be generated unless their lateral margin difference exceeds this value.
{{ json_to_markdown("planning/behavior_path_avoidance_module/schema/avoidance.schema.json") }}

## Future extensions / Unimplemented parts

Expand Down
Loading

0 comments on commit 7005444

Please sign in to comment.