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

A 3D Normal Distribution Transform registration implementation for point cloud data. More...

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

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

## Public Types

using | Ptr
using | ConstPtr
using | Vector3 = typename Eigen::Matrix<Scalar, 3, 1>
using | Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4
using | Affine3 = typename Eigen::Transform<Scalar, 3, Eigen::Affine>
Public Types inherited from pcl::Registration< PointSource, PointTarget, float >
using | Matrix4
using | Ptr
using | ConstPtr
using | CorrespondenceRejectorPtr
using | KdTree
using | KdTreePtr
using | KdTreeReciprocal
using | KdTreeReciprocalPtr
using | PointCloudSource
using | PointCloudSourcePtr
using | PointCloudSourceConstPtr
using | PointCloudTarget
using | PointCloudTargetPtr
using | PointCloudTargetConstPtr
using | PointRepresentationConstPtr
using | TransformationEstimation
using | TransformationEstimationPtr
using | TransformationEstimationConstPtr
using | CorrespondenceEstimation
using | CorrespondenceEstimationPtr
using | CorrespondenceEstimationConstPtr
using | UpdateVisualizerCallbackSignature
| 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
using | PointCloudPtr
using | PointCloudConstPtr
using | PointIndicesPtr
using | PointIndicesConstPtr

## Public Member Functions

| NormalDistributionsTransform ()
| Constructor.
| ~NormalDistributionsTransform () override=default
| Empty destructor.
void | setInputTarget (const PointCloudTargetConstPtr &cloud) override
| Provide a pointer to the input target (e.g., the point cloud that we want to align the input source to).
void | setResolution (float resolution)
| Set/change the voxel grid resolution.
void | setMinPointPerVoxel (unsigned int min_points_per_voxel)
| Set the minimum number of points required for a cell to be used (must be 3 or greater for covariance calculation).
float | getResolution () const
| Get voxel grid resolution.
double | getStepSize () const
| Get the newton line search maximum step length.
void | setStepSize (double step_size)
| Set/change the newton line search maximum step length.
double | getOutlierRatio () const
| Get the point cloud outlier ratio.
double | getOulierRatio () const
| Get the point cloud outlier ratio.
void | setOutlierRatio (double outlier_ratio)
| Set/change the point cloud outlier ratio.
void | setOulierRatio (double outlier_ratio)
| Set/change the point cloud outlier ratio.
double | getTransformationLikelihood () const
| Get the registration alignment likelihood.
double | getTransformationProbability () const
| Get the registration alignment probability.
int | getFinalNumIteration () const
| Get the number of iterations required to calculate alignment.
const TargetGrid & | getTargetCells () const
| Get access to the VoxelGridCovariance generated from target cloud containing point means and covariances.
Public Member Functions inherited from pcl::Registration< PointSource, PointTarget, float >
| 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.
virtual void | setInputSource (const PointCloudSourceConstPtr &cloud)
| Provide a pointer to the input source (e.g., the point cloud that we want to align to the target).
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).
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.
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.
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.
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used.
const PointSource & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code.

## Static Public Member Functions

static void | convertTransform (const Eigen::Matrix< double, 6, 1 > &x, Affine3 &trans)
| Convert 6 element transformation vector to affine transformation.
static void | convertTransform (const Eigen::Matrix< double, 6, 1 > &x, Matrix4 &trans)
| Convert 6 element transformation vector to transformation matrix.

## Protected Types

using | PointCloudSource
using | PointCloudSourcePtr = typename PointCloudSource::Ptr
using | PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using | PointCloudTarget
using | PointCloudTargetPtr = typename PointCloudTarget::Ptr
using | PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr
using | TargetGrid = VoxelGridCovariance<PointTarget>
| Typename of searchable voxel grid containing mean and covariance.
using | TargetGridPtr = TargetGrid*
| Typename of pointer to searchable voxel grid.
using | TargetGridConstPtr = const TargetGrid*
| Typename of const pointer to searchable voxel grid.
using | TargetGridLeafConstPtr = typename TargetGrid::LeafConstPtr
| Typename of const pointer to searchable voxel grid leaf.

## Protected Member Functions

virtual void | computeTransformation (PointCloudSource &output)
| Estimate the transformation and returns the transformed source (input) as output.
void | computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
| Estimate the transformation and returns the transformed source (input) as output.
void | init ()
| Initiate covariance voxel structure.
double | computeDerivatives (Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, const PointCloudSource &trans_cloud, const Eigen::Matrix< double, 6, 1 > &transform, bool compute_hessian=true)
| Compute derivatives of likelihood function w.r.t.
double | updateDerivatives (Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, const Eigen::Vector3d &x_trans, const Eigen::Matrix3d &c_inv, bool compute_hessian=true) const
| Compute individual point contributions to derivatives of likelihood function w.r.t.
void | computeAngleDerivatives (const Eigen::Matrix< double, 6, 1 > &transform, bool compute_hessian=true)
| Precompute angular components of derivatives.
void | computePointDerivatives (const Eigen::Vector3d &x, bool compute_hessian=true)
| Compute point derivatives.
void | computeHessian (Eigen::Matrix< double, 6, 6 > &hessian, const PointCloudSource &trans_cloud)
| Compute hessian of likelihood function w.r.t.
void | updateHessian (Eigen::Matrix< double, 6, 6 > &hessian, const Eigen::Vector3d &x_trans, const Eigen::Matrix3d &c_inv) const
| Compute individual point contributions to hessian of likelihood function w.r.t.
double | computeStepLengthMT (const Eigen::Matrix< double, 6, 1 > &transform, Eigen::Matrix< double, 6, 1 > &step_dir, double step_init, double step_max, double step_min, double &score, Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, PointCloudSource &trans_cloud)
| Compute line search step length and update transform and likelihood derivatives using More-Thuente method.
bool | updateIntervalMT (double &a_l, double &f_l, double &g_l, double &a_u, double &f_u, double &g_u, double a_t, double f_t, double g_t) const
| Update interval of possible step lengths for More-Thuente method, in More-Thuente (1994).
double | trialValueSelectionMT (double a_l, double f_l, double g_l, double a_u, double f_u, double g_u, double a_t, double f_t, double g_t) const
| Select new trial value for More-Thuente method.
double | auxilaryFunction_PsiMT (double a, double f_a, double f_0, double g_0, double mu=1.e-4) const
| Auxiliary function used to determine endpoints of More-Thuente interval.
double | auxilaryFunction_dPsiMT (double g_a, double g_0, double mu=1.e-4) const
| Auxiliary function derivative used to determine endpoints of More-Thuente interval.
Protected Member Functions inherited from pcl::Registration< PointSource, PointTarget, float >
bool | searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances)
| Search for the closest nearest neighbor of a given point.
virtual void | computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0
| Abstract transformation computation method with initial guess.
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

TargetGrid | target_cells_
| The voxel grid generated from target cloud containing point means and covariances.
float | resolution_ {1.0f}
| The side length of voxels.
double | step_size_ {0.1}
| The maximum step length.
double | outlier_ratio_ {0.55}
| The ratio of outliers of points w.r.t.
double | gauss_d1_ {0.0}
| The normalization constants used fit the point distribution to a normal distribution, Equation 6.8 [Magnusson 2009].
double | gauss_d2_ {0.0}
union { |
double trans_probability_ |
double trans_likelihood_ {0.0} |
}; |
| The likelihood score of the transform applied to the input cloud, Equation 6.9 and 6.10 [Magnusson 2009].
Eigen::Matrix< double, 8, 4 > | angular_jacobian_
| Precomputed Angular Gradient.
Eigen::Matrix< double, 15, 4 > | angular_hessian_
| Precomputed Angular Hessian.
Eigen::Matrix< double, 3, 6 > | point_jacobian_
| The first order derivative of the transformation of a point w.r.t.
Eigen::Matrix< double, 18, 6 > | point_hessian_
| The second order derivative of the transformation of a point w.r.t.
Protected Attributes inherited from pcl::Registration< PointSource, PointTarget, float >
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_
| The number of iterations the internal optimization ran for (used internally).
int | max_iterations_
| The maximum number of iterations the internal optimization should run for.
int | ransac_iterations_
| 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_
| The maximum difference between two consecutive transformations in order to consider convergence (user defined).
double | transformation_rotation_epsilon_
| 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_
| The inlier distance threshold for the internal RANSAC outlier rejection loop.
bool | converged_
| Holds internal convergence state, given user parameters.
unsigned int | min_number_correspondences_
| 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_
| Variable that stores whether we have a new target cloud, meaning we need to pre-process it again.
bool | source_cloud_updated_
| Variable that stores whether we have a new source cloud, meaning we need to pre-process it again.
bool | force_no_recompute_
| A flag which, if set, means the tree operating on the target cloud will never be recomputed.
bool | force_no_recompute_reciprocal_
| 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.

## Detailed Description

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

A 3D Normal Distribution Transform registration implementation for point cloud data.

Note
  For more information please see Magnusson, M. (2009). The Three-Dimensional Normal-Distributions Transform — an Efﬁcient Representation for Registration, Surface Analysis, and Loop Detection. PhD thesis, Orebro University. Orebro Studies in Technology 36., More, J., and Thuente, D. (1994). Line Search Algorithm with Guaranteed Sufficient Decrease In ACM Transactions on Mathematical Software. and Sun, W. and Yuan, Y, (2006) Optimization Theory and Methods: Nonlinear Programming. 89-100
  Math refactored by Todor Stoyanov.

Author
  Brian Okorn (Space and Naval Warfare Systems Center Pacific)

Definition at line 66 of file ndt.h.

## Member Typedef Documentation

## Affine3

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Affine3 = typename Eigen::Transform<Scalar, 3, Eigen::Affine>

Definition at line 99 of file ndt.h.

## ConstPtr

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::ConstPtr

Initial value:
shared_ptr<const NormalDistributionsTransform<PointSource, PointTarget, Scalar>>

Definition at line 95 of file ndt.h.

## Matrix4

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4

Definition at line 98 of file ndt.h.

## PointCloudSource

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudSource

protected

Initial value:
typename Registration<PointSource, PointTarget, Scalar>::PointCloudSource
pcl::Registration::PointCloudSource
pcl::PointCloud< PointSource > PointCloudSource
Definition registration.h:76

Definition at line 69 of file ndt.h.

## PointCloudSourceConstPtr

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

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

protected

Definition at line 72 of file ndt.h.

## PointCloudSourcePtr

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

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

protected

Definition at line 71 of file ndt.h.

## PointCloudTarget

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudTarget

protected

Initial value:
typename Registration<PointSource, PointTarget, Scalar>::PointCloudTarget
pcl::Registration::PointCloudTarget
pcl::PointCloud< PointTarget > PointCloudTarget
Definition registration.h:80

Definition at line 74 of file ndt.h.

## PointCloudTargetConstPtr

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

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

protected

Definition at line 77 of file ndt.h.

## PointCloudTargetPtr

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

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

protected

Definition at line 76 of file ndt.h.

## PointIndicesConstPtr

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

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

protected

Definition at line 80 of file ndt.h.

## PointIndicesPtr

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

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

protected

Definition at line 79 of file ndt.h.

## Ptr

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Ptr

Initial value:
shared_ptr<NormalDistributionsTransform<PointSource, PointTarget, Scalar>>

Definition at line 93 of file ndt.h.

## TargetGrid

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGrid = VoxelGridCovariance<PointTarget>

protected

Typename of searchable voxel grid containing mean and covariance.

Definition at line 84 of file ndt.h.

## TargetGridConstPtr

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridConstPtr = const TargetGrid*

protected

Typename of const pointer to searchable voxel grid.

Definition at line 88 of file ndt.h.

## TargetGridLeafConstPtr

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridLeafConstPtr = typename TargetGrid::LeafConstPtr

protected

Typename of const pointer to searchable voxel grid leaf.

Definition at line 90 of file ndt.h.

## TargetGridPtr

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridPtr = TargetGrid*

protected

Typename of pointer to searchable voxel grid.

Definition at line 86 of file ndt.h.

## Vector3

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

using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Vector3 = typename Eigen::Matrix<Scalar, 3, 1>

Definition at line 97 of file ndt.h.

## Constructor & Destructor Documentation

## NormalDistributionsTransform()

template<typename PointSource, typename PointTarget, typename Scalar>

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

Constructor.

Sets outlier_ratio_ to 0.55, step_size_ to 0.1 and resolution_ to 1.0

Definition at line 47 of file ndt.hpp.

References gauss_d1_, gauss_d2_, pcl::Registration< PointSource, PointTarget, float >::max_iterations_, outlier_ratio_, pcl::Registration< PointSource, PointTarget, float >::reg_name_, resolution_, target_cells_, and pcl::Registration< PointSource, PointTarget, float >::transformation_epsilon_.

## ~NormalDistributionsTransform()

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

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

override default

Empty destructor.

## Member Function Documentation

## auxilaryFunction_dPsiMT()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::auxilaryFunction_dPsiMT | ( | double | g_a,
|  | double | g_0,
|  | double | mu = 1.e-4 ) const

inline protected

Auxiliary function derivative used to determine endpoints of More-Thuente interval.

Note
  , derivative of Equation 1.6 (Moore, Thuente 1994)

Parameters

  [in] | g_a | function gradient at step length a, in More-Thuente (1994)
  [in] | g_0 | initial function gradient, in More-Thuente (1994)
  [in] | mu | the step length, constant in Equation 1.1 [More, Thuente 1994]

Returns
  sufficient decrease derivative

Definition at line 576 of file ndt.h.

Referenced by computeStepLengthMT().

## auxilaryFunction_PsiMT()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::auxilaryFunction_PsiMT | ( | double | a,
|  | double | f_a,
|  | double | f_0,
|  | double | g_0,
|  | double | mu = 1.e-4 ) const

inline protected

Auxiliary function used to determine endpoints of More-Thuente interval.

Note
  in Equation 1.6 (Moore, Thuente 1994)

Parameters

  [in] | a | the step length, in More-Thuente (1994)
  [in] | f_a | function value at step length a, in More-Thuente (1994)
  [in] | f_0 | initial function value, in Moore-Thuente (1994)
  [in] | g_0 | initial function gradient, in More-Thuente (1994)
  [in] | mu | the step length, constant in Equation 1.1 [More, Thuente 1994]

Returns
  sufficient decrease value

Definition at line 557 of file ndt.h.

Referenced by computeStepLengthMT().

## computeAngleDerivatives()

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeAngleDerivatives | ( | const Eigen::Matrix< double, 6, 1 > & | transform,
|  | bool | compute_hessian = true )

protected

Precompute angular components of derivatives.

Note
  Equation 6.19 and 6.21 [Magnusson 2009].

Parameters

  [in] | transform | the current transform vector
  [in] | compute_hessian | flag to calculate hessian, unnecessary for step calculation.

Definition at line 245 of file ndt.hpp.

References angular_hessian_, and angular_jacobian_.

Referenced by computeDerivatives().

## computeDerivatives()

template<typename PointSource, typename PointTarget, typename Scalar>

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeDerivatives | ( | Eigen::Matrix< double, 6, 1 > & | score_gradient,
|  | Eigen::Matrix< double, 6, 6 > & | hessian,
|  | const PointCloudSource & | trans_cloud,
|  | const Eigen::Matrix< double, 6, 1 > & | transform,
|  | bool | compute_hessian = true )

protected

Compute derivatives of likelihood function w.r.t.

the transformation vector.

Note
  Equation 6.10, 6.12 and 6.13 [Magnusson 2009].

Parameters

  [out] | score_gradient | the gradient vector of the likelihood function w.r.t. the transformation vector
  [out] | hessian | the hessian matrix of the likelihood function w.r.t. the transformation vector
  [in] | trans_cloud | transformed point cloud
  [in] | transform | the current transform vector
  [in] | compute_hessian | flag to calculate hessian, unnecessary for step calculation.

Definition at line 194 of file ndt.hpp.

References computeAngleDerivatives(), computePointDerivatives(), pcl::PCLBase< PointSource >::input_, resolution_, target_cells_, and updateDerivatives().

Referenced by computeStepLengthMT(), and computeTransformation().

## computeHessian()

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeHessian | ( | Eigen::Matrix< double, 6, 6 > & | hessian,
|  | const PointCloudSource & | trans_cloud )

protected

Compute hessian of likelihood function w.r.t.

the transformation vector.

Note
  Equation 6.13 [Magnusson 2009].

Parameters

  [out] | hessian | the hessian matrix of the likelihood function w.r.t. the transformation vector
  [in] | trans_cloud | transformed point cloud

Definition at line 424 of file ndt.hpp.

References computePointDerivatives(), pcl::PCLBase< PointSource >::input_, resolution_, target_cells_, and updateHessian().

Referenced by computeStepLengthMT().

## computePointDerivatives()

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computePointDerivatives | ( | const Eigen::Vector3d & | x,
|  | bool | compute_hessian = true )

protected

Compute point derivatives.

Note
  Equation 6.18-21 [Magnusson 2009].

Parameters

  [in] | x | point from the input cloud
  [in] | compute_hessian | flag to calculate hessian, unnecessary for step calculation.

Definition at line 330 of file ndt.hpp.

References angular_hessian_, angular_jacobian_, point_hessian_, and point_jacobian_.

Referenced by computeDerivatives(), and computeHessian().

## computeStepLengthMT()

template<typename PointSource, typename PointTarget, typename Scalar>

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeStepLengthMT | ( | const Eigen::Matrix< double, 6, 1 > & | transform,
|  | Eigen::Matrix< double, 6, 1 > & | step_dir,
|  | double | step_init,
|  | double | step_max,
|  | double | step_min,
|  | double & | score,
|  | Eigen::Matrix< double, 6, 1 > & | score_gradient,
|  | Eigen::Matrix< double, 6, 6 > & | hessian,
|  | PointCloudSource & | trans_cloud )

protected

Compute line search step length and update transform and likelihood derivatives using More-Thuente method.

Note
  Search Algorithm [More, Thuente 1994]

Parameters

  [in] | transform | initial transformation vector, in Equation 1.3 (Moore, Thuente 1994) and in Algorithm 2 [Magnusson 2009]
  [in] | step_dir | descent direction, in Equation 1.3 (Moore, Thuente 1994) and normalized in Algorithm 2 [Magnusson 2009]
  [in] | step_init | initial step length estimate, in Moore-Thuente (1994) and the normal of in Algorithm 2 [Magnusson 2009]
  [in] | step_max | maximum step length, in Moore-Thuente (1994)
  [in] | step_min | minimum step length, in Moore-Thuente (1994)
  [out] | score | final score function value, in Equation 1.3 (Moore, Thuente 1994) and in Algorithm 2 [Magnusson 2009]
  [in,out] | score_gradient | gradient of score function w.r.t. transformation vector, in Moore-Thuente (1994) and in Algorithm 2 [Magnusson 2009]
  [out] | hessian | hessian of score function w.r.t. transformation vector, in Moore-Thuente (1994) and in Algorithm 2 [Magnusson 2009]
  [in,out] | trans_cloud | transformed point cloud, transformed by in Algorithm 2 [Magnusson 2009]

Returns
  final step length

Definition at line 659 of file ndt.hpp.

References auxilaryFunction_dPsiMT(), auxilaryFunction_PsiMT(), computeDerivatives(), computeHessian(), convertTransform(), pcl::Registration< PointSource, PointTarget, float >::final_transformation_, pcl::PCLBase< PointSource >::input_, pcl::transformPointCloud(), trialValueSelectionMT(), and updateIntervalMT().

Referenced by computeTransformation().

## computeTransformation() [1/2]

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

virtual void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeTransformation | ( | PointCloudSource & | output | ) |

inline protected virtual

Estimate the transformation and returns the transformed source (input) as output.

Parameters

  [out] | output | the resultant input transformed point cloud dataset

Definition at line 315 of file ndt.h.

References computeTransformation().

Referenced by computeTransformation().

## computeTransformation() [2/2]

template<typename PointSource, typename PointTarget, typename Scalar>

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

override protected

Estimate the transformation and returns the transformed source (input) as output.

Parameters

  [out] | output | the resultant input transformed point cloud dataset
  [in] | guess | the initial gross estimation of the transformation

Definition at line 68 of file ndt.hpp.

References computeDerivatives(), computeStepLengthMT(), pcl::Registration< PointSource, PointTarget, float >::converged_, convertTransform(), pcl::Registration< PointSource, PointTarget, float >::final_transformation_, gauss_d1_, gauss_d2_, pcl::Registration< PointSource, PointTarget, float >::getClassName(), pcl::PCLBase< PointSource >::input_, pcl::Registration< PointSource, PointTarget, float >::max_iterations_, pcl::Registration< PointSource, PointTarget, float >::nr_iterations_, outlier_ratio_, point_hessian_, point_jacobian_, pcl::Registration< PointSource, PointTarget, float >::previous_transformation_, resolution_, step_size_, pcl::Registration< PointSource, PointTarget, float >::target_, target_cells_, trans_likelihood_, pcl::Registration< PointSource, PointTarget, float >::transformation_, pcl::Registration< PointSource, PointTarget, float >::transformation_epsilon_, pcl::Registration< PointSource, PointTarget, float >::transformation_rotation_epsilon_, pcl::transformPointCloud(), and pcl::Registration< PointSource, PointTarget, float >::update_visualizer_.

## convertTransform() [1/2]

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform | ( | const Eigen::Matrix< double, 6, 1 > & | x,
|  | Affine3 & | trans )

inline static

Convert 6 element transformation vector to affine transformation.

Parameters

  [in] | x | transformation vector of the form [x, y, z, roll, pitch, yaw]
  [out] | trans | affine transform corresponding to given transformation vector

Definition at line 269 of file ndt.h.

Referenced by computeStepLengthMT(), computeTransformation(), and convertTransform().

## convertTransform() [2/2]

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform | ( | const Eigen::Matrix< double, 6, 1 > & | x,
|  | Matrix4 & | trans )

inline static

Convert 6 element transformation vector to transformation matrix.

Parameters

  [in] | x | transformation vector of the form [x, y, z, roll, pitch, yaw]
  [out] | trans | 4x4 transformation matrix corresponding to given transformation vector

Definition at line 283 of file ndt.h.

References convertTransform().

## getFinalNumIteration()

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

int pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getFinalNumIteration | ( |  | ) | const

inline

Get the number of iterations required to calculate alignment.

Returns
  final number of iterations

Definition at line 244 of file ndt.h.

References pcl::Registration< PointSource, PointTarget, float >::nr_iterations_.

## getOulierRatio()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getOulierRatio | ( |  | ) | const

inline

Get the point cloud outlier ratio.

Returns
  outlier ratio

Deprecated
  Scheduled for removal in version 1 . 18 : "The method `getOulierRatio` has been renamed to " "`getOutlierRatio`."

Definition at line 191 of file ndt.h.

References getOulierRatio(), and outlier_ratio_.

Referenced by getOulierRatio().

## getOutlierRatio()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getOutlierRatio | ( |  | ) | const

inline

Get the point cloud outlier ratio.

Returns
  outlier ratio

Definition at line 178 of file ndt.h.

References outlier_ratio_.

## getResolution()

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

float pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getResolution | ( |  | ) | const

inline

Get voxel grid resolution.

Returns
  side length of voxels

Definition at line 151 of file ndt.h.

References resolution_.

## getStepSize()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getStepSize | ( |  | ) | const

inline

Get the newton line search maximum step length.

Returns
  maximum step length

Definition at line 160 of file ndt.h.

References step_size_.

## getTargetCells()

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

const TargetGrid & pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTargetCells | ( |  | ) | const

inline

Get access to the VoxelGridCovariance generated from target cloud containing point means and covariances.

Set the input target cloud before calling this. Useful for debugging, e.g.

pcl::PointCloud<PointXYZ> visualize_cloud;
ndt.getTargetCells().getDisplayCloud(visualize_cloud);
pcl::PointCloud
PointCloud represents the base class in PCL for storing collections of 3D points.
Definition point_cloud.h:174

Definition at line 258 of file ndt.h.

References target_cells_.

## getTransformationLikelihood()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationLikelihood | ( |  | ) | const

inline

Get the registration alignment likelihood.

Returns
  transformation likelihood

Definition at line 222 of file ndt.h.

References trans_likelihood_.

## getTransformationProbability()

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationProbability | ( |  | ) | const

inline

Get the registration alignment probability.

Returns
  transformation probability

Deprecated
  Scheduled for removal in version 1 . 16 : "The method `getTransformationProbability` has been renamed to " "`getTransformationLikelihood`."

Definition at line 235 of file ndt.h.

References getTransformationProbability(), and trans_likelihood_.

Referenced by getTransformationProbability().

## init()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init | ( |  | ) |

inline protected

Initiate covariance voxel structure.

Definition at line 329 of file ndt.h.

References pcl::Registration< PointSource, PointTarget, float >::getClassName(), resolution_, pcl::Registration< PointSource, PointTarget, float >::target_, and target_cells_.

Referenced by setInputTarget(), and setResolution().

## setInputTarget()

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

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

inline override virtual

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

Parameters

  [in] | cloud | the input point cloud target

Reimplemented from pcl::Registration< PointSource, PointTarget, float >.

Definition at line 114 of file ndt.h.

References init(), and pcl::Registration< PointSource, PointTarget, Scalar >::setInputTarget().

## setMinPointPerVoxel()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setMinPointPerVoxel | ( | unsigned int | min_points_per_voxel | ) |

inline

Set the minimum number of points required for a cell to be used (must be 3 or greater for covariance calculation).

Calls the function of the underlying VoxelGridCovariance. This function must be called before setInputTarget and setResolution.

Parameters

  [in] | min_points_per_voxel | the minimum number of points required for a voxel to be used

Definition at line 142 of file ndt.h.

References target_cells_.

## setOulierRatio()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setOulierRatio | ( | double | outlier_ratio | ) |

inline

Set/change the point cloud outlier ratio.

Deprecated
  Scheduled for removal in version 1 . 18 : "The method `setOulierRatio` has been renamed to " "`setOutlierRatio`."

Parameters

  [in] | outlier_ratio | outlier ratio

Definition at line 213 of file ndt.h.

References outlier_ratio_, and setOulierRatio().

Referenced by setOulierRatio().

## setOutlierRatio()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setOutlierRatio | ( | double | outlier_ratio | ) |

inline

Set/change the point cloud outlier ratio.

Parameters

  [in] | outlier_ratio | outlier ratio

Definition at line 200 of file ndt.h.

References outlier_ratio_.

## setResolution()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setResolution | ( | float | resolution | ) |

inline

Set/change the voxel grid resolution.

Parameters

  [in] | resolution | side length of voxels

Definition at line 124 of file ndt.h.

References init(), resolution_, and pcl::Registration< PointSource, PointTarget, float >::target_.

## setStepSize()

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

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setStepSize | ( | double | step_size | ) |

inline

Set/change the newton line search maximum step length.

Parameters

  [in] | step_size | maximum step length

Definition at line 169 of file ndt.h.

References step_size_.

## trialValueSelectionMT()

template<typename PointSource, typename PointTarget, typename Scalar>

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trialValueSelectionMT | ( | double | a_l,
|  | double | f_l,
|  | double | g_l,
|  | double | a_u,
|  | double | f_u,
|  | double | g_u,
|  | double | a_t,
|  | double | f_t,
|  | double | g_t ) const

protected

Select new trial value for More-Thuente method.

Note
  Trial Value Selection [More, Thuente 1994], is used for and until some value satisfies the test and then is used from then on.
  Interpolation Minimizer equations from Optimization Theory and Methods: Nonlinear Programming By Wenyu Sun, Ya-xiang Yuan (89-100).

Parameters

  [in] | a_l | first endpoint of interval , in Moore-Thuente (1994)
  [in] | f_l | value at first endpoint, in Moore-Thuente (1994)
  [in] | g_l | derivative at first endpoint, in Moore-Thuente (1994)
  [in] | a_u | second endpoint of interval , in Moore-Thuente (1994)
  [in] | f_u | value at second endpoint, in Moore-Thuente (1994)
  [in] | g_u | derivative at second endpoint, in Moore-Thuente (1994)
  [in] | a_t | previous trial value, in Moore-Thuente (1994)
  [in] | f_t | value at previous trial value, in Moore-Thuente (1994)
  [in] | g_t | derivative at previous trial value, in Moore-Thuente (1994)

Returns
  new trial value

Definition at line 546 of file ndt.hpp.

Referenced by computeStepLengthMT().

## updateDerivatives()

template<typename PointSource, typename PointTarget, typename Scalar>

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateDerivatives | ( | Eigen::Matrix< double, 6, 1 > & | score_gradient,
|  | Eigen::Matrix< double, 6, 6 > & | hessian,
|  | const Eigen::Vector3d & | x_trans,
|  | const Eigen::Matrix3d & | c_inv,
|  | bool | compute_hessian = true ) const

protected

Compute individual point contributions to derivatives of likelihood function w.r.t.

the transformation vector.

Note
  Equation 6.10, 6.12 and 6.13 [Magnusson 2009].

Parameters

  [in,out] | score_gradient | the gradient vector of the likelihood function w.r.t. the transformation vector
  [in,out] | hessian | the hessian matrix of the likelihood function w.r.t. the transformation vector
  [in] | x_trans | transformed point minus mean of occupied covariance voxel
  [in] | c_inv | covariance of occupied covariance voxel
  [in] | compute_hessian | flag to calculate hessian, unnecessary for step calculation.

Definition at line 376 of file ndt.hpp.

References gauss_d1_, gauss_d2_, point_hessian_, and point_jacobian_.

Referenced by computeDerivatives().

## updateHessian()

template<typename PointSource, typename PointTarget, typename Scalar>

void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateHessian | ( | Eigen::Matrix< double, 6, 6 > & | hessian,
|  | const Eigen::Vector3d & | x_trans,
|  | const Eigen::Matrix3d & | c_inv ) const

protected

Compute individual point contributions to hessian of likelihood function w.r.t.

the transformation vector.

Note
  Equation 6.13 [Magnusson 2009].

Parameters

  [in,out] | hessian | the hessian matrix of the likelihood function w.r.t. the transformation vector
  [in] | x_trans | transformed point minus mean of occupied covariance voxel
  [in] | c_inv | covariance of occupied covariance voxel

Definition at line 466 of file ndt.hpp.

References gauss_d1_, gauss_d2_, point_hessian_, and point_jacobian_.

Referenced by computeHessian().

## updateIntervalMT()

template<typename PointSource, typename PointTarget, typename Scalar>

bool pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateIntervalMT | ( | double & | a_l,
|  | double & | f_l,
|  | double & | g_l,
|  | double & | a_u,
|  | double & | f_u,
|  | double & | g_u,
|  | double | a_t,
|  | double | f_t,
|  | double | g_t ) const

protected

Update interval of possible step lengths for More-Thuente method, in More-Thuente (1994).

Note
  Updating Algorithm until some value satisfies and and Modified Updating Algorithm from then on [More, Thuente 1994].

Parameters

  [in,out] | a_l | first endpoint of interval , in Moore-Thuente (1994)
  [in,out] | f_l | value at first endpoint, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm
  [in,out] | g_l | derivative at first endpoint, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm
  [in,out] | a_u | second endpoint of interval , in Moore-Thuente (1994)
  [in,out] | f_u | value at second endpoint, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm
  [in,out] | g_u | derivative at second endpoint, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm
  [in] | a_t | trial value, in Moore-Thuente (1994)
  [in] | f_t | value at trial value, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm
  [in] | g_t | derivative at trial value, in Moore-Thuente (1994), for Update Algorithm and for Modified Update Algorithm

Returns
  if interval converges

Definition at line 501 of file ndt.hpp.

Referenced by computeStepLengthMT().

## Member Data Documentation

## [union]

union { ... } pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >

The likelihood score of the transform applied to the input cloud, Equation 6.9 and 6.10 [Magnusson 2009].

## angular_hessian_

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

Eigen::Matrix<double, 15, 4> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::angular_hessian_

protected

Precomputed Angular Hessian.

The precomputed angular derivatives for the hessian of a transformation vector, Equation 6.19 [Magnusson 2009].

Definition at line 621 of file ndt.h.

Referenced by computeAngleDerivatives(), and computePointDerivatives().

## angular_jacobian_

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

Eigen::Matrix<double, 8, 4> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::angular_jacobian_

protected

Precomputed Angular Gradient.

The precomputed angular derivatives for the jacobian of a transformation vector, Equation 6.19 [Magnusson 2009].

Definition at line 614 of file ndt.h.

Referenced by computeAngleDerivatives(), and computePointDerivatives().

## gauss_d1_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::gauss_d1_ {0.0}

protected

The normalization constants used fit the point distribution to a normal distribution, Equation 6.8 [Magnusson 2009].

Definition at line 597 of file ndt.h.

Referenced by computeTransformation(), NormalDistributionsTransform(), updateDerivatives(), and updateHessian().

## gauss_d2_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::gauss_d2_ {0.0}

protected

Definition at line 597 of file ndt.h.

Referenced by computeTransformation(), NormalDistributionsTransform(), updateDerivatives(), and updateHessian().

## outlier_ratio_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::outlier_ratio_ {0.55}

protected

The ratio of outliers of points w.r.t.

a normal distribution, Equation 6.7 [Magnusson 2009].

Definition at line 593 of file ndt.h.

Referenced by computeTransformation(), getOulierRatio(), getOutlierRatio(), NormalDistributionsTransform(), setOulierRatio(), and setOutlierRatio().

## point_hessian_

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

Eigen::Matrix<double, 18, 6> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::point_hessian_

protected

The second order derivative of the transformation of a point w.r.t.

the transform vector, in Equation 6.20 [Magnusson 2009].

Definition at line 631 of file ndt.h.

Referenced by computePointDerivatives(), computeTransformation(), updateDerivatives(), and updateHessian().

## point_jacobian_

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

Eigen::Matrix<double, 3, 6> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::point_jacobian_

protected

The first order derivative of the transformation of a point w.r.t.

the transform vector, in Equation 6.18 [Magnusson 2009].

Definition at line 626 of file ndt.h.

Referenced by computePointDerivatives(), computeTransformation(), updateDerivatives(), and updateHessian().

## resolution_

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

float pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::resolution_ {1.0f}

protected

The side length of voxels.

Definition at line 586 of file ndt.h.

Referenced by computeDerivatives(), computeHessian(), computeTransformation(), getResolution(), init(), NormalDistributionsTransform(), and setResolution().

## step_size_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::step_size_ {0.1}

protected

The maximum step length.

Definition at line 589 of file ndt.h.

Referenced by computeTransformation(), getStepSize(), and setStepSize().

## target_cells_

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

TargetGrid pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::target_cells_

protected

The voxel grid generated from target cloud containing point means and covariances.

Definition at line 583 of file ndt.h.

Referenced by computeDerivatives(), computeHessian(), computeTransformation(), getTargetCells(), init(), NormalDistributionsTransform(), and setMinPointPerVoxel().

## trans_likelihood_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_likelihood_ {0.0}

Definition at line 606 of file ndt.h.

Referenced by computeTransformation(), getTransformationLikelihood(), and getTransformationProbability().

## trans_probability_

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

double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_probability_

Deprecated
  Scheduled for removal in version 1 . 16 : "`trans_probability_` has been renamed to `trans_likelihood_`."

Definition at line 605 of file ndt.h.

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

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