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 an unorganized (general purpose) datasets.
Classes | |
class | pcl::registration::CorrespondenceEstimation< PointSource, PointTarget > |
CorrespondenceEstimation represents the base class for determining correspondences between target and query point sets/features. More... | |
class | pcl::registration::CorrespondenceRejector |
CorrespondenceRejector represents the base class for correspondence rejection methods More... | |
class | pcl::registration::CorrespondenceRejectorDistance |
CorrespondenceRejectorDistance implements a simple correspondence rejection method based on thresholding the distances 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::CorrespondenceRejectorReciprocal |
CorrespondenceRejectorReciprocal implements a reciprocal correspondence rejection method for ICP-like registration algorithms. 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... | |
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::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 > |
IterativeClosestPoint is an implementation of the Iterative Closest Point algorithm based on Singular Value Decomposition (SVD). More... | |
class | pcl::IterativeClosestPointNonLinear< PointSource, PointTarget > |
IterativeClosestPointNonLinear is an ICP variant that uses Levenberg-Marquardt optimization backend. More... | |
class | pcl::Registration< PointSource, PointTarget > |
Registration represents the base registration class. More... | |
class | pcl::registration::TransformationEstimation< PointSource, PointTarget > |
TransformationEstimation represents the base class for methods for transformation estimation based on given a correspondence vector More... | |
class | pcl::registration::TransformationEstimationSVD< PointSource, PointTarget > |
TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences in target and input point cloud More... | |
Functions | |
template<typename PointT > | |
void | pcl::transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Affine3f &transform) |
Apply an affine transform defined by an Eigen Transform. | |
template<typename PointT > | |
void | pcl::transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, pcl::PointCloud< PointT > &cloud_out, const Eigen::Affine3f &transform) |
Apply an affine transform defined by an Eigen Transform. | |
template<typename PointT > | |
void | pcl::transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix4f &transform) |
Apply an affine transform defined by an Eigen Transform. | |
template<typename PointT > | |
void | pcl::transformPointCloudWithNormals (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix4f &transform) |
Transform a point cloud and rotate its normals using an Eigen transform. | |
template<typename PointT > | |
void | pcl::transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Vector3f &offset, const Eigen::Quaternionf &rotation) |
Apply a rigid transform defined by a 3D offset and a quaternion. | |
template<typename PointT > | |
void | pcl::transformPointCloudWithNormals (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Vector3f &offset, const Eigen::Quaternionf &rotation) |
Transform a point cloud and rotate its normals using an Eigen transform. |
void pcl::transformPointCloud | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Affine3f & | transform | |||
) |
Apply an affine transform defined by an Eigen Transform.
cloud_in | the input point cloud | |
cloud_out | the resultant output point cloud | |
transform | an affine transformation (typically a rigid transformation) |
Definition at line 39 of file transforms.hpp.
void pcl::transformPointCloud | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
const std::vector< int > & | indices, | |||
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Affine3f & | transform | |||
) |
Apply an affine transform defined by an Eigen Transform.
cloud_in | the input point cloud | |
indices | the set of point indices to use from the input point cloud | |
cloud_out | the resultant output point cloud | |
transform | an affine transformation (typically a rigid transformation) |
Definition at line 79 of file transforms.hpp.
void pcl::transformPointCloud | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Vector3f & | offset, | |||
const Eigen::Quaternionf & | rotation | |||
) | [inline] |
Apply a rigid transform defined by a 3D offset and a quaternion.
cloud_in | the input point cloud | |
cloud_out | the resultant output point cloud | |
offset | the translation component of the rigid transformation | |
rotation | the rotation component of the rigid transformation |
Definition at line 259 of file transforms.hpp.
void pcl::transformPointCloud | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Matrix4f & | transform | |||
) |
Apply an affine transform defined by an Eigen Transform.
cloud_in | the input point cloud | |
cloud_out | the resultant output point cloud | |
transform | an affine transformation (typically a rigid transformation) |
Definition at line 166 of file transforms.hpp.
void pcl::transformPointCloudWithNormals | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Matrix4f & | transform | |||
) |
Transform a point cloud and rotate its normals using an Eigen transform.
cloud_in | the input point cloud | |
cloud_out | the resultant output point cloud | |
transform | an affine transformation (typically a rigid transformation) |
Definition at line 207 of file transforms.hpp.
void pcl::transformPointCloudWithNormals | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
const Eigen::Vector3f & | offset, | |||
const Eigen::Quaternionf & | rotation | |||
) | [inline] |
Transform a point cloud and rotate its normals using an Eigen transform.
cloud_in | the input point cloud | |
cloud_out | the resultant output point cloud | |
offset | the translation component of the rigid transformation | |
rotation | the rotation component of the rigid transformation |
Definition at line 273 of file transforms.hpp.