point_cloud_library / 1.12.1 / classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_weighted.html /

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>

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 = shared_ptr< TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar > >
using ConstPtr = shared_ptr< const TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar > >
using VectorX = Eigen::Matrix< MatScalar, Eigen::Dynamic, 1 >
using Vector4 = Eigen::Matrix< MatScalar, 4, 1 >
using Matrix4 = typename TransformationEstimation< PointSource, PointTarget, MatScalar >::Matrix4
- Public Types inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, float >
using Ptr = shared_ptr< TransformationEstimationPointToPlane< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const TransformationEstimationPointToPlane< PointSource, PointTarget, float > >
using PointCloudSource = pcl::PointCloud< PointSource >
using PointCloudSourcePtr = typename PointCloudSource::Ptr
using PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using PointCloudTarget = pcl::PointCloud< PointTarget >
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr
using Vector4 = Eigen::Matrix< float, 4, 1 >
- Public Types inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
using Ptr = shared_ptr< TransformationEstimationLM< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const TransformationEstimationLM< PointSource, PointTarget, float > >
using VectorX = Eigen::Matrix< float, Eigen::Dynamic, 1 >
using Vector4 = Eigen::Matrix< float, 4, 1 >
using Matrix4 = typename TransformationEstimation< PointSource, PointTarget, float >::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

TransformationEstimationPointToPlaneWeighted ()
Constructor. More...
TransformationEstimationPointToPlaneWeighted (const TransformationEstimationPointToPlaneWeighted &src)
Copy constructor. More...
TransformationEstimationPointToPlaneWeighted & operator= (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 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. 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
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 typename WarpPointRigid< PointSource, PointTarget, MatScalar >::Ptr &warp_fcn)
Set the function we use to warp points. More...
- Public Member Functions inherited from pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, float >
TransformationEstimationPointToPlane ()
~TransformationEstimationPointToPlane ()
- Public Member Functions inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
TransformationEstimationLM ()
Constructor. More...
TransformationEstimationLM (const TransformationEstimationLM &src)
Copy constructor. More...
TransformationEstimationLM & operator= (const TransformationEstimationLM &src)
Copy operator. More...
~TransformationEstimationLM ()
Destructor. More...
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. 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 LM. 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 LM. 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 LM. More...
void setWarpFunction (const typename WarpPointRigid< PointSource, PointTarget, float >::Ptr &warp_fcn)
Set the function we use to warp points. More...
- Public Member Functions inherited from pcl::registration::TransformationEstimation< PointSource, PointTarget, float >
TransformationEstimation ()
virtual ~TransformationEstimation ()

Protected Attributes

bool use_correspondence_weights_
std::vector< double > correspondence_weights_
const PointCloudSource * tmp_src_
Temporary pointer to the source dataset. More...
const PointCloudTarget * tmp_tgt_
Temporary pointer to the target dataset. More...
const pcl::Indices * tmp_idx_src_
Temporary pointer to the source dataset indices. More...
const pcl::Indices * tmp_idx_tgt_
Temporary pointer to the target dataset indices. More...
pcl::registration::WarpPointRigid< PointSource, PointTarget, MatScalar >::Ptr warp_point_
The parameterized function used to warp the source to the target. More...
- Protected Attributes inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
const PointCloudSource * tmp_src_
Temporary pointer to the source dataset. More...
const PointCloudTarget * tmp_tgt_
Temporary pointer to the target dataset. More...
const pcl::Indices * tmp_idx_src_
Temporary pointer to the source dataset indices. More...
const pcl::Indices * tmp_idx_tgt_
Temporary pointer to the target dataset indices. More...
pcl::registration::WarpPointRigid< PointSource, PointTarget, float >::Ptr 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, 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. More...
float computeDistance (const Vector4 &p_src, const PointTarget &p_tgt) const override

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 = shared_ptr<const TransformationEstimationPointToPlaneWeighted<PointSource, PointTarget, MatScalar> >

Matrix4

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

Ptr

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

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]

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

Constructor.

Definition at line 53 of file transformation_estimation_point_to_plane_weighted.hpp.

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

Copy constructor.

Parameters
[in] src the TransformationEstimationPointToPlaneWeighted object to copy into this

Definition at line 91 of file transformation_estimation_point_to_plane_weighted.h.

~TransformationEstimationPointToPlaneWeighted()

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

Destructor.

Definition at line 118 of file transformation_estimation_point_to_plane_weighted.h.

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

Definition at line 178 of file transformation_estimation_point_to_plane_weighted.hpp.

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

Definition at line 137 of file transformation_estimation_point_to_plane_weighted.hpp.

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

Definition at line 253 of file transformation_estimation_point_to_plane_weighted.hpp.

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_src the source point cloud dataset
[in] cloud_tgt the target point cloud dataset
[out] transformation_matrix the resultant transformation matrix
Note
Uses the weights given by setWeights.

Definition at line 66 of file transformation_estimation_point_to_plane_weighted.hpp.

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

operator=()

setUseCorrespondenceWeights()

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

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_fcn a shared pointer to an object that warps points

Definition at line 193 of file transformation_estimation_point_to_plane_weighted.h.

References pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::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_
mutableprotected

tmp_idx_tgt_

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

tmp_src_

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

tmp_tgt_

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

use_correspondence_weights_

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:

© 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_point_to_plane_weighted.html