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
feat(lane_change): implement terminal lane change feature (#9592)
* implement function to compute terminal lane change path
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* push terminal path to candidate paths if no other valid candidate path is found
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* use terminal path in LC interface planWaitingApproval function
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* set lane changing longitudinal accel to zero for terminal lc path
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* rename function
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* chore: rename codeowners file
Signed-off-by: tomoya.kimura <tomoya.kimura@tier4.jp>
* remove unused member variable prev_approved_path_
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* refactor stop point insertion for terminal lc path
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* add flag to enable/disable terminal path feature
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* update README
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* add parameter to configure stop point placement
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* compute terminal path only when near terminal start
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* add option to disable feature near goal
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* set default flag value to false
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* add documentation for terminal lane change path
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* ensure actual prepare duration is always above minimum prepare duration threshold
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* explicitly return std::nullopt
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* Update planning/behavior_path_planner/autoware_behavior_path_lane_change_module/src/scene.cpp
Co-authored-by: Zulfaqar Azmi <93502286+zulfaqar-azmi-t4@users.noreply.github.com>
* fix assignment
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* fix spelling
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
* fix merge errors
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
---------
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Signed-off-by: tomoya.kimura <tomoya.kimura@tier4.jp>
Co-authored-by: tomoya.kimura <tomoya.kimura@tier4.jp>
Co-authored-by: Zulfaqar Azmi <93502286+zulfaqar-azmi-t4@users.noreply.github.com>
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md
+20
Original file line number
Diff line number
Diff line change
@@ -874,6 +874,16 @@ endif
874
874
@enduml
875
875
```
876
876
877
+
## Terminal Lane Change Path
878
+
879
+
Depending on the space configuration around the Ego vehicle, it is possible that a valid LC path cannot be generated. If that happens, then Ego will get stuck at `terminal_start` and will be not be able to proceed. Therefore we introduced the terminal LC path feature; when ego gets near to the terminal point (dist to `terminal_start` is less than the maximum lane change length) a terminal lane changing path will be computed starting from the terminal start point on the current lane and connects to the target lane. The terminal path only needs to be computed once in each execution of LC module. If no valid candidate paths are found in the path generation process, then the terminal path will be used as a fallback candidate path, the safety of the terminal path is not ensured and therefore it can only be force approved. The following images illustrate the expected behavior without and with the terminal path feature respectively:
Additionally if terminal path feature is enabled and path is computed, stop point placement can be configured to be at the edge of the current lane instead of at the `terminal_start` position, as indicated by the dashed red line in the image above.
886
+
877
887
## Parameters
878
888
879
889
### Essential lane change parameters
@@ -935,6 +945,16 @@ The following parameters are used to judge lane change completion.
935
945
|`delay_lane_change.min_road_shoulder_width`|[m]| double | Width considered as road shoulder if lane doesn't have road shoulder when checking for parked vehicle | 0.5 |
936
946
|`delay_lane_change.th_parked_vehicle_shift_ratio`|[-]| double | Stopped vehicles beyond this distance ratio from center line will be considered as parked | 0.6 |
937
947
948
+
### Terminal Lane Change Path
949
+
950
+
The following parameters are used to configure terminal lane change path feature.
951
+
952
+
| Name | Unit | Type | Description | Default value |
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/base_class.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/interface.hpp
-2
Original file line number
Diff line number
Diff line change
@@ -129,8 +129,6 @@ class LaneChangeInterface : public SceneModuleInterface
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/scene.hpp
+9-2
Original file line number
Diff line number
Diff line change
@@ -65,13 +65,18 @@ class NormalLaneChange : public LaneChangeBase
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/data.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/structs/parameters.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/calculation.hpp
Copy file name to clipboardexpand all lines: planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/path.hpp
+1-1
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ using behavior_path_planner::lane_change::CommonDataPtr;
0 commit comments