diff --git a/planning/.pages b/planning/.pages index edfacd11fa5cf..0f85224c9958f 100644 --- a/planning/.pages +++ b/planning/.pages @@ -1,22 +1,22 @@ nav: - 'Introduction': planning - 'Behavior Path Planner': - - 'About Behavior Path': planning/autoware_behavior_path_planner + - 'About Behavior Path': planning/behavior_path_planner/autoware_behavior_path_planner - 'Concept': - - 'Planner Manager': planning/autoware_behavior_path_planner/docs/behavior_path_planner_manager_design - - 'Scene Module Interface': planning/autoware_behavior_path_planner/docs/behavior_path_planner_interface_design - - 'Path Generation': planning/autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design - - 'Collision Assessment/Safety Check': planning/autoware_behavior_path_planner_common/docs/behavior_path_planner_safety_check - - 'Dynamic Drivable Area': planning/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design - - 'Turn Signal': planning/autoware_behavior_path_planner_common/docs/behavior_path_planner_turn_signal_design + - 'Planner Manager': planning/behavior_path_planner/autoware_behavior_path_planner/docs/behavior_path_planner_manager_design + - 'Scene Module Interface': planning/behavior_path_planner/autoware_behavior_path_planner/docs/behavior_path_planner_interface_design + - 'Path Generation': planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design + - 'Collision Assessment/Safety Check': planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_safety_check + - 'Dynamic Drivable Area': planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design + - 'Turn Signal': planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_turn_signal_design - 'Scene Module': - - 'Avoidance by Lane Change': planning/autoware_behavior_path_avoidance_by_lane_change_module - - 'Dynamic Obstacle Avoidance': planning/autoware_behavior_path_dynamic_obstacle_avoidance_module - - 'Goal Planner': planning/autoware_behavior_path_goal_planner_module - - 'Lane Change': planning/autoware_behavior_path_lane_change_module - - 'Side Shift': planning/autoware_behavior_path_side_shift_module - - 'Start Planner': planning/autoware_behavior_path_start_planner_module - - 'Static Obstacle Avoidance': planning/autoware_behavior_path_static_obstacle_avoidance_module + - 'Avoidance by Lane Change': planning/behavior_path_planner/autoware_behavior_path_avoidance_by_lane_change_module + - 'Dynamic Obstacle Avoidance': planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module + - 'Goal Planner': planning/behavior_path_planner/autoware_behavior_path_goal_planner_module + - 'Lane Change': planning/behavior_path_planner/autoware_behavior_path_lane_change_module + - 'Side Shift': planning/behavior_path_planner/autoware_behavior_path_side_shift_module + - 'Start Planner': planning/behavior_path_planner/autoware_behavior_path_start_planner_module + - 'Static Obstacle Avoidance': planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module - 'Behavior Velocity Planner': - 'About Behavior Velocity': planning/behavior_velocity_planner/autoware_behavior_velocity_planner - 'Template for Custom Module': planning/behavior_velocity_planner/autoware_behavior_velocity_template_module diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md index bc70c1fdd5c6a..33abc8eaf40ed 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md @@ -8,7 +8,7 @@ This is a rule-based avoidance module, which is running based on perception outp ![fig](./images/purpose/avoidance.png) -This module has [RTC interface](../autoware_rtc_interface/README.md), and user can select operation mode from MANUAL/AUTO depending on the vehicle sensor performance. If user selects MANUAL mode, this module outputs avoidance path as candidate and waits operator approval. In the case where the sensor/perception performance is not enough and false positive maybe occurs, we recommend to use this module with MANUAL mode in order to prevent unnecessary avoidance maneuver. +This module has [RTC interface](../../autoware_rtc_interface/README.md), and user can select operation mode from MANUAL/AUTO depending on the vehicle sensor performance. If user selects MANUAL mode, this module outputs avoidance path as candidate and waits operator approval. In the case where the sensor/perception performance is not enough and false positive maybe occurs, we recommend to use this module with MANUAL mode in order to prevent unnecessary avoidance maneuver. On the other hand, if user selects AUTO mode, this module modifies current following path without operator approval. If the sensor/perception performance is good enough, user can use this module with AUTO mode. @@ -83,7 +83,7 @@ partition fillEgoStatus() { note right This module has following status: - RUNNING: target object is still remaining. Or, the ego hasn't returned original lane. - - CANCEL: taget obejct has gone. And, the ego hasn't initiated avoidance maneuver. + - CANCEL: target object has gone. And, the ego hasn't initiated avoidance maneuver. - SUCCEEDED: the ego finishes avoiding all objects and returns original lane. end note @@ -122,7 +122,7 @@ if (Is there object that is potentially avoidable?) then (yes) :return true; note right Sometimes, we meet the situation where there is enough space to avoid - but ego speed is to high to avoid target obejct under lateral jerk constraints. + but ego speed is to high to avoid target object under lateral jerk constraints. This module keeps running in this case in order to decelerate ego speed. end note stop @@ -747,6 +747,59 @@ The longitudinal positions depends on envelope polygon, ego vehicle specificatio ![fig](./images/path_generation/margin.png) +### Lateral margin + +As mentioned above, user can adjust lateral margin by changing following two types parameter. The `soft_margin` is a soft constraint parameter for lateral margin. The `hard_margin` and `hard_margin_for_parked_vehicle` are hard constraint parameter. + +```yaml + car: + ... + lateral_margin: + soft_margin: 0.3 # [m] + hard_margin: 0.2 # [m] + hard_margin_for_parked_vehicle: 0.7 # [m] +``` + +Basically, this module tries to generate avoidance path in order to keep lateral distance, which is sum of `soft_margin` and `hard_margin`/`hard_margin_for_parked_vehicle`, from avoidance target object. + +![fig](./images/path_generation/soft_hard.png) + +But if there isn't enough space to keep `soft_margin` distance, this module shortens soft constraint lateral margin. The parameter `soft_margin` is a maximum value of soft constraint, and actual soft margin can be a value between 0.0 and `soft_margin`. On the other hand, this module definitely keeps `hard_margin` or `hard_margin_for_parked_vehicle` depending on the situation. Thus, the minimum value of total lateral margin is `hard_margin`/`hard_margin_for_parked_vehicle`, and the maximum value is the sum of `hard_margin`/`hard_margin_for_parked_vehicle` and `soft_margin`. + +Following figure shows the situation where this module shortens lateral soft constraint in order not to drive opposite direction lane when user set a parameter `use_opposite_lane` to `false`. + +![fig](./images/path_generation/adjust_margin.png) + +This module avoids not only parked vehicle but also non-parked vehicle which stops temporarily for some reason (e.g. waiting for traffic light to change red to green.). Additionally, this module has two types hard margin parameters, `hard_margin` and `hard_margin_for_parked_vehicle` and judges if it's a parked vehicle or not for each vehicles because it takes the risk of vehicle doors opening suddenly and people getting out from parked vehicle into consideration. + +Basically, user had better make `hard_margin_for_parked_vehicle` larger than `hard_margin` to prevent collision with doors or people who suddenly get out from vehicle. + +On the other hand, this module has only one parameter `soft_margin` for soft lateral margin constraint. + +![fig](./images/path_generation/hard_margin.png) + +As the hard margin parameters the distance which the user definitely want to keep, they are used in the logic to check whether the ego can pass side of the target object without avoidance maneuver as well. + +If the lateral distance is less than `hard_margin`/`hard_margin_for_parked_vehicle` when assuming that the ego follows current lane without avoidance maneuver, this module thinks the ego can not pass the side of the object safely and the ego must avoid it. In this case, this module inserts stop point until the avoidance maneuver is allowed to execute so that the ego can avoid the object after approval. (e.g. The ego keeps stopping in front of such a object until operator approves avoidance maneuver if user uses this module in MANUAL mode.) + +![fig](./images/path_generation/must_avoid.png) + +On the other hand, if the lateral distance is larger than `hard_margin`/`hard_margin_for_parked_vehicle`, this module doesn't insert stop point even when it's waiting approval because it thinks it's possible to pass the side of the object safely. + +![fig](./images/path_generation/pass_through.png) + +### When there is not enough space + +This module inserts stop point only when the ego can potentially avoid the object. So, if it is not able to keep distance more than `hard_margin`/`hard_margin_for_parked_vehicle`, this module does nothing. Following figure shows the situation where this module is not able to keep enough lateral distance when user set a parameter `use_opposite_lane` to `false`. + +![fig](./images/path_generation/do_nothing.png) + +!!! info + + In this situation, obstacle stop feature in [obstacle_cruise_planner](../../autoware_obstacle_cruise_planner/README.md) is responsible for ego vehicle safety. + +![fig](./images/path_generation/insufficient_drivable_space.png) + ### Shift length calculation The lateral shift length is sum of `overhang_distance`, lateral margin, whose value is set in config file, and the half of ego vehicle width defined in `vehicle_info.param.yaml`. On the other hand, the module limits the shift length depending on the space which the module can use for avoidance maneuver and the parameters `soft_drivable_bound_margin` `hard_drivable_bound_margin`. Basically, the shift length is limited so that the ego doesn't get closer than `soft_drivable_bound_margin` to drivable boundary. But it allows to relax the threshold `soft_drivable_bound_margin` to `hard_drivable_bound_margin` when the road is narrow. @@ -804,6 +857,34 @@ The `prepare_length` is calculated as the product of ego speed and `max_prepare_ ![fig](./images/path_generation/shift_line.png) +## Planning at RED traffic light + +This module takes traffic light information into account so that the ego can behave properly. Sometimes, the ego straddles lane boundary but we want to prevent the ego from stopping in front of red traffic signal in such a situation. This is because the ego will block adjacent lane and it's inconvenient for other vehicles. + +![fig](./images/traffic_light/traffic_light.png) + +So, this module controls shift length and shift start/end point in order to prevent above situation. + +### Control shift length + +At first, if the ego hasn't initiated avoidance maneuver yet, this module limits maximum shift length and uses **ONLY** current lane during red traffic signal. This prevents the ego from blocking other vehicles even if this module executes avoidance maneuver and the ego is caught by red traffic signal. + +![fig](./images/traffic_light/limit_shift_length.png) + +### Control avoidance shift start point + +Additionally, if the target object is farther than stop line for traffic light, this module set avoidance shift start point on the stop line in order to prevent the ego from stopping by red traffic signal in middle of avoidance maneuver. + +![fig](./images/traffic_light/shift_from_current_pos.png) +![fig](./images/traffic_light/shift_from_stop_line.png) + +### Control return shift end point + +If the ego has already initiated avoidance maneuver, this module tries to set return shift end point on the stop line. + +![fig](./images/traffic_light/return_after_stop_line.png) +![fig](./images/traffic_light/return_before_stop_line.png) + ## Safety check This feature can be enable by setting following parameter to `true`. @@ -915,15 +996,6 @@ use_freespace_areas: true ## Future extensions / Unimplemented parts -- **Planning on the intersection** - - If it is known that the ego vehicle is going to stop in the middle of avoidance execution (for example, at a red traffic light), sometimes the avoidance should not be executed until the vehicle is ready to move. This is because it is impossible to predict how the environment will change during the stop. This is especially important at intersections. - -![fig](./images/intersection_problem.drawio.svg) - -- **Safety Check** - - - In the current implementation, it is only the jerk limit that permits the avoidance execution. It is needed to consider the collision with other vehicles when change the path shape. - - **Consideration of the speed of the avoidance target** - In the current implementation, only stopped vehicle is targeted as an avoidance target. It is needed to support the overtaking function for low-speed vehicles, such as a bicycle. (It is actually possible to overtake the low-speed objects by changing the parameter, but the logic is not supported and thus the safety cannot be guaranteed.) @@ -1146,4 +1218,4 @@ The shift points are modified by a filtering process in order to get the expecte 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/autoware_behavior_path_static_obstacle_avoidance_module/static_obstacle_avoidance.param.yaml`. -{{ json_to_markdown("planning/autoware_behavior_path_static_obstacle_avoidance_module/schema/static_obstacle_avoidance.schema.json") }} +{{ json_to_markdown("planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/schema/static_obstacle_avoidance.schema.json") }} diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/avoidance_design.fig.drawio.svg b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/avoidance_design.fig.drawio.svg deleted file mode 100644 index d0563e9f2f542..0000000000000 --- a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/avoidance_design.fig.drawio.svg +++ /dev/null @@ -1,668 +0,0 @@ - - - - - - - - - - - - - -
-
-
- Calculate avoidance shift -
- from target obstacles -
-
-
-
- Calculate avoidance shift... -
-
- - - - - - - - - - - - - - - - - -
-
-
- shift length = avoid margin -
- + ego vehicle width / 2 -
-
-
-
- shift length = avoid marg... -
-
- - - - - - -
-
-
- The shift gets sharp -
- if it is close to ego -
- up to the maximum jerk. -
-
-
-
- The shift gets sharp... -
-
- - - - - - -
-
-
- The avoidance shift is basically calculated from nominal jerk ego vehicle speed. -
-
-
-
- The avoidance shift is ba... -
-
- - - - - - - -
-
-
- This is not a target vehicle -
- since it is on the center line. -
-
-
-
- This is not a target vehi... -
-
- - - - -
-
-
- The direction of avoidance is determined by the position of obstacles, whether it is on the left or right of the center line. -
-
-
-
- The direction of avoidanc... -
-
- - - - - - -
-
-
- Merge all shifts -
-
-
-
- Merge all shifts -
-
- - - - - - - - - - - - - - -
-
-
- For multiple avoidance shifts in the same direction, take the largest one. -
-
-
-
- For multiple avoidance sh... -
-
- - - - - -
-
-
- For multiple avoidance shifts in the different direction, take the sum of both. -
-
-
-
- For multiple avoidance... -
-
- - - - - - - - - - - - -
-
-
- Pick up the shift points where the gradient of the shift changes. -
-
-
-
- Pick up the shift points... -
-
- - - - - - - - - - - - - -
-
-
- Trim shift points -
-
-
-
- Trim shift points -
-
- - - - - - -
-
-
- Start avoiding as soon as getting back to the center line. Remove these points to avoid obstacles at the same shift. -
-
-
-
- Start avoiding as soon a... -
-
- - - - - - -
-
-
- Points that do not have a large effect on the overall shift will be deleted. -
-
-
-
- Points that do not have... -
-
- - - - - - - - - - - - - - - - - - - - - -
-
-
- Generate path -
-
-
-
- Generate path -
-
- - - - -
-
-
- Each shift points are connected by a Clothoid-like curve. -
-
-
-
- Each shift points... -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Text is not SVG - cannot display - - -
diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/intersection_problem.drawio.svg b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/intersection_problem.drawio.svg deleted file mode 100644 index 67d21dfd78a09..0000000000000 --- a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/intersection_problem.drawio.svg +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
Parked vehicle
-
-
-
- Parked vehicle -
-
- - - -
-
-
- Normal avoidance will block the opposite lane -
-
-
-
- Normal avoidance will block the opposite lane -
-
- - - -
-
-
- So, it should avoid inside the ego lane -
-
-
-
- So, it should avoid inside the ego lan... -
-
- - - -
-
-
- Or, wait behind the object -
- until the traffic light turns green. -
-
-
-
- Or, wait behind the object... -
-
-
- - - - Viewer does not support full SVG 1.1 - - -
diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/adjust_margin.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/adjust_margin.png new file mode 100644 index 0000000000000..ccb1f8c671234 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/adjust_margin.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/do_nothing.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/do_nothing.png new file mode 100644 index 0000000000000..9301382dcd093 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/do_nothing.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/hard_margin.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/hard_margin.png new file mode 100644 index 0000000000000..5578d8443044f Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/hard_margin.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/insufficient_drivable_space.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/insufficient_drivable_space.png new file mode 100644 index 0000000000000..18ac89f6dceef Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/insufficient_drivable_space.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/lateral.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/lateral.png index 8d8512f042922..4ca0627274ba6 100644 Binary files a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/lateral.png and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/lateral.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/margin.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/margin.png index 8920a7be56ff9..e5eba89ac7f8c 100644 Binary files a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/margin.png and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/margin.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/must_avoid.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/must_avoid.png new file mode 100644 index 0000000000000..95ba285fb449a Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/must_avoid.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/pass_through.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/pass_through.png new file mode 100644 index 0000000000000..19b5cfaa07626 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/pass_through.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/soft_hard.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/soft_hard.png new file mode 100644 index 0000000000000..a92b819b94d1b Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/path_generation/soft_hard.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/target_vehicle_selection.svg b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/target_vehicle_selection.svg deleted file mode 100644 index 00802b074cdd7..0000000000000 --- a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/target_vehicle_selection.svg +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - - - - - - - - -
-
-
- Ego -
-
-
-
- Ego -
-
- - - - -
-
-
- road shoulder -
-
-
-
- road shoulder -
-
- - - - - - -
-
-
- center line -
-
-
-
- center line -
-
- - - - - - - -
-
-
- threshold_distance_object_is_on_center -
-
-
-
- thresh... -
-
- - - - - - - -
-
-
- Object -
-
-
-
- Object -
-
- - - - -
-
-
- object -
- center -
-
-
-
- object... -
-
- - - - - - - -
-
-
- shiftable_length -
-
-
-
- shiftable_l... -
-
- - - - -
-
-
- shift_length -
-
-
-
- shift_length -
-
- - - - -
-
-
- ego lane -
-
-
-
- ego lane -
-
- - - - - - - -
-
-
- detection_area_left_expand_dist -
-
-
-
- detection_a... -
-
- - - - - - - - -
-
-
- object_check_forward_distance -
-
-
-
- object... -
-
- - - - -
-
-
- object_check_backward_distance -
-
-
-
- object... -
-
- - - - - - - - -
-
-
- detection area -
-
-
-
- detect... -
-
-
- - - - Text is not SVG - cannot display - - -
diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/limit_shift_length.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/limit_shift_length.png new file mode 100644 index 0000000000000..0cb9eb893943c Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/limit_shift_length.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_after_stop_line.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_after_stop_line.png new file mode 100644 index 0000000000000..1e2b0ea95d3b9 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_after_stop_line.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_before_stop_line.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_before_stop_line.png new file mode 100644 index 0000000000000..7e0bdd704ce58 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/return_before_stop_line.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_current_pos.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_current_pos.png new file mode 100644 index 0000000000000..bcc1298670eba Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_current_pos.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_stop_line.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_stop_line.png new file mode 100644 index 0000000000000..0830f516afa7f Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/shift_from_stop_line.png differ diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/traffic_light.png b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/traffic_light.png new file mode 100644 index 0000000000000..ae566bf833484 Binary files /dev/null and b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/images/traffic_light/traffic_light.png differ