Loading...
Searching...
No Matches
pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar > Class Template Reference
Module registration

JointIterativeClosestPoint extends ICP to multiple frames which share the same transform. More...

`#include <pcl/registration/joint_icp.h>`

Inheritance diagram for pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >:

## Public Types

using | PointCloudSource = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource
using | PointCloudSourcePtr = typename PointCloudSource::Ptr
using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using | PointCloudTarget = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget
using | PointCloudTargetPtr = typename PointCloudTarget::Ptr
using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using | KdTree = pcl::search::KdTree< PointTarget >
using | KdTreePtr = typename KdTree::Ptr
using | KdTreeReciprocal = pcl::search::KdTree< PointSource >
using | KdTreeReciprocalPtr = typename KdTree::Ptr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr
using | Ptr = shared_ptr< JointIterativeClosestPoint< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const JointIterativeClosestPoint< PointSource, PointTarget, Scalar > >
using | CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >
using | CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr
using | CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr
using | Matrix4 = typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4
Public Types inherited from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
using | PointCloudSource = typename Registration< PointSource, PointTarget, Scalar >::PointCloudSource
using | PointCloudSourcePtr = typename PointCloudSource::Ptr
using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using | PointCloudTarget = typename Registration< PointSource, PointTarget, Scalar >::PointCloudTarget
using | PointCloudTargetPtr = typename PointCloudTarget::Ptr
using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr
using | Ptr = shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const IterativeClosestPoint< PointSource, PointTarget, Scalar > >
using | Matrix4 = typename Registration< PointSource, PointTarget, Scalar >::Matrix4
Public Types inherited from pcl::Registration< PointSource, PointTarget, Scalar >
using | Matrix4 = Eigen::Matrix< Scalar, 4, 4 >
using | Ptr = shared_ptr< Registration< PointSource, PointTarget, Scalar > >
using | ConstPtr = shared_ptr< const Registration< PointSource, PointTarget, Scalar > >
using | CorrespondenceRejectorPtr = pcl::registration::CorrespondenceRejector::Ptr
using | KdTree = pcl::search::KdTree< PointTarget >
using | KdTreePtr = typename KdTree::Ptr
using | KdTreeReciprocal = pcl::search::KdTree< PointSource >
using | KdTreeReciprocalPtr = typename KdTreeReciprocal::Ptr
using | PointCloudSource = pcl::PointCloud< PointSource >
using | PointCloudSourcePtr = typename PointCloudSource::Ptr
using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using | PointCloudTarget = pcl::PointCloud< PointTarget >
using | PointCloudTargetPtr = typename PointCloudTarget::Ptr
using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using | PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr
using | TransformationEstimation = typename pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >
using | TransformationEstimationPtr = typename TransformationEstimation::Ptr
using | TransformationEstimationConstPtr = typename TransformationEstimation::ConstPtr
using | CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >
using | CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr
using | CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr
using | UpdateVisualizerCallbackSignature = void(const pcl::PointCloud< PointSource > &, const pcl::Indices &, const pcl::PointCloud< PointTarget > &, const pcl::Indices &)
| The callback signature to the function updating intermediate source point cloud position during it's registration to the target point cloud.
Public Types inherited from pcl::PCLBase< PointSource >
using | PointCloud = pcl::PointCloud< PointSource >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr

## Public Member Functions

| JointIterativeClosestPoint ()
| Empty constructor.
| ~JointIterativeClosestPoint () override=default
| Empty destructor.
void | setInputSource (const PointCloudSourceConstPtr &) override
| Provide a pointer to the input source (e.g., the point cloud that we want to align to the target)
void | addInputSource (const PointCloudSourceConstPtr &cloud)
| Add a source cloud to the joint solver.
void | setInputTarget (const PointCloudTargetConstPtr &) override
| Provide a pointer to the input target (e.g., the point cloud that we want to align to the target)
void | addInputTarget (const PointCloudTargetConstPtr &cloud)
| Add a target cloud to the joint solver.
void | addCorrespondenceEstimation (CorrespondenceEstimationPtr ce)
| Add a manual correspondence estimator If you choose to do this, you must add one for each input source / target pair.
void | clearInputSources ()
| Reset my list of input sources.
void | clearInputTargets ()
| Reset my list of input targets.
void | clearCorrespondenceEstimations ()
| Reset my list of correspondence estimation methods.
Public Member Functions inherited from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
| IterativeClosestPoint ()
| Empty constructor.
| IterativeClosestPoint (const IterativeClosestPoint &)=delete
| Due to `convergence_criteria_` holding references to the class members, it is tricky to correctly implement its copy and move operations correctly.
| IterativeClosestPoint (IterativeClosestPoint &&)=delete
IterativeClosestPoint & | operator= (const IterativeClosestPoint &)=delete
IterativeClosestPoint & | operator= (IterativeClosestPoint &&)=delete
| ~IterativeClosestPoint () override=default
| Empty destructor.
pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr | getConvergeCriteria ()
| Returns a pointer to the DefaultConvergenceCriteria used by the IterativeClosestPoint class.
void | setUseReciprocalCorrespondences (bool use_reciprocal_correspondence)
| Set whether to use reciprocal correspondence or not.
bool | getUseReciprocalCorrespondences () const
| Obtain whether reciprocal correspondence are used or not.
void | setNumberOfThreads (unsigned int nr_threads)
| Set the number of threads to use.
Public Member Functions inherited from pcl::Registration< PointSource, PointTarget, Scalar >
| Registration ()
| Empty constructor.
| ~Registration () override=default
| destructor.
void | setTransformationEstimation (const TransformationEstimationPtr &te)
| Provide a pointer to the transformation estimation object.
void | setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce)
| Provide a pointer to the correspondence estimation object.
PointCloudSourceConstPtr const | getInputSource ()
| Get a pointer to the input point cloud dataset target.
PointCloudTargetConstPtr const | getInputTarget ()
| Get a pointer to the input point cloud dataset target.
void | setSearchMethodTarget (const KdTreePtr &tree, bool force_no_recompute=false)
| Provide a pointer to the search object used to find correspondences in the target cloud.
KdTreePtr | getSearchMethodTarget () const
| Get a pointer to the search method used to find correspondences in the target cloud.
void | setSearchMethodSource (const KdTreeReciprocalPtr &tree, bool force_no_recompute=false)
| Provide a pointer to the search object used to find correspondences in the source cloud (usually used by reciprocal correspondence finding).
KdTreeReciprocalPtr | getSearchMethodSource () const
| Get a pointer to the search method used to find correspondences in the source cloud.
Matrix4 | getFinalTransformation ()
| Get the final transformation matrix estimated by the registration method.
Matrix4 | getLastIncrementalTransformation ()
| Get the last incremental transformation matrix estimated by the registration method.
void | setMaximumIterations (int nr_iterations)
| Set the maximum number of iterations the internal optimization should run for.
int | getMaximumIterations ()
| Get the maximum number of iterations the internal optimization should run for, as set by the user.
void | setRANSACIterations (int ransac_iterations)
| Set the number of iterations RANSAC should run for.
double | getRANSACIterations ()
| Get the number of iterations RANSAC should run for, as set by the user.
void | setRANSACOutlierRejectionThreshold (double inlier_threshold)
| Set the inlier distance threshold for the internal RANSAC outlier rejection loop.
double | getRANSACOutlierRejectionThreshold ()
| Get the inlier distance threshold for the internal outlier rejection loop as set by the user.
void | setMaxCorrespondenceDistance (double distance_threshold)
| Set the maximum distance threshold between two correspondent points in source <-> target.
double | getMaxCorrespondenceDistance ()
| Get the maximum distance threshold between two correspondent points in source <-> target.
void | setTransformationEpsilon (double epsilon)
| Set the transformation epsilon (maximum allowable translation squared difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.
double | getTransformationEpsilon ()
| Get the transformation epsilon (maximum allowable translation squared difference between two consecutive transformations) as set by the user.
void | setTransformationRotationEpsilon (double epsilon)
| Set the transformation rotation epsilon (maximum allowable rotation difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.
double | getTransformationRotationEpsilon ()
| Get the transformation rotation epsilon (maximum allowable difference between two consecutive transformations) as set by the user (epsilon is the cos(angle) in a axis-angle representation).
void | setEuclideanFitnessEpsilon (double epsilon)
| Set the maximum allowed Euclidean error between two consecutive steps in the ICP loop, before the algorithm is considered to have converged.
double | getEuclideanFitnessEpsilon ()
| Get the maximum allowed distance error before the algorithm will be considered to have converged, as set by the user.
void | setPointRepresentation (const PointRepresentationConstPtr &point_representation)
| Provide a boost shared pointer to the PointRepresentation to be used when comparing points.
bool | registerVisualizationCallback (std::function< UpdateVisualizerCallbackSignature > &visualizerCallback)
| Register the user callback function which will be called from registration thread in order to update point cloud obtained after each iteration.
double | getFitnessScore (double max_range=std::numeric_limits< double >::max())
| Obtain the Euclidean fitness score (e.g., mean of squared distances from the source to the target)
double | getFitnessScore (const std::vector< float > &distances_a, const std::vector< float > &distances_b)
| Obtain the Euclidean fitness score (e.g., mean of squared distances from the source to the target) from two sets of correspondence distances (distances between source and target points)
bool | hasConverged () const
| Return the state of convergence after the last align run.
void | align (PointCloudSource &output)
| Call the registration algorithm which estimates the transformation and returns the transformed source (input) as output.
void | align (PointCloudSource &output, const Matrix4 &guess)
| Call the registration algorithm which estimates the transformation and returns the transformed source (input) as output.
const std::string & | getClassName () const
| Abstract class get name method.
bool | initCompute ()
| Internal computation initialization.
bool | initComputeReciprocal ()
| Internal computation when reciprocal lookup is needed.
void | addCorrespondenceRejector (const CorrespondenceRejectorPtr &rejector)
| Add a new correspondence rejector to the list.
std::vector< CorrespondenceRejectorPtr > | getCorrespondenceRejectors ()
| Get the list of correspondence rejectors.
bool | removeCorrespondenceRejector (unsigned int i)
| Remove the i-th correspondence rejector in the list.
void | clearCorrespondenceRejectors ()
| Clear the list of correspondence rejectors.
Public Member Functions inherited from pcl::PCLBase< PointSource >
| PCLBase ()
| Empty constructor.
| PCLBase (const PCLBase &base)
| Copy constructor.
virtual | ~PCLBase ()=default
| Destructor.
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset.
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset.
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud.
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used.
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used.
const PointSource & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code.

## Protected Member Functions

void | computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
| Rigid transformation computation method with initial guess.
void | determineRequiredBlobData () override
| Looks at the Estimators and Rejectors and determines whether their blob-setter methods need to be called.
Protected Member Functions inherited from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
virtual void | transformCloud (const PointCloudSource &input, PointCloudSource &output, const Matrix4 &transform)
| Apply a rigid transform to a given dataset.
Protected Member Functions inherited from pcl::Registration< PointSource, PointTarget, Scalar >
bool | searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances)
| Search for the closest nearest neighbor of a given point.
Protected Member Functions inherited from pcl::PCLBase< PointSource >
bool | initCompute ()
| This method should get called before starting the actual computation.
bool | deinitCompute ()
| This method should get called after finishing the actual computation.

## Protected Attributes

std::vector< PointCloudSourceConstPtr > | sources_
std::vector< PointCloudTargetConstPtr > | targets_
std::vector< CorrespondenceEstimationPtr > | correspondence_estimations_
Protected Attributes inherited from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
std::size_t | x_idx_offset_ {0}
| XYZ fields offset.
std::size_t | y_idx_offset_ {0}
std::size_t | z_idx_offset_ {0}
std::size_t | nx_idx_offset_ {0}
| Normal fields offset.
std::size_t | ny_idx_offset_ {0}
std::size_t | nz_idx_offset_ {0}
bool | use_reciprocal_correspondence_ {false}
| The correspondence type used for correspondence estimation.
bool | source_has_normals_ {false}
| Internal check whether source dataset has normals or not.
bool | target_has_normals_ {false}
| Internal check whether target dataset has normals or not.
bool | need_source_blob_
| Checks for whether estimators and rejectors need various data.
bool | need_target_blob_
Protected Attributes inherited from pcl::Registration< PointSource, PointTarget, Scalar >
std::string | reg_name_
| The registration method name.
KdTreePtr | tree_
| A pointer to the spatial search object.
KdTreeReciprocalPtr | tree_reciprocal_
| A pointer to the spatial search object of the source.
int | nr_iterations_ {0}
| The number of iterations the internal optimization ran for (used internally).
int | max_iterations_ {10}
| The maximum number of iterations the internal optimization should run for.
int | ransac_iterations_ {0}
| The number of iterations RANSAC should run for.
PointCloudTargetConstPtr | target_
| The input point cloud dataset target.
Matrix4 | final_transformation_
| The final transformation matrix estimated by the registration method after N iterations.
Matrix4 | transformation_
| The transformation matrix estimated by the registration method.
Matrix4 | previous_transformation_
| The previous transformation matrix estimated by the registration method (used internally).
double | transformation_epsilon_ {0.0}
| The maximum difference between two consecutive transformations in order to consider convergence (user defined).
double | transformation_rotation_epsilon_ {0.0}
| The maximum rotation difference between two consecutive transformations in order to consider convergence (user defined).
double | euclidean_fitness_epsilon_
| The maximum allowed Euclidean error between two consecutive steps in the ICP loop, before the algorithm is considered to have converged.
double | corr_dist_threshold_
| The maximum distance threshold between two correspondent points in source <-> target.
double | inlier_threshold_ {0.05}
| The inlier distance threshold for the internal RANSAC outlier rejection loop.
bool | converged_ {false}
| Holds internal convergence state, given user parameters.
unsigned int | min_number_correspondences_ {3}
| The minimum number of correspondences that the algorithm needs before attempting to estimate the transformation.
CorrespondencesPtr | correspondences_
| The set of correspondences determined at this ICP step.
TransformationEstimationPtr | transformation_estimation_
| A TransformationEstimation object, used to calculate the 4x4 rigid transformation.
CorrespondenceEstimationPtr | correspondence_estimation_
| A CorrespondenceEstimation object, used to estimate correspondences between the source and the target cloud.
std::vector< CorrespondenceRejectorPtr > | correspondence_rejectors_
| The list of correspondence rejectors to use.
bool | target_cloud_updated_ {true}
| Variable that stores whether we have a new target cloud, meaning we need to pre-process it again.
bool | source_cloud_updated_ {true}
| Variable that stores whether we have a new source cloud, meaning we need to pre-process it again.
bool | force_no_recompute_ {false}
| A flag which, if set, means the tree operating on the target cloud will never be recomputed.
bool | force_no_recompute_reciprocal_ {false}
| A flag which, if set, means the tree operating on the source cloud will never be recomputed.
std::function< UpdateVisualizerCallbackSignature > | update_visualizer_
| Callback function to update intermediate source point cloud position during it's registration to the target point cloud.
Protected Attributes inherited from pcl::PCLBase< PointSource >
PointCloudConstPtr | input_
| The input point cloud dataset.
IndicesPtr | indices_
| A pointer to the vector of point indices to use.
bool | use_indices_
| Set to true if point indices are used.
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud.

## Additional Inherited Members

Public Attributes inherited from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >
pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr | convergence_criteria_

## Detailed Description

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

JointIterativeClosestPoint extends ICP to multiple frames which share the same transform.

This is particularly useful when solving for camera extrinsics using multiple observations. When given a single pair of clouds, this reduces to vanilla ICP.

Author
  Stephen Miller

Definition at line 53 of file joint_icp.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const JointIterativeClosestPoint<PointSource, PointTarget, Scalar> >

Definition at line 78 of file joint_icp.h.

## CorrespondenceEstimation

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase<PointSource, PointTarget, Scalar>

Definition at line 81 of file joint_icp.h.

## CorrespondenceEstimationConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr

Definition at line 84 of file joint_icp.h.

## CorrespondenceEstimationPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr

Definition at line 83 of file joint_icp.h.

## KdTree

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::KdTree = pcl::search::KdTree<PointTarget>

Definition at line 68 of file joint_icp.h.

## KdTreePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::KdTreePtr = typename KdTree::Ptr

Definition at line 69 of file joint_icp.h.

## KdTreeReciprocal

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::KdTreeReciprocal = pcl::search::KdTree<PointSource>

Definition at line 71 of file joint_icp.h.

## KdTreeReciprocalPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::KdTreeReciprocalPtr = typename KdTree::Ptr

Definition at line 72 of file joint_icp.h.

## Matrix4

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 = typename IterativeClosestPoint<PointSource, PointTarget, Scalar>::Matrix4

Definition at line 125 of file joint_icp.h.

## PointCloudSource

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource = typename IterativeClosestPoint<PointSource, PointTarget, Scalar>::PointCloudSource

Definition at line 56 of file joint_icp.h.

## PointCloudSourceConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr

Definition at line 60 of file joint_icp.h.

## PointCloudSourcePtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr

Definition at line 59 of file joint_icp.h.

## PointCloudTarget

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTarget = typename IterativeClosestPoint<PointSource, PointTarget, Scalar>::PointCloudTarget

Definition at line 62 of file joint_icp.h.

## PointCloudTargetConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr

Definition at line 66 of file joint_icp.h.

## PointCloudTargetPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr

Definition at line 65 of file joint_icp.h.

## PointIndicesConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr

Definition at line 75 of file joint_icp.h.

## PointIndicesPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr

Definition at line 74 of file joint_icp.h.

## Ptr

template<typename PointSource , typename PointTarget , typename Scalar = float>

using pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<JointIterativeClosestPoint<PointSource, PointTarget, Scalar> >

Definition at line 77 of file joint_icp.h.

## Constructor & Destructor Documentation

## JointIterativeClosestPoint()

template<typename PointSource , typename PointTarget , typename Scalar = float>

pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::JointIterativeClosestPoint | ( |  | ) |

inline

Empty constructor.

Definition at line 129 of file joint_icp.h.

References pcl::Registration< PointSource, PointTarget, Scalar >::reg_name_.

## ~JointIterativeClosestPoint()

template<typename PointSource , typename PointTarget , typename Scalar = float>

pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::~JointIterativeClosestPoint | ( |  | ) |

override default

Empty destructor.

## Member Function Documentation

## addCorrespondenceEstimation()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addCorrespondenceEstimation | ( | CorrespondenceEstimationPtr | ce | ) |

inline

Add a manual correspondence estimator If you choose to do this, you must add one for each input source / target pair.

They do not need to have trees or input clouds set ahead of time.

Parameters

  [in] | ce | Correspondence estimation

Definition at line 198 of file joint_icp.h.

References pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::correspondence_estimations_.

## addInputSource()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputSource | ( | const PointCloudSourceConstPtr & | cloud | ) |

inline

Add a source cloud to the joint solver.

Parameters

  [in] | cloud | source cloud

Definition at line 155 of file joint_icp.h.

References pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource(), and pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::sources_.

## addInputTarget()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputTarget | ( | const PointCloudTargetConstPtr & | cloud | ) |

inline

Add a target cloud to the joint solver.

Parameters

  [in] | cloud | target cloud

Definition at line 181 of file joint_icp.h.

References pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget(), and pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::targets_.

## clearCorrespondenceEstimations()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearCorrespondenceEstimations | ( |  | ) |

inline

Reset my list of correspondence estimation methods.

Definition at line 222 of file joint_icp.h.

References pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::correspondence_estimations_.

## clearInputSources()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearInputSources | ( |  | ) |

inline

Reset my list of input sources.

Definition at line 206 of file joint_icp.h.

References pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::sources_.

## clearInputTargets()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearInputTargets | ( |  | ) |

inline

Reset my list of input targets.

Definition at line 214 of file joint_icp.h.

References pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::targets_.

## computeTransformation()

template<typename PointSource , typename PointTarget , typename Scalar >

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeTransformation | ( | PointCloudSource & | output,
|  | const Matrix4 & | guess
| ) |  |

override protected virtual

Rigid transformation computation method with initial guess.

Parameters

  output | the transformed input point cloud dataset using the rigid transformation found
  guess | the initial guess of the transformation to compute

Reimplemented from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >.

Definition at line 49 of file joint_icp.hpp.

References pcl::Correspondence::index_match, pcl::Correspondence::index_query, pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource(), pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget(), and pcl::toPCLPointCloud2().

## determineRequiredBlobData()

template<typename PointSource , typename PointTarget , typename Scalar >

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::determineRequiredBlobData | ( |  | ) |

override protected virtual

Looks at the Estimators and Rejectors and determines whether their blob-setter methods need to be called.

Reimplemented from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >.

Definition at line 294 of file joint_icp.hpp.

## setInputSource()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource | ( | const PointCloudSourceConstPtr & |  | ) |

inline override virtual

Provide a pointer to the input source (e.g., the point cloud that we want to align to the target)

Reimplemented from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >.

Definition at line 142 of file joint_icp.h.

References pcl::Registration< PointSource, PointTarget, Scalar >::getClassName().

## setInputTarget()

template<typename PointSource , typename PointTarget , typename Scalar = float>

void pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputTarget | ( | const PointCloudTargetConstPtr & |  | ) |

inline override virtual

Provide a pointer to the input target (e.g., the point cloud that we want to align to the target)

Reimplemented from pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >.

Definition at line 168 of file joint_icp.h.

References pcl::Registration< PointSource, PointTarget, Scalar >::getClassName().

## Member Data Documentation

## correspondence_estimations_

template<typename PointSource , typename PointTarget , typename Scalar = float>

std::vector<CorrespondenceEstimationPtr> pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::correspondence_estimations_

protected

Definition at line 243 of file joint_icp.h.

Referenced by pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addCorrespondenceEstimation(), and pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearCorrespondenceEstimations().

## sources_

template<typename PointSource , typename PointTarget , typename Scalar = float>

std::vector<PointCloudSourceConstPtr> pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::sources_

protected

Definition at line 241 of file joint_icp.h.

Referenced by pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputSource(), and pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearInputSources().

## targets_

template<typename PointSource , typename PointTarget , typename Scalar = float>

std::vector<PointCloudTargetConstPtr> pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::targets_

protected

Definition at line 242 of file joint_icp.h.

Referenced by pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::addInputTarget(), and pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >::clearInputTargets().

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

- pcl/registration/joint_icp.h
- pcl/registration/impl/joint_icp.hpp