point_cloud_library / 1.12.1 / classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s.html /

TransformationEstimationPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals. More...

#include <pcl/registration/transformation_estimation_point_to_plane_lls.h>

Public Types

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

TransformationEstimationPointToPlaneLLS ()
~TransformationEstimationPointToPlaneLLS ()
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...
void constructTransformationMatrix (const double &alpha, const double &beta, const double &gamma, const double &tx, const double &ty, const double &tz, Matrix4 &transformation_matrix) const
Construct a 4 by 4 transformation matrix from the provided rotation and translation. More...

Detailed Description

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

TransformationEstimationPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals.

For additional details, see "Linear Least-Squares Optimization for Point-to-Plane ICP Surface Registration", Kok-Lim Low, 2004

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
Michael Dixon

Definition at line 63 of file transformation_estimation_point_to_plane_lls.h.

Member Typedef Documentation

ConstPtr

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

Matrix4

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >::Matrix4 = typename TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4

Ptr

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

Constructor & Destructor Documentation

TransformationEstimationPointToPlaneLLS()

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

~TransformationEstimationPointToPlaneLLS()

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

Member Function Documentation

constructTransformationMatrix()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >::constructTransformationMatrix ( const double & alpha,
const double & beta,
const double & gamma,
const double & tx,
const double & ty,
const double & tz,
Matrix4 & transformation_matrix
) const
inlineprotected

Construct a 4 by 4 transformation matrix from the provided rotation and translation.

Parameters
[in] alpha the rotation about the x-axis
[in] beta the rotation about the y-axis
[in] gamma the rotation about the z-axis
[in] tx the x translation
[in] ty the y translation
[in] tz the z translation
[out] transformation_matrix the resultant transformation matrix

Definition at line 135 of file transformation_estimation_point_to_plane_lls.hpp.

estimateRigidTransformation() [1/5]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< 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 98 of file transformation_estimation_point_to_plane_lls.hpp.

estimateRigidTransformation() [2/5]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< 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 75 of file transformation_estimation_point_to_plane_lls.hpp.

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

estimateRigidTransformation() [3/5]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >::estimateRigidTransformation ( const pcl::PointCloud< PointSource > & cloud_src,
const pcl::PointCloud< PointTarget > & cloud_tgt,
const pcl::Correspondences & correspondences,
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
[in] correspondences the vector of correspondences between source and target point cloud
[out] transformation_matrix the resultant transformation matrix

Definition at line 122 of file transformation_estimation_point_to_plane_lls.hpp.

estimateRigidTransformation() [4/5]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< 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_point_to_plane_lls.hpp.

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

estimateRigidTransformation() [5/5]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::registration::TransformationEstimationPointToPlaneLLS< 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 168 of file transformation_estimation_point_to_plane_lls.hpp.

References pcl::ConstCloudIterator< PointT >::isValid().


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_l_l_s.html