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

feat(obstacle_avoidance_planner): deal with infeasible drivable area #3579

Conversation

takayuki5168
Copy link
Contributor

@takayuki5168 takayuki5168 commented Apr 28, 2023

Description

When obstacles are extracted from the drivable area for static avoidance or dynamic avoidance by the motion planner, in some cases, the drivable area width is too narrow and it's infeasible to drive inside the drivable area as shown in the following figures.

In this case, without the PR, the trajectory optimization failed due to infeasible drivability.
To deal with this case, the obstacle avoidance planner expands the drivable area if it's infeasible to drive.

This feature of keeping the feasible drivable area width should be considered when the drivable area is created in the behavior_path_planner.
The reason I put this feature into not the behavior_path_planner but the obstacle_avoidance_planner is to add less implementation for this feature.
The obstacle_avoidance_planner already calculates the drivable area's width, so it's quite easy to add this feature there.

NOTE:
This feature does not adversely affect driving on narrow roads. (e.g. The drivable area will not be expanded to the outside the road.)

Without this PR
Failed to optimize the avoiding trajectory.
The output on the terminal is [osqp_interface]: [MPT] Optimization failed due to solved inaccurate
image

With this PR
Succeeded in optimizing the avoiding trajectory by modifying the drivable area internally in obstacle_avoidance_planner.
image

Tests performed

planning simulator

Effects on system behavior

Nothing

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

  • There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) labels Apr 28, 2023
@takayuki5168 takayuki5168 force-pushed the feat/obstacle-avoidance-deal-with-infeasible branch from 1037740 to bd00ba4 Compare April 28, 2023 14:18
@github-actions github-actions bot removed component:launch Launch files, scripts and initialization tools. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned) labels Apr 28, 2023
@takayuki5168 takayuki5168 marked this pull request as ready for review April 28, 2023 14:34
@takayuki5168
Copy link
Contributor Author

@TakaHoribe
I created a feature PR. For me, it's fine not to go deep into the code change for approval.

@codecov
Copy link

codecov bot commented Apr 28, 2023

Codecov Report

Patch coverage: 5.63% and project coverage change: -0.01 ⚠️

Comparison is base (3766d5a) 14.09% compared to head (7034e09) 14.08%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3579      +/-   ##
==========================================
- Coverage   14.09%   14.08%   -0.01%     
==========================================
  Files        1396     1396              
  Lines       98109    98180      +71     
  Branches    29150    29194      +44     
==========================================
+ Hits        13826    13828       +2     
- Misses      69550    69607      +57     
- Partials    14733    14745      +12     
Flag Coverage Δ *Carryforward flag
differential 32.09% <5.63%> (?)
total 14.09% <ø> (-0.01%) ⬇️ Carriedforward from 00a1b66

*This pull request uses carry forward flags. Click here to find out more.

Impacted Files Coverage Δ
...clude/obstacle_avoidance_planner/mpt_optimizer.hpp 85.71% <ø> (ø)
...g/obstacle_avoidance_planner/src/mpt_optimizer.cpp 39.80% <5.63%> (-3.25%) ⬇️

... and 1 file with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
@takayuki5168 takayuki5168 force-pushed the feat/obstacle-avoidance-deal-with-infeasible branch from 5c8d413 to 00a1b66 Compare April 30, 2023 10:05
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
@takayuki5168 takayuki5168 force-pushed the feat/obstacle-avoidance-deal-with-infeasible branch from 18c60c2 to 7034e09 Compare April 30, 2023 13:41
@takayuki5168 takayuki5168 merged commit a1147ca into autowarefoundation:main Apr 30, 2023
@takayuki5168 takayuki5168 deleted the feat/obstacle-avoidance-deal-with-infeasible branch April 30, 2023 16:25
Mingyu1991 pushed a commit to Mingyu1991/autoware.universe that referenced this pull request Jun 26, 2023
…utowarefoundation#3579)

* feat(obstacle_avoidance_planner): deal with infeasible drivable area

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* parametrize min_drivable_width

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* fix typo

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* refactor

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* fix

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* fix

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

---------

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Mingyu Li <mingyu.li@tier4.jp>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants