Point Cloud Library (PCL)
1.14.1-dev
|
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).
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... | |