9 #ifndef CscPointCloudMatcher_h
10 #define CscPointCloudMatcher_h
17 #include <pcl/point_types.h>
18 #include <pcl/registration/icp.h>
24 using std::cout, std::endl, std::string, std::pair, std::vector,
std::to_string;
53 const Result compare(
const vector<const CscPoint3d *> &pointsReference,
const vector<const CscPoint3d *> &points,
bool XZTo2DOnly)
const;
54 float calculateLikelihood(
const vector<const CscPoint3d *> &pointsReference,
const vector<const CscPoint3d *> &points,
bool XZTo2DOnly);
57 unique_ptr<CscLogger>
logger;
60 void configureICP(pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> &icp);
63 pcl::PointCloud<pcl::PointXYZ>::Ptr convertToPCLPointCloud(
const vector<const CscPoint3d *> &points);
64 vector<const CscPoint3d *> convertToCscPoint3dVector(
const pcl::PointCloud<pcl::PointXYZ> &pclCloud);
67 void filterPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr &cloud,
68 const Eigen::Vector4f &minPoint,
69 const Eigen::Vector4f &maxPoint);
70 pair<const Eigen::Vector4f, const Eigen::Vector4f> computeBoxAroundReference(pcl::PointXYZ &reference,
double maxDistanceForFilter);