point_cloud_library / 1.12.1 / classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html /

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

#include <pcl/registration/transformation_estimation_svd.h>

Public Types

using Ptr = shared_ptr< TransformationEstimationSVD< PointSource, PointTarget, Scalar > >
using ConstPtr = shared_ptr< const TransformationEstimationSVD< PointSource, PointTarget, Scalar > >
using Matrix4 = typename TransformationEstimation< PointSource, PointTarget, Scalar >::Matrix4
- Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
using Matrix4 = Eigen::Matrix< float, 4, 4 >
using Ptr = shared_ptr< TransformationEstimation< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const TransformationEstimation< PointSource, PointTarget, float > >

Public Member Functions

TransformationEstimationSVD (bool use_umeyama=true)
Constructor. More...
~TransformationEstimationSVD ()
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. More...
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. More...
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. More...
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. More...
- Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
TransformationEstimation ()
virtual ~TransformationEstimation ()
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. More...
virtual void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &indices_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. More...
virtual 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=0
Estimate a rigid rotation transformation between a source and a target point cloud. More...
virtual void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Correspondences &correspondences, Matrix4 &transformation_matrix) const=0
Estimate a rigid rotation transformation between a source and a target point cloud. More...

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...
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. More...

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 57 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 = 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 = typename TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4

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 60 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 69 of file transformation_estimation_svd.h.

~TransformationEstimationSVD()

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

Definition at line 71 of file transformation_estimation_svd.h.

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
inlineoverride

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 95 of file transformation_estimation_svd.hpp.

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
inlineoverride

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 74 of file transformation_estimation_svd.hpp.

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 117 of file transformation_estimation_svd.hpp.

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
inlineoverride

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 53 of file transformation_estimation_svd.hpp.

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
inlineprotected

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 130 of file transformation_estimation_svd.hpp.

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
protectedvirtual

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

Definition at line 186 of file transformation_estimation_svd.hpp.

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 150 of file transformation_estimation_svd.h.


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

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html