|  | NASA Astrobee Robot Software
    0.19.1
    Flight software for the Astrobee robots operating inside the International Space Station. | 
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 <transformation_estimation_symmetric_point_to_plane_lls.h>

| Public Types | |
| using | Ptr = boost::shared_ptr< TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar > > | 
| using | ConstPtr = boost::shared_ptr< const TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar > > | 
| using | Matrix4 = typename TransformationEstimation< PointSource, PointTarget, Scalar >::Matrix4 | 
| using | Vector6 = Eigen::Matrix< Scalar, 6, 1 > | 
| Public Member Functions | |
| TransformationEstimationSymmetricPointToPlaneLLS2 () | |
| ~TransformationEstimationSymmetricPointToPlaneLLS2 () | |
| 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 std::vector< int > &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 std::vector< int > &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const std::vector< int > &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... | |
| 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... | |
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
| using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar >::ConstPtr = boost::shared_ptr<const TransformationEstimationSymmetricPointToPlaneLLS2<PointSource, PointTarget, Scalar> > | 
| using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar >::Matrix4 = typename TransformationEstimation<PointSource, PointTarget, Scalar>::Matrix4 | 
| using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar >::Ptr = boost::shared_ptr<TransformationEstimationSymmetricPointToPlaneLLS2<PointSource, PointTarget, Scalar> > | 
| using pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS2< PointSource, PointTarget, Scalar >::Vector6 = Eigen::Matrix<Scalar, 6, 1> | 
| 
 | inline | 
| 
 | inline | 
| 
 | inlineprotected | 
Construct a 4 by 4 transformation matrix from the provided rotation and translation.
| [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 | 
| 
 | inlineoverride | 
Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
| [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 | 
| 
 | inlineoverride | 
Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
| [in] | cloud_src | the source point cloud dataset | 
| [in] | cloud_tgt | the target point cloud dataset | 
| [out] | transformation_matrix | the resultant transformation matrix | 
| 
 | inlineoverride | 
Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
| [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@param transformation_matrix the resultant transformation matrix | 
| 
 | inlineoverride | 
Estimate a rigid rotation transformation between a source and a target point cloud using SVD.
| [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 | 
| 
 | inlineprotected | 
Estimate a rigid rotation transformation between a source and a target.
| [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 | 
| 
 | inline | 
Obtain whether source or target normals are negated on a per-point basis such that they point in the same direction or not.
| 
 | inline | 
Set whether or not to negate source or target normals on a per-point basis such that they point in the same direction.
| [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. | 
| 
 | protected | 
Whether or not to negate source and/or target normals such that they point in the same direction.