Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_cuda_pointcloud_preprocessor at Robotics Stack Exchange
Package Summary
| Version | 0.50.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-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Max Schmeller
- David Wong
- Manato Hirabayashi
- Yihsiang Fang
Authors
- Kenzo Lobos-Tsunekawa
autoware_cuda_pointcloud_preprocessor
Purpose
The pointcloud preprocessing implemented in autoware_pointcloud_preprocessor has been thoroughly tested in autoware. However, the latency it introduces does not scale well with modern LiDAR devices due to the high number of points they introduce.
To alleviate this issue, this package reimplements most of the pipeline presented in autoware_pointcloud_preprocessor leveraging the use of GPGPUs. In particular, this package makes use of CUDA to provide accelerated versions of the already established implementations, while also maintaining compatibility with normal ROS nodes/topics.
Inner-workings / Algorithms
A detailed description of each filter’s algorithm is available in the following links.
| Filter Name | Description | Detail |
|---|---|---|
| cuda_pointcloud_preprocessor | Implements the cropping, distortion correction, and outlier filtering (ring-based) of the autoware_pointcloud_preprocessor’s CPU versions. |
link |
| cuda_concatenate_and_time_sync_node | Implements pointcloud concatenation an synchronization following autoware_pointcloud_preprocessor’s CPU implementation. |
link |
| cuda_voxel_grid_downsample_filter | Implements voxel downsample filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
| cuda_polar_voxel_outlier_filter | Implements polar voxel outlier filtering of the autoware_pointcloud_preprocessor’s CPU version |
link |
(Optional) Future extensions / Unimplemented parts
The subsample filters implemented in autoware_pointcloud_preprocessor will have similar counterparts in this package.
Changelog for package autoware_cuda_pointcloud_preprocessor
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator (#12069)
- fix(cuda_polar_voxel_outlier_filter): replace cub::TransformInputIterator with thrust::transform_iterator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_cuda_pointcloud_preprocessor): update nvcc flags (#12059)
-
feat: add negative option for cropbox filtering; aligning with CPU cropbox filter (#11766)
- feat: add negative option for cropbox filtering; aligning with CPU cropbox filter
- change the internal process of negative to also boolean; simplify the logics
- change the internal process of negative to also boolean; simplify the logics
* Apply suggestion from \@mojomex fix true/false Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
* precommit ---------Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(agnocast): build on jazzy, remove from ground_segmentation_cuda (#11960)
-
Contributors: Amadeusz Szymko, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(cuda_pointcloud_preprocessor): cast timestamp value properly (#11714)
* fix(cuda_pointcloud_preprocessor): cast timestamp value properly Since [twist.stamp_nsec]{.title-ref} and [last_stamp_nsec]{.title-ref} are defined as [std::uint32_t]{.title-ref}, subtraction may cause wrap-around and unexpected behavior if [twist.stamp_nsec < last_stamp_nsec]{.title-ref}
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Manato Hirabayashi, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(cuda_pointcloud_preprocessor): use uint64_t and nanoseconds to prevent potential precision loss (#11398)
-
feat(autoware_cuda_pointcloud_preprocessor): cuda/polar voxel filter (#11122)
- feat(cuda_utils): support device memory allocation from memory pool
* feat(cuda_pointcloud_preprocessor): support polar_voxel_outlier_filter WIP: use cuda::std::optional. compile passed wip: version 1 wip: update wip: update launcher
- feat(cuda_pointcloud_preprocessor): add a flag to enable/disable ring outlier filter in cuda_pointcloud_preprocessor
- chore: clean up the code
- docs: update documents briefly
- style(pre-commit): autofix
- style(pre-commit): autofix
- feat(cuda_polar_voxel_outlier_filter): add xyzirc format support
- fix(cuda_polar_voxel_outlier_filter): move sync point to avoid unexpected memory release during async copy
- chore(cuda_polar_voxel_outlier_filter): update parameters
- add SI unit postfix
- deprecate [secondary_return_type]{.title-ref}
- and think points with non-primary return value as points with secondary return
- refactor(cuda_polar_voxel_outlier_filter): explicity specify
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_ground_segmentation_cuda |
Launch files
- launch/cuda_concatenate_and_time_sync_node.launch.xml
-
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output [default: /sensing/lidar/concatenated/pointcloud]
- output_info [default: /sensing/lidar/concatenated/pointcloud_info]
- param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/concatenate_and_time_sync_node.param.yaml]
- launch/cuda_pointcloud_preprocessor.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw_ex]
- input/imu [default: /sensing/imu/imu_data]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: /sensing/lidar/top/test]
- cuda_pointcloud_preprocessor_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_pointcloud_preprocessor.param.yaml]
- launch/cuda_polar_voxel_outlier_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/filtered]
- debug [default: false]
- use_sim_time [default: false]
- polar_voxel_outlier_filter_param_file [default: $(find-pkg-share autoware_pointcloud_preprocessor)/config/polar_voxel_outlier_filter_node.param.yaml]
- launch/cuda_voxel_grid_downsample_filter.launch.xml
-
- input/pointcloud [default: /sensing/lidar/top/pointcloud_raw]
- output/pointcloud [default: /sensing/lidar/top/downsampled]
- debug [default: false]
- cuda_voxel_gird_downsample_filter_param_file [default: $(find-pkg-share autoware_cuda_pointcloud_preprocessor)/config/cuda_voxel_grid_downsample_filter.param.yaml]