PointCloudLibrary / PointCloudLibrary/pcl

[filters] Increase the volumetric capacity of voxel_grid

Open
#4,365 1 comment 4 reactions 0 assignees View on GitHub

@markhedleyjones is already working on this.

Since Sep 6, 2020.

  • #4385 by @markhedleyjones — open
kind: request kind: todo module: filters
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.