Point Cloud Library (PCL) 1.15.0
Loading...
Searching...
No Matches
pcl::ndt2d::NormalDist< PointT > Class Template Reference

A normal distribution estimation class. More...

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

Public Member Functions

 NormalDist ()=default
void addIdx (std::size_t i)
 Store a point index to use later for estimating distribution parameters.
void estimateParams (const PointCloud &cloud, double min_covar_eigvalue_mult=0.001)
 Estimate the normal distribution parameters given the point indices provided.
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.

Protected Attributes

const std::size_t min_n_ {3}
std::size_t n_ {0}
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 98 of file ndt_2d.hpp.

Constructor & Destructor Documentation

◆ NormalDist()

template<typename PointT>
pcl::ndt2d::NormalDist< PointT >::NormalDist ( )
default

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]iPoint index to store

Definition at line 108 of file ndt_2d.hpp.

References 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]cloudPoint cloud corresponding to indices passed to addIdx.
[in]min_covar_eigvalue_multSet the smallest eigenvalue to this times the largest.

Definition at line 119 of file ndt_2d.hpp.

References covar_inv_, mean_, min_n_, n_, and 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_ptLocation to evaluate at.
[in]cos_thetasin(theta) of the current rotation angle of rigid transformation: to avoid repeated evaluation
[in]sin_thetacos(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 166 of file ndt_2d.hpp.

References covar_inv_, pcl::ndt2d::ValueAndDerivatives< N, T >::grad, pcl::ndt2d::ValueAndDerivatives< N, T >::hessian, mean_, min_n_, 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 211 of file ndt_2d.hpp.

Referenced by estimateParams(), and test().

◆ mean_

template<typename PointT>
Eigen::Vector2d pcl::ndt2d::NormalDist< PointT >::mean_
protected

Definition at line 210 of file ndt_2d.hpp.

Referenced by estimateParams(), and test().

◆ min_n_

template<typename PointT>
const std::size_t pcl::ndt2d::NormalDist< PointT >::min_n_ {3}
protected

Definition at line 206 of file ndt_2d.hpp.

Referenced by estimateParams(), and test().

◆ n_

template<typename PointT>
std::size_t pcl::ndt2d::NormalDist< PointT >::n_ {0}
protected

Definition at line 208 of file ndt_2d.hpp.

Referenced by estimateParams(), and test().

◆ pt_indices_

template<typename PointT>
std::vector<std::size_t> pcl::ndt2d::NormalDist< PointT >::pt_indices_
protected

Definition at line 209 of file ndt_2d.hpp.

Referenced by addIdx(), and estimateParams().


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