28 #ifndef UTIL3D_REGISTRATION_H_
29 #define UTIL3D_REGISTRATION_H_
31 #include <rtabmap/core/rtabmap_core_export.h>
33 #include <pcl/point_cloud.h>
34 #include <pcl/point_types.h>
36 #include <opencv2/core/core.hpp>
45 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloud_target,
49 const pcl::PointCloud<pcl::PointXYZ> & cloud1,
50 const pcl::PointCloud<pcl::PointXYZ> & cloud2);
53 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloud1,
54 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloud2,
55 double inlierThreshold = 0.02,
57 int refineModelIterations = 10,
58 double refineModelSigma = 3.0,
59 std::vector<int> * inliers = 0,
60 cv::Mat * variance = 0);
63 const pcl::PointCloud<pcl::PointNormal>::ConstPtr & cloudA,
64 const pcl::PointCloud<pcl::PointNormal>::ConstPtr & cloudB,
65 double maxCorrespondenceDistance,
66 double maxCorrespondenceAngle,
68 int & correspondencesOut,
71 const pcl::PointCloud<pcl::PointXYZINormal>::ConstPtr & cloudA,
72 const pcl::PointCloud<pcl::PointXYZINormal>::ConstPtr & cloudB,
73 double maxCorrespondenceDistance,
74 double maxCorrespondenceAngle,
76 int & correspondencesOut,
79 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloudA,
80 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloudB,
81 double maxCorrespondenceDistance,
83 int & correspondencesOut,
86 const pcl::PointCloud<pcl::PointXYZI>::ConstPtr & cloudA,
87 const pcl::PointCloud<pcl::PointXYZI>::ConstPtr & cloudB,
88 double maxCorrespondenceDistance,
90 int & correspondencesOut,
93 Transform RTABMAP_CORE_EXPORT
icp(
94 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloud_source,
95 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr & cloud_target,
96 double maxCorrespondenceDistance,
97 int maximumIterations,
99 pcl::PointCloud<pcl::PointXYZ> & cloud_source_registered,
102 Transform RTABMAP_CORE_EXPORT
icp(
103 const pcl::PointCloud<pcl::PointXYZI>::ConstPtr & cloud_source,
104 const pcl::PointCloud<pcl::PointXYZI>::ConstPtr & cloud_target,
105 double maxCorrespondenceDistance,
106 int maximumIterations,
108 pcl::PointCloud<pcl::PointXYZI> & cloud_source_registered,
113 const pcl::PointCloud<pcl::PointNormal>::ConstPtr & cloud_source,
114 const pcl::PointCloud<pcl::PointNormal>::ConstPtr & cloud_target,
115 double maxCorrespondenceDistance,
116 int maximumIterations,
118 pcl::PointCloud<pcl::PointNormal> & cloud_source_registered,
122 const pcl::PointCloud<pcl::PointXYZINormal>::ConstPtr & cloud_source,
123 const pcl::PointCloud<pcl::PointXYZINormal>::ConstPtr & cloud_target,
124 double maxCorrespondenceDistance,
125 int maximumIterations,
127 pcl::PointCloud<pcl::PointXYZINormal> & cloud_source_registered,