Loading...
Searching...
No Matches
pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar > Class Template Reference
Module registration

TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences. More...

`#include <pcl/registration/transformation_estimation_svd.h>`

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

## Public Types

using | Ptr = shared_ptr<TransformationEstimationSVD<PointSource, PointTarget, Scalar>>
using | ConstPtr
using | Matrix4
Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
using | Matrix4
using | Ptr
using | ConstPtr

## Public Member Functions

| TransformationEstimationSVD (bool use_umeyama=true)
| Constructor.
| ~TransformationEstimationSVD () override=default
void | estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const override
| Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
void | estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const override
| Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
void | estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Indices &indices_tgt, Matrix4 &transformation_matrix) const override
| Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
void | estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Correspondences &correspondences, Matrix4 &transformation_matrix) const override
| Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
| TransformationEstimation ()=default
virtual | ~TransformationEstimation ()=default
virtual void | estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const=0
| Estimate a rigid rotation transformation between a source and a target point cloud.

## 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.
virtual 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.

## Protected Attributes

bool | use_umeyama_

## Detailed Description

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

TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given correspondences.

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
  Dirk Holz, Radu B. Rusu

Definition at line 58 of file transformation_estimation_svd.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointSource, typename PointTarget, typename Scalar = float>

using pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::ConstPtr

Initial value:
shared_ptr<const TransformationEstimationSVD<PointSource, PointTarget, Scalar>>

Definition at line 62 of file transformation_estimation_svd.h.

## Matrix4

template<typename PointSource, typename PointTarget, typename Scalar = float>

using pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::Matrix4

Initial value:
typename TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4
pcl::registration::TransformationEstimation::Matrix4
Eigen::Matrix< Scalar, 4, 4 > Matrix4
Definition transformation_estimation.h:64

Definition at line 65 of file transformation_estimation_svd.h.

## Ptr

template<typename PointSource, typename PointTarget, typename Scalar = float>

using pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<TransformationEstimationSVD<PointSource, PointTarget, Scalar>>

Definition at line 61 of file transformation_estimation_svd.h.

## Constructor & Destructor Documentation

## TransformationEstimationSVD()

template<typename PointSource, typename PointTarget, typename Scalar = float>

pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::TransformationEstimationSVD | ( | bool | use_umeyama = true | ) |

inline

Constructor.

Parameters

  [in] | use_umeyama | Toggles whether or not to use 3rd party software

Definition at line 70 of file transformation_estimation_svd.h.

References use_umeyama_.

## ~TransformationEstimationSVD()

template<typename PointSource, typename PointTarget, typename Scalar = float>

pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::~TransformationEstimationSVD | ( |  | ) |

override default

## Member Function Documentation

## estimateRigidTransformation() [1/5]

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::Indices & | indices_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | const pcl::Indices & | indices_tgt,
|  | Matrix4 & | transformation_matrix ) const

inline override

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | indices_src | the vector of indices describing the points of interest in cloud_src
  [in] | cloud_tgt | the target point cloud dataset
  [in] | indices_tgt | the vector of indices describing the correspondences of the interest points from indices_src
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 94 of file transformation_estimation_svd.hpp.

References estimateRigidTransformation().

## estimateRigidTransformation() [2/5]

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::Indices & | indices_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | Matrix4 & | transformation_matrix ) const

inline override

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | indices_src | the vector of indices describing the points of interest in cloud_src
  [in] | cloud_tgt | the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 73 of file transformation_estimation_svd.hpp.

References pcl::PointCloud< PointT >::size().

## estimateRigidTransformation() [3/5]

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | const pcl::Correspondences & | correspondences,
|  | Matrix4 & | transformation_matrix ) const

override

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | cloud_tgt | the target point cloud dataset
  [in] | correspondences | the vector of correspondences between source and target point cloud
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 116 of file transformation_estimation_svd.hpp.

References estimateRigidTransformation().

## estimateRigidTransformation() [4/5]

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | const pcl::PointCloud< PointSource > & | cloud_src,
|  | const pcl::PointCloud< PointTarget > & | cloud_tgt,
|  | Matrix4 & | transformation_matrix ) const

inline override

Estimate a rigid rotation transformation between a source and a target point cloud using SVD.

Parameters

  [in] | cloud_src | the source point cloud dataset
  [in] | cloud_tgt | the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 52 of file transformation_estimation_svd.hpp.

References estimateRigidTransformation(), and pcl::PointCloud< PointT >::size().

Referenced by estimateRigidTransformation(), estimateRigidTransformation(), and estimateRigidTransformation().

## estimateRigidTransformation() [5/5]

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation | ( | ConstCloudIterator< PointSource > & | source_it,
|  | ConstCloudIterator< PointTarget > & | target_it,
|  | Matrix4 & | transformation_matrix ) const

inline protected

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

Parameters

  [in] | source_it | an iterator over the source point cloud dataset
  [in] | target_it | an iterator over the target point cloud dataset
  [out] | transformation_matrix | the resultant transformation matrix

Definition at line 129 of file transformation_estimation_svd.hpp.

References pcl::ConstCloudIterator< PointT >::size(), and use_umeyama_.

## getTransformationFromCorrelation()

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::registration::TransformationEstimationSVD< 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 virtual

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

- tgt'
  Parameters

    [in] | cloud_src_demean | the input source cloud, demeaned, in Eigen format
    [in] | centroid_src | the input source centroid, in Eigen format
    [in] | cloud_tgt_demean | the input target cloud, demeaned, in Eigen format
    [in] | centroid_tgt | the input target cloud, in Eigen format
    [out] | transformation_matrix | the resultant 4x4 rigid transformation matrix

Reimplemented in pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >.

Definition at line 185 of file transformation_estimation_svd.hpp.

References pcl::console::isVerbosityLevelEnabled(), and pcl::console::L_DEBUG.

## Member Data Documentation

## use_umeyama_

template<typename PointSource, typename PointTarget, typename Scalar = float>

bool pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::use_umeyama_

protected

Definition at line 151 of file transformation_estimation_svd.h.

Referenced by estimateRigidTransformation(), and TransformationEstimationSVD().

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

- pcl/registration/transformation_estimation_svd.h
- pcl/registration/impl/transformation_estimation_svd.hpp