-
Notifications
You must be signed in to change notification settings - Fork 682
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(map_based_prediction): plan paths of objects outside the lanelets. #4618
feat(map_based_prediction): plan paths of objects outside the lanelets. #4618
Conversation
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
// Step2. Check if the obstacle is inside of this lanelet | ||
if (!lanelet::geometry::inside(lanelet.second, search_point)) { | ||
return false; | ||
} | ||
|
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 part was moved to
constexpr double epsilon = 1e-3;
if (lanelet.first < epsilon) {
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.
So, your idea is to allow getCurrentLanelet
function to return neighbor lanelet if there are no corresponding lanelet with object.
My concern is:
- the program outside the
getCurrentLanelet
function can not distinguish the output is closest_lanelet or object_lanelet- For example, this 'current' lanelet is saved to object_history_ and which is used in
checkCloseLaneletCondition
and so on
- For example, this 'current' lanelet is saved to object_history_ and which is used in
If possible, it would be safer for later feature development if it is known whether the returned value is a closet_lanelet or an object_lanelet, but since this is for developers, there should be at least no problem if it is described in a comment.
I think we can accept this concern only if this PR pass all of P/C test case.
} | ||
if (closest_lanelet) { | ||
return LaneletsData{LaneletData{ | ||
closest_lanelet->second, calculateLocalLikelihood(closest_lanelet->second, object)}}; |
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.
need to check if calculateLocalLikelihood
function is valid with obj outside the lanalet
lanelet.first < dist_threshold_for_searching_lanelet_ && | ||
(!closest_lanelet || lanelet.first < closest_lanelet->first)) { | ||
closest_lanelet = lanelet; | ||
} |
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 we need to check object yaw and lanelet yaw diff is small enough so that we will not get the unexpected lanelet such as opposite lanelet
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.
We call checkCloseLaneletCondition before the above condition so we do not have to check the angle and even distance (Now I removed the distance check).
Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
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
fc64bb7
to
532fab1
Compare
Codecov ReportPatch coverage has no change and project coverage change:
Additional details and impacted files@@ Coverage Diff @@
## main #4618 +/- ##
==========================================
- Coverage 14.82% 14.82% -0.01%
==========================================
Files 1529 1529
Lines 105811 105827 +16
Branches 32243 32243
==========================================
Hits 15690 15690
- Misses 72965 72981 +16
Partials 17156 17156
*This pull request uses carry forward flags. Click here to find out more.
☔ View full report in Codecov by Sentry. |
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
…s. (autowarefoundation#4618) * add publisher of calculation time Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * plan path of objects outside the lane Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * minor change Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> * fix CI Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com> --------- Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Description
without the PR
with the PR
FYI:
![image](https://private-user-images.githubusercontent.com/20228327/260410579-5b3279a4-c254-4615-ad49-335a8444822e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTMxNDgsIm5iZiI6MTczOTU5Mjg0OCwicGF0aCI6Ii8yMDIyODMyNy8yNjA0MTA1NzktNWIzMjc5YTQtYzI1NC00NjE1LWFkNDktMzM1YTg0NDQ4MjJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA0MTQwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3MmU1NzJhOTAyODRiZTdjNzQ0MjE1ZDgyZjRjNzI4ODVlMmJjYjc2MDFhNDVmZDFmMDFlZjJjNjQzZjBmOWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cNkFqqp_wud2QRaLLWerzYMQEjYTiup6V2gevQSsxhw)
The case where object is in the opposite directional lane
Tests performed
Effects on system behavior
Nothing
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.