2016-03-29 20 views
0

PCL 1.6'da (Android'i kullanıyorum) ICP'yi yapılandırmada sorun yaşıyorum ve bunun yanlış bir dönüşüm matrisinin nedeni olduğuna inanıyorum. Şimdiye kadar denediğim şey bu; Ben seçeneklerdeki değerlerden her türlü denedimYinelemeli En Yakın Nokta Yapılandır PCL

pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp; 
icp.setInputCloud(tgt); 
icp.setInputTarget(src); 
pcl::PointCloud<pcl::PointXYZ> Final; 
pcl::PointCloud<pcl::PointXYZ> transformedCloud; 
icp.setMaxCorrespondenceDistance(0.08); 
icp.setMaximumIterations(500); 
//icp.setTransformationEpsilon (0.000000000000000000001); 
icp.setTransformationEpsilon(1e-12); 
icp.setEuclideanFitnessEpsilon(1e-12); 
icp.setRANSACIterations(2000); 
icp.setRANSACOutlierRejectionThreshold(0.6); 

:

pcl::VoxelGrid <pcl::PointXYZ> grid; 

    grid.setLeafSize(6, 6, 6); 
    grid.setInputCloud(output); 
    grid.filter(*tgt); 

    grid.setInputCloud(cloud_src); 
    grid.filter(*src); 

deneyin aşağıdaki kodla iki nokta bulutları hizalamak için: Aşağıdaki kod ile ICP kullandığımız nokta bulutları Altörnekle ICP'nin bir başarısı yoktur.

ben nokta bulutu oluşturmak için kullandığınız kod:

 int density = 1; 
     for (int y = 0; y < depthFrame.getHeight(); y = y + density) { 
      for (int x = 0; x < depthFrame.getWidth(); x = x + density) { 
       short z = pDepthRow[y * depthVideoMode.getResolutionX() + x]; 
       if (z > 0 && z < depthStream.getMaxPixelValue()) { 
         cloud_src->points[counter].x = x; 
         cloud_src->points[counter].y = y; 
         cloud_src->points[counter].z = z; 
       } 
      } 
     } 

şansın birileri ICP yapılandırılması bana yardım edebilir?

cevap

0

Bildiğim kadarıyla PCL, ölçüleri bir ölçüm birimi olarak kullanır. Yani, altörnekleme için yaprak boyutunun 6 * 6 * 6 olduğu düşünülüyor mu? Bence çok büyük! , Daha sonra diğer ayar başlamak

pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp; 
icp.setInputCloud(tgt); 
icp.setInputTarget(src); 
pcl::PointCloud<pcl::PointXYZ> Final; 
icp.align(Final); 

kez, bu çalışma var (ve olması gerektiği): bazı alt değerlerle deneyin ve en basit yapılandırma ile ICP, da işe deneyin olmasaydı şu şekilde Parametreler ve bunu yapmak zor olmamalı.

Yardım etmek ister, Şerefe!

+0

Yapraklar için oldukça büyük bir değer kullandığımı biliyorum ancak 1'in altında bir değer kullandığımda bulutlar örneklenmiyor. Ayrıca gereksiz tüm kodları kesmeye çalıştım ve önerileriniz gibi temel bilgileri kullanın ama maalesef bu işe yaramadı. Başka önerileriniz memnuniyetle karşılanıyor! :) – Ronald