-
Notifications
You must be signed in to change notification settings - Fork 669
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
fix(multi_object_tracker): prevent too large object tracking #7159
fix(multi_object_tracker): prevent too large object tracking #7159
Conversation
740f1ca
to
e35794e
Compare
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
Signed-off-by: Taekjin LEE <[email protected]>
e35794e
to
3e8cff6
Compare
Signed-off-by: Taekjin LEE <[email protected]>
min_y = std::min(min_y, local_vertex.y()); | ||
|
||
max_z = std::max(max_z, static_cast<double>(input_object.shape.footprint.points.at(i).z)); | ||
const double foot_x = input_object.shape.footprint.points.at(i).x; |
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.
[imho]
I think footprint is calculated by relative distance from centroid in base_link and not in object coordinate.
So, I guess yaw rotation fix will be necessary before get maximum x,y value.
Currently, it won't make any change because yaw of unknown object may be 0 in all case.
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.
Base line: the source of the unknown polygon object is from
shape_estimator
.
- Object Position:
- Coordinate origin: base_link
- Position: polygon centroid
- evidence
- Footprint:
- Coordinate origin: object position (polygon centroid)
- Positions: convex hull point positions, local
- evidence
I also checked the object size, output of this function, and confirmed that the numbers are as expected (about 0.7 m).
Therefore the footprint points are not from the base_link, but from the object origin.
Oh, you are talking about the orientation... let me check it again.
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.
If the message defines the footprint is in the object coordinate (as its position is from the object position), the width and length should be on its coordinate, not rotated one.
It doesn't matter whether the shape_estimator
implementation is done in yaw = 0
or not.
If the shape_estimator
do the yaw estimation in the polygon&convex hull function, it should rotate the point cloud when it make the message.
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.
Understood. Then, your code is fine.
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
…efoundation#7159) * fix: set minimum and maximum object for size update Signed-off-by: Taekjin LEE <[email protected]> * fix: bug of convertConvexHullToBoundingBox Signed-off-by: Taekjin LEE <[email protected]> * fix: return false when footprint is less than 3 points Signed-off-by: Taekjin LEE <[email protected]> * fix: size filter bug Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * fix: try to convert polygon to bbox Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> * fix: bicycle tracker to try bbox convert Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…efoundation#7159) * fix: set minimum and maximum object for size update Signed-off-by: Taekjin LEE <[email protected]> * fix: bug of convertConvexHullToBoundingBox Signed-off-by: Taekjin LEE <[email protected]> * fix: return false when footprint is less than 3 points Signed-off-by: Taekjin LEE <[email protected]> * fix: size filter bug Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * fix: try to convert polygon to bbox Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> * fix: bicycle tracker to try bbox convert Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix: set minimum and maximum object for size update Signed-off-by: Taekjin LEE <[email protected]> * fix: bug of convertConvexHullToBoundingBox Signed-off-by: Taekjin LEE <[email protected]> * fix: return false when footprint is less than 3 points Signed-off-by: Taekjin LEE <[email protected]> * fix: size filter bug Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * fix: try to convert polygon to bbox Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> * fix: bicycle tracker to try bbox convert Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * chore: clean-up Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Description
A bug was reported that a huge (length of 6km) object is appeared from the object tracking.
It is happening when a unknown object (shape of
autoware_auto_perception_msgs::msg::Shape::POLYGON
) is assigned to a bicycle tracker.It was caused by
utils::convertConvexHullToBoundingBox(object, bbox_object)
which treats the footprint points as global (map coordinate) position, while the input is local (the object coordinate).utils::convertConvexHullToBoundingBox(object, bbox_object)
Tests performed
data_association_matrix.param.yaml
to enable the unknown object can be assigned to bicycle trackerReplay a file that contains to associate an object that have poligon shape to a tracker.
simplescreenrecorder-2024-05-29_16.56.45.mp4
Red box: previous tracking object
Green box: fixed tracking object
test result: TIER IV INTERNAL
261/264 PASS
! This test shows that the reference mode can be used as before, not testing the problem is resolved (since this scene is not in the test)
Effects on system behavior
Not applicable.
Interface changes
Not applicable.
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.