2016-09-07 8 views
1

Я пытаюсь зарегистрировать попарно облако, чтобы получить 3D-шаблон, но я получаю предупреждениерегистрация PCL облаков

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

с последующим сигналом SIGSEGV, ошибка сегментации:

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

 Смежные вопросы

  • Нет связанных вопросов^_^