Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
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) depending on the chosen _Scalar. More...
struct  OptimizationFunctor
struct  OptimizationFunctorWithIndices

Public Types

using Ptr
using ConstPtr
using VectorX = Eigen::Matrix<MatScalar, Eigen::Dynamic, 1>
using Vector4 = Eigen::Matrix<MatScalar, 4, 1>
using Matrix4
Public Types inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, float >
using Ptr
using ConstPtr
using PointCloudSource
using PointCloudSourcePtr
using PointCloudSourceConstPtr
using PointCloudTarget
using PointIndicesPtr
using PointIndicesConstPtr
using Vector4
Public Types inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
using Ptr
using ConstPtr
using VectorX
using Vector4
using Matrix4
Public Types inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
using Matrix4
using Ptr
using ConstPtr

Public Member Functions

 TransformationEstimationPointToPlaneWeighted ()
 Constructor.
 TransformationEstimationPointToPlaneWeighted (const TransformationEstimationPointToPlaneWeighted &src)
 Copy constructor.
TransformationEstimationPointToPlaneWeightedoperator= (const TransformationEstimationPointToPlaneWeighted &src)
 Copy operator.
virtual ~TransformationEstimationPointToPlaneWeighted ()=default
 Destructor.
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.
void estimateRigidTransformation (const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &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.
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
 Estimate a rigid rotation transformation between a source and a target point cloud using LM.
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.
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
void setWarpFunction (const typename WarpPointRigid< PointSource, PointTarget, MatScalar >::Ptr &warp_fcn)
 Set the function we use to warp points.
Public Member Functions inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, float >
 TransformationEstimationPointToPlane ()=default
 ~TransformationEstimationPointToPlane () override=default
Public Member Functions inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
 TransformationEstimationLM ()
 Constructor.
TransformationEstimationLMoperator= (const TransformationEstimationLM &src)
 Copy operator.
 ~TransformationEstimationLM () override=default
 Destructor.
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 LM.
void setWarpFunction (const typename WarpPointRigid< PointSource, PointTarget, float >::Ptr &warp_fcn)
 Set the function we use to warp points.
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 Attributes

bool use_correspondence_weights_ {true}
std::vector< double > correspondence_weights_ {}
const PointCloudSource * tmp_src_ {nullptr}
 Temporary pointer to the source dataset.
const PointCloudTarget * tmp_tgt_ {nullptr}
 Temporary pointer to the target dataset.
const pcl::Indicestmp_idx_src_ {nullptr}
 Temporary pointer to the source dataset indices.
const pcl::Indicestmp_idx_tgt_ {nullptr}
 Temporary pointer to the target dataset indices.
pcl::registration::WarpPointRigid< PointSource, PointTarget, MatScalar >::Ptr warp_point_
 The parameterized function used to warp the source to the target.
Protected Attributes inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
const PointCloudSource * tmp_src_
 Temporary pointer to the source dataset.
const PointCloudTarget * tmp_tgt_
 Temporary pointer to the target dataset.
const pcl::Indicestmp_idx_src_
 Temporary pointer to the source dataset indices.
const pcl::Indicestmp_idx_tgt_
 Temporary pointer to the target dataset indices.
pcl::registration::WarpPointRigid< PointSource, PointTarget, float >::Ptr warp_point_
 The parameterized function used to warp the source to the target.

Additional Inherited Members

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

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

◆ ConstPtr

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

◆ Matrix4

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

◆ Ptr

template<typename PointSource, typename PointTarget, typename MatScalar = float>
using pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::Ptr
Initial value:
PointTarget,
MatScalar>>

Definition at line 71 of file transformation_estimation_point_to_plane_weighted.h.

◆ Vector4

template<typename PointSource, typename PointTarget, typename MatScalar = float>
using pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::Vector4 = Eigen::Matrix<MatScalar, 4, 1>

◆ VectorX

template<typename PointSource, typename PointTarget, typename MatScalar = float>
using pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::VectorX = Eigen::Matrix<MatScalar, Eigen::Dynamic, 1>

Constructor & Destructor Documentation

◆ TransformationEstimationPointToPlaneWeighted() [1/2]

◆ TransformationEstimationPointToPlaneWeighted() [2/2]

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

◆ ~TransformationEstimationPointToPlaneWeighted()

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

Destructor.

Member Function Documentation

◆ estimateRigidTransformation() [1/4]

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

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 interest points from indices_src
[out]transformation_matrixthe resultant transformation matrix
Note
Uses the weights given by setWeights.

Definition at line 175 of file transformation_estimation_point_to_plane_weighted.hpp.

References correspondence_weights_, tmp_idx_src_, tmp_idx_tgt_, tmp_src_, tmp_tgt_, and warp_point_.

◆ estimateRigidTransformation() [2/4]

template<typename PointSource, typename PointTarget, typename MatScalar>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > & cloud_src,
const pcl::Indices & 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 134 of file transformation_estimation_point_to_plane_weighted.hpp.

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

◆ estimateRigidTransformation() [3/4]

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 250 of file transformation_estimation_point_to_plane_weighted.hpp.

References correspondence_weights_, estimateRigidTransformation(), and use_correspondence_weights_.

◆ estimateRigidTransformation() [4/4]

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< PointT >::size().

Referenced by estimateRigidTransformation(), and estimateRigidTransformation().

◆ operator=()

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

◆ setUseCorrespondenceWeights()

template<typename PointSource, typename PointTarget, typename MatScalar = float>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::setUseCorrespondenceWeights ( bool use_correspondence_weights)
inline

use the weights given in the pcl::CorrespondencesPtr for one of the estimateTransformation (...) methods

Definition at line 185 of file transformation_estimation_point_to_plane_weighted.h.

References use_correspondence_weights_.

◆ setWarpFunction()

template<typename PointSource, typename PointTarget, typename MatScalar = float>
void pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::setWarpFunction ( const typename WarpPointRigid< PointSource, PointTarget, MatScalar >::Ptr & 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 194 of file transformation_estimation_point_to_plane_weighted.h.

References warp_point_.

◆ setWeights()

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

◆ correspondence_weights_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
std::vector<double> pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::correspondence_weights_ {}
mutableprotected

◆ tmp_idx_src_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
const pcl::Indices* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_idx_src_ {nullptr}
mutableprotected

Temporary pointer to the source dataset indices.

Definition at line 211 of file transformation_estimation_point_to_plane_weighted.h.

Referenced by estimateRigidTransformation(), operator=(), and TransformationEstimationPointToPlaneWeighted().

◆ tmp_idx_tgt_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
const pcl::Indices* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_idx_tgt_ {nullptr}
mutableprotected

Temporary pointer to the target dataset indices.

Definition at line 214 of file transformation_estimation_point_to_plane_weighted.h.

Referenced by estimateRigidTransformation(), operator=(), and TransformationEstimationPointToPlaneWeighted().

◆ tmp_src_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
const PointCloudSource* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_src_ {nullptr}
mutableprotected

◆ tmp_tgt_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
const PointCloudTarget* pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::tmp_tgt_ {nullptr}
mutableprotected

◆ use_correspondence_weights_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
bool pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::use_correspondence_weights_ {true}
protected

◆ warp_point_

template<typename PointSource, typename PointTarget, typename MatScalar = float>
pcl::registration::WarpPointRigid<PointSource,PointTarget,MatScalar>::Ptr pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::warp_point_
protected

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