-
Notifications
You must be signed in to change notification settings - Fork 754
feat(goal_planner): check pull over lane crossing validity when triggering candidate generation thread #10784
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
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:
|
7404d0d
to
e56519f
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10784 +/- ##
==========================================
+ Coverage 15.80% 16.44% +0.63%
==========================================
Files 1365 1373 +8
Lines 100678 101446 +768
Branches 32624 32938 +314
==========================================
+ Hits 15914 16683 +769
- Misses 72545 73070 +525
+ Partials 12219 11693 -526
*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:
|
0c88d49
to
9292e11
Compare
/** | ||
* @brief find the lanelet that has changed "laterally" from previous lanelet on the routing graph | ||
* @return the lanelet that changed "laterally" if the path is lane changing, otherwise nullopt | ||
*/ | ||
std::optional<lanelet::ConstLanelet> find_lane_change_completed_lanelet( | ||
const PathWithLaneId & path, const lanelet::LaneletMapConstPtr lanelet_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.
question:
A 1 | 3 | 6 | 7
B 2 | 4 | 5 | 8
For example changing lanes from 1→8
1 → 3, 4 → 5,6 → 8
this function returns 4
as lane_change_completed_lanelet
? I imagined 8
from the function name.
return planner_data->route_handler->getLaneletSequence( | ||
*lane_change_complete_lane, backward_length, forward_length); |
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.
this can't get lanes after goal?
Signed-off-by: Mamoru Sobue <[email protected]>
9292e11
to
2a88e2d
Compare
Description
If lane_change is running when goal_planner's thread is generating path candidates, lane_change can suddenly swerve the path. If ego is still driving on the preferred_lanelets before swerving, and goal_planner still happened to be IDLE, syncWithThreads() is not triggered, thus the backgroud thread keeps using old reference path, which is aligned on the old preferred lanelets. This is problematic when pull over planners process "previous_module_path" w.r.t reference path.
To deal with this issue:
lane_change_status_changed_
to goal_planner to signal background threadget_reference_lanelets_for_pullover
instead ofgetPullOverLanes
Related links
How was this PR tested?
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.