-
Notifications
You must be signed in to change notification settings - Fork 673
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(lane_change): ensure LC merging lane stop point is safe #8369
feat(lane_change): ensure LC merging lane stop point is safe #8369
Conversation
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
… lane end Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Outdated
Show resolved
Hide resolved
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8369 +/- ##
==========================================
- Coverage 23.87% 23.78% -0.09%
==========================================
Files 1380 1389 +9
Lines 101867 101755 -112
Branches 38802 38622 -180
==========================================
- Hits 24320 24205 -115
+ Misses 75123 75093 -30
- Partials 2424 2457 +33
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Outdated
Show resolved
Hide resolved
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
…oint-is-safe Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
…ne and lane polygon Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
...h_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/calculation.hpp
Outdated
Show resolved
Hide resolved
planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/utils.cpp
Show resolved
Hide resolved
...ng/behavior_path_planner/autoware_behavior_path_lane_change_module/src/utils/calculation.cpp
Show resolved
Hide resolved
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
…oint-is-safe Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
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. Thank you for fixing this issue!
Once this was merged, we started having test errors in the CI:
@mkquda could you look into it? |
This ci failed last week too: |
…efoundation#8369) * function to check for merging lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * function to compute distance from last fit width center line point to lane end Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * ensure lane width at LC stop point is larger than ego width Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * refactor function isMergingLane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * improve implementation Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * apply logic only when current ego foot print is within lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * change implementation to use intersection points of buffered centerline and lane polygon Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * minor refactoring Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * overload function isEgoWithinOriginalLane to pass lane polygon directly Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> --------- Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
…efoundation#8369) * function to check for merging lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * function to compute distance from last fit width center line point to lane end Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * ensure lane width at LC stop point is larger than ego width Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * refactor function isMergingLane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * improve implementation Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * apply logic only when current ego foot print is within lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * change implementation to use intersection points of buffered centerline and lane polygon Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * minor refactoring Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * overload function isEgoWithinOriginalLane to pass lane polygon directly Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> --------- Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
…efoundation#8369) * function to check for merging lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * function to compute distance from last fit width center line point to lane end Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * ensure lane width at LC stop point is larger than ego width Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * refactor function isMergingLane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * improve implementation Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * apply logic only when current ego foot print is within lane Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * change implementation to use intersection points of buffered centerline and lane polygon Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * minor refactoring Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> * overload function isEgoWithinOriginalLane to pass lane polygon directly Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp> --------- Signed-off-by: mohammad alqudah <alqudah.mohammad@tier4.jp>
Description
In case of LC merging lane pattern, the width of the lane at the stop point is not guaranteed to be sufficient for ego vehicle. If LC path is not approved and ego continues up to stop point, ego body can exceed lane boundaries which is unsafe.
Changes
isMergingLane
in planner common utils to check for merging lane patterngetDistanceFromLastFitWidthToEnd
in planner common utils to compute distance from last center line point within width threshold to lane endgetSignedDistanceFromBoundary
in planner common utilsdistance_to_terminal
to ensure safe stopping pointHow was this PR tested?
tested with psim.
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
When ego is approaching end of merging lane and LC path is not approved, ego should stop at safe point where ego body does not exceed lane boundaries