graziegrazie
graziegrazie

Reputation: 77

GICP usage in PCL

I have looked for how to implement Generalized ICP(GICP) with PCL. I found a sample code in test/registration/test_registration.cpp in PCL repository on github. The sample code uses GICP as following. Could you tell me following procedure is correct one to use GICP with PCL?

The fucntion "align" is a function of IterativeClosestPoint class. It means that "align" does not consider point-to-plane that AV Segal et al refer in their paper. I'm wondering if this is a correct procedure to use GICP with PCL. In addition, I don't know why PCL does not provide us sample codes which use estimateRigidTransformationBFGS the metod of GeneralizedIterativeClosestPoint class.

GeneralizedIterativeClosestPoint<PointT, PointT> reg_guess;
reg_guess.setInputSource (src);
reg_guess.setInputTarget (transformed_tgt);
reg_guess.setMaximumIterations (50);
reg_guess.setTransformationEpsilon (1e-8);
reg_guess.align (output, transform.matrix ());

Upvotes: 3

Views: 3600

Answers (3)

jeven
jeven

Reputation: 3

Actually, align function calls estimateRigidTransformationBFGS in its internal. the function call sequence is Registration::align()->GeneralizedIterativeClosestPoint::computeTransformation()->GeneralizedIterativeClosestPoint::rigid_transformation_estimation_().computeTransformation() is a pure virtual function in Registration class and is implement in GeneralizedIterativeClosestPoint class finally;rigid_transformation_estimation_() is bind to estimateRigidTransformationBFGS() in GeneralizedIterativeClosestPoint Construction function. So there is no need to call estimateRigidTransformationBFGS() by ourself.

Upvotes: 0

Ravish Verma
Ravish Verma

Reputation: 221

Check this article https://ieeexplore.ieee.org/document/7271006

Registration with the Point Cloud Library: A Modular Framework for Aligning in 3-D, Dirk Holz; Alexandru E. Ichim; Federico Tombari; Radu B. Rusu; Sven Behnke

They show an example of using GICP

Upvotes: 0

graziegrazie
graziegrazie

Reputation: 77

I found the usage! Autonomous system lab in ETH Zurich opens it in their github repository. Please check robust_point_cloud_registration!

Upvotes: 4

Related Questions