Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-03 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takayuki Murooka
- Yoshi Ri
Authors
autoware_object_recognition_utils
Overview
This package contains a library of common functions that are useful across the perception module and planning module.
Design
Conversion
Ensuring accurate and efficient converting between DetectedObject and TrackedObject types.
Geometry
It provides specialized implementations for each object type (e.g., DetectedObject, TrackedObject, and PredictedObject) to extract the pose information.
Matching
It provides utility functions for calculating geometrical metrics, such as 2D IoU (Intersection over Union), GIoU (Generalized IoU), Precision, and Recall for objects. It also provides helper functions for computing areas of intersections, unions, and convex hulls of polygon
Object Classification
Designed for processing and classifying detected objects, it implements the following functionalities:
- Handling of vehicle category checks
- Conversion between string class names and numerical labels
- Probability-based classification selection
- String representation of object labels
Predicted Path Utils
Providing utility functions for handling predicted paths of objects. It includes the following functionalities:
- calcInterpolatedPose: Calculates an interpolated pose from a predicted path based on a given time.
- resamplePredictedPath (version 1): Resamples a predicted path according to a specified time vector, optionally using spline interpolation for smoother results.
- resamplePredictedPath (version 2): Resamples a predicted path at regular time intervals, including the terminal point, with optional spline interpolation.
Usage
include all-in-one header files if multiple functionalities are needed:
#include <autoware_object_recognition_utils/object_recognition_utils.hpp>
include specific header files if only a subset of functionalities is needed:
#include <autoware_object_recognition_utils/object_classifier.hpp>
Changelog for package autoware_object_recognition_utils
1.1.0 (2025-05-01)
- refactor(autoware_object_recognition_utils): use [autoware_utils_*]{.title-ref} instead of [autoware_utils]{.title-ref} (#385) use autoware_utils_*
- Contributors: Yutaka Kondo
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(object_recognition_utils): allow lowercase to convert string label to label enum (#1184) feat: allow lowercase to convert string label to label enum
-
refactor(autoware_object_recognition_utils): make transform.hpp testable (#1129)
* refactor(autoware_object_recognition_utils): make transform.hpp testable Move the global [namespace detail]{.title-ref} TF helpers (getTransform/getTransformMatrix) into autoware::object_recognition_utils::detail to stop leaking them into the global ::detail namespace (an ODR/symbol-collision hazard for any installed header consumer), and extract the per-object transform math into pure helpers (applyTransformToObjects / applyTransformToFeatureObjects) that take an already-resolved tf2::Transform (and Eigen::Matrix4f). transformObjects and transformObjectsWithFeature become thin lookup+apply wrappers, with their public template signatures unchanged. This adds an additive, buffer-free testing seam. Add test/src/test_transform.cpp covering the identity passthrough branch, the missing-transform failure path, the pure pose/covariance math (pure translation and 90-degree yaw), and the end-to-end lookup+apply path through a live tf2_ros::Buffer seeded with a static transform. transform.hpp previously had zero test coverage. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_object_recognition_utils): avoid redundant deep copy in transform helpers Pass the already-copied output_msg as the helper input on the success path so applyTransformToObjects / applyTransformToFeatureObjects skip their internal output_msg = input_msg copy (self-assignment no-op). The transforms are applied in-place per object, so input == output aliasing is safe and the output for every code path is unchanged. Refs: autowarefoundation/autoware_core#1096
* test(autoware_object_recognition_utils): cover feature-object transform via Core-local stand-in type (#74) The feature-object transform overloads (transformObjectsWithFeature and the extracted detail::applyTransformToFeatureObjects) are duck-typed function templates: they only touch msg.header, the per-object pose_with_covariance.pose, and feature.cluster (a PointCloud2). They are never instantiated inside Core, and the concrete wire type tier4_perception_msgs::msg::DetectedObjectsWithFeature lives outside Core. Instead of depending on tier4_perception_msgs (a non-Core package) or guarding the tests behind __has_include, instantiate the templates against a small Core-local stand-in struct built from Core-available message types (autoware_perception_msgs::msg::DetectedObject + sensor_msgs PointCloud2). This gives the feature path the same coverage as the objects path -- direct helper unit tests with hand-computed pose/cluster oracles and an end-to-end test through a live tf2_ros::Buffer -- with no extra dependency, so the tests actually compile and run in Core CI. Refs: autowarefoundation/autoware_core#1096 ---------
-
feat(object_recognition_utils): templatize [object_recognition_utils]{.title-ref} buffer (#1120)
- templatize object_recognition_utils
- reflect copilot review about header files
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(object_recognition_utils): support ANIMAL and HAZARD labels (#1088)
-
Contributors: Koichi Imai, Kotaro Uetake, Yoshi Ri, Yutaka Kondo, github-actions
1.8.0 (2026-05-01)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to common and testing packages (#967)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_motion_velocity_planner_common |