iLab Neuromorphic Robotics Toolkit  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nrt::Registration Class Reference

#include <nrt/PointCloud2/Registration/Registration.H>

A class for registering point clouds.

Point cloud registration involves aligning one point cloud to another one such that they exist within a common reference frame.

The Registration framework is extremely flexible and allows for a variety of ways to perform this alignment, using the following pieces: Correspondence Method - responsible for choosing which points in a source point cloud correspond to those in a target cloud Correspondence Rejection Criteria - responsible for pruning the correspondences found between the two clouds. This can be as simple as distance, or involve some sort of sample concensus like RANSAC, or anything else. Rigid Transformation Estimation - this takes the pruned set of points and computes a rigid transformation that attempts to align them together. Convergence Criteria - this evaluates the performance of a rigid transform and determines whether it is good enough to consider convergence as being reached

Examples:
tests/test-PointCloud2OpenNI.C, and tests/test-PointCloud2Registration.C.

Definition at line 65 of file Registration.H.

Public Types

typedef PointCloud2::Matrix4 Matrix4
 
typedef
PointCloud2::AffineTransform 
AffineTransform
 

Public Member Functions

 Registration (CorrespondenceEstimationBase::SharedPtr const correspondenceMethod, std::vector< CorrespondenceRejectionBase::SharedPtr > const &correspondenceRejectionCriteria, TransformationEstimationBase::SharedPtr const rigidEstimationMethod, ConvergenceCriteriaBase::SharedPtr const convergeCriteria)
 Create a new Registration object. More...
 
AffineTransform align (PointCloud2 const source, PointCloud2 const target, AffineTransform const &guess=AffineTransform::Identity())
 Aligns a source cloud to a target cloud. More...
 
bool converged () const
 Returns true if the most recent alignment converged.
 

Constructor & Destructor Documentation

nrt::Registration::Registration ( CorrespondenceEstimationBase::SharedPtr const  correspondenceMethod,
std::vector< CorrespondenceRejectionBase::SharedPtr > const &  correspondenceRejectionCriteria,
TransformationEstimationBase::SharedPtr const  rigidEstimationMethod,
ConvergenceCriteriaBase::SharedPtr const  convergeCriteria 
)

Create a new Registration object.

Parameters
[in]correspondenceMethodThe method of computing correspondence between points in two point clouds.
[in]correspondenceRejectionCriteriaAn initial criteria for rejecting correspondences found via correspondenceMethod.
[in]rigidEstimationMethodThe method of computing a rigid transformation between the two sets of points selected by the correspondence method (after rejection)
[in]convergeCriteriaThe method of determining convergence for the transformation between the two clouds

Member Function Documentation

AffineTransform nrt::Registration::align ( PointCloud2 const  source,
PointCloud2 const  target,
AffineTransform const &  guess = AffineTransform::Identity() 
)

Aligns a source cloud to a target cloud.

The details of how this alignment is performed are specified by the parameters given during construction of the Registration object.

Parameters
sourceThe cloud that will be aligned
targetThe target cloud the source will be aligned to
guessAn initial guess for the alignment
Returns
The transformation that aligns the source with the target
Examples:
tests/test-PointCloud2Registration.C.

The documentation for this class was generated from the following file: