-
Notifications
You must be signed in to change notification settings - Fork 684
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
perf(goal_planner): faster path sorting and selection #8457
Conversation
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
67212f8
to
4b17e6d
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8457 +/- ##
==========================================
- Coverage 23.88% 23.87% -0.02%
==========================================
Files 1381 1387 +6
Lines 101993 102039 +46
Branches 38852 38852
==========================================
Hits 24357 24357
- Misses 75207 75253 +46
Partials 2429 2429
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. |
a2e0a03
to
5630d91
Compare
@soblin |
std::vector<double> margins_with_zero = margins; | ||
margins_with_zero.push_back(0.0); | ||
return std::make_tuple(margins, margins_with_zero); | ||
}); | ||
|
||
// Create a map of PullOverPath pointer to largest collision check margin | ||
std::map<size_t, double> path_id_to_margin_map; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you rename path_id_to_margin_map to path_id_to_rough_margin_map ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that is better!
fixed in 9b43e03
Signed-off-by: kosuke55 <kosuke.tnp@gmail.com>
Signed-off-by: kosuke55 <kosuke.tnp@gmail.com>
9b43e03
to
b7dbcb6
Compare
…tion#8457) * perf(goal_planner): faster path sorting and selection Signed-off-by: kosuke55 <kosuke.tnp@gmail.com> * path_id_to_rough_margin_map Signed-off-by: kosuke55 <kosuke.tnp@gmail.com> --------- Signed-off-by: kosuke55 <kosuke.tnp@gmail.com>
Description
Before:
We had done a collision check using footprints for all candidate paths and gave higher priority to those with larger margins.
Then, for those with high priority, we again checked the hard margin and confirmed that sufficient distance had been secured.
After:
For candidate paths, check whether the goal is safe and sufficient distance is secured, and delete those that do not meet the requirements. Calculate rough margins for candidate routes and sort. The rough distance is the longest distance when the object and ego are rotated. (see #8464 for details)
After that, we check if hard margin can be secured for the sorted objects in order. Also, pull over paths take -5ms each to copy, so index is used whenever possible.
depends on
(internal)
before
after
Related links
Parent Issue:
How was this PR tested?
before
after (worst case)
path priority
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.