PointCloudLibrary / PointCloudLibrary/pcl
[registration] It might be better to reorganize the inheritance relationship.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
The current base class Registration seems to use an ICP algorithm by default. The algorithm is roughly divided into correspondence estimation and transformation estimation. Some rough alignment algorithms do not seem to be suitable for inheritance based on this, because some members of the base class are not used.
like FPCS:
In principle, this inheritance relationship may be more reasonable:
Of course, it can also be distinguished based on the purpose: coarse registration and fine registration, rigid registration and non-rigid registration. I think it is safer to follow the principle relationship. There may be cross-ambiguity based on the purpose.
Currently, ICP can use the strategy mode to switch between the methods in correspondence estimation and optimal transformation estimation, which is very convenient. If there are newly introduced algorithms, they can also be split into two independent algorithms. However, based on my understanding, the ICPwithNormals type can be roughly understood as ICP based on point-to-plane, and ICPNonliear is ICP based on LM point-to-point. There seems to be no clear distinction between these subclasses.
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 reading the Registration, ICP, ICPWithNormals, and ICPNonlinear classes and comparing which correspondence and transformation responsibilities each actually uses. The issue has no specific files or acceptance criteria, so completion would require agreeing on an inheritance redesign and implementing that agreed architecture.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100