diff --git a/planning/behavior_velocity_planner/detection-area-design.md b/planning/behavior_velocity_planner/detection-area-design.md index 6d36b45509783..e5fdb881dc668 100644 --- a/planning/behavior_velocity_planner/detection-area-design.md +++ b/planning/behavior_velocity_planner/detection-area-design.md @@ -1,16 +1,27 @@ -### Detection Area +## Detection Area -#### Role +### Role If pointcloud is detected in a detection area defined on a map, the stop planning will be executed at the predetermined point. ![brief](./docs/detection_area/detection_area.svg) -#### Activation Timing +### Activation Timing This module is activated when there is a detection area on the target lane. -### Algorithm +### Module Parameters + +| Parameter | Type | Description | +| --------------------------- | ------ | -------------------------------------------------------------------------------------------------- | +| `use_dead_line` | bool | [-] weather to use dead line or not | +| `use_pass_judge_line` | bool | [-] weather to use pass judge line or not | +| `state_clear_time` | double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state | +| `stop_margin` | double | [m] a margin that the vehicle tries to stop before stop_line | +| `dead_line_margin` | double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not | +| `hold_stop_margin_distance` | double | [m] paramater for restart prevention (See Algorithm section) | + +### Inner-workings / Algorithm 1. Gets a detection area and stop line from map information and confirms if there is pointcloud in the detection area 2. Inserts stop point l[m] in front of the stop line @@ -18,16 +29,6 @@ This module is activated when there is a detection area on the target lane. 4. Sets velocity as zero behind the stop line when the ego-vehicle is in front of the pass judge point 5. If the ego vehicle has passed the pass judge point already, it doesn’t stop and pass through. -#### Module Parameters - -| Parameter | Type | Description | -| --------------------- | ------ | -------------------------------------------------------------------------------------------------- | -| `stop_margin` | double | [m] a margin that the vehicle tries to stop before stop_line | -| `use_dead_line` | bool | [-] weather to use dead line or not | -| `dead_line_margin` | double | [m] ignore threshold that vehicle behind is collide with ego vehicle or not | -| `use_pass_judge_line` | bool | [-] weather to use pass judge line or not | -| `state_clear_time` | double | [s] when the vehicle is stopping for certain time without incoming obstacle, move to STOPPED state | - #### Flowchart ```plantuml @@ -87,3 +88,24 @@ endif stop @enduml ``` + +#### Restart prevention + +If it needs X meters (e.g. 0.5 meters) to stop once the vehicle starts moving due to the poor vehicle control performance, the vehilce goes over the stopping position that should be strictly observed when the vehicle starts to moving in order to approach the near stop point (e.g. 0.3 meters away). + +This module has parameter `hold_stop_margin_distance` in order to prevent from these redundant restart. If a vehicle is stopped within `hold_stop_margin_distance` meters from stop point of the module (_front_to_stop_line < hold_stop_margin_distance_), the module judges that the vehicle has already stopped for the module's stop point and plans to keep stopping current position even if the vehicle is stopped due to other factors. + +
+ ![example](docs/detection_area/restart_prevention.png){width=1000} +
parameters
+
+ +
+ ![example](docs/detection_area/restart.png){width=1000} +
outside the hold_stop_margin_distance
+
+ +
+ ![example](docs/detection_area/keep_stopping.png){width=1000} +
inside the hold_stop_margin_distance
+
diff --git a/planning/behavior_velocity_planner/docs/detection_area/keep_stopping.svg b/planning/behavior_velocity_planner/docs/detection_area/keep_stopping.svg new file mode 100644 index 0000000000000..23e4bff8b7602 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/detection_area/keep_stopping.svg @@ -0,0 +1,3 @@ + + +
Ego
Ego
keep stopping at current position
keep stopping at curr...
tatget stop position
tatget stop position
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/detection_area/restart.svg b/planning/behavior_velocity_planner/docs/detection_area/restart.svg new file mode 100644 index 0000000000000..c21c6d8ef243b --- /dev/null +++ b/planning/behavior_velocity_planner/docs/detection_area/restart.svg @@ -0,0 +1,3 @@ + + +
Ego
Ego
move toward stop line
move toward stop line
target stop position
target stop position
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/detection_area/restart_prevention.svg b/planning/behavior_velocity_planner/docs/detection_area/restart_prevention.svg new file mode 100644 index 0000000000000..cc38ad32399fa --- /dev/null +++ b/planning/behavior_velocity_planner/docs/detection_area/restart_prevention.svg @@ -0,0 +1,3 @@ + + +
Ego
Ego
target stop position
target stop position
hold_stop_margin_distance [m]
hold_stop_margin_distance [m]
front_to_stop_line [m]
front_to_stop_line [...
Text is not SVG - cannot display
\ No newline at end of file