You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: planning/behavior_path_goal_planner_module/README.md
+51-15
Original file line number
Diff line number
Diff line change
@@ -159,26 +159,62 @@ Generate footprints from ego-vehicle path points and determine obstacle collisio
159
159
160
160
## **Goal Search**
161
161
162
-
If it is not possible to park safely at a given goal, `/planning/scenario_planning/modified_goal` is
163
-
searched for in certain range of the shoulder lane.
162
+
To realize pull over even when an obstacle exists near the original goal, a collsion free area is searched within a certain range around the original goal. The goal found will be published as `/planning/scenario_planning/modified_goal`.
1. The original goal is set, and the refined goal pose is obtained by moving in the direction normal to the lane center line and keeping `margin_from_boundary` from the edge of the lane.
2. Using `refined_goal` as the base goal, search for candidate goals in the range of `-forward_goal_search_length` to `backward_goal_search_length` in the longitudinal direction and `longitudinal_margin` to `longitudinal_margin+max_lateral_offset` in th lateral direction based on refined_goal.
3. Each candidate goal is prioritized and a path is generated for each planner for each goal. The priority of a candidate goal is determined by its distance from the base goal. The ego vehicle tries to park for the highest possible goal. The distance is determined by the selected policy. In case `minimum_longitudinal_distance`, sort with smaller longitudinal distances taking precedence over smaller lateral distances. In case `minimum_weighted_distance`, sort with the sum of weighted lateral distance and longitudinal distance. This means the distance is calculated by `longidinal_distance + lateral_cost*lateral_disntace`
The following figure is an example of minimum_weighted_distance. The white number indicates the goal candidate priority, and the smaller the number, the higher the priority. the 0 goal indicates the base goal.
4. If the footprint in each goal candidate is within `object_recognition_collision_check_margin` of that of the object, it is determined to be unsafe. These goals are not selected. If `use_occupancy_grid_for_goal_search` is enabled, collision detection on the grid is also performed with `occupancy_grid_collision_check_margin`.
183
+
184
+
Red goals candidates in the image indicate unsafe ones.
It is possible to keep `longitudinal_margin` in the longitudinal direction apart from the collision margin for obstacles from the goal candidate. This is intended to provide natural spacing for parking and efficient departure.
Also, if `prioritize_goals_before_objects` is enabled, To arrive at each goal, the number of objects that need to be avoided in the target range is counted, and those with the lowest number are given priority.
193
+
194
+
The images represent a count of objects to be avoided at each range, with priority given to those with the lowest number, regardless of the aforementioned distances.
| goal_priority |[-]| string | In case `minimum_weighted_distance`, sort with smaller longitudinal distances taking precedence over smaller lateral distances. In case `minimum_longitudinal_distance`, sort with weighted lateral distance against longitudinal distance. |`minimum_weighted_distance`|
172
-
| prioritize_goals_before_objects |[-]| bool | If there are objects that may need to be avoided, prioritize the goal in front of them | true |
173
-
| forward_goal_search_length |[m]| double | length of forward range to be explored from the original goal | 20.0 |
174
-
| backward_goal_search_length |[m]| double | length of backward range to be explored from the original goal | 20.0 |
| goal_priority |[-]| string | In case `minimum_longitudinal_distance`, sort with smaller longitudinal distances taking precedence over smaller lateral distances. In case `minimum_weighted_distance`, sort with the sum of weighted lateral distance and longitudinal distance |`minimum_weighted_distance`|
207
+
| lateral_weight |[-]| double | Weight for lateral distance used when `minimum_weighted_distance`| 40.0 |
208
+
| prioritize_goals_before_objects |[-]| bool | If there are objects that may need to be avoided, prioritize the goal in front of them | true |
209
+
| forward_goal_search_length |[m]| double | length of forward range to be explored from the original goal | 20.0 |
210
+
| backward_goal_search_length |[m]| double | length of backward range to be explored from the original goal | 20.0 |
0 commit comments