kld_adaptive_particle_filter_omp.h
Go to the documentation of this file.
00001 #ifndef PCL_TRACKING_KLD_ADAPTIVE_PARTICLE_FILTER_OMP_H_
00002 #define PCL_TRACKING_KLD_ADAPTIVE_PARTICLE_FILTER_OMP_H_
00003 
00004 #include <pcl/tracking/tracking.h>
00005 #include <pcl/tracking/kld_adaptive_particle_filter.h>
00006 #include <pcl/tracking/coherence.h>
00007 
00008 namespace pcl
00009 {
00010   namespace tracking
00011   {
00019     template <typename PointInT, typename StateT>
00020     class KLDAdaptiveParticleFilterOMPTracker: public KLDAdaptiveParticleFilterTracker<PointInT, StateT>
00021     {
00022     public:
00023       using Tracker<PointInT, StateT>::tracker_name_;
00024       using Tracker<PointInT, StateT>::search_;
00025       using Tracker<PointInT, StateT>::input_;
00026       using Tracker<PointInT, StateT>::indices_;
00027       using Tracker<PointInT, StateT>::getClassName;
00028       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::particles_;
00029       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::change_detector_;
00030       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::change_counter_;
00031       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::change_detector_interval_;
00032       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::use_change_detector_;
00033       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::pass_x_;
00034       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::pass_y_;
00035       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::pass_z_;
00036       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::alpha_;
00037       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::changed_;
00038       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::coherence_;
00039       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::use_normal_;
00040       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::particle_num_;
00041       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::change_detector_filter_;
00042       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::transed_reference_vector_;
00043       //using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::calcLikelihood;
00044       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::normalizeWeight;
00045       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::normalizeParticleWeight;
00046       using KLDAdaptiveParticleFilterTracker<PointInT, StateT>::calcBoundingBox;
00047 
00048       typedef Tracker<PointInT, StateT> BaseClass;
00049       
00050       typedef typename Tracker<PointInT, StateT>::PointCloudIn PointCloudIn;
00051       typedef typename PointCloudIn::Ptr PointCloudInPtr;
00052       typedef typename PointCloudIn::ConstPtr PointCloudInConstPtr;
00053 
00054       typedef typename Tracker<PointInT, StateT>::PointCloudState PointCloudState;
00055       typedef typename PointCloudState::Ptr PointCloudStatePtr;
00056       typedef typename PointCloudState::ConstPtr PointCloudStateConstPtr;
00057 
00058       typedef PointCoherence<PointInT> Coherence;
00059       typedef boost::shared_ptr< Coherence > CoherencePtr;
00060       typedef boost::shared_ptr< const Coherence > CoherenceConstPtr;
00061 
00062       typedef PointCloudCoherence<PointInT> CloudCoherence;
00063       typedef boost::shared_ptr< CloudCoherence > CloudCoherencePtr;
00064       typedef boost::shared_ptr< const CloudCoherence > CloudCoherenceConstPtr;
00065       
00067       KLDAdaptiveParticleFilterOMPTracker ()
00068       : KLDAdaptiveParticleFilterTracker<PointInT, StateT> ()
00069       , threads_ (1)
00070       {
00071         tracker_name_ = "KLDAdaptiveParticleFilterOMPTracker";
00072       }
00073       
00077       KLDAdaptiveParticleFilterOMPTracker (unsigned int nr_threads)
00078       : KLDAdaptiveParticleFilterTracker<PointInT, StateT> ()
00079       , threads_ (nr_threads)
00080       {
00081         tracker_name_ = "KLDAdaptiveParticleFilterOMPTracker";
00082       }
00083 
00087       inline void
00088       setNumberOfThreads (unsigned int nr_threads)
00089       {
00090         if (nr_threads == 0)
00091           nr_threads = 1;
00092         threads_ = nr_threads;
00093       }
00094       
00095     protected:
00097       unsigned int threads_;
00098 
00102       virtual void weight ();
00103 
00104     };
00105   }
00106 }
00107 
00108 //#include <pcl/tracking/impl/particle_filter_omp.hpp>
00109 
00110 #endif


pcl
Author(s): Open Perception
autogenerated on Mon Oct 6 2014 03:15:38