Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions
pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar > Class Template Reference

TransformationEstimationPointToPlane 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.h>

+ Inheritance diagram for pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >:
+ Collaboration diagram for pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >:

Public Types

using Ptr = shared_ptr< TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar > >
 
using ConstPtr = shared_ptr< const TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar > >
 
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< Scalar, 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

 TransformationEstimationPointToPlane ()=default
 
 ~TransformationEstimationPointToPlane () override=default
 
- Public Member Functions inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
 TransformationEstimationLM ()
 Constructor. More...
 
 TransformationEstimationLM (const TransformationEstimationLM &src)
 Copy constructor. More...
 
TransformationEstimationLMoperator= (const TransformationEstimationLM &src)
 Copy operator. More...
 
 ~TransformationEstimationLM () override=default
 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 ()=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. 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

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

Additional Inherited Members

- Protected Attributes inherited from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >
const PointCloudSourcetmp_src_
 Temporary pointer to the source dataset. More...
 
const PointCloudTargettmp_tgt_
 Temporary pointer to the target dataset. More...
 
const pcl::Indicestmp_idx_src_
 Temporary pointer to the source dataset indices. More...
 
const pcl::Indicestmp_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...
 

Detailed Description

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

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

Author
Michael Dixon

Definition at line 57 of file transformation_estimation_point_to_plane.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr< const TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >

Definition at line 62 of file transformation_estimation_point_to_plane.h.

◆ PointCloudSource

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointCloudSource = pcl::PointCloud<PointSource>

Definition at line 65 of file transformation_estimation_point_to_plane.h.

◆ PointCloudSourceConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr

Definition at line 67 of file transformation_estimation_point_to_plane.h.

◆ PointCloudSourcePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr

Definition at line 66 of file transformation_estimation_point_to_plane.h.

◆ PointCloudTarget

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointCloudTarget = pcl::PointCloud<PointTarget>

Definition at line 68 of file transformation_estimation_point_to_plane.h.

◆ PointIndicesConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr

Definition at line 70 of file transformation_estimation_point_to_plane.h.

◆ PointIndicesPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr

Definition at line 69 of file transformation_estimation_point_to_plane.h.

◆ Ptr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::Ptr = shared_ptr< TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >

Definition at line 60 of file transformation_estimation_point_to_plane.h.

◆ Vector4

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

Definition at line 72 of file transformation_estimation_point_to_plane.h.

Constructor & Destructor Documentation

◆ TransformationEstimationPointToPlane()

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::TransformationEstimationPointToPlane ( )
default

◆ ~TransformationEstimationPointToPlane()

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

Member Function Documentation

◆ computeDistance() [1/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
Scalar pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::computeDistance ( const PointSource &  p_src,
const PointTarget &  p_tgt 
) const
inlineoverrideprotectedvirtual

Compute the distance between a source point and its corresponding target point.

Parameters
[in]p_srcThe source point
[in]p_tgtThe target point
Returns
The distance between p_src and p_tgt
Note
Older versions of PCL used this method internally for calculating the optimization gradient. Since PCL 1.7, a switch has been made to the computeDistance method using Vector4 types instead. This method is only kept for API compatibility reasons.

Reimplemented from pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >.

Definition at line 79 of file transformation_estimation_point_to_plane.h.

◆ computeDistance() [2/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
Scalar pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >::computeDistance ( const Vector4 p_src,
const PointTarget &  p_tgt 
) const
inlineoverrideprotected

Definition at line 89 of file transformation_estimation_point_to_plane.h.


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