getFinalTransformation() in icp

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

getFinalTransformation() in icp

Hiks18
Hi
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.

http://pointclouds.org/documentation/tutorials/iterative_closest_point.php

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;
icp.setInputCloud(cloud_in);
icp.setInputTarget(cloud_out);
pcl::PointCloud<pcl::PointXYZ> Final;
icp.align(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: http://www.pcl-users.org/
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users