PointCloudLibrary / PointCloudLibrary/pcl
[registration] Support use of search methods other than KdTreeFLANN
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
The Registration class has a hardcoded assumption that the KdTree implementation is KdTreeFLANN. It uses an alias here:
and does not expose the second template parameter to the KdTree base class, which then defaults to KdTreeFLANN
https://github.com/PointCloudLibrary/pcl/blob/master/search/include/pcl/search/kdtree.h#L60
Is it possible to support other search methods?
Context
I am currently trying unsuccessfully to shoehorn OrganizedNeighbor into my registration pipeline, since building the KdTree can take a lot of time for each new cloud, and mine are organized.
Expected behavior
Registration classes work with any search method exposing nearestKSearch() and radiusSearch() methods.
Current Behavior
Registration can only use KdTreeFLANN
Describe the solution you'd like
Encapsulating the use of setPointRepresentation() in some registration classes, and make the search method configurable with setSearchMethodSource(), setSearchMethodTarget().
Describe alternatives you've considered
n/a
Additional context
n/a
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 with the Registration class and its alias in registration/include/pcl/registration/registration.h, then compare the KdTree template default in search/include/pcl/search/kdtree.h. Trace how nearestKSearch() and radiusSearch() are used and how setPointRepresentation() is exposed. Done means registration can configure source and target search methods instead of assuming KdTreeFLANN.
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
- 30/100