kzampog / cilantro

A lean C++ library for working with point cloud data
MIT License
1.02k stars 207 forks source link

Add multi-way registration example #18

Closed flgw closed 5 years ago

flgw commented 5 years ago

In your technical report, you state: "Our modular design can be easily extended to accommodate less common ICP processes (e.g., for multi-way registration)." Unfortunately, it is not straight-forward for me to see how that would be done. So adding an example of that would be of great help to me.

kzampog commented 5 years ago

Hi,

Unfortunately, there is currently no multi-way registration back-end in the library. The report statement you mentioned meant that it is relatively easy to implement a multi-way ICP instance without writing everything from scratch (e.g. by inheriting from IterativeClosestPointBase). That would require a multi-way transform estimator with given correspondences (similar to the estimateTransformCombinedMetric function for the pairwise case) as well as a correspondence search class adapted for multi-way correspondences (which could be simply a wrapper of n-choose-2 pairwise correspondence search engines).

If you plan to implement something like this, feel free to contribute! This would make a nice feature I have also been considering adding myself.

Cheers!