Point Cloud Registration Problems
I am currently working with PCL and a 360-degree point scanner to create maps. I am currently trying to localize them using PCL's ICP to attempt to register the scans. The scans were taken roughly 15 - 20 meters apart but I am getting transforms that look like this from the pcl::GeneralizedIterativeClosestPoint
The point clouds being aligned are created by aligning a series of scans from a spinning lidar while the robot sits still.
Transform Code:
pcl::GeneralizedIterativeClosestPoint< PointT, PointT > icp;
icp.setTransformationEpsilon( 0.00001 );
icp.setMaxCorrespondenceDistance( 1.0 );
icp.setMaximumIterations( 10 );
icp.setRANSACIterations(10);
icp.setMaximumOptimizerIterations( 20 );
icp.setInputSource(i_query);
icp.setInputTarget(i_reference);
PointCloud temp;
icp.align( temp );
Transform:
0.999574 0.0244488 -0.015959 -0.0191285
-0.0247078 0.999563 -0.0162421 0.0443592
0.015555 0.0166295 0.999741 0.12248
0 0 0 1
This doesn't look right to me as I would expect a much larger offset in the x
and y
components of the transform. Any suggestions would be appreciated.
Asked by badrobit on 2016-06-18 22:00:44 UTC
Comments