Skip to content

feat: goal planner checking border #10725

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

Conversation

Owen-Liuyuxuan
Copy link
Contributor

@Owen-Liuyuxuan Owen-Liuyuxuan commented May 28, 2025

Description

Filter out objects that are separated from the ego vehicle by road borders, preventing unnecessary path planning considerations for objects on the opposite side of road infrastructure.

Algorithm

(New)
Enhanced Goal Planner Road Border Filtering

(before 6/1)
Goal Planner Road Border Filtering Visualization

Before

Screenshot from 2025-05-28 12-00-57

After

Screenshot from 2025-05-28 12-04-45

Related links

Parent Issue:

How was this PR tested?

Notes for reviewers

None.

Interface changes

None.

Effects on system behavior

None.

Copy link

github-actions bot commented May 28, 2025

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@Owen-Liuyuxuan Owen-Liuyuxuan added run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) tag:require-cuda-build-and-test labels May 28, 2025
Copy link

codecov bot commented May 28, 2025

Codecov Report

Attention: Patch coverage is 0% with 53 lines in your changes missing coverage. Please review.

Project coverage is 16.58%. Comparing base (7ff3aa9) to head (4ff8162).
Report is 16 commits behind head on main.

Files with missing lines Patch % Lines
...are_behavior_path_goal_planner_module/src/util.cpp 0.00% 50 Missing ⚠️
...th_goal_planner_module/src/goal_planner_module.cpp 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10725      +/-   ##
==========================================
+ Coverage   15.94%   16.58%   +0.63%     
==========================================
  Files        1343     1351       +8     
  Lines       99736   100502     +766     
  Branches    32880    33188     +308     
==========================================
+ Hits        15907    16672     +765     
- Misses      71635    72166     +531     
+ Partials    12194    11664     -530     
Flag Coverage Δ *Carryforward flag
daily 17.33% <ø> (+<0.01%) ⬆️ Carriedforward from f4353f2
daily-cuda 15.95% <ø> (+<0.01%) ⬆️ Carriedforward from f4353f2
differential 8.28% <0.00%> (?)
total-cuda 15.95% <ø> (+<0.01%) ⬆️ Carriedforward from f4353f2

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

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kosuke55
Copy link
Contributor

Overall, it looks good! Thanks a lot!! I just left a few minor comments.

Comment on lines 119 to 120
// Check if a road border separates ego from object
if (!crosses_road_border(ego_point, obj_point, road_border_segments)) {
Copy link
Contributor

@kosuke55 kosuke55 May 29, 2025

Choose a reason for hiding this comment

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

It seems okay to ignore for now, but this is an edge case of the current algorithm.

image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually there are more complex cases, so I tried to implement a more strict method for filtering objects.

For now, it will loop through the footprint of objects like the following graph:

image

For bouding box object, I compute the footprint using the pose + rotation + dimensions. For polygon object, I directly use the footprint in the message. For the cylinder object, I still use the centerpoint.

Copy link
Contributor

Choose a reason for hiding this comment

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

thanks!!
I can not open the link
image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@kosuke55

Sorry I copied the private user link
Enhanced Goal Planner Road Border Filtering

Copy link
Contributor

Choose a reason for hiding this comment

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

great image!! I'm grad if you added to README.md too

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added the graph in the README with the fix commit. Please check it out.

Comment on lines 154 to 157
// Get object center position
const auto & obj_pose = object.kinematics.initial_pose_with_covariance.pose;
const Point2d obj_center_point{obj_pose.position.x, obj_pose.position.y};

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// Get object center position
const auto & obj_pose = object.kinematics.initial_pose_with_covariance.pose;
const Point2d obj_center_point{obj_pose.position.x, obj_pose.position.y};

not used now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think so, since we are obtaining polygon directly.

@github-actions github-actions bot added the type:documentation Creating or refining documentation. (auto-assigned) label Jun 4, 2025
Copy link
Contributor

@kosuke55 kosuke55 left a comment

Choose a reason for hiding this comment

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

LGTM! thanks a lot!

mkuri and others added 6 commits June 4, 2025 18:33
…utowarefoundation#10692)

Signed-off-by: Makoto Kurihara <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Mamoru Sobue <[email protected]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
@github-actions github-actions bot added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) component:system System design and integration. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:evaluator Evaluation tools for planning, localization etc. (auto-assigned) labels Jun 4, 2025
@Owen-Liuyuxuan
Copy link
Contributor Author

sorry the DCO suggestion creates shit.

Comment on lines +366 to +367
Before these margins are applied, objects are filtered based on their location relative to road boundaries (linestring with [roader_boarder](https://github.com/fzi-forschungszentrum-informatik/Lanelet2/blob/master/lanelet2_core/doc/LinestringTagging.md#as-lane-boundary) type ).
Objects located on the opposite side of relevant road borders from the ego vehicle are excluded from the collision check process. This ensures that the planner focuses only on objects that pose a potential risk within the intended driving corridor.
Copy link
Contributor

@kosuke55 kosuke55 Jun 4, 2025

Choose a reason for hiding this comment

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

Suggested change
Before these margins are applied, objects are filtered based on their location relative to road boundaries (linestring with [roader_boarder](https://github.com/fzi-forschungszentrum-informatik/Lanelet2/blob/master/lanelet2_core/doc/LinestringTagging.md#as-lane-boundary) type ).
Objects located on the opposite side of relevant road borders from the ego vehicle are excluded from the collision check process. This ensures that the planner focuses only on objects that pose a potential risk within the intended driving corridor.
Before these margins are applied, objects are filtered based on their location relative to road boundaries (linestring with [road_border](https://github.com/fzi-forschungszentrum-informatik/Lanelet2/blob/50239be48aa5a911d7347fdb828ee79dde2b2666/lanelet2_core/doc/LinestringTagging.md#as-lane-boundary) type ).
Objects located on the opposite side of relevant road borders from the ego vehicle are excluded from the collision check process. This ensures that the planner focuses only on objects that pose a potential risk within the intended driving corridor.

sorry for my typo, and fixed hash.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry the DCO suggestion use force push and make the PR a chaos.. I am not sure what to do now.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@kosuke55 This is fixed with the new PR..
#10755

@github-project-automation github-project-automation bot moved this from To Triage to Done in Software Working Group Jun 4, 2025
Owen-Liuyuxuan added a commit to Owen-Liuyuxuan/autoware.universe that referenced this pull request Jun 4, 2025
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Owen-Liuyuxuan added a commit that referenced this pull request Jun 4, 2025
* merging updates  in #10725

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>

* fix hash and typo, precommit

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>

---------

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
mkquda pushed a commit to tier4/autoware_universe that referenced this pull request Jun 16, 2025
…autowarefoundation#10755)

* merging updates  in autowarefoundation#10725

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>

* fix hash and typo, precommit

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>

---------

Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:evaluator Evaluation tools for planning, localization etc. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:perception Advanced sensor data processing and environment understanding. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) component:system System design and integration. (auto-assigned) run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) tag:require-cuda-build-and-test type:documentation Creating or refining documentation. (auto-assigned)
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.