Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_multi_object_tracker at Robotics Stack Exchange
Package Summary
| Version | 0.50.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 | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat!: remove ROS 2 Galactic codes (#11905)
-
fix(multi_object_tracker): add setOrientationAvailability method to trackers to fix orientation bug (#12013)
- fix(multi_object_tracker): add setOrientationAvailability method to trackers
- Implemented setOrientationAvailability in MultipleVehicleTracker and PedestrianAndBicycleTracker to manage orientation availability.
- Updated TrackerBase to include a default implementation of setOrientationAvailability.
- Enhanced vehicle and pedestrian tracking logic to utilize the new orientation availability feature. This change improves the flexibility of orientation handling across different tracker types.
- refactor(tracker_base): remove unused tracker includes
- Removed unnecessary includes for MultipleVehicleTracker and PedestrianAndBicycleTracker from tracker_base.cpp to clean up the codebase. This change helps streamline the tracker base implementation by eliminating unused dependencies. ---------
-
fix(multi_object_tracker): conform to updated TopicMetadata type (#11880)
-
Contributors: Mete Fatih Cırıt, Ryohsuke Mitsudome, lei.gu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(multi_object_tracker): improve shape unstable object tracking (#10864)
* refactor: rebase to latest version and solve conflict feat: implement giou for multi_object_tracker association feat: replace angle gate and iou gate with giou gate feat: check significant shape change (unstable) between tracker and measurement for vehicle trackers feat: implement weak update which mainly trust predicted states for measurement with significant shape change
* fix: solve rebase conflict chore: remove unused angle gate logic and related config
- style(pre-commit): autofix
- fix: cppcheck error
- chore: remove unused getFormedYawAngle function.
- fix: rebase error
* fix: solve conflict feat: change shape smoothing to full shape update when recent measurement is stable perf: use 1d-iou for pedestrain and unknown object during association for better computational performance perf: remove min/max area gate for association of vehicle trackers and detections
- fix: style by prettier
- perf: relax unknown object association threshold to improve robustness
- style(pre-commit): autofix
* feat: use approximate dimensions for polygon (e.g. unknown) object for 1d-IoU calculation during association perf: set association threshold to -0.5 to enable MOTORBIKE association without GIOU overlap (negative value) chore: rename giou back to iou for variables/configs due to mixed use of 1d-iou and 3d-giou during association
- fix: copy mistake
* fix: (typo) pedestrain -> pedestrian fix: remove max_rad_matrix in test bench due to removal from multi_object_tracker association
- fix: CI error
* refactor: use shared MIN_AREA definition fix: giou return value ranges from -1 to 1, use INVALID_SCORE of -1 instead of 0.0
* perf: increase adaptive threshold on bev area to relax cov threshold on large vehicle feat: implement shape update mechanism that utilizing exponential moving average for shape smoothing and handle process noise inflation due to consecutive weak update chore: add some commented-out print out to debug tracker states (only for git memo, delete in next commit)
- chore: remove code for tracker status monitoring and debug.
* feat: modify shape update logic to be more robust against outlier detection perf: tune threshold to reduce shape change
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]
- output/merged_objects [default: merged_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]
- publish_merged_objects [default: false]