Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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
Tags | No category tags. |
Version | 0.47.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- 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. <!– cSpell: ignore GPGPUs >
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 |
(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.47.0 (2025-08-11)
-
style(pre-commit): update to clang-format-20 (#11088) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(autoware cuda pointcloud preprocessor): trim IMU/twist queues correctly (#11055) fix(autoware_cuda_pointcloud_preprocessor): keep IMU/twist messages up to the one before the first point's timestamp
-
perf(autoware_cuda_pointcloud_preprocessor): execute thrust operations on the node's own CUDA stream (#10998)
- perf(autoware_cuda_pointcloud_preprocessor): replace default thrust calls with ones with explicit cuda stream
* chore: remove non-functional mempool allocator ---------
-
chore(autoware_cuda_pointcloud_preprocessor): add code owners (#11065)
-
feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info (#10851)
- feat(autoware_pointcloud_preprocessor): add publisher for concatenated pointcloud meta info
- style(pre-commit): autofix
- feat(autoware_cuda_pointcloud_preprocessor): handle concatenated pointcloud meta info
- feat(autoware_pointcloud_preprocessor): serialized config of matching strategy
- feat(autoware_pointcloud_preprocessor): update msg
- feat(autoware_pointcloud_preprocessor): update msg (2)
- docs(autoware_pointcloud_preprocessor): add cloud info topic description
- feat(autoware_pointcloud_preprocessor): add unit tests for cloud info
- fix(autoware_pointcloud_preprocessor): pre-commit
- fix(autoware_pointcloud_preprocessor): remove *_struct headers inclusion
- fix(autoware_pointcloud_preprocessor): check if the matching strategy cannot be enumerated
- test(autoware_pointcloud_preprocessor): full cloud repr
- feat(autoware_pointcloud_preprocessor): auto success set & more unit tests
- feat(autoware_pointcloud_preprocessor): publish info regardless cloud content
- style(autoware_pointcloud_preprocessor): typo
- feat(autoware_pointcloud_preprocessor): make update_concatenated_point_cloud_config static for easier integration
* docs(autoware_pointcloud_preprocessor): typo Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
- fix(autoware_pointcloud_preprocessor): publish cloud info out of condition block
- fix(autoware_pointcloud_preprocessor): container access with safe bound checking
- style(autoware_pointcloud_preprocessor): unify naming convention (part 1 - content)
- style(autoware_pointcloud_preprocessor): unify naming convention (part 2 - files name)
- style(autoware_pointcloud_preprocessor): naming convention for main API
- doc(autoware_pointcloud_preprocessor): add docstring
* feat(autoware_pointcloud_preprocessor): add remap to launch files ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max Schmeller <<6088931+mojomex@users.noreply.github.com>>
-
fix(autoware_cuda_pointcloud_preprocessor): ensure type and API safety (#10987)
- fix: return early on invalid pointcloud format
- chore: add/remove (un)necessary initializer braces
- chore: remove useless default destructor
- fix: make layout check inline to comply with ODR
- fix: check CUDA error for each API call
- chore: fix most type-related clang-tidy warnings
- chore: create point fields with less boilerplate
- chore: change [num_]{.title-ref} fields back to [size_t]{.title-ref}
- change [thrust::count]{.title-ref} result variables to [size_t]{.title-ref}
* chore: static_assert that OutputPointType and InputPointType match Autoware point types ---------
-
Contributors: Amadeusz Szymko, David Wong, Max Schmeller, Mete Fatih
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
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_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]