Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(dynamic_avoidance): fix sentence #6782

Merged
merged 2 commits into from
Apr 10, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions planning/behavior_path_dynamic_avoidance_module/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ This module is under development.

## Purpose / Role

This module provides avoidance functions for vehicles, pedestrians, and obstacles in the vicinity of the ego's path in combination with the obstacle_avoidance module.
This module provides avoidance functions for vehicles, pedestrians, and obstacles in the vicinity of the ego's path in combination with the Obstacle Avoidance module.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

obstacle_avoidance_planner package or module sounds more precise considering that we have obstacle avoidance module in the behavior path planner.

Each module performs the following roles.
Dynamic Avoidance module: This module cuts off the drivable area according to the position and velocity of the target to be avoided.
Obstacle Avoidance module: This module modifies the path to be followed so that it fits within the drivable area received.
Dynamic Avoidance module cuts off the drivable area according to the position and velocity of the target to be avoided.
Obstacle Avoidance module modifies the path to be followed so that it fits within the received drivable area.

Avoidance functions are also provided by the Avoidance module, which allows avoidance through the outside of own lanes but not against moving objects.
Avoidance functions are also provided by the Avoidance module, but these modules have different roles.
The Avoidance module performs avoidance through the outside of own lanes but cannot avoid the moving objects.
On the other hand, this module can avoid moving objects.
For this reason, the word "dynamic" is used in its name.
The table below lists the avoidance modules that can be used for each situation.
For this reason, the word "dynamic" is used in the modules's name.
The table below lists the avoidance modules that can handle each situation.

| | avoid within the own lane | avoid through the outside of own lanes |
| :----------------------- | :------------------------------------------------------------------------: | :------------------------------------: |
Expand All @@ -23,19 +24,17 @@ The table below lists the avoidance modules that can be used for each situation.

Here, we describe the policy of inner algorithms.
The inner algorithms can be separated into two parts: The first decide whether to avoid the obstacles and the second cuts off the drivable area against the corresponding obstacle.
If you are interested in more details, please see the code itself.

### Select obstacles to avoid

To decide whether to avoid an object, both the predicted path and the state (pose and twist) of each object are used.
The type of objects the user wants this module to avoid is also required.
Using this information, the module decides to _avoid_ objects that _obstruct the ego's passage_ and _can be avoided_.

The definition of _obstruct own passage_ is implemented as the object that collides within seconds.
This process wastes computational cost by doing it for all objects; thus, filtering by the relative position and speed of the object with respect to the ego's path is also done as an auxiliary process.
The other, _can be avoided_ denotes whether it can be avoided without risk to passengers or other vehicles.
For this purpose, it is judged whether the obstacle can be avoided by satisfying the constraints of lateral acceleration and lateral jerk.
For example, the module decides not to avoid an object that is too close or fast in the lateral direction because it cannot be avoided.
The definition of _obstruct the ego's passage_ is implemented as the object that collides within seconds.
The other, _can be avoided_ denotes whether it can be avoided without risk to the passengers or the other vehicles.
For this purpose, the module judges whether the obstacle can be avoided with satisfying the constraints of lateral acceleration and lateral jerk.
For example, the module decides not to avoid an object that is too close or fast in the lateral direction.

### Cuts off the drivable area against the selected obstacles

Expand Down
Loading