Skip to content

Commit

Permalink
Add figures
Browse files Browse the repository at this point in the history
Signed-off-by: Maxime CLEMENT <maxime.clement@tier4.jp>
  • Loading branch information
maxime-clem committed Mar 31, 2023
1 parent 24fc126 commit 71441d5
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 21 additions & 8 deletions planning/behavior_velocity_planner/out-of-lane-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

`out_of_lane` is the module that decelerates and stops to prevent the ego vehicle from entering another lane with incoming dynamic objects.

![brief](./docs/out_of_lane/out_of_lane-overview.svg)

### Activation Timing

This module is activated if `launch_out_of_lane` is set to true.
Expand All @@ -14,12 +12,14 @@ This module is activated if `launch_out_of_lane` is set to true.

The algorithm is made of the following steps.

1. Calculate the ego path footprints.
2. Calculate the other lanes.
3. Calculate the overlapping ranges between the ego path footprints and the other lanes.
1. Calculate the ego path footprints (red).
2. Calculate the other lanes (magenta).
3. Calculate the overlapping ranges between the ego path footprints and the other lanes (green).
4. For each overlapping range, decide if a stop or slow down action must be taken.
5. For each action, insert the corresponding stop or slow down point in the path.

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

#### 1. Ego Path Footprints

In this first step, the ego footprint is projected at each path point and are eventually inflated based on the `extra_..._offset` parameters.
Expand Down Expand Up @@ -58,6 +58,17 @@ Whether it is decided to slow down or stop is determined by the distance between
If this distance is bellow the `actions.slowdown.threshold`, a velocity of `actions.slowdown.velocity` will be used.
If the distance is bellow the `actions.stop.threshold`, a velocity of `0`m/s will be used.

<table width="100%">
<tr>
<td>
<img src="./docs/out_of_lane/out_of_lane_slow.png" width="550px"/>
</td>
<td>
<img src="./docs/out_of_lane/out_of_lane_stop.png" width="550px"/>
</td>
</tr>
</table>

##### Threshold

With the `mode` set to `"threshold"`,
Expand Down Expand Up @@ -95,14 +106,18 @@ Otherwise, the lanelet map is used to estimate the distance between the object a

#### 5. Path update

For each decision to stop or slow down before an overlapping range with other lane $l$ starting at ego path point index $i$,
Finally, for each decision to stop or slow down before an overlapping range,
a point is inserted in the path.
For a decision taken for an overlapping range with a lane $l$ starting at ego path point index $i$,
a point is inserted in the path between index $i$ and $i-1$ such that the ego footprint projected at the inserted point does not overlap $l$.
Such point with no overlap must exist since, by definition of the overlapping range,
we know that there is no overlap at $i-1$.

If the point would cause a higher deceleration than allowed by the `max_accel` parameter (node parameter),
it is skipped.

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

### Module Parameters

| Parameter | Type | Description |
Expand Down Expand Up @@ -148,5 +163,3 @@ it is skipped.
| `extra_rear_offset` | double | [m] extra rear distance to add to the ego footprint |
| `extra_left_offset` | double | [m] extra left distance to add to the ego footprint |
| `extra_right_offset` | double | [m] extra right distance to add to the ego footprint |

### Future extensions / Unimplemented parts

0 comments on commit 71441d5

Please sign in to comment.