PointCloudLibrary / PointCloudLibrary/pcl
[filters] Increase the volumetric capacity of voxel_grid
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
The current implementation of voxel_grid is too limited in its processing volume.
This is due to its use of an int32 to index voxels internally.
With a leaf size of 3cm (in each axis), it can only support a volume of 38.7m^3.
What's worse is that voxel_grid will still process your point-cloud even if that index variable overflows.
In this case, the filter adds noise to the output.
The filter does produce a warning, but it's not clearly telling the user that it will introduce rubbish into the output.
Context
The pcl::voxel_filter is used in may projects and is used as part of many higher level algorithms.
Those algorithms suffer from the addition of noise or limited volumetric resolution that voxel_grid.
Allowing voxel_grid to handle either smaller leaf sizes or larger volumes would improve those algorithms.
TixiaoShan/LIO-SAM is one such example, where it's use is currently limited to outdoor cases.
With the ability to reduce the leaf size, that project is able to perform better indoors.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the voxel_grid implementation and the linked pull request #4385, focusing on its internal int32 voxel indexing and overflow warning. Done means voxel_grid can handle larger volumes or smaller leaf sizes without introducing noise when the current volumetric limit is exceeded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100