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

TransformationEstimationPointToPlaneWeighted uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences. More...

#include <pcl/registration/transformation_estimation_point_to_plane_weighted.h>

+ Inheritance diagram for pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >:

Classes

struct  Functor
 Base functor all the models that need non linear optimization must define their own one and implement operator() (const Eigen::VectorXd& x, Eigen::VectorXd& fvec) or operator() (const Eigen::VectorXf& x, Eigen::VectorXf& fvec) dependening on the choosen _Scalar. More...
 
struct  OptimizationFunctor
 
struct  OptimizationFunctorWithIndices
 

Public Types

typedef boost::shared_ptr
< TransformationEstimationPointToPlaneWeighted
< PointSource, PointTarget,
MatScalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimationPointToPlaneWeighted
< PointSource, PointTarget,
MatScalar > > 
ConstPtr
 
typedef Eigen::Matrix
< MatScalar, Eigen::Dynamic, 1 > 
VectorX
 
typedef Eigen::Matrix
< MatScalar, 4, 1 > 
Vector4
 
typedef
TransformationEstimation
< PointSource, PointTarget,
MatScalar >::Matrix4 
Matrix4
 
- Public Types inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, MatScalar >
typedef boost::shared_ptr
< TransformationEstimationPointToPlane
< PointSource, PointTarget,
MatScalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimationPointToPlane
< PointSource, PointTarget,
MatScalar > > 
ConstPtr
 
typedef pcl::PointCloud
< PointSource > 
PointCloudSource
 
typedef PointCloudSource::Ptr PointCloudSourcePtr
 
typedef PointCloudSource::ConstPtr PointCloudSourceConstPtr
 
typedef pcl::PointCloud
< PointTarget > 
PointCloudTarget
 
typedef PointIndices::Ptr PointIndicesPtr
 
typedef PointIndices::ConstPtr PointIndicesConstPtr
 
typedef Eigen::Matrix
< MatScalar, 4, 1 > 
Vector4
 
- Public Types inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >
typedef boost::shared_ptr
< TransformationEstimationLM
< PointSource, PointTarget,
MatScalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimationLM
< PointSource, PointTarget,
MatScalar > > 
ConstPtr
 
typedef Eigen::Matrix
< MatScalar, Eigen::Dynamic, 1 > 
VectorX
 
typedef Eigen::Matrix
< MatScalar, 4, 1 > 
Vector4
 
typedef
TransformationEstimation
< PointSource, PointTarget,
MatScalar >::Matrix4 
Matrix4
 
- Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, MatScalar >
typedef Eigen::Matrix
< MatScalar, 4, 4 > 
Matrix4
 
typedef boost::shared_ptr
< TransformationEstimation
< PointSource, PointTarget,
MatScalar > > 
Ptr
 
typedef boost::shared_ptr
< const
TransformationEstimation
< PointSource, PointTarget,
MatScalar > > 
ConstPtr
 

Public Member Functions

 TransformationEstimationPointToPlaneWeighted ()
 Constructor. More...
 
 TransformationEstimationPointToPlaneWeighted (const TransformationEstimationPointToPlaneWeighted &src)
 Copy constructor. More...
 
TransformationEstimationPointToPlaneWeightedoperator= (const TransformationEstimationPointToPlaneWeighted &src)
 Copy operator. More...
 
virtual ~TransformationEstimationPointToPlaneWeighted ()
 Destructor. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target point cloud using LM. 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 rotation transformation between a source and a target point cloud using LM. More...
 
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 rotation transformation between a source and a target point cloud using LM. More...
 
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 rotation transformation between a source and a target point cloud using LM. More...
 
void setWeights (const std::vector< double > &weights)
 
void setUseCorrespondenceWeights (bool use_correspondence_weights)
 use the weights given in the pcl::CorrespondencesPtr for one of the estimateTransformation (...) methods More...
 
void setWarpFunction (const boost::shared_ptr< WarpPointRigid< PointSource, PointTarget, MatScalar > > &warp_fcn)
 Set the function we use to warp points. More...
 
- Public Member Functions inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, MatScalar >
 TransformationEstimationPointToPlane ()
 
virtual ~TransformationEstimationPointToPlane ()
 
- Public Member Functions inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >
 TransformationEstimationLM ()
 Constructor. More...
 
 TransformationEstimationLM (const TransformationEstimationLM &src)
 Copy constructor. More...
 
TransformationEstimationLMoperator= (const TransformationEstimationLM &src)
 Copy operator. More...
 
virtual ~TransformationEstimationLM ()
 Destructor. More...
 
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::PointCloud< PointTarget > &cloud_tgt, Matrix4 &transformation_matrix) const
 Estimate a rigid rotation transformation between a source and a target point cloud using LM. 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 rotation transformation between a source and a target point cloud using LM. More...
 
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 rotation transformation between a source and a target point cloud using LM. More...
 
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 rotation transformation between a source and a target point cloud using LM. More...
 
void setWarpFunction (const boost::shared_ptr< WarpPointRigid< PointSource, PointTarget, MatScalar > > &warp_fcn)
 Set the function we use to warp points. More...
 
- Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, MatScalar >
 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 std::vector< int > &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 std::vector< int > &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const std::vector< int > &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 Attributes

bool use_correspondence_weights_
 
std::vector< double > correspondence_weights_
 
const PointCloudSourcetmp_src_
 Temporary pointer to the source dataset. More...
 
const PointCloudTargettmp_tgt_
 Temporary pointer to the target dataset. More...
 
const std::vector< int > * tmp_idx_src_
 Temporary pointer to the source dataset indices. More...
 
const std::vector< int > * tmp_idx_tgt_
 Temporary pointer to the target dataset indices. More...
 
boost::shared_ptr
< pcl::registration::WarpPointRigid
< PointSource, PointTarget,
MatScalar > > 
warp_point_
 The parameterized function used to warp the source to the target. More...
 
- Protected Attributes inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >
const PointCloudSourcetmp_src_
 Temporary pointer to the source dataset. More...
 
const PointCloudTargettmp_tgt_
 Temporary pointer to the target dataset. More...
 
const std::vector< int > * tmp_idx_src_
 Temporary pointer to the source dataset indices. More...
 
const std::vector< int > * tmp_idx_tgt_
 Temporary pointer to the target dataset indices. More...
 
boost::shared_ptr
< pcl::registration::WarpPointRigid
< PointSource, PointTarget,
MatScalar > > 
warp_point_
 The parameterized function used to warp the source to the target. More...
 

Additional Inherited Members

- Protected Member Functions inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, MatScalar >
virtual MatScalar computeDistance (const PointSource &p_src, const PointTarget &p_tgt) const
 Compute the distance between a source point and its corresponding target point. More...
 
virtual MatScalar computeDistance (const Vector4 &p_src, const PointTarget &p_tgt) const
 Compute the distance between a source point and its corresponding target point. More...
 

Detailed Description

template<typename PointSource, typename PointTarget, typename MatScalar = float>
class pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >

TransformationEstimationPointToPlaneWeighted uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences.

In addition to the TransformationEstimationPointToPlane class, this version takes per-correspondence weights and optimizes accordingly.

Author
Alexandru-Eugen Ichim

Definition at line 59 of file transformation_estimation_point_to_plane_weighted.h.

Member Typedef Documentation

template<typename PointSource , typename PointTarget , typename MatScalar = float>
typedef boost::shared_ptr<const TransformationEstimationPointToPlaneWeighted<PointSource, PointTarget, MatScalar> > pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::ConstPtr
template<typename PointSource , typename PointTarget , typename MatScalar = float>
typedef TransformationEstimation<PointSource, PointTarget, MatScalar>::Matrix4 pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::Matrix4
template<typename PointSource , typename PointTarget , typename MatScalar = float>
typedef boost::shared_ptr<TransformationEstimationPointToPlaneWeighted<PointSource, PointTarget, MatScalar> > pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::Ptr
template<typename PointSource , typename PointTarget , typename MatScalar = float>
typedef Eigen::Matrix<MatScalar, 4, 1> pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::Vector4
template<typename PointSource , typename PointTarget , typename MatScalar = float>
typedef Eigen::Matrix<MatScalar, Eigen::Dynamic, 1> pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::VectorX

Constructor & Destructor Documentation

template<typename PointSource , typename PointTarget , typename MatScalar >
pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::TransformationEstimationPointToPlaneWeighted ( )

Constructor.

Definition at line 50 of file transformation_estimation_point_to_plane_weighted.hpp.

template<typename PointSource , typename PointTarget , typename MatScalar = float>
pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::TransformationEstimationPointToPlaneWeighted ( const TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar > &  src)
inline

Copy constructor.

Parameters
[in]srcthe TransformationEstimationPointToPlaneWeighted object to copy into this

Definition at line 84 of file transformation_estimation_point_to_plane_weighted.h.

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

Destructor.

Definition at line 110 of file transformation_estimation_point_to_plane_weighted.h.

Member Function Documentation

template<typename PointSource , typename PointTarget , typename MatScalar >
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
Matrix4 transformation_matrix 
) const
inline

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

Parameters
[in]cloud_srcthe source point cloud dataset
[in]cloud_tgtthe target point cloud dataset
[out]transformation_matrixthe resultant transformation matrix
Note
Uses the weights given by setWeights.

Definition at line 63 of file transformation_estimation_point_to_plane_weighted.hpp.

References pcl::PointCloud< T >::points, and pcl::PointCloud< T >::size().

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

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

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
Note
Uses the weights given by setWeights.

Definition at line 124 of file transformation_estimation_point_to_plane_weighted.hpp.

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

template<typename PointSource , typename PointTarget , typename MatScalar >
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::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
inline

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

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
Note
Uses the weights given by setWeights.

Definition at line 159 of file transformation_estimation_point_to_plane_weighted.hpp.

template<typename PointSource , typename PointTarget , typename MatScalar >
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > &  cloud_src,
const pcl::PointCloud< PointTarget > &  cloud_tgt,
const pcl::Correspondences correspondences,
Matrix4 transformation_matrix 
) const
inline

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

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
Note
Uses the weights given by setWeights.

Definition at line 222 of file transformation_estimation_point_to_plane_weighted.hpp.

template<typename PointSource , typename PointTarget , typename MatScalar = float>
TransformationEstimationPointToPlaneWeighted& pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::operator= ( const TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar > &  src)
inline
template<typename PointSource , typename PointTarget , typename MatScalar = float>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::setUseCorrespondenceWeights ( bool  use_correspondence_weights)
inline
template<typename PointSource , typename PointTarget , typename MatScalar = float>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::setWarpFunction ( const boost::shared_ptr< WarpPointRigid< PointSource, PointTarget, MatScalar > > &  warp_fcn)
inline

Set the function we use to warp points.

Defaults to rigid 6D warp.

Parameters
[in]warp_fcna shared pointer to an object that warps points

Definition at line 183 of file transformation_estimation_point_to_plane_weighted.h.

References pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::warp_point_.

template<typename PointSource , typename PointTarget , typename MatScalar = float>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::setWeights ( const std::vector< double > &  weights)
inline

Member Data Documentation

template<typename PointSource , typename PointTarget , typename MatScalar = float>
std::vector<double> pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::correspondence_weights_
mutableprotected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
const std::vector<int>* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_idx_src_
mutableprotected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
const std::vector<int>* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_idx_tgt_
mutableprotected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
const PointCloudSource* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_src_
mutableprotected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
const PointCloudTarget* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_tgt_
mutableprotected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
bool pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::use_correspondence_weights_
protected
template<typename PointSource , typename PointTarget , typename MatScalar = float>
boost::shared_ptr<pcl::registration::WarpPointRigid<PointSource, PointTarget, MatScalar> > pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::warp_point_
protected

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