Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
Messages
Services
Plugins
Recent questions tagged autoware_ground_segmentation at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- amc-nu
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Taekjin Lee
Authors
- Open Perception
- Julius Kammerl
- William Woodall
autoware_ground_segmentation
Purpose
The autoware_ground_segmentation is a node that remove the ground points from the input pointcloud.
Inner-workings / Algorithms
Detail description of each ground segmentation algorithm is in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| ray_ground_filter | A method of removing the ground based on the geometrical relationship between points lined up on radiation | link |
| scan_ground_filter | Almost the same method as ray_ground_filter, but with slightly improved performance |
link |
| ransac_ground_filter | A method of removing the ground by approximating the ground to a plane | link |
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/points |
sensor_msgs::msg::PointCloud2 |
reference points |
~/input/indices |
pcl_msgs::msg::Indices |
reference indices |
Output
| Name | Type | Description |
|---|---|---|
~/output/points |
sensor_msgs::msg::PointCloud2 |
filtered points |
Parameters
Node Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
input_frame |
string | ” “ | input frame id |
output_frame |
string | ” “ | output frame id |
max_queue_size |
int | 5 | max queue size of input/output topics |
use_indices |
bool | false | flag to use pointcloud indices |
latched_indices |
bool | false | flag to latch pointcloud indices |
approximate_sync |
bool | false | flag to use approximate sync option |
Assumptions / Known limits
autoware::pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.
References/External links
[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp
Changelog for package autoware_ground_segmentation
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(autoware_ground_segmentation): apply agnocast_wrapper::Node to scan_ground_filter (#13385) Derive ScanGroundFilterComponent from AgnocastFilter, the FilterBase<autoware::agnocast_wrapper::Node> instantiation, and register it through autoware_agnocast_wrapper_register_node on an agnocast-only callback-isolated executor. Both launch files start the standalone executable with the heaphook preloaded when ENABLE_AGNOCAST=1: scan_ground_filter.launch.xml already launched it as a node, and scan_ground_filter.launch.py now stops loading the component into an rclcpp container, where its agnocast callbacks would never be spun.
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_ground_segmentation/launch, autoware_probabilistic_occupancy_grid_map/launch): use launch substitution instead of get_package_share_directory (#12392)
- refactor: use launch substitution instead of get_package_share_directory
* use existing file for default ---------
-
perf(perception): use emplace_back and emplace to avoid temporary object creation (#12201)
- perf(perception): use emplace_back to avoid temporary object creation
- style(pre-commit): autofix
- perf(perception): use emplace/emplace_back for most containers
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
-
Contributors: Taekjin LEE, Taeseung Sohn, github-actions, nishikawa-masaki
0.50.0 (2026-02-14)
- Merge remote-tracking branch 'origin/main' into humble
- feat!: remove ROS 2 Galactic codes (#11905)
- Contributors: Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor(ground_segmentation): remove grid_mode_switch_radius param (#11773)
- remove grid mode switch radius
- fix: spelling check
- chore: typo
- style(pre-commit): autofix
- fix c-style
- chore: remove unused variable
- remove unused origin_z
- remove virtual_lidar_z
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
fix(autoware_ground_segmentation): add empty point cloud guards (#11749) Add validation to check for empty point clouds before processing to prevent undefined behavior in PCL functions and potential crashes.
- Add guard in ray_ground_filter
- Add guard in ransac_ground_filter
-
Contributors: Ryohsuke Mitsudome, Yutaka Kondo, badai nguyen
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libopencv-dev |
| yaml-cpp |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/ransac_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ransac_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/ray_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/ray_ground_filter.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]
- launch/scan_ground_filter.launch.xml
-
- ground_segmentation_param_file [default: $(find-pkg-share autoware_ground_segmentation)/config/scan_ground_filter.param.yaml]
- vehicle_info_param_file [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- input/pointcloud [default: /sensing/lidar/concatenated/pointcloud]
- output/pointcloud [default: /perception/obstacle_segmentation/pointcloud]