TransformationEstimationSymmetricPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the symmetric point-to-plane distance between two clouds of corresponding points with normals. More...
#include <pcl/registration/transformation_estimation_symmetric_point_to_plane_lls.h>
Public Types |
|
using | Ptr = shared_ptr< TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar > > |
using | ConstPtr = shared_ptr< const TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar > > |
using | Matrix4 = typename TransformationEstimation< PointSource, PointTarget, Scalar >::Matrix4 |
using | Vector6 = Eigen::Matrix< Scalar, 6, 1 > |
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 |
|
TransformationEstimationSymmetricPointToPlaneLLS () | |
~TransformationEstimationSymmetricPointToPlaneLLS () | |
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... |
|
void | setEnforceSameDirectionNormals (bool enforce_same_direction_normals) |
Set whether or not to negate source or target normals on a per-point basis such that they point in the same direction. More... |
|
bool | getEnforceSameDirectionNormals () |
Obtain whether source or target normals are negated on a per-point basis such that they point in the same direction or not. 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 Vector6 ¶meters, Matrix4 &transformation_matrix) const |
Construct a 4 by 4 transformation matrix from the provided rotation and translation. More... |
|
Protected Attributes |
|
bool | enforce_same_direction_normals_ |
Whether or not to negate source and/or target normals such that they point in the same direction. More... |
|
Detailed Description
template<typename PointSource, typename PointTarget, typename Scalar = float>
class pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >
TransformationEstimationSymmetricPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for minimizing the symmetric 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 "A Symmetric Objective Function for ICP", Szymon Rusinkiewicz, 2019
- 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.
Definition at line 59 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Member Typedef Documentation
ConstPtr
using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const TransformationEstimationSymmetricPointToPlaneLLS<PointSource, PointTarget, Scalar> > |
Definition at line 68 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Matrix4
using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >::Matrix4 = typename TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4 |
Definition at line 71 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Ptr
using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<TransformationEstimationSymmetricPointToPlaneLLS<PointSource, PointTarget, Scalar> > |
Definition at line 64 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Vector6
using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >::Vector6 = Eigen::Matrix<Scalar, 6, 1> |
Definition at line 72 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Constructor & Destructor Documentation
TransformationEstimationSymmetricPointToPlaneLLS()
|
inline |
Definition at line 74 of file transformation_estimation_symmetric_point_to_plane_lls.h.
~TransformationEstimationSymmetricPointToPlaneLLS()
|
inline |
Definition at line 76 of file transformation_estimation_symmetric_point_to_plane_lls.h.
Member Function Documentation
constructTransformationMatrix()
|
inlineprotected |
Construct a 4 by 4 transformation matrix from the provided rotation and translation.
- Parameters
-
[in] parameters (alpha, beta, gamma, tx, ty, tz) specifying rotation about the x, y, and z-axis and translation along the the x, y, and z-axis respectively [out] transformation_matrix the resultant transformation matrix
Definition at line 131 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
estimateRigidTransformation() [1/5]
|
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 94 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
estimateRigidTransformation() [2/5]
|
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 71 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
References pcl::PointCloud< PointT >::size().
estimateRigidTransformation() [3/5]
|
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 118 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
estimateRigidTransformation() [4/5]
|
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 49 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
References pcl::PointCloud< PointT >::size().
estimateRigidTransformation() [5/5]
|
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 152 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
References pcl::ConstCloudIterator< PointT >::isValid(), and pcl::ConstCloudIterator< PointT >::reset().
getEnforceSameDirectionNormals()
|
inline |
Obtain whether source or target normals are negated on a per-point basis such that they point in the same direction or not.
Definition at line 214 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
setEnforceSameDirectionNormals()
|
inline |
Set whether or not to negate source or target normals on a per-point basis such that they point in the same direction.
- Parameters
-
[in] enforce_same_direction_normals whether to negate source or target normals on a per-point basis such that they point in the same direction.
Definition at line 206 of file transformation_estimation_symmetric_point_to_plane_lls.hpp.
Member Data Documentation
enforce_same_direction_normals_
|
protected |
Whether or not to negate source and/or target normals such that they point in the same direction.
Definition at line 164 of file transformation_estimation_symmetric_point_to_plane_lls.h.
The documentation for this class was generated from the following files:
- pcl/registration/transformation_estimation_symmetric_point_to_plane_lls.h
- pcl/registration/impl/transformation_estimation_symmetric_point_to_plane_lls.hpp
© 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_symmetric_point_to_plane_l_l_s.html