仅在一个旋转轴上将点云与PCL对齐

时间:2018-04-05 09:28:37

标签: computer-vision point-cloud-library robotics point-clouds

我试图将从机器人中获取的两个点云与PCL对齐。我计算对应关系,然后将它们与estimateRigidTransformation

对齐
pcl::registration::TransformationEstimationSVD<PointT, PointT> transformation;
transformation.estimateRigidTransformation(*source_keypoints, *target_keypoints, *correspondences, correspondence_transformation);

然后我做了一个ICP改进:

Eigen::Matrix4f transform; 
pcl::IterativeClosestPoint<PointT, PointT> icp; 
icp.setMaximumIterations(max_iterations);

TransformationEstimationLM::Ptr transformEst(new TransformationEstimationLM); 
icp.setTransformationEstimation(transformEst); 
icp.setInputSource(source); 
icp.setInputTarget(target); 
icp.align(*result);

如果场景不太杂乱但经常失败然后给出完全错误的转换(随机旋转),这很有效。由于点云已经与地平面对齐并且机器人仅在地平面上移动,因此云实际上仅在平移和y(向上)旋转方面不同。可以在PCL中设置吗?

1 个答案:

答案 0 :(得分:0)

WarpPointRigid3D将允许您进行一维旋转和二维平移。这是relevant mailing list帖子。