1 #ifndef CscPointCloudMatcher_h
2 #define CscPointCloudMatcher_h
9 #include <pcl/point_types.h>
10 #include <pcl/registration/icp.h>
16 using std::cout, std::endl, std::string, std::pair, std::vector,
std::to_string;
45 const Result compare(
const vector<const CscPoint3d *> &pointsReference,
const vector<const CscPoint3d *> &points,
bool XZTo2DOnly)
const;
46 float calculateLikelihood(
const vector<const CscPoint3d *> &pointsReference,
const vector<const CscPoint3d *> &points,
bool XZTo2DOnly);
49 unique_ptr<CscLogger>
logger;
52 void configureICP(pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> &icp);
55 pcl::PointCloud<pcl::PointXYZ>::Ptr convertToPCLPointCloud(
const vector<const CscPoint3d *> &points);
56 vector<const CscPoint3d *> convertToCscPoint3dVector(
const pcl::PointCloud<pcl::PointXYZ> &pclCloud);
59 void filterPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr &cloud,
60 const Eigen::Vector4f &minPoint,
61 const Eigen::Vector4f &maxPoint);
62 pair<const Eigen::Vector4f, const Eigen::Vector4f> computeBoxAroundReference(pcl::PointXYZ &reference,
double maxDistanceForFilter);