Skip to content

feat: accelerate voxel filter #10566

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

manato
Copy link
Contributor

@manato manato commented Apr 28, 2025

Description

This PR adds a CUDA-accelerated voxel grid downsample implementation.

Related links

Parent Issue:

How was this PR tested?

colcon build --symlink-install --continue-on-error --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to autoware_cuda_pointcloud_preprocessor 

ros2 launch autoware_cuda_pointcloud_preprocessor cuda_voxel_grid_downsample_filter.launch.xml

After this launch, a node named /cuda_voxel_grid_downsample_filtrer subscribes /sensing/lidar/top/pointcloud_raw as input and publishes /sensing/lidar/top/downsampled as output

The following figure shows execution time comparison with autoware::pointcloud_preprocessor::FasterVoxelGridDownsampleFilter (denoted as before) and the implementation in this PR (denoted as after).
voxel_grid_filter_comparison

Notes for reviewers

I qualitatively confirmed that the output of this PR implementation is almost identical to the ones from autoware::pointcloud_preprocessor::FasterVoxelGridDownsampleFilter. However, I also observed that the number of output points is sometimes different (1 point difference), which I concluded comes from numerical computation difference

Interface changes

None.

Effects on system behavior

None.

@github-actions github-actions bot added the component:sensing Data acquisition from sensors, drivers, preprocessing. (auto-assigned) label Apr 28, 2025
Copy link

github-actions bot commented Apr 28, 2025

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@manato manato marked this pull request as draft April 28, 2025 12:48
@manato manato force-pushed the feat/accelerate_voxel_filter branch from 42c3d19 to 466117b Compare April 28, 2025 14:52
@manato manato marked this pull request as ready for review April 28, 2025 14:56
@manato
Copy link
Contributor Author

manato commented Apr 28, 2025

@knzo25
Thank you very much for pointing out regarding the output pointcloud format. I added a support to output XYZIRC format described here, so it would be really appreciated if you could review this PR again.

@xmfcx xmfcx added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Apr 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:sensing Data acquisition from sensors, drivers, preprocessing. (auto-assigned) run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci)
Projects
Status: To Triage
Development

Successfully merging this pull request may close these issues.

2 participants