Point Cloud Library (PCL)  1.14.1-dev
Classes
Module registration

Detailed Description

Overview

Combining several datasets into a global consistent model is usually performed using a technique called registration. The key idea is to identify corresponding points between the data sets and find a transformation that minimizes the distance (alignment error) between corresponding points. This process is repeated, since correspondence search is affected by the relative position and orientation of the data sets. Once the alignment errors fall below a given threshold, the registration is said to be complete.

The pcl_registration library implements a plethora of point cloud registration algorithms for both organized and unorganized (general purpose) datasets.

PCL's methods to register one point cloud to another can be divided into two groups: the first group needs an initial guess of the transformation (pcl::IterativeClosestPoint, pcl::IterativeClosestPointWithNormals, pcl::IterativeClosestPointNonLinear, pcl::GeneralizedIterativeClosestPoint, pcl::GeneralizedIterativeClosestPoint6D, pcl::NormalDistributionsTransform, pcl::NormalDistributionsTransform2D), and the second group does not need a guess but is usually slower and less accurate (pcl::registration::FPCSInitialAlignment, pcl::registration::KFPCSInitialAlignment, pcl::SampleConsensusInitialAlignment, pcl::SampleConsensusPrerejective, pcl::PPFRegistration). Many parts of the registration process can be configured and swapped out, like the correspondence estimation, correspondence rejection, or the transformation estimation. And finally, PCL also has methods if there are more than two point clouds to align (pcl::registration::ELCH, pcl::registration::LUM, pcl::PairwiseGraphRegistration, pcl::registration::IncrementalRegistration, pcl::registration::MetaRegistration).

Requirements

Classes

class  pcl::registration::ConvergenceCriteria
 ConvergenceCriteria represents an abstract base class for different convergence criteria used in registration loops. More...
 
class  pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >
 Abstract CorrespondenceEstimationBase class. More...
 
class  pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >
 CorrespondenceEstimation represents a simple class for determining correspondences between target and query point sets/features, using nearest neighbor search. More...
 
class  pcl::registration::CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar >
 CorrespondenceEstimationBackprojection computes correspondences as points in the target cloud which have minimum More...
 
class  pcl::registration::CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar >
 CorrespondenceEstimationNormalShooting computes correspondences as points in the target cloud which have minimum distance to normals computed on the input cloud More...
 
class  pcl::registration::CorrespondenceEstimationOrganizedProjection< PointSource, PointTarget, Scalar >
 CorrespondenceEstimationOrganizedProjection computes correspondences by projecting the source point cloud onto the target point cloud using the camera intrinsic and extrinsic parameters. More...
 
class  pcl::registration::CorrespondenceRejector
 CorrespondenceRejector represents the base class for correspondence rejection methods More...
 
class  pcl::registration::DataContainerInterface
 DataContainerInterface provides a generic interface for computing correspondence scores between correspondent points in the input and target clouds More...
 
class  pcl::registration::DataContainer< PointT, NormalT >
 DataContainer is a container for the input and target point clouds and implements the interface to compute correspondence scores between correspondent points in the input and target clouds More...
 
class  pcl::registration::CorrespondenceRejectorDistance
 CorrespondenceRejectorDistance implements a simple correspondence rejection method based on thresholding the distances between the correspondences. More...
 
class  pcl::registration::CorrespondenceRejectorFeatures
 CorrespondenceRejectorFeatures implements a correspondence rejection method based on a set of feature descriptors. More...
 
class  pcl::registration::CorrespondenceRejectorMedianDistance
 CorrespondenceRejectorMedianDistance implements a simple correspondence rejection method based on thresholding based on the median distance between the correspondences. More...
 
class  pcl::registration::CorrespondenceRejectorOneToOne
 CorrespondenceRejectorOneToOne implements a correspondence rejection method based on eliminating duplicate match indices in the correspondences. More...
 
class  pcl::registration::CorrespondenceRejectionOrganizedBoundary
 The CorrespondenceRejectionOrganizedBoundary class implements a simple correspondence rejection measure. More...
 
class  pcl::registration::CorrespondenceRejectorPoly< SourceT, TargetT >
 CorrespondenceRejectorPoly implements a correspondence rejection method that exploits low-level and pose-invariant geometric constraints between two point sets by forming virtual polygons of a user-specifiable cardinality on each model using the input correspondences. More...
 
class  pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >
 CorrespondenceRejectorSampleConsensus implements a correspondence rejection using Random Sample Consensus to identify inliers (and reject outliers) More...
 
class  pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >
 CorrespondenceRejectorSampleConsensus2D implements a pixel-based correspondence rejection using Random Sample Consensus to identify inliers (and reject outliers) More...
 
class  pcl::registration::CorrespondenceRejectorSurfaceNormal
 CorrespondenceRejectorSurfaceNormal implements a simple correspondence rejection method based on the angle between the normals at correspondent points. More...
 
class  pcl::registration::CorrespondenceRejectorTrimmed
 CorrespondenceRejectorTrimmed implements a correspondence rejection for ICP-like registration algorithms that uses only the best 'k' correspondences where 'k' is some estimate of the overlap between the two point clouds being registered. More...
 
class  pcl::registration::CorrespondenceRejectorVarTrimmed
 CorrespondenceRejectoVarTrimmed implements a simple correspondence rejection method by considering as inliers a certain percentage of correspondences with the least distances. More...
 
struct  pcl::registration::sortCorrespondencesByQueryIndex
 sortCorrespondencesByQueryIndex : a functor for sorting correspondences by query index More...
 
struct  pcl::registration::sortCorrespondencesByMatchIndex
 sortCorrespondencesByMatchIndex : a functor for sorting correspondences by match index More...
 
struct  pcl::registration::sortCorrespondencesByDistance
 sortCorrespondencesByDistance : a functor for sorting correspondences by distance More...
 
struct  pcl::registration::sortCorrespondencesByQueryIndexAndDistance
 sortCorrespondencesByQueryIndexAndDistance : a functor for sorting correspondences by query index and distance More...
 
struct  pcl::registration::sortCorrespondencesByMatchIndexAndDistance
 sortCorrespondencesByMatchIndexAndDistance : a functor for sorting correspondences by match index and distance More...
 
class  pcl::registration::DefaultConvergenceCriteria< Scalar >
 DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the following criteria for registration loop evaluation: More...
 
struct  pcl::registration::NullMeasurement
 NullMeasurement struct More...
 
struct  pcl::registration::PoseMeasurement< VertexT, InformationT >
 PoseMeasurement struct More...
 
class  pcl::registration::ELCH< PointT >
 ELCH (Explicit Loop Closing Heuristic) class More...
 
class  pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >
 GeneralizedIterativeClosestPoint is an ICP variant that implements the generalized iterative closest point algorithm as described by Alex Segal et al. More...
 
class  pcl::GeneralizedIterativeClosestPoint6D
 GeneralizedIterativeClosestPoint6D integrates L*a*b* color space information into the Generalized Iterative Closest Point (GICP) algorithm. More...
 
class  pcl::registration::GraphHandler< GraphT >
 GraphHandler class is a wrapper for a general SLAM graph The actual graph class must fulfill the following boost::graph concepts: More...
 
class  pcl::registration::GraphOptimizer< GraphT >
 GraphOptimizer class; derive and specialize for each graph type More...
 
class  pcl::GraphRegistration< GraphT >
 GraphRegistration class is the base class for graph-based registration methods More...
 
class  pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >
 FPCSInitialAlignment computes corresponding four point congruent sets as described in: "4-points congruent sets for robust pairwise surface registration", Dror Aiger, Niloy Mitra, Daniel Cohen-Or. More...
 
class  pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >
 KFPCSInitialAlignment computes corresponding four point congruent sets based on keypoints as described in: "Markerless point cloud registration with keypoint-based 4-points congruent sets", Pascal Theiler, Jan Dirk Wegner, Konrad Schindler. More...
 
class  pcl::SampleConsensusInitialAlignment< PointSource, PointTarget, FeatureT >
 SampleConsensusInitialAlignment is an implementation of the initial alignment algorithm described in section IV of "Fast Point Feature Histograms (FPFH) for 3D Registration," Rusu et al. More...
 
class  pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
 IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm. More...
 
class  pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >
 IterativeClosestPointWithNormals is a special case of IterativeClosestPoint, that uses a transformation estimated based on Point to Plane distances by default. More...
 
class  pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >
 IterativeClosestPointNonLinear is an ICP variant that uses Levenberg-Marquardt optimization backend. More...
 
class  pcl::registration::IncrementalRegistration< PointT, Scalar >
 Incremental IterativeClosestPoint class. More...
 
class  pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >
 JointIterativeClosestPoint extends ICP to multiple frames which share the same transform. More...
 
class  pcl::registration::LUM< PointT >
 Globally Consistent Scan Matching based on an algorithm by Lu and Milios. More...
 
class  pcl::registration::MetaRegistration< PointT, Scalar >
 Meta Registration class. More...
 
class  pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >
 A 3D Normal Distribution Transform registration implementation for point cloud data. More...
 
class  pcl::NormalDistributionsTransform2D< PointSource, PointTarget >
 NormalDistributionsTransform2D provides an implementation of the Normal Distributions Transform algorithm for scan matching. More...
 
class  pcl::PairwiseGraphRegistration< GraphT, PointT >
 PairwiseGraphRegistration class aligns the clouds two by two More...
 
class  pcl::PPFRegistration< PointSource, PointTarget >
 Class that registers two point clouds based on their sets of PPFSignatures. More...
 
class  pcl::Registration< PointSource, PointTarget, Scalar >
 Registration represents the base registration class for general purpose, ICP-like methods. More...
 
class  pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >
 Pose estimation and alignment class using a prerejective RANSAC routine. More...
 
class  pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
 TransformationEstimation represents the base class for methods for transformation estimation based on: More...
 
class  pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >
 TransformationEstimation2D implements a simple 2D rigid transformation estimation (x, y, theta) for a given pair of datasets. More...
 
class  pcl::registration::TransformationEstimation3Point< PointSource, PointTarget, Scalar >
 TransformationEstimation3Points represents the class for transformation estimation based on: More...
 
class  pcl::registration::TransformationEstimationDualQuaternion< PointSource, PointTarget, Scalar >
 TransformationEstimationDualQuaternion implements dual quaternion based estimation of the transformation aligning the given correspondences. More...
 
class  pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >
 TransformationEstimationLM implements Levenberg Marquardt-based estimation of the transformation aligning the given correspondences. More...
 
class  pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >
 TransformationEstimationPointToPlane uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences. More...
 
class  pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >
 TransformationEstimationPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals. More...
 
class  pcl::registration::TransformationEstimationPointToPlaneLLSWeighted< PointSource, PointTarget, Scalar >
 TransformationEstimationPointToPlaneLLSWeighted implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals, with the possibility of assigning weights to the correspondences. More...
 
class  pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >
 TransformationEstimationPointToPlaneWeighted uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences. More...
 
class  pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >
 TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences. More...
 
class  pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >
 TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences. More...
 
class  pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >
 TransformationEstimationSymmetricPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the symmetric point-to-plane distance between two clouds of corresponding points with normals. More...
 
class  pcl::registration::TransformationValidation< PointSource, PointTarget, Scalar >
 TransformationValidation represents the base class for methods that validate the correctness of a transformation found through TransformationEstimation. More...
 
class  pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >
 TransformationValidationEuclidean computes an L2SQR norm between a source and target dataset. More...
 
struct  pcl::registration::NullEstimate
 NullEstimate struct More...
 
struct  pcl::registration::PoseEstimate< PointT >
 PoseEstimate struct More...
 
class  pcl::registration::WarpPointRigid< PointSourceT, PointTargetT, Scalar >
 Base warp point class. More...
 
class  pcl::registration::WarpPointRigid3D< PointSourceT, PointTargetT, Scalar >
 WarpPointRigid3D enables 3D (1D rotation + 2D translation) transformations for points. More...
 
class  pcl::registration::WarpPointRigid6D< PointSourceT, PointTargetT, Scalar >
 WarpPointRigid3D enables 6D (3D rotation + 3D translation) transformations for points. More...