After switching from point_cloud_mapping to pcl, I noticed that the normals I was getting for point clouds were of noticeably worse quality. I ended up doing a side-by-side comparison of the outputs of cloud_geometry::nearest::computePointNormal and pcl::NormalEstimation::computePointNormal. I found differences in resulting normals of as much as 30 degrees. After further debugging, I traced the problem down to the performance of Eigen::SelfAdjointEigenSolver when using Matrix3f rather than Matrix3d (recall that point_cloud_mapping used Matrix3d for covariance and pcl uses Matrix3f). I have filed a bug report with eigen (http://bitbucket.org/eigen/eigen/issue/149/selfadjointeigensolver-matrix3f-vs). For now, I would very strongly recommend changing covariance_matrix_ in pcl/features/normal_3d.h to an Eigen::Matrix3d and adjusting functions that use it accordingly. I have done so in my local copy, and can confirm that it fixes the problem. -Michael Krainin