Skip to content

Commit 980c6c4

Browse files
committed
update doc
Signed-off-by: Maxime CLEMENT <maxime.clement@tier4.jp>
1 parent e64415b commit 980c6c4

File tree

1 file changed

+21
-12
lines changed
  • planning/behavior_velocity_out_of_lane_module

1 file changed

+21
-12
lines changed

planning/behavior_velocity_out_of_lane_module/README.md

+21-12
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,30 @@ The algorithm is made of the following steps.
1616
2. Calculate the other lanes (magenta).
1717
3. Calculate the overlapping ranges between the ego path footprints and the other lanes (green).
1818
4. For each overlapping range, decide if a stop or slow down action must be taken.
19-
5. For each action, insert the corresponding stop or slow down point in the path.
19+
5. For each stop or slow down action, insert the corresponding stop or slow down point in the ego path.
2020

2121
![overview](./docs/out_of_lane-footprints_other_lanes_overlaps_ranges.png)
2222

2323
#### 1. Ego Path Footprints
2424

25-
In this first step, the ego footprint is projected at each path point and are eventually inflated based on the `extra_..._offset` parameters.
25+
In this first step, the ego footprint is projected at each path point and is eventually inflated based on the `extra_..._offset` parameters.
2626

2727
#### 2. Other lanes
2828

2929
In the second step, the set of lanes to consider for overlaps is generated.
30-
This set is built by selecting all lanelets within some distance from the ego vehicle, and then removing non-relevant lanelets.
30+
This set is built by selecting all road lanelets within some distance from the ego vehicle, and then removing non-relevant lanelets.
3131
The selection distance is chosen as the maximum between the `slowdown.distance_threshold` and the `stop.distance_threshold`.
3232

3333
A lanelet is deemed non-relevant if it meets one of the following conditions.
3434

35-
- It is part of the lanelets followed by the ego path.
35+
- It is part of the lanelets crossed by the ego path linestring.
3636
- It contains the rear point of the ego footprint.
37-
- It follows one of the ego path lanelets.
3837

3938
#### 3. Overlapping ranges
4039

4140
In the third step, overlaps between the ego path footprints and the other lanes are calculated.
4241
For each pair of other lane $l$ and ego path footprint $f$, we calculate the overlapping polygons using `boost::geometry::intersection`.
43-
For each overlapping polygon found, if the distance inside the other lane $l$ is above the `overlap.minimum_distance` threshold, then the overlap is ignored.
42+
For each overlapping polygon found, if the distance inside the other lane $l$ is lower than the `overlap.minimum_distance` threshold, then the overlap is ignored.
4443
Otherwise, the arc length range (relative to the ego path) and corresponding points of the overlapping polygons are stored.
4544
Ultimately, for each other lane $l$, overlapping ranges of successive overlaps are built with the following information:
4645

@@ -118,6 +117,12 @@ it is skipped.
118117

119118
Moreover, parameter `action.distance_buffer` adds an extra distance between the ego footprint and the overlap when possible.
120119

120+
#### Avoiding chattering
121+
122+
In order to avoid chattering caused by unstable predicted paths,
123+
parameter `action.min_duration` allows to set a minimum time during which a slow down or stop point is inserted.
124+
The slow down or stop point is only removed if no out of lane collision is detected for that duration.
125+
121126
### Module Parameters
122127

123128
| Parameter | Type | Description |
@@ -143,6 +148,7 @@ Moreover, parameter `action.distance_buffer` adds an extra distance between the
143148
| `minimum_velocity` | double | [m/s] ignore objects with a velocity lower than this value |
144149
| `predicted_path_min_confidence` | double | [-] minimum confidence required for a predicted path to be considered |
145150
| `use_predicted_paths` | bool | [-] if true, use the predicted paths to estimate future positions; if false, assume the object moves at constant velocity along _all_ lanelets it currently is located in |
151+
| `distance_buffer` | double | [m] distance buffer used to determine if a collision will occur in the other lane |
146152

147153
| Parameter /overlap | Type | Description |
148154
| ------------------ | ------ | ---------------------------------------------------------------------------------------------------- |
@@ -152,14 +158,17 @@ Moreover, parameter `action.distance_buffer` adds an extra distance between the
152158
| Parameter /action | Type | Description |
153159
| ----------------------------- | ------ | ---------------------------------------------------------------------------------------------- |
154160
| `skip_if_over_max_decel` | bool | [-] if true, do not take an action that would cause more deceleration than the maximum allowed |
161+
| `precision` | double | [m] precision when inserting a stop pose in the path |
155162
| `distance_buffer` | double | [m] buffer distance to try to keep between the ego footprint and lane |
163+
| `min_duration` | double | [s] minimum duration needed before a decision can be canceled |
156164
| `slowdown.distance_threshold` | double | [m] insert a slow down when closer than this distance from an overlap |
157165
| `slowdown.velocity` | double | [m] slow down velocity |
158166
| `stop.distance_threshold` | double | [m] insert a stop when closer than this distance from an overlap |
159167

160-
| Parameter /ego | Type | Description |
161-
| -------------------- | ------ | ---------------------------------------------------- |
162-
| `extra_front_offset` | double | [m] extra front distance to add to the ego footprint |
163-
| `extra_rear_offset` | double | [m] extra rear distance to add to the ego footprint |
164-
| `extra_left_offset` | double | [m] extra left distance to add to the ego footprint |
165-
| `extra_right_offset` | double | [m] extra right distance to add to the ego footprint |
168+
| Parameter /ego | Type | Description |
169+
| ---------------------- | ------ | ------------------------------------------------------------------------ |
170+
| `min_assumed_velocity` | double | [m/s] minimum velocity used to calculate the enter and exit times of ego |
171+
| `extra_front_offset` | double | [m] extra front distance to add to the ego footprint |
172+
| `extra_rear_offset` | double | [m] extra rear distance to add to the ego footprint |
173+
| `extra_left_offset` | double | [m] extra left distance to add to the ego footprint |
174+
| `extra_right_offset` | double | [m] extra right distance to add to the ego footprint |

0 commit comments

Comments
 (0)