2016-09-07 5 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値があるのでしょうか?雲はキネクトストリームとは異なるフレームから来ています。

+0

cov行列は、ソースとターゲットポイントクラウドの対応点を使用します。最大対応距離を0.3に設定していますが、雲の対応がもっと離れている可能性があります。したがって、cov行列を構築するための対応はありません。 – bashbug

答えて

0

実際にはCorrespondenceDistanceでした。私のポイント・クラウドは異なるスケールでした。 PCLドキュメントでは、距離はメートルですが、ポイントクラウドはミリメートル単位ですので、対応距離が必要です。* 1000