Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
Messages
Services
Plugins
Recent questions tagged autoware_compare_map_segmentation at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Akihisa Nagata
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_compare_map_segmentation
Purpose
The autoware_compare_map_segmentation
is a package that filters the ground points from the input pointcloud by using map info (e.g. pcd, elevation map or split map pointcloud from map_loader interface).
Inner-workings / Algorithms
Compare Elevation Map Filter
Compare the z of the input points with the value of elevation_map. The height difference is calculated by the binary integration of neighboring cells. Remove points whose height difference is below the height_diff_thresh
.
Distance Based Compare Map Filter
This filter compares the input pointcloud with the map pointcloud using the nearestKSearch
function of kdtree
and removes points that are close to the map point cloud. The map pointcloud can be loaded statically at once at the beginning or dynamically as the vehicle moves.
Voxel Based Approximate Compare Map Filter
The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them.
Voxel Based Compare Map Filter
The filter loads the map pointcloud (static loading whole map at once at beginning or dynamic loading during vehicle moving) and utilizes VoxelGrid to downsample map pointcloud.
For each point of input pointcloud, the filter use getCentroidIndexAt
combine with getGridCoordinates
function from VoxelGrid class to check if the downsampled map point existing surrounding input points. Remove the input point which has downsampled map point in voxels containing or being close to the point.
Voxel Distance based Compare Map Filter
This filter is a combination of the distance_based_compare_map_filter and voxel_based_approximate_compare_map_filter. The filter loads the map point cloud, which can be loaded statically at the beginning or dynamically during vehicle movement, and creates a voxel grid and a k-d tree of the map point cloud. The filter uses the getCentroidIndexAt function in combination with the getGridCoordinates function from the VoxelGrid class to find input points that are inside the voxel grid and removes them. For points that do not belong to any voxel grid, they are compared again with the map point cloud using the radiusSearch function of the k-d tree and are removed if they are close enough to the map.
Inputs / Outputs
Compare Elevation Map Filter
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/elevation_map |
grid_map::msg::GridMap |
elevation map |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
map_layer_name |
string | elevation map layer name | elevation |
map_frame |
float | frame_id of the map that is temporarily used before elevation_map is subscribed | map |
height_diff_thresh |
float | Remove points whose height difference is below this value [m] | 0.15 |
Other Filters
Input
Name | Type | Description |
---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/map |
sensor_msgs::msg::PointCloud2 |
map (in case static map loading) |
/localization/kinematic_state |
nav_msgs::msg::Odometry |
current ego-vehicle pose (in case dynamic map loading) |
Output
Name | Type | Description |
---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Name | Type | Description | Default value |
---|---|---|---|
use_dynamic_map_loading |
bool | map loading mode selection, true for dynamic map loading, false for static map loading, recommended for no-split map pointcloud |
true |
distance_threshold |
float | Threshold distance to compare input points with map points [m] | 0.5 |
map_update_distance_threshold |
float | Threshold of vehicle movement distance when map update is necessary (in dynamic map loading) [m] | 10.0 |
map_loader_radius |
float | Radius of map need to be loaded (in dynamic map loading) [m] | 150.0 |
timer_interval_ms |
int | Timer interval to check if the map update is necessary (in dynamic map loading) [ms] | 100 |
publish_debug_pcd |
bool | Enable to publish voxelized updated map in debug/downsampled_map/pointcloud for debugging. It might cause additional computation cost |
false |
downsize_ratio_z_axis |
double | Positive ratio to reduce voxel_leaf_size and neighbor point distance threshold in z axis | 0.5 |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_compare_map_segmentation
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
-
Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
-
feat(autoware_pointcloud_preprocessor): add diagnostic message (#10579)
- feat: add diag msg
- chore: fix code
- chore: remove outlier count in ring
- chore: move format timestamp to utility
- chore: add paramter to schema
- chore: add parameter for cluster
- chore: clean code
- chore: fix schema
- chore: move diagnostic updater to filter base class
- chore: fix schema
- chore: fix spell error
- chore: set up diagnostic updater
- refactor: utilize autoware_utils diagnostic message
- chore: add publish
- chore: add detail message
- chore: const for time difference
- refactor: structure diagnostics to class
- chore: const reference
- chore: clean logic
- chore: modify function name
- chore: update parameter
- chore: move evaluate status into diagnostic
- chore: fix description for concatenated pointcloud
- chore: timestamp mismatch threshold
- chore: fix diagnostic key
* chore: change function naming ---------
-
Contributors: TaikiYamada4, Yi-Hsiang Fang (Vivid)
0.45.0 (2025-05-22)
-
Merge remote-tracking branch 'origin/main' into tmp/notbot/bump_version_base
-
chore: perception code owner update (#10645)
- chore: update maintainers in multiple perception packages
* Revert "chore: update maintainers in multiple perception packages" This reverts commit f2838c33d6cd82bd032039e2a12b9cb8ba6eb584.
- chore: update maintainers in multiple perception packages
* chore: add Kok Seang Tan as maintainer in multiple perception packages ---------
-
chore(elevation_map): add \@asa-naki to maitainer (#10621)
-
fix(autoware_compare_map_segmentation): handle empty output point cloud (#10572)
- fix(voxel_based_compare_map_filter): handle empty output point cloud and set appropriate frame_id
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: Kosuke Takeuchi, Taekjin LEE, TaikiYamada4
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(compare_map_segmentation): publish warning when pcl::voxelgrid failed to filter with large leaf size (#10381)
* feat: add warn in pcl overflow with compare_map chore: fix message length feat: add sanity check into voxel based compare map feat: add feasibility check function
- fix: update include paths for voxel_grid_map_loader in segmentation filters
- feat: add diagnostic status handling in VoxelGridMapLoader and related components
- feat: add diagnostic updater for voxel-based compare map filter and improve status reporting
- refactor: move isFeasibleWithPCLVoxelGrid function to
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
tier4_perception_launch |
Launch files
- launch/compare_elevation_map_filter.launch.xml
-
- compare_elevation_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/compare_elevation_map_filter.param.yaml]
- input [default: /input]
- input_elevation_map [default: /input/elevation_map]
- output [default: /output]
- launch/distance_based_compare_map_filter.launch.xml
-
- distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_approximate_compare_map_filter.launch.xml
-
- voxel_based_approximate_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_approximate_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]
- launch/voxel_based_compare_map_filter.launch.xml
-
- voxel_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output [default: /output]
- map_loader_service [default: /map/get_differential_pointcloud_map]
- launch/voxel_distance_based_compare_map_filter.launch.xml
-
- voxel_distance_based_compare_map_filter_param_file [default: $(find-pkg-share autoware_compare_map_segmentation)/config/voxel_distance_based_compare_map_filter.param.yaml]
- input [default: /input]
- input_map [default: /map]
- output [default: /output]