Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Taekjin Lee
- Lei Gu
Authors
multi_object_tracker
Purpose
The results of the detection are processed by a time series. The main purpose is to give ID and estimate velocity.
Inner-workings / Algorithms
This multi object tracker consists of data association and EKF.
Data association
The data association performs maximum score matching, called min cost max flow problem. In this package, mussp[1] is used as solver. In addition, when associating observations to tracers, data association have gates such as the area of the object from the BEV, Mahalanobis distance, and maximum distance, depending on the class label.
EKF Tracker
Models for pedestrians, bicycles (motorcycles), cars and unknown are available. The pedestrian or bicycle tracker is running at the same time as the respective EKF model in order to enable the transition between pedestrian and bicycle tracking. For big vehicles such as trucks and buses, we have separate models for passenger cars and large vehicles because they are difficult to distinguish from passenger cars and are not stable. Therefore, separate models are prepared for passenger cars and big vehicles, and these models are run at the same time as the respective EKF models to ensure stability.
Inputs / Outputs
Input
Multiple inputs are pre-defined in the input channel parameters (described below) and the inputs can be configured
Name | Type | Description |
---|---|---|
input/detection**/objects |
std::string |
input topic |
input/detection**/channel |
std::string |
input channel configuration |
rule of the channel configuration
- ‘none’ or empty : Indicates that this detection input channel is not used/disabled
- Any other string : Specifies a custom channel name to be used for the detection input, configured in
schema/input_channels.schema.json
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Example configurations:
- Single detection input:
input/detection01/objects: /perception/object_recognition/detection/objects
input/detection01/channel: detected_objects # general input channel type
input/detection02/objects: input/objects02
input/detection02/channel: none # Disabled
- Multiple detection inputs:
# lidar centerpoint
input/detection01/objects: /perception/object_recognition/detection/lidar_centerpoint/objects
input/detection01/channel: lidar_centerpoint
# lidar short_range centerpoint
input/detection02/channel: /perception/object_recognition/detection/centerpoint_short_range/objects
input/detection02/objects: lidar_centerpoint_short_range
# camera lidar fusion
input/detection03/objects: /perception/object_recognition/detection/clustering/camera_lidar_fusion/objects
input/detection03/channel: camera_lidar_fusion
# camera lidar fusion based irregular object detection
input/detection04/objects: /perception/object_recognition/detection/irregular_object/objects
input/detection04/channel: camera_lidar_fusion_irregular
# detection by tracker
input/detection05/objects: /perception/object_recognition/detection/detection_by_tracker/objects
input/detection05/channel: detection_by_tracker
# radar
input/detection06/objects: /perception/object_recognition/detection/radar/objects
input/detection06/channel: radar
# disable
input/detection07/objects: input/objects07
input/detection07/channel: none # Disabled
Up to 12 detection inputs can be configured (detection01 through detection12). Each input consists of an objects topic and its corresponding channel configuration.
Output
Name | Type | Description |
---|---|---|
~/output |
autoware_perception_msgs::msg::TrackedObjects |
tracked objects |
Parameters
Input Channel parameters
{{ json_to_markdown(“perception/autoware_multi_object_tracker/schema/input_channels.schema.json”) }}
Core Parameters
File truncated at 100 lines see the full file
Changelog for package autoware_multi_object_tracker
0.47.0 (2025-08-11)
-
fix(multi object tracker): tracker type to associate (#11132)
- feat(multi_object_tracker): add tracker priority for object classification
- feat(multi_object_tracker): introduce TrackerType enum and update tracker implementations
- refactor(multi_object_tracker): remove confident_count_threshold parameter and related logic
- feat(multi_object_tracker): update TrackerType enum and refactor tracker map usage
- feat(multi_object_tracker): add can_assign_map for tracker type assignments and update related logic
- refactor(tracker_processor): improve tracker sorting logic and remove debug output
- feat(multi_object_tracker): make tracker_type private
- refactor(tracker_processor): remove debug output from mergeOverlappedTracker function
- feat(multi_object_tracker): refactor can_assign_map initialization and update tracker_map usage
- style(pre-commit): autofix
- feat(trackers): initialize tracker_type in constructors for all tracker classes
* refactor(processor): replace std::map with std::unordered_map for tracker_map and thresholds refactor(multi_object_tracker): update error message for invalid association matrix size
- feat(multi_object_tracker): refactor tracker type retrieval using unordered_map for improved efficiency
- style(pre-commit): autofix
* refactor(processor): rename channel_priority to tracker_priority for clarity in mergeOverlappedTracker ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(multi_object_tracker): add irregular objects topic (#11102)
- fix(multi_object_tracker): add irregular objects topic
- fix: change channel order
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update perception/autoware_multi_object_tracker/config/input_channels.param.yaml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
* Update launch/tier4_perception_launch/launch/object_recognition/tracking/tracking.launch.xml Co-authored-by: Taekjin LEE <<technolojin@gmail.com>>
- fix: unused channels
- fix: schema
- docs: update readme
- style(pre-commit): autofix
- fix: short name
* feat: add lidar_centerpoint_short_range input channel with default flags ---------Co-authored-by: Taekjin LEE <<technolojin@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
fix(multi object tracker): fix classification filter implementation (#11111)
- feat(tracker): implement Bayesian update for classification probabilities
- feat(tracker): add UUID to updated classification debug output
- feat(tracker): add classification handling in Tracker and TrackerProcessor
- feat(tracker): enhance classification update with normalization and refined probability calculations
- feat(tracker): simplify classification update logic and remove unused UUID debug output
- fix(tracker): bring back the association matrix
- refactor(tracker): move normalization logic inline in updateClassification
- fix(tracker): remove redundant classification assignment in tracked objects
- fix(tracker): adjust true negative rate and improve normalization comment in updateClassification
- feat(tracker): add updateClassification method and integrate it in mergeOverlappedTracker
- fix(tracker): add cached_measurement_count_ to improve object caching logic
- fix(tracker): add fallback logic for unknown labels in vehicle and pedestrian trackers
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
- launch/multi_object_tracker.launch.xml
-
- input/detection01/objects [default: input/objects01]
- input/detection01/channel [default: none]
- input/detection02/objects [default: input/objects02]
- input/detection02/channel [default: none]
- input/detection03/objects [default: input/objects03]
- input/detection03/channel [default: none]
- input/detection04/objects [default: input/objects04]
- input/detection04/channel [default: none]
- input/detection05/objects [default: input/objects05]
- input/detection05/channel [default: none]
- input/detection06/objects [default: input/objects06]
- input/detection06/channel [default: none]
- input/detection07/objects [default: input/objects07]
- input/detection07/channel [default: none]
- input/detection08/objects [default: input/objects08]
- input/detection08/channel [default: none]
- input/detection09/objects [default: input/objects09]
- input/detection09/channel [default: none]
- input/detection10/objects [default: input/objects10]
- input/detection10/channel [default: none]
- input/detection11/objects [default: input/objects11]
- input/detection11/channel [default: none]
- input/detection12/objects [default: input/objects12]
- input/detection12/channel [default: none]
- output/objects [default: objects]
- tracker_setting_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/multi_object_tracker_node.param.yaml]
- data_association_matrix_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/data_association_matrix.param.yaml]
- input_channels_path [default: $(find-pkg-share autoware_multi_object_tracker)/config/input_channels.param.yaml]