Skip to content

Commit 379b67c

Browse files
Update documentation
Signed-off-by: Muhammad Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
1 parent 6394817 commit 379b67c

File tree

1 file changed

+24
-0
lines changed
  • planning/behavior_path_lane_change_module

1 file changed

+24
-0
lines changed

planning/behavior_path_lane_change_module/README.md

+24
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,29 @@ detach
284284
@enduml
285285
```
286286

287+
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.
288+
289+
```plantuml
290+
@startuml
291+
skinparam defaultTextAlignment center
292+
skinparam backgroundColor #WHITE
293+
294+
title Abort Lane Change
295+
296+
if (Perform collision check?) then (<color:green><b>SAFE</b></color>)
297+
:Reset unsafe_hysteresis_count_;
298+
else (<color:red><b>UNSAFE</b></color>)
299+
:Increase unsafe_hysteresis_count_;
300+
if (unsafe_hysteresis_count_ > unsafe_hysteresis_threshold?) then (<color:green><b>SAFE</b></color>)
301+
else (<color:red><b>UNSAFE</b></color>)
302+
#LightPink:Check abort condition;
303+
stop
304+
endif
305+
endif
306+
:Continue lane changing;
307+
@enduml
308+
```
309+
287310
#### Cancel
288311

289312
Suppose the lane change trajectory is evaluated as unsafe. In that case, if the ego vehicle has not departed from the current lane yet, the trajectory will be reset, and the ego vehicle will resume the lane following the maneuver.
@@ -430,6 +453,7 @@ The following parameters are configurable in `lane_change.param.yaml`.
430453
| `cancel.duration` | [s] | double | The time taken to complete returning to the center line. | 3.0 |
431454
| `cancel.max_lateral_jerk` | [m/sss] | double | The maximum lateral jerk for abort path | 1000.0 |
432455
| `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 |
456+
| `unsafe_hysteresis_threshold` | [-] | int | threshold that helps prevent frequent switching between safe and unsafe decisions | 10 |
433457

434458
### Debug
435459

0 commit comments

Comments
 (0)