Package Summary
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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
| Tags | No category tags. |
| Version | 0.48.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-12-05 |
| 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.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(image_object_locator): add near range camera VRU detector to perception pipeline (#11622) add near range camera VRU detector to perception pipeline
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
feat(autoware_multi_object_tracker): adaptation to autoware_utils (#10465)
- feat(autoware_multi_object_tracker): adaptation to autoware_utils
- style(pre-commit): autofix
- refactor(autoware_multi_object_tracker): adaptation to autoware_utils
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(mult object tracker): publish merged object if it is multi-channel mode (#11386)
- feat(multi_object_tracker): add support for merged object output and related parameters
- feat(multi_object_tracker): add function to convert DynamicObject to DetectedObject and implement merged object publishing
- fix(multi_object_tracker): prevent merged objects publisher from being in input channel topics
- fix(multi_object_tracker): improve warning message for merged objects publisher in input channel
- feat(multi_object_tracker): add is_simulation parameter to control merged object publishing
- fix(multi_object_tracker): correct ego_frame_id variable usage and declaration
- feat(multi_object_tracker): update getMergedObjects to accept transform and apply frame conversion
- feat(multi_object_tracker): optimize getMergedObjects for efficient frame transformation
- fix(multi_object_tracker): fix bug when merged_objects_pub_ is nullptr
- feat(multi_object_tracker): refactor orientation availability conversion to improve code clarity
- fix(multi_object_tracker): remove redundant comment in publish method for clarity
- feat(multi_object_tracker): rename parameters for clarity and add publish_merged_objects option
- fix(multi_object_tracker): rename pruning parameters for consistency in schema
* Update perception/autoware_multi_object_tracker/src/processor/processor.cpp Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
* feat(multi_object_tracker): replace 'is_simulation' with 'publish_merged_objects' in launch files and parameters ---------Co-authored-by: Yoshi Ri <<yoshiyoshidetteiu@gmail.com>>
-
feat(tests): add test bench for association and update test configurations (#11254)
- feat(tests): add merge test bench and update test configurations
- docs(README): update profiling test instructions and clarify test names
- refactor(tests): rename merge test to association test and update related files
- refactor(tests): enhance object initialization and noise handling in detection tests
- refactor(tests): extract unknown state update logic into a separate function
- refactor(tests): update object classification and enhance test descriptions
- feat(tests): add static transform publishing for bag writing in association test
- feat(test): add lemniscate test bench and update includes
* feat(test): implement lemniscate test bench and remove obsolete files ---------
-
fix(multi object tracker): suppress uncertain velocity output of tracked objects (#11262)
- fix(tracker): update getTrackedObject methods to include to_publish parameter for object publishing control
- fix(tracker): clarify vel_limit_buffer comment in getTrackedObject methods for better understanding
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]