pcl::ndt2d::NormalDist< PointT > Class Template Reference

A normal distribution estimation class. More...

`#include <pcl/registration/impl/ndt_2d.hpp>`

## Public Member Functions

| NormalDist ()
void | addIdx (std::size_t i)
| Store a point index to use later for estimating distribution parameters. More...
void | estimateParams (const PointCloud &cloud, double min_covar_eigvalue_mult=0.001)
| Estimate the normal distribution parameters given the point indices provided. More...
ValueAndDerivatives< 3, double > | test (const PointT &transformed_pt, const double &cos_theta, const double &sin_theta) const
| Return the 'score' (denormalised likelihood) and derivatives of score of the point p given this distribution. More...

## Protected Attributes

const std::size_t | min_n_
std::size_t | n_
std::vector< std::size_t > | pt_indices_
Eigen::Vector2d | mean_
Eigen::Matrix2d | covar_inv_

## Detailed Description

### template<typename PointT>
class pcl::ndt2d::NormalDist< PointT >

A normal distribution estimation class.

First the indices of of the points from a point cloud that should be modelled by the distribution are added with addIdx (...).

Then estimateParams (...) uses the stored point indices to estimate the parameters of a normal distribution, and discards the stored indices.

Finally the distriubution, and its derivatives, may be evaluated at any point using test (...).

Definition at line 96 of file ndt_2d.hpp.

## Constructor & Destructor Documentation

## NormalDist()

template<typename PointT >

pcl::ndt2d::NormalDist< PointT >::NormalDist | ( |  | ) |

inline

Definition at line 100 of file ndt_2d.hpp.

## Member Function Documentation

## addIdx()

template<typename PointT >

void pcl::ndt2d::NormalDist< PointT >::addIdx | ( | std::size_t | i | ) |

inline

Store a point index to use later for estimating distribution parameters.

Parameters

  [in] | i | Point index to store

Definition at line 106 of file ndt_2d.hpp.

References pcl::ndt2d::NormalDist< PointT >::pt_indices_.

## estimateParams()

template<typename PointT >

void pcl::ndt2d::NormalDist< PointT >::estimateParams | ( | const PointCloud & | cloud,
|  | double | min_covar_eigvalue_mult = `0.001`
| ) |  |

inline

Estimate the normal distribution parameters given the point indices provided.

Memory of point indices is cleared.

Parameters

  [in] | cloud | Point cloud corresponding to indices passed to addIdx.
  [in] | min_covar_eigvalue_mult | Set the smallest eigenvalue to this times the largest.

Definition at line 117 of file ndt_2d.hpp.

References pcl::ndt2d::NormalDist< PointT >::covar_inv_, pcl::ndt2d::NormalDist< PointT >::mean_, pcl::ndt2d::NormalDist< PointT >::min_n_, pcl::ndt2d::NormalDist< PointT >::n_, and pcl::ndt2d::NormalDist< PointT >::pt_indices_.

## test()

template<typename PointT >

ValueAndDerivatives<3, double> pcl::ndt2d::NormalDist< PointT >::test | ( | const PointT & | transformed_pt,
|  | const double & | cos_theta,
|  | const double & | sin_theta
| ) |  | const

inline

Return the 'score' (denormalised likelihood) and derivatives of score of the point p given this distribution.

Parameters

  [in] | transformed_pt | Location to evaluate at.
  [in] | cos_theta | sin(theta) of the current rotation angle of rigid transformation: to avoid repeated evaluation
  [in] | sin_theta | cos(theta) of the current rotation angle of rigid transformation: to avoid repeated evaluation estimateParams must have been called after at least three points were provided, or this will return zero.

Definition at line 164 of file ndt_2d.hpp.

References pcl::ndt2d::NormalDist< PointT >::covar_inv_, pcl::ndt2d::ValueAndDerivatives< N, T >::grad, pcl::ndt2d::ValueAndDerivatives< N, T >::hessian, pcl::ndt2d::NormalDist< PointT >::mean_, pcl::ndt2d::NormalDist< PointT >::min_n_, pcl::ndt2d::NormalDist< PointT >::n_, pcl::ndt2d::ValueAndDerivatives< N, T >::value, and pcl::ndt2d::ValueAndDerivatives< N, T >::Zero().

Referenced by pcl::ndt2d::NDTSingleGrid< PointT >::test().

## Member Data Documentation

## covar_inv_

template<typename PointT >

Eigen::Matrix2d pcl::ndt2d::NormalDist< PointT >::covar_inv_

protected

Definition at line 208 of file ndt_2d.hpp.

Referenced by pcl::ndt2d::NormalDist< PointT >::estimateParams(), and pcl::ndt2d::NormalDist< PointT >::test().

## mean_

template<typename PointT >

Eigen::Vector2d pcl::ndt2d::NormalDist< PointT >::mean_

protected

Definition at line 207 of file ndt_2d.hpp.

Referenced by pcl::ndt2d::NormalDist< PointT >::estimateParams(), and pcl::ndt2d::NormalDist< PointT >::test().

## min_n_

template<typename PointT >

const std::size_t pcl::ndt2d::NormalDist< PointT >::min_n_

protected

Definition at line 203 of file ndt_2d.hpp.

Referenced by pcl::ndt2d::NormalDist< PointT >::estimateParams(), and pcl::ndt2d::NormalDist< PointT >::test().

## n_

template<typename PointT >

std::size_t pcl::ndt2d::NormalDist< PointT >::n_

protected

Definition at line 205 of file ndt_2d.hpp.

Referenced by pcl::ndt2d::NormalDist< PointT >::estimateParams(), and pcl::ndt2d::NormalDist< PointT >::test().

## pt_indices_

template<typename PointT >

std::vector<std::size_t> pcl::ndt2d::NormalDist< PointT >::pt_indices_

protected

Definition at line 206 of file ndt_2d.hpp.

Referenced by pcl::ndt2d::NormalDist< PointT >::addIdx(), and pcl::ndt2d::NormalDist< PointT >::estimateParams().

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

- pcl/registration/impl/ndt_2d.hpp