Registration issue

Hello everyone and thanks for your time producing this new PC library.

@germanros1987 this is Georgios.

I have an issue with registration using RegistrationRANSAC from the examples in cpp.
Without changing any of the parameters, I observe a high error in registration of the two attached pcd (pcds.zip) pointclouds. The error is not the same every time I run the RegistrationRANSAC with the same set of images. Please see attached images below.

0.90 version, Win10, build from source, VS2019.

These PCs are very similar and I would expect registration to be fairly accurate.

Please advice.

Many thanks,

G

pcds.zip


Open3D downsamples point clouds in RANSAC, the resolution may limit the accuracy. Also, error is always expected in global registration.

Since this is a random algorithm, you may try several times – there could be one successful case:

These two point clouds are very close, so you may also want to take a look at ICP registration instead.

Thank you for your answer. I understand that this is a random process, but is it possible to run RANSAC on a nested loop to make sure that the successful case is selected?
Also, the downsampling is based on min and max values and would return the same PC every time. Is there a method already implemented to select edge points only?

Finally, in terms of ICP registration, this is only available in python not as a c++ in the examples. Is this part of the c++ code somewhere else please?

Many thanks,

G

I guess you may increase the number of iterations (4000000) and validations (1000) to increase robustness, but still there is no guarantee…

registration::RANSACConvergenceCriteria(4000000, 1000));

As far as I know there is no cpp example for ICP. Let me implement one and make a PR.