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_planner/autoware_behavior_path_lane_change_module/README.md
+4-1
Original file line number
Diff line number
Diff line change
@@ -573,6 +573,8 @@ detach
573
573
@enduml
574
574
```
575
575
576
+
During a lane change, a safety check is made in consideration of the deceleration of the ego vehicle, and a safety check is made for `cancel.deceleration_sampling_num` deceleration patterns, and the lane change will be canceled if the abort condition is satisfied for all deceleration patterns.
577
+
576
578
To preventive measure for lane change path oscillations caused by alternating safe and unsafe conditions, an additional hysteresis count check is implemented before executing an abort or cancel maneuver. If unsafe, the `unsafe_hysteresis_count_` is incremented and compared against `unsafe_hysteresis_threshold`; exceeding it prompts an abort condition check, ensuring decisions are made with consideration to recent safety assessments as shown in flow chart above. This mechanism stabilizes decision-making, preventing abrupt changes due to transient unsafe conditions.
577
579
578
580
```plantuml
@@ -823,7 +825,8 @@ The following parameters are configurable in `lane_change.param.yaml`.
823
825
|`cancel.duration`|[s]| double | The time taken to complete returning to the center line. | 3.0 |
824
826
|`cancel.max_lateral_jerk`|[m/sss]| double | The maximum lateral jerk for abort path | 1000.0 |
825
827
|`cancel.overhang_tolerance`|[m]| double | Lane change cancel is prohibited if the vehicle head exceeds the lane boundary more than this tolerance distance | 0.0 |
826
-
|`unsafe_hysteresis_threshold`|[-]| int | threshold that helps prevent frequent switching between safe and unsafe decisions | 10 |
828
+
|`cancel.unsafe_hysteresis_threshold`|[-]| int | threshold that helps prevent frequent switching between safe and unsafe decisions | 10 |
829
+
|`cancel.deceleration_sampling_num`|[-]| int | Number of deceleration patterns to check safety to cancel lane change | 5 |
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
+12
Original file line number
Diff line number
Diff line change
@@ -37,6 +37,7 @@ using geometry_msgs::msg::Twist;
37
37
using lane_change::LanesPolygon;
38
38
using tier4_planning_msgs::msg::PathWithLaneId;
39
39
using utils::path_safety_checker::ExtendedPredictedObjects;
40
+
using utils::path_safety_checker::RSSparams;
40
41
41
42
classNormalLaneChange : publicLaneChangeBase
42
43
{
@@ -171,8 +172,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/utils/data_structs.hpp
+2
Original file line number
Diff line number
Diff line change
@@ -94,6 +94,8 @@ struct CancelParameters
94
94
// number of unsafe exceeds unsafe_hysteresis_threshold, the lane change will be cancelled or
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/utils.hpp
0 commit comments