Skip to content

feat(autoware_pointcloud_preprocessor): add roi excluded downsample #10233

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 5 commits into
base: main
Choose a base branch
from

Conversation

kaancolak
Copy link
Contributor

Description

This filter provides selective downsampling that preserves detailed point data in critical regions while reducing overall point cloud density:

  1. Points are classified based on their position relative to a defined Region of Interest (ROI)
  2. Points inside the ROI are preserved at their original density (no downsampling)
  3. Points outside the ROI undergo standard voxel grid downsampling
  4. The final output combines both sets of points

The main purpose is to detect long-range stationary vehicles on the road, such as those stopped at an intersection or traffic light. With the point cloud densifier node, points at a distance will be densified and downsampling will not be applied in this densified area thanks to the roi excluded voxel-based downsampling operation.

2025-03-05.15-12-08.mp4

Parent Issue:

Private Links:

How was this PR tested?

Notes for reviewers

run -> ros2 launch autoware_pointcloud_preprocessor roi_excluded_voxel_grid_downsample_filter.launch.xml

Interface changes

None.

Effects on system behavior

None.

@kaancolak kaancolak added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) 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) labels Mar 5, 2025
@kaancolak kaancolak self-assigned this Mar 5, 2025
@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) and removed component:perception Advanced sensor data processing and environment understanding. (auto-assigned) labels Mar 5, 2025
Copy link

github-actions bot commented Mar 5, 2025

Thank you for contributing to the Autoware project!

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

Please ensure:

@kaancolak kaancolak force-pushed the feat/add-roi-excluded-voxel-grid branch from 46b11ac to 1982bc7 Compare March 5, 2025 15:03
@kaancolak kaancolak changed the title Add roi_excluded_voxel_grid_downsample_filter_node feat(autoware_pointcloud_preprocessor): add roi excluded downsample Mar 5, 2025
@kaancolak kaancolak force-pushed the feat/add-roi-excluded-voxel-grid branch from be3b755 to 0c63f77 Compare March 5, 2025 18:55
Copy link

codecov bot commented Mar 5, 2025

Codecov Report

Attention: Patch coverage is 0% with 81 lines in your changes missing coverage. Please review.

Project coverage is 24.69%. Comparing base (dce72f5) to head (88cc7b1).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...ple_filter/faster_voxel_grid_downsample_filter.cpp 0.00% 64 Missing ⚠️
...ample_filter/voxel_grid_downsample_filter_node.cpp 0.00% 17 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10233      +/-   ##
==========================================
- Coverage   24.72%   24.69%   -0.03%     
==========================================
  Files        1313     1313              
  Lines      102645   102739      +94     
  Branches    38985    39028      +43     
==========================================
  Hits        25374    25374              
- Misses      74862    74955      +93     
- Partials     2409     2410       +1     
Flag Coverage Δ *Carryforward flag
differential 21.18% <0.00%> (?)
differential-cuda 18.40% <0.00%> (?)
total 24.72% <ø> (+<0.01%) ⬆️ Carriedforward from 93f9994

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kaancolak
Copy link
Contributor Author

@YoshiRi @knzo25 @drwnz Could you please check this PR or assign an appropriate reviewer?

Copy link
Contributor

@YoshiRi YoshiRi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kaancolak
Sorry for late reviewing.
Code itself looks okay to me. But do you really need this filter now?
I mean voxel grid downsample in far distance won't do much filtering, so I wonder if just adding roi cropping function in voxel downsampling filter will satisfy your case and that would be more versatile.

@kaancolak
Copy link
Contributor Author

onder if just adding roi cropping function in voxel downsampling filter will satisfy your case and that would be more versatile.

Thank you so much for your feedback.

Laser points from a single lidar are mostly dense at a long distance, but this enhancement is functional when multiple lasers which comes different lidar fall on the same object at a long distance.

As you said, making this an optional function makes sense to me.

@kaancolak kaancolak force-pushed the feat/add-roi-excluded-voxel-grid branch from fadff49 to 7c683d9 Compare April 2, 2025 12:03
@github-actions github-actions bot removed the type:documentation Creating or refining documentation. (auto-assigned) label Apr 2, 2025
@kaancolak
Copy link
Contributor Author

@YoshiRi -san, I updated the code to enable and disable roi exclusion with a single parameter in the voxel grid downsample filter and kept changes minimum. Could you review it when you have a chance?

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