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.
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.