-
Notifications
You must be signed in to change notification settings - Fork 703
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
fix(goal_planner): use precise distance to objects for sorting candidate paths #10296
base: main
Are you sure you want to change the base?
Conversation
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
f807db7
to
543a7c4
Compare
67fa145
to
8d50f35
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10296 +/- ##
==========================================
+ Coverage 25.94% 26.23% +0.28%
==========================================
Files 1383 1387 +4
Lines 106833 106882 +49
Branches 40912 40922 +10
==========================================
+ Hits 27722 28037 +315
+ Misses 76403 76146 -257
+ Partials 2708 2699 -9
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ceb6113
to
252a3a7
Compare
…ate paths Signed-off-by: kosuke55 <kosuke.tnp@gmail.com>
252a3a7
to
5985164
Compare
@@ -255,18 +255,20 @@ double calc_obstacle_max_length(const Shape & shape); | |||
* @brief Calculate collision roughly by comparing minimum/maximum distance with margin. | |||
* @param path The path of the ego vehicle. | |||
* @param objects The predicted objects. | |||
* @param margin Distance margin to judge collision. | |||
* @param min_margin_threshold threshold for collision check when the minimum distance between ego |
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.
英語の文法を分かりやすくして下さい
"threshold for collision check when the minimum distance between ego"
@@ -877,6 +879,40 @@ double calculateRoughDistanceToObjects( | |||
return min_distance; | |||
} | |||
|
|||
double calculate_distance_to_objects_from_path( |
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.
double calculate_distance_to_objects_from_path( | |
double shortest_distance_from_ego_footprint_to_objects_on_path( |
Description
Previously, we used
calculateRoughDistanceToObjects
to compute the maximum distance between the ego vehicle and surrounding objects when both were rotated. Based on this maximum distance, we selected a corresponding margin from the predefined collision_check_soft_margins list:This margin was then used to sort the paths by priority.
For CAR, this approach worked reasonably well — sorting by maximum rough distance closely matched the actual distance-based sorting. However, this method proved problematic for longer vehicles like the BUS, especially when their orientation was perpendicular to the ego path. In such cases, the difference between maximum rough distance and the actual minimum distance became significant, leading to incorrect classification. As a result, nearly all paths were evaluated as having margins over 5.0m, even if they were too close.
This PR introduces a new logic:
This ensures more accurate path prioritization, especially for larger like BUS or differently-oriented vehicles.
waiting for evaluator (wip
2025/03/18 https://evaluation.tier4.jp/evaluation/reports/52d79305-944b-5c4d-a119-5fc41007a5e5/?project_id=prd_jt
will updae exmaple code too
Related links
Parent Issue:
How was this PR tested?
psim + reproducer
RT1-8880-2025-03-18_14.31.47.mp4
before : goal close to object is selected
evaluator:
https://evaluation.tier4.jp/evaluation/reports/3d1c6b77-e2e8-5ef8-b319-0298ded5b815?project_id=prd_jt&state=failed 3750/3752
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.