-
Notifications
You must be signed in to change notification settings - Fork 768
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
feat: goal planner checking border #10725
Conversation
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
Codecov ReportAttention: Patch coverage is
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
*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:
|
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
Overall, it looks good! Thanks a lot!! I just left a few minor comments. |
// Check if a road border separates ego from object | ||
if (!crosses_road_border(ego_point, obj_point, road_border_segments)) { |
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.
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.
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:
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.
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.
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.
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.
great image!! I'm grad if you added to README.md too
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.
I added the graph in the README with the fix commit. Please check it out.
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/util.cpp
Outdated
Show resolved
Hide resolved
// 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}; | ||
|
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.
// 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?
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.
I think so, since we are obtaining polygon directly.
planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md
Outdated
Show resolved
Hide resolved
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.
LGTM! thanks a lot!
…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]>
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
sorry the DCO suggestion creates shit. |
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. |
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.
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.
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.
Sorry the DCO suggestion use force push and make the PR a chaos.. I am not sure what to do now.
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.
Signed-off-by: YuxuanLiuTier4Desktop <[email protected]>
* 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]>
…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]>
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)

(before 6/1)

Before
After
Related links
Parent Issue:
How was this PR tested?
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.