From 5ff7291a6d5c13a820c3a9272549169b2cdc7c76 Mon Sep 17 00:00:00 2001 From: Mamoru Sobue Date: Mon, 3 Mar 2025 18:10:47 +0900 Subject: [PATCH] reflect comment Signed-off-by: Mamoru Sobue --- .../README.md | 9 +- .../goal_planner-state-transition.drawio.svg | 96 +++++++++---------- 2 files changed, 52 insertions(+), 53 deletions(-) diff --git a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md index 319d21e123ec0..d26e9be725b71 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md @@ -2,7 +2,7 @@ ## Purpose / Role -goal_planner generates a smooth path toward the goal and additionally searches for safe path and goa to execute dynamic pull_over on the road shoulders lanes following the traffic rules. +goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules. ## Design @@ -97,7 +97,7 @@ If the path given to goal_planner covers the goal, `fixed_goal_planner` smoothly `rough_goal_planner` is triggered following the [behavior_path_planner scene module interface](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner/docs/behavior_path_planner_manager_design/) namely through `isExecutionRequested` function and it returns true when following two conditions are met. -- The distance between the goal and ego get shorter than `pull_over_minimum_request_length`. +- The distance between the goal and ego get shorter than $\max$(`pull_over_minimum_request_length`, stop distance with decel and jerk constraints). - Route is set with `allow_goal_modification=true` or is on a `road_shoulder` type lane. - We can set this option with [SetRoute](https://github.com/autowarefoundation/autoware_adapi_msgs/blob/main/autoware_adapi_v1_msgs/routing/srv/SetRoute.srv#L2) api service. - We support `2D Rough Goal Pose` with the key bind `r` in RViz, but in the future there will be a panel of tools to manipulate various Route API from RViz. @@ -147,7 +147,7 @@ The following figure is an example of minimum_weighted_distance.​ The white nu ![goal_priority_rviz_with_goal](./images/goal_priority_with_goal.png) -To achieve a goal pose which is easy to start the maneuvering after arrival, the goal candidate pose is aligned so that ego front becomes parallel to the shoulder lane boundary at that pose. +To achieve a goal pose which is easy to start the maneuvering after arrival, the goal candidate pose is aligned so that ego center becomes parallel to the shoulder lane boundary at that pose. ![goal_pose_align](./images/goal_planner-goal-pose-correct.drawio.svg) @@ -198,6 +198,7 @@ Although the two threads are running periodically, the primary background proces `LaneParkingThread` executes either - _shift_ based path planning +- _arc forward_, _arc backward_ path planning - _bezier_ based path planning depending on the situation and configuration. If `use_bus_stop_area` is true and the goal is on a BusStopArea regulatory element and the estimated pull over angle(the difference of pose between the shift start and shift end) is larger than `bezier_parking.pull_over_angle_threshold`, [_bezier_ based path planner](https://autowarefoundation.github.io/autoware.universe/main/planning/sampling_based_planner/autoware_bezier_sampler/) works to generate path candidates. Otherwise [_shift_ based path planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design/) works. _bezier_ based path planner tends to generate more natural paths on a curved lane than _shift_ based path planner, so it is used if the shift requires a certain amount of pose rotation. @@ -327,7 +328,7 @@ _shift_ based path planner tends to generate unnatural path when the shift lane -_bezier_ based path planner interpolates the shift path start and end pose using tbe bezier curve for a several combination of parameters, to obtain a better result through the later selection process. In the below screenshot the goal is on a BusStopArea and `use_bus_stop_area` is set to true, so _bezier_ planner is triggered instead. Internally, goal*planner first tries to use \_shift* planner, and if it turns out that the shift start and end is not parallel, it switches to _bezier_ planner from the next process. +_bezier_ based path planner interpolates the shift path start and end pose using tbe bezier curve for a several combination of parameters, to obtain a better result through the later selection process. In the below screenshot the goal is on a BusStopArea and `use_bus_stop_area` is set to true, so _bezier_ planner is triggered instead. Internally, goal_planner first tries to use _shift_ planner, and if it turns out that the shift start and end is not parallel, it switches to _bezier_ planner from the next process. diff --git a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/images/goal_planner-state-transition.drawio.svg b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/images/goal_planner-state-transition.drawio.svg index dbce28b24b958..2336f20f73024 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/images/goal_planner-state-transition.drawio.svg +++ b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/images/goal_planner-state-transition.drawio.svg @@ -5,13 +5,14 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" - width="8767px" - height="6537px" - viewBox="-0.5 -0.5 8767 6537" - content="<mxfile host="Electron" modified="2025-02-26T08:51:32.153Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="qioO5o9mwsg5uvIFQBUe" scale="1" border="0" version="20.3.0" type="device"><diagram id="W_ncGF7Yh1cRgY-QAHZf" name="threads">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</diagram></mxfile>" + width="8769px" + height="6538px" + viewBox="-0.5 -0.5 8769 6538" + content="<mxfile host="Electron" modified="2025-03-03T09:08:13.961Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="3B376BgL3azq7ET_bjFV" scale="1" border="0" version="20.3.0" type="device"><diagram id="W_ncGF7Yh1cRgY-QAHZf" name="threads">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</diagram></mxfile>" > + @@ -240,7 +241,7 @@
@@ -713,11 +714,13 @@ style="display: inline-block; font-size: 38px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;" > Blinker +
+ and Deceleration
- Blinker + Blinker...
@@ -1279,8 +1282,8 @@ - - + + @@ -1351,7 +1354,7 @@ - DecisionState + DecisionState @@ -1407,11 +1410,13 @@ style="display: inline-block; font-size: 38px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;" > Blinker +
+ and Decleration - Blinker + Blinker... @@ -1426,12 +1431,14 @@
- RUNNING + WAIT_ +
+ APPROVAL
- RUNNING + WAIT_... @@ -1451,7 +1458,7 @@ - DECIDED + DECIDED @@ -1460,25 +1467,20 @@
-
+
-
    -
  • SAFE
  • -
  • - WAITING_ -
    - APPROVAL -
  • -
+ WAITING_ +
+ APPROVAL
- SAFEWAITING_... + WAITING_... @@ -1547,7 +1549,7 @@ - +
- DecisionState + DecisionState @@ -1715,7 +1717,7 @@ - DECIDED + DECIDED @@ -1724,25 +1726,20 @@
-
+
-
    -
  • SAFE
  • -
  • - WAITING_ -
    - APPROVAL -
  • -
+
+ APPROVED +
- SAFEWAITING_... + APPROVED @@ -1757,14 +1754,12 @@
- planWaiting -
- Approval() + plan()
- planWaiting... + plan() @@ -1798,18 +1793,20 @@
  • - insert stop line at the pull over start position + keep using the DECIDED pull over path +
  • +
  • + stop against dynamic objects if necessary
- insert stop line at the pull over start position + keep using the DECIDED pull over pathstop against dynamic objects... - @@ -1835,7 +1832,7 @@
@@ -1997,11 +1994,13 @@ style="display: inline-block; font-size: 38px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;" > Blinker +
+ and Deceleration
- Blinker + Blinker...
@@ -2102,7 +2101,6 @@ <TODO> - @@ -2146,7 +2144,7 @@ enough time passed ? - +