17 #include "pipelines/registration/TransformationEstimation.h"
27 namespace registration {
47 int max_iteration = 30)
85 double confidence = 0.999)
106 const Eigen::Matrix4d &transformation = Eigen::Matrix4d::Identity())
140 const Eigen::Matrix4d &transformation = Eigen::Matrix4d::Identity());
156 const Eigen::Matrix4d &init = Eigen::Matrix4d::Identity(),
182 const std::vector<std::reference_wrapper<const CorrespondenceChecker>>
184 const RANSACConvergenceCriteria &criteria = RANSACConvergenceCriteria(),
208 const TransformationEstimation &estimation =
209 TransformationEstimationPointToPoint(
false),
211 const std::vector<std::reference_wrapper<const CorrespondenceChecker>>
213 const RANSACConvergenceCriteria &criteria = RANSACConvergenceCriteria(),
225 const Eigen::Matrix4d &transformation);
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Class that defines the convergence criteria of ICP.
int max_iteration_
Maximum iteration before iteration stops.
~ICPConvergenceCriteria()
ICPConvergenceCriteria(double relative_fitness=1e-6, double relative_rmse=1e-6, int max_iteration=30)
Parameterized Constructor.
Class that defines the convergence criteria of RANSAC.
int max_iteration_
Maximum iteration before iteration stops.
RANSACConvergenceCriteria(int max_iteration=100000, double confidence=0.999)
Parameterized Constructor.
double confidence_
Desired probability of success.
~RANSACConvergenceCriteria()
RegistrationResult(const Eigen::Matrix4d &transformation=Eigen::Matrix4d::Identity())
Parameterized Constructor.
double inlier_rmse_
RMSE of all inlier correspondences. Lower is better.
Eigen::Matrix4d_u transformation_
The estimated transformation matrix.
bool IsBetterRANSACThan(const RegistrationResult &other) const
CorrespondenceSet correspondence_set_
Correspondence set between source and target point cloud.
Class to store featrues for registration.
Eigen::Matrix< double, 4, 4, Eigen::DontAlign > Matrix4d_u
Eigen::Matrix< double, 6, 6 > Matrix6d
Extending Eigen namespace by adding frequently used matrix type.
RegistrationResult RegistrationRANSACBasedOnCorrespondence(const ccPointCloud &source, const ccPointCloud &target, const CorrespondenceSet &corres, double max_correspondence_distance, const TransformationEstimation &estimation, int ransac_n, const std::vector< std::reference_wrapper< const CorrespondenceChecker >> &checkers, const RANSACConvergenceCriteria &criteria, utility::optional< unsigned int > seed)
Function for global RANSAC registration based on a given set of correspondences.
Eigen::Matrix6d GetInformationMatrixFromPointClouds(const ccPointCloud &source, const ccPointCloud &target, double max_correspondence_distance, const Eigen::Matrix4d &transformation)
std::vector< Eigen::Vector2i > CorrespondenceSet
RegistrationResult RegistrationICP(const ccPointCloud &source, const ccPointCloud &target, double max_correspondence_distance, const Eigen::Matrix4d &init, const TransformationEstimation &estimation, const ICPConvergenceCriteria &criteria)
Functions for ICP registration.
static const double max_correspondence_distance
static const double relative_fitness
RegistrationResult RegistrationRANSACBasedOnFeatureMatching(const ccPointCloud &source, const ccPointCloud &target, const utility::Feature &source_feature, const utility::Feature &target_feature, bool mutual_filter, double max_correspondence_distance, const TransformationEstimation &estimation, int ransac_n, const std::vector< std::reference_wrapper< const CorrespondenceChecker >> &checkers, const RANSACConvergenceCriteria &criteria, utility::optional< unsigned int > seed)
Function for global RANSAC registration based on feature matching.
RegistrationResult EvaluateRegistration(const ccPointCloud &source, const ccPointCloud &target, double max_correspondence_distance, const Eigen::Matrix4d &transformation)
Function for evaluating registration between point clouds.
static const double relative_rmse
constexpr nullopt_t nullopt
Generic file read and write utility for python interface.