2016-09-07 50 views
1

我想兩兩登記雲獲得3D模板,但我得到的警告

[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite? 
[pcl::RandomSampleConsensus::computeModel] No samples could be selected! 

其次是信號SIGSEGV,分割過錯PCL登記:

0x00007ffff344114d in pcl::registration::TransformationEstimationSVD<pcl::PointXYZRGBA, pcl::PointXYZRGBA, float>::estimateRigidTransformation(pcl::ConstCloudIterator<pcl::PointXYZRGBA>&, pcl::ConstCloudIterator<pcl::PointXYZRGBA>&, Eigen::Matrix<float, 4, 4, 0, 4, 4>&) const() 

我的代碼是:

registration->setInputSource(source); 
    registration->setInputTarget(target); 
    registration->setMaxCorrespondenceDistance(0.3); 
    registration->setRANSACOutlierRejectionThreshold(0.00001); 
    registration->setTransformationEpsilon(10e-6); 
    registration->setMaximumIterations(400); 
    registration->setRANSACIterations(10); 
    CloudMapper::Cloud::Ptr c(new CloudMapper::Cloud); 
    registration->align(*c); 

任何想法爲什麼協方差矩陣可能有NaN值?雲是來自一個kinect流的不同幀。

+0

cov矩陣使用您的源點雲和目標點雲的對應點。您將最大對應距離設置爲0.3,但也許雲中的對應關係距離更遠。所以你沒有對應來建立一個cov矩陣。 – bashbug

回答

0

確實是函件的距離。我的點雲的規模不一樣。在PCL文檔中,距離以米爲單位,但我的點雲以毫米爲單位,所以我需要一個對應距離* 1000