getFinalTransformation() in icp

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

getFinalTransformation() in icp

I'm new to PCL and trying to understand IterativeClosestPoint.  As a quick
example, I implemented the same code as the link below and tested it.

I got a completely different result from those suggested in the link.  Which
might be fine, since I did not explicitly set parameters such as
MaxCorrespondenceDistance, EuclideanFitnessEpsilon, and etc.  But what I
don't understand is that the point cloud I got by multiplying the input
point cloud with the transformation matrix obtained from
getFinalTransformation() is completely different from the one set in
icp.align() function.  More specifically, the following is what I did

pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp;
pcl::PointCloud<pcl::PointXYZ> Final;

pcl::PointCloud<pcl::PointXYZ>::Ptr tmp(new pcl::PointCloud<pcl::PointXYZ>);
pcl::transformPointCloud(*cloud_in, *tmp, icp.getFinalTransformation());

I assume the point cloud "Final" should be the same as "tmp".  But they are
completely different.
Where am I making mistake?

Sent from:
[hidden email] /