-
Notifications
You must be signed in to change notification settings - Fork 683
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(tracking_object_merger): merge tracked object. especially for far radar object and conventional lidar object #4340
feat(tracking_object_merger): merge tracked object. especially for far radar object and conventional lidar object #4340
Conversation
43b8f34
to
d58f63d
Compare
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4340 +/- ##
==========================================
- Coverage 14.78% 0.00% -14.79%
==========================================
Files 1644 9 -1635
Lines 113948 516 -113432
Branches 35160 0 -35160
==========================================
- Hits 16850 0 -16850
+ Misses 78143 516 -77627
+ Partials 18955 0 -18955
☔ View full report in Codecov by Sentry. |
4012db7
to
aa4e9ba
Compare
WalkthroughThe changes include modifications to the Changes
|
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.
Files selected (19)
- perception/radar_object_tracker/launch/radar_object_tracker.launch.xml (1)
- perception/tracking_object_merger/CMakeLists.txt (1)
- perception/tracking_object_merger/README.md (1)
- perception/tracking_object_merger/include/tracking_object_merger/data_association/data_association.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/data_association/solver/gnn_solver.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/data_association/solver/gnn_solver_interface.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/data_association/solver/mu_successive_shortest_path.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/data_association/solver/successive_shortest_path.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/decorative_tracker_merger.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/utils/tracker_state.hpp (1)
- perception/tracking_object_merger/include/tracking_object_merger/utils/utils.hpp (1)
- perception/tracking_object_merger/launch/decorative_tracker_merger.launch.xml (1)
- perception/tracking_object_merger/package.xml (1)
- perception/tracking_object_merger/src/data_association/data_association.cpp (1)
- perception/tracking_object_merger/src/data_association/mu_successive_shortest_path/mu_successive_shortest_path_wrapper.cpp (1)
- perception/tracking_object_merger/src/data_association/successive_shortest_path/successive_shortest_path.cpp (1)
- perception/tracking_object_merger/src/decorative_tracker_merger.cpp (1)
- perception/tracking_object_merger/src/utils/tracker_state.cpp (1)
- perception/tracking_object_merger/src/utils/utils.cpp (1)
Files ignored due to filter (2)
- perception/tracking_object_merger/config/data_association_matrix.param.yaml
- perception/tracking_object_merger/config/decorative_tracker_merger_policy.param.yaml
Files not summarized due to errors (4)
- perception/tracking_object_merger/src/data_association/data_association.cpp (diff tokens exceeds limit)
- perception/tracking_object_merger/src/data_association/successive_shortest_path/successive_shortest_path.cpp (diff tokens exceeds limit)
- perception/tracking_object_merger/src/decorative_tracker_merger.cpp (diff tokens exceeds limit)
- perception/tracking_object_merger/src/utils/utils.cpp (diff tokens exceeds limit)
Files skipped from review due to trivial changes (12)
- perception/tracking_object_merger/README.md
- perception/tracking_object_merger/include/tracking_object_merger/data_association/solver/gnn_solver.hpp
- perception/tracking_object_merger/include/tracking_object_merger/utils/tracker_state.hpp
- perception/tracking_object_merger/include/tracking_object_merger/utils/utils.hpp
- perception/tracking_object_merger/package.xml
- perception/tracking_object_merger/include/tracking_object_merger/data_association/data_association.hpp (diff too large)
- perception/tracking_object_merger/include/tracking_object_merger/decorative_tracker_merger.hpp (diff too large)
- perception/tracking_object_merger/src/data_association/data_association.cpp (diff too large)
- perception/tracking_object_merger/src/data_association/successive_shortest_path/successive_shortest_path.cpp (diff too large)
- perception/tracking_object_merger/src/decorative_tracker_merger.cpp (diff too large)
- perception/tracking_object_merger/src/utils/tracker_state.cpp (diff too large)
- perception/tracking_object_merger/src/utils/utils.cpp (diff too large)
Review comments generated (18)
- Review: 14
- LGTM: 4
Tips
Chat with
CodeRabbit Bot (@coderabbitai
)
- Reply on review comments left by this bot to ask follow-up questions. A review comment is a comment on a diff or a file.
- Invite the bot into a review comment chain by tagging
@coderabbitai
in a reply.
Code suggestions
- The bot may make code suggestions, but please review them carefully before committing since the line number ranges may be misaligned.
- You can edit the comment made by the bot and manually tweak the suggestion if it is slightly off.
Pausing incremental reviews
- Add
@coderabbitai: ignore
anywhere in the PR description to pause further reviews from the bot.
...ger/src/data_association/mu_successive_shortest_path/mu_successive_shortest_path_wrapper.cpp
Show resolved
Hide resolved
perception/radar_object_tracker/launch/radar_object_tracker.launch.xml
Outdated
Show resolved
Hide resolved
...erger/include/tracking_object_merger/data_association/solver/mu_successive_shortest_path.hpp
Show resolved
Hide resolved
...erger/include/tracking_object_merger/data_association/solver/mu_successive_shortest_path.hpp
Show resolved
Hide resolved
...erger/include/tracking_object_merger/data_association/solver/mu_successive_shortest_path.hpp
Show resolved
Hide resolved
aa4e9ba
to
2287271
Compare
@yukkysaito I resolved all comments by coderabbit, so could you review this PR again? |
perception/tracking_object_merger/src/data_association/data_association.cpp
Outdated
Show resolved
Hide resolved
perception/tracking_object_merger/src/data_association/data_association.cpp
Outdated
Show resolved
Hide resolved
perception/tracking_object_merger/src/data_association/data_association.cpp
Outdated
Show resolved
Hide resolved
project(tracking_object_merger VERSION 1.0.0) | ||
|
||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wconversion) |
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.
[imo]
Could you please correct/resolve the spelling errors here and in some of the code?
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. I fixed this comment in ff4b3c8. (BTW -Wconversion
is not spelling miss.)
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.
@YoshiRi
Thanks! Even if it's not miss, we should not leave the error as it is.
Maybe adding comment like # cspell:ignore SOMEWORD
or adding word to the word dictionary is good way to resolve this.
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
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
ff4b3c8
to
d564b31
Compare
…r radar object and conventional lidar object (autowarefoundation#4340) * init package: migrate from object merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add node outline and check build passed Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add util functions to interpolate tracked objs Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add object merger function using interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * create object merger utils Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add kinematics velocity merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add association and merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * rename perception_utils to object_recognition_utils Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add comment and complete main subscriber Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add parameter control and rename some executable files Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * refactoring: fix apparent bugs Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add debug tools to check association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * temporary fix: radar tracker node name to anon Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * debug: data association tuning Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * rename copyright and add merger util function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add tracker_state and update association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update decorative tracker by using tracker_state Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update system around measurement state function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix radar object not merged problem Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add existence probability control Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * create const function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * change association settings depend on measurement and tracker state Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix association matrix Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * put hardcoded node parameter to yaml file Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * move tracker state parameter to yaml file Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * remove prediction failed objects Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix bug when none closest time sub objects found Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add velocity diff gate in association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix object interpolation problem Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * use fixed object interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add README Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add interpolated sub object publisher for debug Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add debug message and fix interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update README Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix unintended changes in radar tracking launch Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add CmakeLists version Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * remove unnecessary debug description and type cast causes build warning Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix spell-check error Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * replace autoware_utils.hpp Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> --------- Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
…r radar object and conventional lidar object (autowarefoundation#4340) * init package: migrate from object merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add node outline and check build passed Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add util functions to interpolate tracked objs Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add object merger function using interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * create object merger utils Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add kinematics velocity merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add association and merger Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * rename perception_utils to object_recognition_utils Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add comment and complete main subscriber Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add parameter control and rename some executable files Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * refactoring: fix apparent bugs Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add debug tools to check association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * temporary fix: radar tracker node name to anon Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * debug: data association tuning Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * rename copyright and add merger util function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add tracker_state and update association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update decorative tracker by using tracker_state Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update system around measurement state function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix radar object not merged problem Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add existence probability control Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * create const function Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * change association settings depend on measurement and tracker state Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix association matrix Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * put hardcoded node parameter to yaml file Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * move tracker state parameter to yaml file Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * remove prediction failed objects Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix bug when none closest time sub objects found Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add velocity diff gate in association Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix object interpolation problem Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * use fixed object interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add README Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add interpolated sub object publisher for debug Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add debug message and fix interpolation Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * update README Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix unintended changes in radar tracking launch Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * add CmakeLists version Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * remove unnecessary debug description and type cast causes build warning Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * fix spell-check error Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> * replace autoware_utils.hpp Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com> --------- Signed-off-by: yoshiri <yoshiyoshidetteiu@gmail.com>
Description
Added tracking object merger package.
Currently we add only
decorative tracked object merger
, which aims to merge sub object (usually radar far tracking) into main object.The outline of newly added node is shown as below:
![image](https://private-user-images.githubusercontent.com/20086766/265369814-24492c78-77ce-4e3b-8a6a-1c1c27f66183.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzg1MDAsIm5iZiI6MTczOTM3ODIwMCwicGF0aCI6Ii8yMDA4Njc2Ni8yNjUzNjk4MTQtMjQ0OTJjNzgtNzdjZS00ZTNiLThhNmEtMWMxYzI3ZjY2MTgzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE2MzY0MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhM2U5M2JhMWZhOGMxMzQxMTRhYWZlM2FiZTc0NmU4YzNkNGQ5NzUxN2FjNWJlY2FkZmUzNmIxN2ZlOTg3OTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AU4jcuj-DAw9oZsIED7x4uAGHcsq-v9CaTQOIB0zC50)
time sync
Time synchronization is processed with interpolation/prediction function.
data association
Compared to conventional data association,
max_velocity_difference
gate is newly added.This aims to prevent the unintended association between static lidar object and false positive radar moving object.
Also, this package use different data association parameters depends on input sensor and object observation state.
tracklet management
This package uses
existence probability
to manage tracklet.Largest difference from other tracker packages in autoware is that it has two threshold; publish_threshold and remove_threshold.
Therefore it can keep object not which does not have enough confidence.
![image](https://private-user-images.githubusercontent.com/20086766/265375275-ee1c67bc-c018-4882-912b-3c233b7d9682.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzg1MDAsIm5iZiI6MTczOTM3ODIwMCwicGF0aCI6Ii8yMDA4Njc2Ni8yNjUzNzUyNzUtZWUxYzY3YmMtYzAxOC00ODgyLTkxMmItM2MyMzNiN2Q5NjgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE2MzY0MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYyMjQ1NjQ2Nzc0MWRkOTlkODdjMTVhZmE2ZGIwNmE2MjhiYmQ4MjQ0YWI2NzQ3NjkzMWQwYzY0YTM2ZTViNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-1DQLiCwD5k3ZRp08SxmoDxt7D0S05EFFWzBBNyp030)
Related links
Tests performed
Tested with odaiba data.
Sample in youtube.
Notes for reviewers
Interface changes
Effects on system behavior
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.
Summary by CodeRabbit
Release Notes:
tracking_object_merger
package, including data association, solver interfaces, merger policies, tracker state, and utility functions.name
attribute of a<node>
element in a launch file to avoid potential conflicts with other parts of the system.tracking_object_merger
package.