Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]
Messages
Services
Plugins
Recent questions tagged autoware_euclidean_cluster at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Dai Nguyen
- Lei Gu
- Taekjin Lee
Authors
autoware_euclidean_cluster
Purpose
autoware_euclidean_cluster is a package for clustering points into smaller parts to classify objects.
This package has three clustering methods: euclidean_cluster, voxel_grid_based_euclidean_cluster,
and label_based_euclidean_cluster.
Inner-workings / Algorithms
euclidean_cluster
pcl::EuclideanClusterExtraction is applied to points. See official document for details.
voxel_grid_based_euclidean_cluster
- A centroid in each voxel is calculated by
pcl::VoxelGrid. - The centroids are clustered by
pcl::EuclideanClusterExtraction. - The input points are clustered based on the clustered centroids.
label_based_euclidean_cluster
LabelBasedEuclideanCluster converts a semantically segmented pointcloud into DetectedObjects.
See docs/label-based-euclidean-cluster.md for the node-specific behavior and configuration details.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
output |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
cluster pointcloud |
debug/clusters |
sensor_msgs::msg::PointCloud2 |
colored cluster pointcloud for visualization |
Parameters
Core Parameters
euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/euclidean_cluster.schema.json”) }}
voxel_grid_based_euclidean_cluster
{{ json_to_markdown(“perception/autoware_euclidean_cluster/schema/voxel_grid_based_euclidean_cluster.schema.json”) }}
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
The use_height option of voxel_grid_based_euclidean_cluster isn’t implemented yet.
Changelog for package autoware_euclidean_cluster
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix: missing dependencies for tl_expected and libexpected-dev (#13438)
-
feat(euclidean_cluster): add support of filtering clusters regarding size (#13248)
- feat: add support of filtering clusters regarding size
- refactor: replace parameter name
- feat: add label_parameters for motorcycle and animal
- feat: include car into confusable label groups
* Apply suggestion from \@badai-nguyen Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>> ---------Co-authored-by: badai nguyen <<94814556+badai-nguyen@users.noreply.github.com>>
-
fix(perception): complete node design files for label-based euclidean cluster and PTv3 (#13253)
- refactor(ptv3.node.yaml): update parameter definitions and add new model paths
- feat(LabelBasedEuclideanCluster): add new node configuration for label-based clustering
* fix(DetectedObjectFeatureRemover): correct plugin name in node configuration ---------
-
refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(euclidean_cluster): remove ptv3 experimental and apply autoware_core features (#13085)
-
feat(euclidean_cluster): apply agnocast_wrapper::Node to label_based_euclidean_cluster (#13082)
- fix: conflict
* fix(euclidean_cluster): use AgnocastOnlyCallbackIsolatedExecutor for label_based node Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>> ---------Co-authored-by: Koichi Imai <<koichi.imai.2@tier4.jp>>
-
feat(euclidean-cluster): apply SemanticLabel to LabelBasedEuclideanCluster (#12911)
-
feat(eucliean_cluster): compute cluster probability (#12883)
- feat: include point indices of cluster
- feat: compute cluster probability
* docs: update document ---------
-
Contributors: Kotaro Uetake, Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(euclidean_cluster): extract clustering logic from ROS node (#12804)
- refactor: extract core logic from ROS node
- test: update unit test and integration test for node
- chore: restore note
- refactor: add explicit validation in the constructor
- test: fix test
* refactor: apply tl_expected to the return value of processor ---------
-
refactor(euclidean_cluster): replace hardcoded label handling with parameter driven parsing (#12796)
- refactor: replace hardcoded label handling with parameter-driven parsing
- test: add unittest
* refactor: add a helper function between parsing label cluster params and confusable label groups params ---------
-
feat(label_based_euclidean_cluster): add per-label clustering
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- launch/label_based_euclidean_cluster.launch.xml
-
- input/pointcloud [default: ~/input/segmented/pointcloud]
- output/objects [default: ~/output/objects]
- output/pointcloud [default: ~/output/pointcloud]
- param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/label_based_euclidean_cluster.param.yaml]
- launch/voxel_grid_based_euclidean_cluster.launch.xml
-
- input_pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- input_map [default: /map/pointcloud_map]
- output_clusters [default: clusters]
- use_low_height_cropbox [default: false]
- voxel_grid_based_euclidean_param_path [default: $(find-pkg-share autoware_euclidean_cluster)/config/voxel_grid_based_euclidean_cluster.param.yaml]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
- agnocast_heaphook_path [default: /opt/ros/humble/lib/libagnocast_heaphook.so]