Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_object_recognition_utils at Robotics Stack Exchange
Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(common): declare the dependencies these packages use (#1367) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers. Boost.Serialization is declared separately from libboost-dev because it needs its own library at link time.
-
feat(point_types, object_recognition_utils): segmentation pointcloud (#1288)
- feat: add definition of point type for segmentation points
- feat: add helper function for segmented pointcloud label
- feat: replace default entropy value by Nan
- feat: add PointCloudClassification::INVALID
- refactor: move PointCloudClassification to autoware_point_types
* docs: update README ---------
-
Contributors: Kotaro Uetake, Mete Fatih Cırıt, github-actions
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
File truncated at 100 lines see the full file