Pcl: Octree_Pointcloud_Box_Search test fails

Created on 12 Sep 2018  路  3Comments  路  Source: PointCloudLibrary/pcl

[ RUN      ] PCL.Octree_Pointcloud_Box_Search
../test/octree/test_octree.cpp:1349: Failure
Value of: inBox
  Actual: false
Expected: idxInResults
Which is: true
[  FAILED  ] PCL.Octree_Pointcloud_Box_Search (16558 ms)

To reproduce reliably, set test_runs to a large number, e.g. 1'000'000:

https://github.com/PointCloudLibrary/pcl/blob/8bc7c43b32fa497bd3f2b8c64b40e3b99ab12666/test/octree/test_octree.cpp#L1285

bug octree

All 3 comments

@frozar you're the guy to ask to have a look at this whenever you have time. Pretty please.

I'll do my best on this one (but not instantly).

Just for your information, to easy the work, I found one of the good seed. I mean, instead of using srand (static_cast<unsigned int> (time (NULL)));, use srand (static_cast<unsigned int> (465)); and you should get the error immediatly.

Thanks to the seed 465, anyone can investigate this bug quickly :cat:

We just hit a "zero" probability event. The point is exactly at the border and test conditions are different from the boxsearch implementation because they do not include the border.

(lldb) p lowerBoxCorner
(Eigen::Vector3f) $0 = {
  Eigen::PlainObjectBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > = {
    m_storage = {
      m_data = {
        array = ([0] = 0.534261465, [1] = 3.33225989, [2] = 1.29086518)
      }
    }
  }
}
(lldb) p upperBoxCorner
(Eigen::Vector3f) $1 = {
  Eigen::PlainObjectBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > = {
    m_storage = {
      m_data = {
        array = ([0] = 8.57035636, [1] = 7.97451305, [2] = 5.64270449)  <- note the z coordinate
      }
    }
  }
}
(lldb) p pt
(const pcl::PointXYZ) $2 = {
  pcl::_PointXYZ = {
     = {
      data = (8.29265785, 4.70194817, 5.64270449, 1)
       = (x = 8.29265785, y = 4.70194817, z = 5.64270449)  <- note the z coordinate
    }
  }
}
Was this page helpful?
0 / 5 - 0 ratings