Point Cloud Library (PCL)  1.7.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::NormalDistributionsTransform2D< PointSource, PointTarget > Class Template Reference

NormalDistributionsTransform2D provides an implementation of the Normal Distributions Transform algorithm for scan matching. More...

#include <pcl/registration/ndt_2d.h>

+ Inheritance diagram for pcl::NormalDistributionsTransform2D< PointSource, PointTarget >:

List of all members.

Public Types

typedef boost::shared_ptr
< NormalDistributionsTransform2D
< PointSource, PointTarget > > 
Ptr
typedef boost::shared_ptr
< const
NormalDistributionsTransform2D
< PointSource, PointTarget > > 
ConstPtr

Public Member Functions

 NormalDistributionsTransform2D ()
 Empty constructor.
virtual ~NormalDistributionsTransform2D ()
 Empty destructor.
virtual void setGridCentre (const Eigen::Vector2f &centre)
 centre of the ndt grid (target coordinate system)
virtual void setGridStep (const Eigen::Vector2f &step)
 Grid spacing (step) of the NDT grid.
virtual void setGridExtent (const Eigen::Vector2f &extent)
 NDT Grid extent (in either direction from the grid centre)
virtual void setOptimizationStepSize (const double &lambda)
 NDT Newton optimisation step size parameter.
virtual void setOptimizationStepSize (const Eigen::Vector3d &lambda)
 NDT Newton optimisation step size parameter.

Protected Member Functions

virtual void computeTransformation (PointCloudSource &output, const Eigen::Matrix4f &guess)
 Rigid transformation computation method with initial guess.

Protected Attributes

Eigen::Vector2f grid_centre_
Eigen::Vector2f grid_step_
Eigen::Vector2f grid_extent_
Eigen::Vector3d newton_lambda_

Detailed Description

template<typename PointSource, typename PointTarget>
class pcl::NormalDistributionsTransform2D< PointSource, PointTarget >

NormalDistributionsTransform2D provides an implementation of the Normal Distributions Transform algorithm for scan matching.

This implementation is intended to match the definition: Peter Biber and Wolfgang Straßer. The normal distributions transform: A new approach to laser scan matching. In Proceedings of the IEEE In- ternational Conference on Intelligent Robots and Systems (IROS), pages 2743–2748, Las Vegas, USA, October 2003.

Author:
James Crosby

Definition at line 60 of file ndt_2d.h.


Member Typedef Documentation

template<typename PointSource , typename PointTarget >
typedef boost::shared_ptr< const NormalDistributionsTransform2D<PointSource, PointTarget> > pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::ConstPtr

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

Definition at line 74 of file ndt_2d.h.

template<typename PointSource , typename PointTarget >
typedef boost::shared_ptr< NormalDistributionsTransform2D<PointSource, PointTarget> > pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::Ptr

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

Definition at line 73 of file ndt_2d.h.


Constructor & Destructor Documentation

template<typename PointSource , typename PointTarget >
pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::NormalDistributionsTransform2D ( ) [inline]

Empty constructor.

Definition at line 77 of file ndt_2d.h.

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

template<typename PointSource , typename PointTarget >
virtual pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::~NormalDistributionsTransform2D ( ) [inline, virtual]

Empty destructor.

Definition at line 85 of file ndt_2d.h.


Member Function Documentation

template<typename PointSource , typename PointTarget >
void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::computeTransformation ( PointCloudSource &  output,
const Eigen::Matrix4f &  guess 
) [protected, virtual]

Rigid transformation computation method with initial guess.

Parameters:
[out]outputthe transformed input point cloud dataset using the rigid transformation found
[in]guessthe initial guess of the transformation to compute

Definition at line 376 of file ndt_2d.hpp.

References pcl::ndt2d::ValueAndDerivatives< N, T >::grad, pcl::ndt2d::ValueAndDerivatives< N, T >::hessian, pcl::ndt2d::NDT2D< PointT >::test(), pcl::transformPointCloud(), and pcl::ndt2d::ValueAndDerivatives< N, T >::value.

template<typename PointSource , typename PointTarget >
virtual void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridCentre ( const Eigen::Vector2f &  centre) [inline, virtual]

centre of the ndt grid (target coordinate system)

Parameters:
centrevalue to set

Definition at line 91 of file ndt_2d.h.

References pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_centre_.

template<typename PointSource , typename PointTarget >
virtual void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridExtent ( const Eigen::Vector2f &  extent) [inline, virtual]

NDT Grid extent (in either direction from the grid centre)

Parameters:
[in]extentvalue to set

Definition at line 103 of file ndt_2d.h.

References pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_extent_.

template<typename PointSource , typename PointTarget >
virtual void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setGridStep ( const Eigen::Vector2f &  step) [inline, virtual]

Grid spacing (step) of the NDT grid.

Parameters:
[in]stepvalue to set

Definition at line 97 of file ndt_2d.h.

References pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_step_.

template<typename PointSource , typename PointTarget >
virtual void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setOptimizationStepSize ( const double &  lambda) [inline, virtual]

NDT Newton optimisation step size parameter.

Parameters:
[in]lambdastep size: 1 is simple newton optimisation, smaller values may improve convergence

Definition at line 109 of file ndt_2d.h.

References pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::newton_lambda_.

template<typename PointSource , typename PointTarget >
virtual void pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::setOptimizationStepSize ( const Eigen::Vector3d &  lambda) [inline, virtual]

NDT Newton optimisation step size parameter.

Parameters:
[in]lambdastep size: (1,1,1) is simple newton optimisation, smaller values may improve convergence, or elements may be set to zero to prevent optimisation over some parameters

This overload allows control of updates to the individual (x, y, theta) free parameters in the optimisation. If, for example, theta is believed to be close to the correct value a small value of lambda[2] should be used.

Definition at line 122 of file ndt_2d.h.

References pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::newton_lambda_.


Member Data Documentation

template<typename PointSource , typename PointTarget >
Eigen::Vector2f pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_centre_ [protected]
template<typename PointSource , typename PointTarget >
Eigen::Vector2f pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_extent_ [protected]
template<typename PointSource , typename PointTarget >
Eigen::Vector2f pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::grid_step_ [protected]
template<typename PointSource , typename PointTarget >
Eigen::Vector3d pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::newton_lambda_ [protected]

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