-
Notifications
You must be signed in to change notification settings - Fork 650
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(avoidance): improve avoidance target filter #2329
feat(avoidance): improve avoidance target filter #2329
Conversation
30a6493
to
551cb36
Compare
working on documentation update in #2331 |
551cb36
to
eaa49cf
Compare
@rej55 @TakaHoribe @zulfaqar-azmi-t4 @mkuri Could you review this and following PRs? 🙇 |
@@ -15,6 +15,8 @@ | |||
threshold_time_object_is_moving: 1.0 # [s] | |||
object_check_forward_distance: 150.0 # [m] | |||
object_check_backward_distance: 2.0 # [m] | |||
object_check_shiftable_ratio: 0.6 # [-] | |||
object_check_min_road_shoulder_width: 0.5 # [m] |
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 these three related parameters should be rearranged, add white space on top and bottom so that it is simpler to be found
- threshold_distance_object_is_on_center
- shiftable ration
- min road shoulder width
Currently threshold_distance_object_is_on_center is on top of the list.
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.
Thanks for your advise 😄 I'll fix it.
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 fixed in a94873d
@satoshi-ota Would you explain the background/advantage of this assumption? Is this min_road_shoulder_length applied even if there is a sidewalk right next to the driving lane? |
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
…rocess Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com>
a94873d
to
ccfa88a
Compare
Codecov ReportBase: 10.47% // Head: 10.47% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## main #2329 +/- ##
=======================================
Coverage 10.47% 10.47%
=======================================
Files 1248 1248
Lines 91307 91307
Branches 21035 21035
=======================================
Hits 9566 9566
Misses 71555 71555
Partials 10186 10186
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
@TakaHoribe I think the left boundary of the road lanelet is not on acutual road bound (B) but on road outside line (A). [Now, I am checking to make sure that is correct... ] P.S. Left bound of road lanelet is on road outside line (A) at least of odaiba map. (Assuming I am correct) In many cases, vehicles can straddle the left boundary of lanelet and park on the left side of the road even if there is no explicit road shoulder lanelet. Therefore, shiftable ratio was calculated assuming that there is narrow ( |
@TakaHoribe @zulfaqar-azmi-t4 @mkuri Do you have any other concern or unclear point or advice? |
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
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
…2329) * feat(route_handler): add getMostLeftLanelet() Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(avoidance): calc shiftable ratio in avoidance target filtering process Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(avoidance): output object's debug info for rviz Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(avoidance): use avoidance debug factor Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(tier4_planning_launch): add new params for avoidance Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(avoidance): reorder params for readability Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(tier4_planning_launch): reorder params for readability Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> Signed-off-by: Kotaro Yoshimoto <pythagora.yoshimoto@gmail.com>
…2329) * feat(route_handler): add getMostLeftLanelet() Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(avoidance): calc shiftable ratio in avoidance target filtering process Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(avoidance): output object's debug info for rviz Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(avoidance): use avoidance debug factor Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * feat(tier4_planning_launch): add new params for avoidance Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(avoidance): reorder params for readability Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> * fix(tier4_planning_launch): reorder params for readability Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> Signed-off-by: satoshi-ota <satoshi.ota928@gmail.com> Signed-off-by: kminoda <koji.minoda@tier4.jp>
Description
add new filtering process in
fillAvoindanceTargetObjects()
Judge whether the object is parking vehicle on road shoulder
In the original implementation, if the length between the object's center and the center line of Ego's lane is less than
threshold_distance_object_is_on_center
, avoidance module determined that the vehicle was not a roadside parked vehicle and don't excute avoidance.In this PR, not only the length from the centerline, but also the length from the road shoulder is calculated and used in the filtering process. It calculates the ratio of the actual length between the the object's center and the center line
shift_length
and the maximum length the object can shiftshiftable_length
.The closer the object is to the shoulder, the larger the value of$ratio$ (theoretical max value is 1.0), and it compares the value and
object_check_shiftable_ratio
to determine whether the object is a road-parked vehicle.If there is no$l_a$ , assuming that the shoulder exists.
road_shoulder
lanelet in the map, sumobject_check_min_road_shoulder_width
toIn addition, it is assumed in the filtering process that there are no parked vehicles within the intersection. Therefor, the filtering flow is as shown in the following figure.
Related links
Tests performed
green cube: NOT AVOIDANCE TARGET
red cube: AVOIDANCE TARGET
Since the object's shiftable ratio is 0.49 (< 0.6), it is determined that the object is not a parking vehicle.
If the value of object_check_shiftable_ratio is set to 0.0, all vehicles are judged as road-parked vehicles.
The module determines that any vehicle in the intersection is not a parked vehicle, regardless of the value of
shift_length
andshiftable_ratio
.Notes for reviewers
have to checkout
tier4_autoware_msgs
to this branch. (tier4/tier4_autoware_msgs#64)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.