pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT > Class Template Reference

KLDAdaptiveParticleFilterOMPTracker tracks the PointCloud which is given by setReferenceCloud within the measured PointCloud using particle filter method. More...

`#include <pcl/tracking/kld_adaptive_particle_filter_omp.h>`

Inheritance diagram for pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >:

## Public Types

typedef Tracker< PointInT, StateT > | BaseClass
typedef Tracker< PointInT, StateT >::PointCloudIn | PointCloudIn
typedef PointCloudIn::Ptr | PointCloudInPtr
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr
typedef Tracker< PointInT, StateT >::PointCloudState | PointCloudState
typedef PointCloudState::Ptr | PointCloudStatePtr
typedef PointCloudState::ConstPtr | PointCloudStateConstPtr
typedef PointCoherence< PointInT > | Coherence
typedef boost::shared_ptr< Coherence > | CoherencePtr
typedef boost::shared_ptr< const Coherence > | CoherenceConstPtr
typedef PointCloudCoherence< PointInT > | CloudCoherence
typedef boost::shared_ptr< CloudCoherence > | CloudCoherencePtr
typedef boost::shared_ptr< const CloudCoherence > | CloudCoherenceConstPtr
Public Types inherited from pcl::tracking::KLDAdaptiveParticleFilterTracker< PointInT, StateT >
typedef Tracker< PointInT, StateT > | BaseClass
typedef Tracker< PointInT, StateT >::PointCloudIn | PointCloudIn
typedef PointCloudIn::Ptr | PointCloudInPtr
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr
typedef Tracker< PointInT, StateT >::PointCloudState | PointCloudState
typedef PointCloudState::Ptr | PointCloudStatePtr
typedef PointCloudState::ConstPtr | PointCloudStateConstPtr
typedef PointCoherence< PointInT > | Coherence
typedef boost::shared_ptr< Coherence > | CoherencePtr
typedef boost::shared_ptr< const Coherence > | CoherenceConstPtr
typedef PointCloudCoherence< PointInT > | CloudCoherence
typedef boost::shared_ptr< CloudCoherence > | CloudCoherencePtr
typedef boost::shared_ptr< const CloudCoherence > | CloudCoherenceConstPtr
Public Types inherited from pcl::tracking::ParticleFilterTracker< PointInT, StateT >
typedef Tracker< PointInT, StateT > | BaseClass
typedef Tracker< PointInT, StateT >::PointCloudIn | PointCloudIn
typedef PointCloudIn::Ptr | PointCloudInPtr
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr
typedef Tracker< PointInT, StateT >::PointCloudState | PointCloudState
typedef PointCloudState::Ptr | PointCloudStatePtr
typedef PointCloudState::ConstPtr | PointCloudStateConstPtr
typedef PointCoherence< PointInT > | Coherence
typedef boost::shared_ptr< Coherence > | CoherencePtr
typedef boost::shared_ptr< const Coherence > | CoherenceConstPtr
typedef PointCloudCoherence< PointInT > | CloudCoherence
typedef boost::shared_ptr< CloudCoherence > | CloudCoherencePtr
typedef boost::shared_ptr< const CloudCoherence > | CloudCoherenceConstPtr
Public Types inherited from pcl::tracking::Tracker< PointInT, StateT >
typedef PCLBase< PointInT > | BaseClass
typedef boost::shared_ptr< Tracker< PointInT, StateT > > | Ptr
typedef boost::shared_ptr< const Tracker< PointInT, StateT > > | ConstPtr
typedef boost::shared_ptr< pcl::search::Search< PointInT > > | SearchPtr
typedef boost::shared_ptr< const pcl::search::Search< PointInT > > | SearchConstPtr
typedef pcl::PointCloud< PointInT > | PointCloudIn
typedef PointCloudIn::Ptr | PointCloudInPtr
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr
typedef pcl::PointCloud< StateT > | PointCloudState
typedef PointCloudState::Ptr | PointCloudStatePtr
typedef PointCloudState::ConstPtr | PointCloudStateConstPtr
Public Types inherited from pcl::PCLBase< PointInT >
typedef pcl::PointCloud< PointInT > | PointCloud
typedef PointCloud::Ptr | PointCloudPtr
typedef PointCloud::ConstPtr | PointCloudConstPtr
typedef boost::shared_ptr< PointIndices > | PointIndicesPtr
typedef boost::shared_ptr< PointIndices const > | PointIndicesConstPtr

## Public Member Functions

| KLDAdaptiveParticleFilterOMPTracker (unsigned int nr_threads=0)
| Initialize the scheduler and set the number of threads to use. More...
void | setNumberOfThreads (unsigned int nr_threads=0)
| Initialize the scheduler and set the number of threads to use. More...
Public Member Functions inherited from pcl::tracking::KLDAdaptiveParticleFilterTracker< PointInT, StateT >
| KLDAdaptiveParticleFilterTracker ()
| Empty constructor. More...
void | setBinSize (const StateT &bin_size)
| set the bin size. More...
StateT | getBinSize () const
| get the bin size. More...
void | setMaximumParticleNum (unsigned int nr)
| set the maximum number of the particles. More...
unsigned int | getMaximumParticleNum () const
| get the maximum number of the particles. More...
void | setEpsilon (double eps)
| set epsilon to be used to calc K-L boundary. More...
double | getEpsilon () const
| get epsilon to be used to calc K-L boundary. More...
void | setDelta (double delta)
| set delta to be used in chi-squared distribution. More...
double | getDelta () const
| get delta to be used in chi-squared distribution. More...
Public Member Functions inherited from pcl::tracking::ParticleFilterTracker< PointInT, StateT >
| ParticleFilterTracker ()
| Empty constructor. More...
void | setIterationNum (const int iteration_num)
| Set the number of iteration. More...
int | getIterationNum () const
| Get the number of iteration. More...
void | setParticleNum (const int particle_num)
| Set the number of the particles. More...
int | getParticleNum () const
| Get the number of the particles. More...
void | setReferenceCloud (const PointCloudInConstPtr &ref)
| Set a pointer to a reference dataset to be tracked. More...
PointCloudInConstPtr const | getReferenceCloud ()
| Get a pointer to a reference dataset to be tracked. More...
void | setCloudCoherence (const CloudCoherencePtr &coherence)
| Set the PointCloudCoherence as likelihood. More...
CloudCoherencePtr | getCloudCoherence () const
| Get the PointCloudCoherence to compute likelihood. More...
void | setStepNoiseCovariance (const std::vector< double > &step_noise_covariance)
| Set the covariance of step noise. More...
void | setInitialNoiseCovariance (const std::vector< double > &initial_noise_covariance)
| Set the covariance of the initial noise. More...
void | setInitialNoiseMean (const std::vector< double > &initial_noise_mean)
| Set the mean of the initial noise. More...
void | setResampleLikelihoodThr (const double resample_likelihood_thr)
| Set the threshold to re-initialize the particles. More...
void | setOcclusionAngleThe (const double occlusion_angle_thr)
| Set the threshold of angle to be considered occlusion (default: pi/2). More...
void | setMinIndices (const int min_indices)
| Set the minimum number of indices (default: 1). More...
void | setTrans (const Eigen::Affine3f &trans)
| Set the transformation from the world coordinates to the frame of the particles. More...
Eigen::Affine3f | getTrans () const
| Get the transformation from the world coordinates to the frame of the particles. More...
virtual StateT | getResult () const
| Get an instance of the result of tracking. More...
Eigen::Affine3f | toEigenMatrix (const StateT &particle)
| Convert a state to affine transformation from the world coordinates frame. More...
PointCloudStatePtr | getParticles () const
| Get a pointer to a pointcloud of the particles. More...
double | normalizeParticleWeight (double w, double w_min, double w_max)
| Normalize the weight of a particle using . More...
void | setAlpha (double alpha)
| Set the value of alpha. More...
double | getAlpha ()
| Get the value of alpha. More...
void | setUseNormal (bool use_normal)
| Set the value of use_normal_. More...
bool | getUseNormal ()
| Get the value of use_normal_. More...
void | setUseChangeDetector (bool use_change_detector)
| Set the value of use_change_detector_. More...
bool | getUseChangeDetector ()
| Get the value of use_change_detector_. More...
void | setMotionRatio (double motion_ratio)
| Set the motion ratio. More...
double | getMotionRatio ()
| Get the motion ratio. More...
void | setIntervalOfChangeDetection (unsigned int change_detector_interval)
| Set the number of interval frames to run change detection. More...
unsigned int | getIntervalOfChangeDetection ()
| Get the number of interval frames to run change detection. More...
void | setMinPointsOfChangeDetection (unsigned int change_detector_filter)
| Set the minimum amount of points required within leaf node to become serialized in change detection. More...
void | setResolutionOfChangeDetection (double resolution)
| Set the resolution of change detection. More...
double | getResolutionOfChangeDetection ()
| Get the resolution of change detection. More...
unsigned int | getMinPointsOfChangeDetection ()
| Get the minimum amount of points required within leaf node to become serialized in change detection. More...
double | getFitRatio () const
| Get the adjustment ratio. More...
virtual void | resetTracking ()
| Reset the particles to restart tracking. More...
Public Member Functions inherited from pcl::tracking::Tracker< PointInT, StateT >
| Tracker ()
| Empty constructor. More...
void | compute ()
| Base method for tracking for all points given in <setInputCloud (), setIndices ()> using the indices in setIndices () More...
Public Member Functions inherited from pcl::PCLBase< PointInT >
| PCLBase ()
| Empty constructor. More...
| PCLBase (const PCLBase &base)
| Copy constructor. More...
virtual | ~PCLBase ()
| Destructor. More...
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset. More...
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset. More...
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud. More...
IndicesPtr const | getIndices ()
| Get a pointer to the vector of indices used. More...
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used. More...
const PointInT & | operator[] (size_t pos) const
| Override PointCloud operator[] to shorten code. More...

## Protected Member Functions

virtual void | weight ()
| weighting phase of particle filter method. More...
Protected Member Functions inherited from pcl::tracking::KLDAdaptiveParticleFilterTracker< PointInT, StateT >
virtual bool | equalBin (std::vector< int > a, std::vector< int > b)
| return true if the two bins are equal. More...
double | normalQuantile (double u)
| return upper quantile of standard normal distribution. More...
virtual double | calcKLBound (int k)
| calculate K-L boundary. More...
virtual bool | insertIntoBins (std::vector< int > bin, std::vector< std::vector< int > > &B)
| insert a bin into the set of the bins. More...
virtual bool | initCompute ()
| This method should get called before starting the actual computation. More...
virtual void | resample ()
| resampling phase of particle filter method. More...
Protected Member Functions inherited from pcl::tracking::ParticleFilterTracker< PointInT, StateT >
void | calcBoundingBox (double &x_min, double &x_max, double &y_min, double &y_max, double &z_min, double &z_max)
| Compute the parameters for the bounding box of hypothesis pointclouds. More...
void | cropInputPointCloud (const PointCloudInConstPtr &cloud, PointCloudIn &output)
| Crop the pointcloud by the bounding box calculated from hypothesis and the reference pointcloud. More...
void | computeTransformedPointCloud (const StateT &hypothesis, std::vector< int > &indices, PointCloudIn &cloud)
| Compute a reference pointcloud transformed to the pose that hypothesis represents. More...
void | computeTransformedPointCloudWithNormal (const StateT &hypothesis, std::vector< int > &indices, PointCloudIn &cloud)
| Compute a reference pointcloud transformed to the pose that hypothesis represents and calculate indices taking occlusion into account. More...
void | computeTransformedPointCloudWithoutNormal (const StateT &hypothesis, PointCloudIn &cloud)
| Compute a reference pointcloud transformed to the pose that hypothesis represents and calculate indices without taking occlusion into account. More...
virtual void | update ()
| Calculate the weighted mean of the particles and set it as the result. More...
virtual void | normalizeWeight ()
| Normalize the weights of all the particels. More...
void | initParticles (bool reset)
| Initialize the particles. More...
virtual void | computeTracking ()
| Track the pointcloud using particle filter method. More...
int | sampleWithReplacement (const std::vector< int > &a, const std::vector< double > &q)
| Implementation of "sample with replacement" using Walker's alias method. More...
void | genAliasTable (std::vector< int > &a, std::vector< double > &q, const PointCloudStateConstPtr &particles)
| Generate the tables for walker's alias method. More...
void | resampleWithReplacement ()
| Resampling the particle with replacement. More...
void | resampleDeterministic ()
| Resampling the particle in deterministic way. More...
bool | testChangeDetection (const PointCloudInConstPtr &input)
| Run change detection and return true if there is a change. More...
Protected Member Functions inherited from pcl::tracking::Tracker< PointInT, StateT >
const std::string & | getClassName () const
| Get a string representation of the name of this class. More...
void | setSearchMethod (const SearchPtr &search)
| Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. More...
SearchPtr | getSearchMethod ()
| Get a pointer to the point cloud dataset. More...
Protected Member Functions inherited from pcl::PCLBase< PointInT >
bool | initCompute ()
| This method should get called before starting the actual computation. More...
bool | deinitCompute ()
| This method should get called after finishing the actual computation. More...

## Protected Attributes

unsigned int | threads_
| The number of threads the scheduler should use. More...
Protected Attributes inherited from pcl::tracking::KLDAdaptiveParticleFilterTracker< PointInT, StateT >
unsigned int | maximum_particle_number_
| the maximum number of the particles. More...
double | epsilon_
| error between K-L distance and MLE More...
double | delta_
| probability of distance between K-L distance and MLE is less than epsilon_ More...
StateT | bin_size_
| the size of a bin. More...
Protected Attributes inherited from pcl::tracking::ParticleFilterTracker< PointInT, StateT >
int | iteration_num_
| The number of iteration of particlefilter. More...
int | particle_num_
| The number of the particles. More...
int | min_indices_
| The minimum number of points which the hypothesis should have. More...
double | fit_ratio_
| Adjustment of the particle filter. More...
PointCloudInConstPtr | ref_
| A pointer to reference point cloud. More...
PointCloudStatePtr | particles_
| A pointer to the particles. More...
CloudCoherencePtr | coherence_
| A pointer to PointCloudCoherence. More...
std::vector< double > | step_noise_covariance_
| The diagonal elements of covariance matrix of the step noise. More...
std::vector< double > | initial_noise_covariance_
| The diagonal elements of covariance matrix of the initial noise. More...
std::vector< double > | initial_noise_mean_
| The mean values of initial noise. More...
double | resample_likelihood_thr_
| The threshold for the particles to be re-initialized. More...
double | occlusion_angle_thr_
| The threshold for the points to be considered as occluded. More...
double | alpha_
| The weight to be used in normalization of the weights of the particles. More...
StateT | representative_state_
| The result of tracking. More...
Eigen::Affine3f | trans_
| An affine transformation from the world coordinates frame to the origin of the particles. More...
bool | use_normal_
| A flag to use normal or not. More...
StateT | motion_
| Difference between the result in t and t-1. More...
double | motion_ratio_
| Ratio of hypothesis to use motion model. More...
pcl::PassThrough< PointInT > | pass_x_
| Pass through filter to crop the pointclouds within the hypothesis bounding box. More...
pcl::PassThrough< PointInT > | pass_y_
| Pass through filter to crop the pointclouds within the hypothesis bounding box. More...
pcl::PassThrough< PointInT > | pass_z_
| Pass through filter to crop the pointclouds within the hypothesis bounding box. More...
std::vector< PointCloudInPtr > | transed_reference_vector_
| A list of the pointers to pointclouds. More...
boost::shared_ptr< pcl::octree::OctreePointCloudChangeDetector< PointInT > > | change_detector_
| Change detector used as a trigger to track. More...
bool | changed_
| A flag to be true when change of pointclouds is detected. More...
unsigned int | change_counter_
| A counter to skip change detection. More...
unsigned int | change_detector_filter_
| Minimum points in a leaf when calling change detector. More...
unsigned int | change_detector_interval_
| The number of interval frame to run change detection. More...
double | change_detector_resolution_
| Resolution of change detector. More...
bool | use_change_detector_
| The flag which will be true if using change detection. More...
Protected Attributes inherited from pcl::tracking::Tracker< PointInT, StateT >
std::string | tracker_name_
| The tracker name. More...
SearchPtr | search_
| A pointer to the spatial search object. More...
Protected Attributes inherited from pcl::PCLBase< PointInT >
PointCloudConstPtr | input_
| The input point cloud dataset. More...
IndicesPtr | indices_
| A pointer to the vector of point indices to use. More...
bool | use_indices_
| Set to true if point indices are used. More...
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...

## Detailed Description

### template<typename PointInT, typename StateT>
class pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >

KLDAdaptiveParticleFilterOMPTracker tracks the PointCloud which is given by setReferenceCloud within the measured PointCloud using particle filter method.

The number of the particles changes adaptively based on KLD sampling [D. Fox, NIPS-01], [D.Fox, IJRR03]. and the computation of the weights of the particles is parallelized using OpenMP.

Author
  Ryohei Ueda

Definition at line 20 of file kld_adaptive_particle_filter_omp.h.

## Member Typedef Documentation

## BaseClass

template<typename PointInT , typename StateT >

typedef Tracker<PointInT, StateT> pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::BaseClass

Definition at line 48 of file kld_adaptive_particle_filter_omp.h.

## CloudCoherence

template<typename PointInT , typename StateT >

typedef PointCloudCoherence<PointInT> pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::CloudCoherence

Definition at line 62 of file kld_adaptive_particle_filter_omp.h.

## CloudCoherenceConstPtr

template<typename PointInT , typename StateT >

typedef boost::shared_ptr< const CloudCoherence > pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::CloudCoherenceConstPtr

Definition at line 64 of file kld_adaptive_particle_filter_omp.h.

## CloudCoherencePtr

template<typename PointInT , typename StateT >

typedef boost::shared_ptr< CloudCoherence > pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::CloudCoherencePtr

Definition at line 63 of file kld_adaptive_particle_filter_omp.h.

## Coherence

template<typename PointInT , typename StateT >

typedef PointCoherence<PointInT> pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::Coherence

Definition at line 58 of file kld_adaptive_particle_filter_omp.h.

## CoherenceConstPtr

template<typename PointInT , typename StateT >

typedef boost::shared_ptr< const Coherence > pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::CoherenceConstPtr

Definition at line 60 of file kld_adaptive_particle_filter_omp.h.

## CoherencePtr

template<typename PointInT , typename StateT >

typedef boost::shared_ptr< Coherence > pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::CoherencePtr

Definition at line 59 of file kld_adaptive_particle_filter_omp.h.

## PointCloudIn

template<typename PointInT , typename StateT >

typedef Tracker<PointInT, StateT>::PointCloudIn pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudIn

Definition at line 50 of file kld_adaptive_particle_filter_omp.h.

## PointCloudInConstPtr

template<typename PointInT , typename StateT >

typedef PointCloudIn::ConstPtr pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudInConstPtr

Definition at line 52 of file kld_adaptive_particle_filter_omp.h.

## PointCloudInPtr

template<typename PointInT , typename StateT >

typedef PointCloudIn::Ptr pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudInPtr

Definition at line 51 of file kld_adaptive_particle_filter_omp.h.

## PointCloudState

template<typename PointInT , typename StateT >

typedef Tracker<PointInT, StateT>::PointCloudState pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudState

Definition at line 54 of file kld_adaptive_particle_filter_omp.h.

## PointCloudStateConstPtr

template<typename PointInT , typename StateT >

typedef PointCloudState::ConstPtr pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudStateConstPtr

Definition at line 56 of file kld_adaptive_particle_filter_omp.h.

## PointCloudStatePtr

template<typename PointInT , typename StateT >

typedef PointCloudState::Ptr pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::PointCloudStatePtr

Definition at line 55 of file kld_adaptive_particle_filter_omp.h.

## Constructor & Destructor Documentation

## KLDAdaptiveParticleFilterOMPTracker()

template<typename PointInT , typename StateT >

pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::KLDAdaptiveParticleFilterOMPTracker | ( | unsigned int | nr_threads = `0` | ) |

inline

Initialize the scheduler and set the number of threads to use.

Parameters

  nr_threads | the number of hardware threads to use (0 sets the value back to automatic)

Definition at line 69 of file kld_adaptive_particle_filter_omp.h.

References pcl::tracking::Tracker< PointInT, StateT >::tracker_name_.

## Member Function Documentation

## setNumberOfThreads()

template<typename PointInT , typename StateT >

void pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::setNumberOfThreads | ( | unsigned int | nr_threads = `0` | ) |

inline

Initialize the scheduler and set the number of threads to use.

Parameters

  nr_threads | the number of hardware threads to use (0 sets the value back to automatic)

Definition at line 80 of file kld_adaptive_particle_filter_omp.h.

References pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::threads_.

## weight()

template<typename PointInT , typename StateT >

void pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::weight | ( |  | ) |

protected virtual

weighting phase of particle filter method.

calculate the likelihood of all of the particles and set the weights.

Reimplemented from pcl::tracking::ParticleFilterTracker< PointInT, StateT >.

Definition at line 7 of file kld_adaptive_particle_filter_omp.hpp.

## Member Data Documentation

## threads_

template<typename PointInT , typename StateT >

unsigned int pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::threads_

protected

The number of threads the scheduler should use.

Definition at line 84 of file kld_adaptive_particle_filter_omp.h.

Referenced by pcl::tracking::KLDAdaptiveParticleFilterOMPTracker< PointInT, StateT >::setNumberOfThreads().

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

- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/tracking/include/pcl/tracking/kld_adaptive_particle_filter_omp.h
- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/tracking/include/pcl/tracking/impl/kld_adaptive_particle_filter_omp.hpp