diff --git a/planning/behavior_velocity_intersection_module/README.md b/planning/behavior_velocity_intersection_module/README.md index db810b6e4c312..859350ce6d325 100644 --- a/planning/behavior_velocity_intersection_module/README.md +++ b/planning/behavior_velocity_intersection_module/README.md @@ -83,7 +83,7 @@ The following process is performed for the targets objects to determine whether 1. predict the time $t$ when the object intersects with ego path from the predicted path time step. Only the predicted whose confidence is greater than `collision_detection.min_predicted_path_confidence` is used. 2. detect collision between the predicted path and ego's predicted path in the following process 1. calculate the collision interval of [$t$ - `collision_detection.collision_start_margin_time`, $t$ + `collision_detection.collision_end_margin_time`] - 2. obtain the passing area of ego vehicle during the collision interval from the array of (time, distance) obtained by smoothed velocity profile + 2. calculate the passing area of ego vehicle during the collision interval from the array of (time, distance) obtained by smoothed velocity profile 3. check if ego passing area and object predicted path interval collides 3. if collision is detected, the module inserts a stopline 4. if ego is over the [pass_judge_line](#pass-judge-line), collision checking is skipped to avoid sudden braking and/or unnecessary stop in the middle of the intersection @@ -103,19 +103,6 @@ ros2 run behavior_velocity_intersection_module ttc.py --lane_id ![ego ttc profile](./docs/ttc.gif) -### Pass Judge Line - -To avoid sudden braking, if deceleration and jerk more than the threshold (`common.max_accel` and `common.max_jerk`) is required to stop at first_attention_stopline, this module does not command to stop once it passed the default_stopline position. - -The position of the pass judge line depends on the occlusion detection configuration and the existence of the associated traffic light of the intersection lane. - -- If `occlusion.enable` is false, the pass judge line before the `first_attention_stopline` by the braking distance $v_{ego}^{2} / 2a_{max}$. -- If `occlusion.enable` is true and: - - if there are associated traffic lights, the pass judge line is at the `occlusion_peeking_stopline` in order to continue peeking/collision detection while occlusion is detected. - - if there are no associated traffic lights and: - - if occlusion is detected, pass judge line is at the `occlusion_wo_tl_pass_judge_line` to continue peeking. - - if occlusion is not detected, pass judge line is at the same place at the case where `occlusion.enable` is false. - ### Occlusion detection If the flag `occlusion.enable` is true this module checks if there is sufficient field of view (FOV) on the attention area up to `occlusion.occlusion_attention_area_length`. If FOV is not clear enough ego vehicle first make a brief stop at the default stop line for `occlusion.temporal_stop_time_before_peeking`, and then slowly creep toward occlusion_peeking_stop_line at the speed of `occlusion.creep_during_peeking.creep_velocity` if `occlusion.creep_during_peeking.enable` is true. During the creeping if collision is detected this module inserts a stop line in front of ego vehicle immediately, and if the FOV gets sufficiently clear the intersection_occlusion wall will disappear. If occlusion is cleared and no collision is detected ego vehicle will pass the intersection. @@ -128,7 +115,9 @@ If the nearest occlusion cell value is below the threshold, occlusion is detecte #### Occlusion source estimation with traffic light -At intersection with traffic light, the whereabout of occlusion is estimated by checking if there are any objects between ego and the nearest occlusion cell. While the occlusion is estimated to be caused by some object (DYNAMICALLY occluded), intersection_wall will be inserted. If no objects are found between ego and the nearest occlusion cell (STATICALLY occluded), after ego stopped for the duration of `occlusion.static_occlusion_with_traffic_light_timeout`, occlusion is ignored to avoid stuck. +At intersection with traffic light, the whereabout of occlusion is estimated by checking if there are any objects between ego and the nearest occlusion cell. While the occlusion is estimated to be caused by some object (DYNAMICALLY occluded), intersection_wall will be inserted. If no objects are found between ego and the nearest occlusion cell (STATICALLY occluded), after ego stopped for the duration of `occlusion.static_occlusion_with_traffic_light_timeout`, occlusion is intentionally ignored to avoid stuck. + +![occlusion_detection](./docs/occlusion-with-tl.drawio.svg) #### Occlusion handling without traffic light @@ -164,6 +153,19 @@ If the traffic light color is RED or Arrow signal is turned on, the attention la When the traffic light color/shape is RED/Arrow, occlusion detection is skipped. +### Pass Judge Line + +To avoid sudden braking, if deceleration and jerk more than the threshold (`common.max_accel` and `common.max_jerk`) is required to stop at first_attention_stopline, this module does not command to stop once it passed the default_stopline position. + +The position of the pass judge line depends on the occlusion detection configuration and the existence of the associated traffic light of the intersection lane. + +- If `occlusion.enable` is false, the pass judge line before the `first_attention_stopline` by the braking distance $v_{ego}^{2} / 2a_{max}$. +- If `occlusion.enable` is true and: + - if there are associated traffic lights, the pass judge line is at the `occlusion_peeking_stopline` in order to continue peeking/collision detection while occlusion is detected. + - if there are no associated traffic lights and: + - if occlusion is detected, pass judge line is at the `occlusion_wo_tl_pass_judge_line` to continue peeking. + - if occlusion is not detected, pass judge line is at the same place at the case where `occlusion.enable` is false. + ### Data Structure Each data structure is defined in `util_type.hpp`. diff --git a/planning/behavior_velocity_intersection_module/docs/occlusion-with-tl.drawio.svg b/planning/behavior_velocity_intersection_module/docs/occlusion-with-tl.drawio.svg new file mode 100644 index 0000000000000..61cc030ff10e9 --- /dev/null +++ b/planning/behavior_velocity_intersection_module/docs/occlusion-with-tl.drawio.svg @@ -0,0 +1,2002 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + ego + +
+
+
+
+ ego +
+
+ + + + + + + + + +
+
+
+ + nearest occlusion cell + +
+
+
+
+ nearest occlusion... +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + ego + +
+
+
+
+ ego +
+
+ + + + + + + +
+
+
+ + nearest occlusion cell + +
+
+
+
+ nearest occlusion... +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + dynamically occluded by detected object +
+
+
+
+
+
+
+ dynamically occluded by detected object +
+
+ + + +
+
+
+ + + statically occluded because no detected object is blocking +
+
+
+
+
+
+
+ statically occluded because no detected object is blocking +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_velocity_intersection_module/docs/occlusion-without-tl.drawio.svg b/planning/behavior_velocity_intersection_module/docs/occlusion-without-tl.drawio.svg index fa19841c22207..697c0c634daf0 100644 --- a/planning/behavior_velocity_intersection_module/docs/occlusion-without-tl.drawio.svg +++ b/planning/behavior_velocity_intersection_module/docs/occlusion-without-tl.drawio.svg @@ -5,32 +5,32 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" - width="1178px" - height="631px" - viewBox="-0.5 -0.5 1178 631" - content="<mxfile host="Electron" modified="2023-11-13T12:18:01.577Z" 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="HXSUdh9srOOQJe_YelTD" version="20.3.0" type="device"><diagram name="intersection" id="0L5whF3ImEvTl2DSWTjR">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</diagram></mxfile>" + width="1357px" + height="600px" + viewBox="-0.5 -0.5 1357 600" + content="<mxfile host="Electron" modified="2023-11-14T20:57:10.757Z" 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="Xql1fZtAubmV39K-nFIb" version="20.3.0" type="device"><diagram name="intersection" id="0L5whF3ImEvTl2DSWTjR">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</diagram></mxfile>" > - - - - + + + + - - - - - + + + + + - - + + - - - + + + - + - + - +
-
+
- - default_stopline -
+ + 1.stop at the default_ + +
+ + stopline + + + + +
+
- default_stopli... + 1.stop at the defa... - - - + + +
- occlusion + occlusion
- occlusion + occlusion
- - - - - - + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - +
-
+
- - - first_attention_stopline -
-
-
+
+ + 2. stop at the first_attention_stopline + +
- first_attention_stop... + 2. stop at the first_... - - - - - + + + + + - - + + -
-
+
+
- - - - occlusion_wo_tl_ -
- pass_judge_line -
-
-
-
+
+ + 3. creep up to occlusion_wo_tl_ + + + pass_judge_line + +
- occlusion_wo_tl_... + 3. creep up to occlusion_wo_... - - + +