Point Cloud Library (PCL)  1.8.1-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions
pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar > Class Template Reference

TransformationEstimation2D implements a simple 2D rigid transformation estimation (x, y, theta) for a given pair of datasets. More...

#include <pcl/registration/transformation_estimation_2D.h>

+ Inheritance diagram for pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >:

Public Types

typedef boost::shared_ptr
< TransformationEstimation2D
< PointSource, PointTarget,
Scalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimation2D
< PointSource, PointTarget,
Scalar > > 
ConstPtr
 
typedef
TransformationEstimation
< PointSource, PointTarget,
Scalar >::Matrix4 
Matrix4
 
- Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
typedef Eigen::Matrix< Scalar, 4, 4 > Matrix4
 
typedef boost::shared_ptr
< TransformationEstimation
< PointSource, PointTarget,
Scalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimation
< PointSource, PointTarget,
Scalar > > 
ConstPtr
 

Public Member Functions

 TransformationEstimation2D ()
 
virtual ~TransformationEstimation2D ()
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid transformation between a source and a target point cloud in 2D. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const std::vector< int > &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid transformation between a source and a target point cloud in 2D. More...
 
virtual void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const std::vector< int > &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const std::vector< int > &indices_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid transformation between a source and a target point cloud in 2D. More...
 
virtual void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Correspondences &correspondences, Matrix4 &transformation_matrix) const
 Estimate a rigid transformation between a source and a target point cloud in 2D. More...
 
- Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
 TransformationEstimation ()
 
virtual ~TransformationEstimation ()
 

Protected Member Functions

void estimateRigidTransformation (ConstCloudIterator< PointSource > &source_it, ConstCloudIterator< PointTarget > &target_it, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target. More...
 
void getTransformationFromCorrelation (const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_src_demean, const Eigen::Matrix< Scalar, 4, 1 > &centroid_src, const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_tgt_demean, const Eigen::Matrix< Scalar, 4, 1 > &centroid_tgt, Matrix4 &transformation_matrix) const
 Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'. More...
 

Detailed Description

template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >

TransformationEstimation2D implements a simple 2D rigid transformation estimation (x, y, theta) for a given pair of datasets.

The two datasets should already be transformed so that the reference plane equals z = 0.

Note
The class is templated on the source and target point types as well as on the output scalar of the transformation matrix (i.e., float or double). Default: float.
Author
Suat Gedikli

Definition at line 59 of file transformation_estimation_2D.h.

Member Typedef Documentation

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef boost::shared_ptr<const TransformationEstimation2D<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::ConstPtr

Definition at line 63 of file transformation_estimation_2D.h.

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4 pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::Matrix4

Definition at line 65 of file transformation_estimation_2D.h.

template<typename PointSource , typename PointTarget , typename Scalar = float>
typedef boost::shared_ptr<TransformationEstimation2D<PointSource, PointTarget, Scalar> > pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::Ptr

Definition at line 62 of file transformation_estimation_2D.h.

Constructor & Destructor Documentation

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::TransformationEstimation2D ( )
inline

Definition at line 67 of file transformation_estimation_2D.h.

template<typename PointSource , typename PointTarget , typename Scalar = float>
virtual pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::~TransformationEstimation2D ( )
inlinevirtual

Definition at line 68 of file transformation_estimation_2D.h.

Member Function Documentation

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
Matrix4 transformation_matrix 
) const
inlinevirtual

Estimate a rigid transformation between a source and a target point cloud in 2D.

Parameters
[in]cloud_srcthe source point cloud dataset
[in]cloud_tgtthe target point cloud dataset
[out]transformation_matrixthe resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 42 of file transformation_estimation_2D.hpp.

References pcl::PointCloud< T >::points.

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const std::vector< int > &  indices_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
Matrix4 transformation_matrix 
) const
inlinevirtual

Estimate a rigid transformation between a source and a target point cloud in 2D.

Parameters
[in]cloud_srcthe source point cloud dataset
[in]indices_srcthe vector of indices describing the points of interest in cloud_src
[in]cloud_tgtthe target point cloud dataset
[out]transformation_matrixthe resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 61 of file transformation_estimation_2D.hpp.

References pcl::PointCloud< T >::points.

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const std::vector< int > &  indices_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
const std::vector< int > &  indices_tgt,
Matrix4 transformation_matrix 
) const
inlinevirtual

Estimate a rigid transformation between a source and a target point cloud in 2D.

Parameters
[in]cloud_srcthe source point cloud dataset
[in]indices_srcthe vector of indices describing the points of interest in cloud_src
[in]cloud_tgtthe target point cloud dataset
[in]indices_tgtthe vector of indices describing the correspondences of the interst points from indices_src
[out]transformation_matrixthe resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 81 of file transformation_estimation_2D.hpp.

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
const pcl::Correspondences correspondences,
Matrix4 transformation_matrix 
) const
virtual

Estimate a rigid transformation between a source and a target point cloud in 2D.

Parameters
[in]cloud_srcthe source point cloud dataset
[in]cloud_tgtthe target point cloud dataset
[in]correspondencesthe vector of correspondences between source and target point cloud
[out]transformation_matrixthe resultant transformation matrix

Implements pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >.

Definition at line 101 of file transformation_estimation_2D.hpp.

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( ConstCloudIterator< PointSource > &  source_it,
ConstCloudIterator< PointTarget > &  target_it,
Matrix4 transformation_matrix 
) const
inlineprotected

Estimate a rigid rotation transformation between a source and a target.

Parameters
[in]source_itan iterator over the source point cloud dataset
[in]target_itan iterator over the target point cloud dataset
[out]transformation_matrixthe resultant transformation matrix

Definition at line 114 of file transformation_estimation_2D.hpp.

References pcl::compute3DCentroid(), pcl::demeanPointCloud(), and pcl::ConstCloudIterator< PointT >::reset().

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::getTransformationFromCorrelation ( const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  cloud_src_demean,
const Eigen::Matrix< Scalar, 4, 1 > &  centroid_src,
const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  cloud_tgt_demean,
const Eigen::Matrix< Scalar, 4, 1 > &  centroid_tgt,
Matrix4 transformation_matrix 
) const
protected

Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'.

Parameters
[in]cloud_src_demeanthe input source cloud, demeaned, in Eigen format
[in]centroid_srcthe input source centroid, in Eigen format
[in]cloud_tgt_demeanthe input target cloud, demeaned, in Eigen format
[in]centroid_tgtthe input target cloud, in Eigen format
[out]transformation_matrixthe resultant 4x4 rigid transformation matrix

Definition at line 140 of file transformation_estimation_2D.hpp.


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