Point Cloud Library (PCL)  1.11.1
particle_filter.h
1 #pragma once
2 
3 #include <pcl/pcl_macros.h>
4 #include <pcl/gpu/containers/device_array.h>
5 
6 #include <pcl/point_types.h>
7 #include <pcl/point_cloud.h>
8 #include <pcl/PointIndices.h>
9 #include <pcl/pcl_macros.h>
10 
11 #include <pcl/gpu/kinfu/pixel_rgb.h>
12 #include <pcl/tracking/particle_filter.h>
13 
14 #include <Eigen/Dense>
15 
16 #include "internal.h"
17 
18 namespace pcl
19 {
20  namespace gpu
21  {
23  {
24  public:
25  /** \brief Point type supported */
27  //using NormalType = pcl::Normal;
28  using PixelRGB = pcl::RGB;
29 
32 
34 
35  /** \brief Empty constructor. */
37  //: ParticleFilterTracker<PointInT, StateT> ()
38  {
39  tracker_name_ = "ParticleFilterGPUTracker";
40  }
41 
42  /** \brief set the number of the particles.
43  * \param particle_num the number of the particles.
44  */
45  inline void
46  setParticleNum (const int particle_num) { particle_num_ = particle_num; }
47 
48  /** \brief get the number of the particles. */
49  inline int
50  getParticleNum () const { return particle_num_; }
51 
52  /** \brief set a pointer to a reference dataset to be tracked.
53  * \param ref a pointer to a PointCloud message
54  */
55  inline void
57 
58  /** \brief get a pointer to a reference dataset to be tracked. */
59  inline DeviceArray2D<PointType> const
60  getReferenceCloud () { return ref_; }
61 
62  int
63  cols ();
64 
65  int
66  rows ();
67 
68  virtual bool
70  {
71 
72  }
73 
74  virtual void
76  { motion_ = motion; }
77 
78  virtual StateType
80 
81  protected:
82  std::string tracker_name_;
83 
84  virtual bool
86  {
87 
88  //pcl::device::initParticles(particle_num_, particle_xyz_, particle_rpy_, particle_weight_ );
89  }
90 
91  virtual void
93  {
94 
95  }
96 
97  virtual void
99  {
100  particles_.create( particle_num_ );
101 
102  random_number_generator_.create( particle_num_ );
103 
104  }
105 
106  // reference point cloud
108 
110 
111  //DeviceArray2D<NormalType> ref_normals_;
112 
113  // input point cloud
115 
117 
118  //DeviceArray2D<NormalType> input_normals_;
119 
120  //StateCloud particles_;
122 
123  // random number generate state
125 
127 
128  std::vector<float> step_noise_covariance_;
129 
130  std::vector<float> initial_noise_covariance_;
131 
132  std::vector<float> initial_noise_mean_;
133 
135 
137 
139 
141 
142  /** \brief Height of input depth image. */
143  int rows_;
144  /** \brief Width of input depth image. */
145  int cols_;
146 
147  };
148  }
149 }
pcl_macros.h
Defines all the PCL and non-PCL macros used.
pcl
Definition: convolution.h:46
point_types.h
pcl::gpu::ParticleFilterGPUTracker::motion_
StateType motion_
Definition: particle_filter.h:134
pcl::gpu::ParticleFilterGPUTracker::operator()
virtual bool operator()(const DeviceArray2D< PointType > &input, const DeviceArray2D< PixelRGB > &input_colors)
Definition: particle_filter.h:69
pcl::gpu::ParticleFilterGPUTracker::motion_ratio_
float motion_ratio_
Definition: particle_filter.h:136
pcl::gpu::ParticleFilterGPUTracker::ParticleFilterGPUTracker
ParticleFilterGPUTracker()
Empty constructor.
Definition: particle_filter.h:36
pcl::gpu::ParticleFilterGPUTracker::input_
DeviceArray2D< PointType > input_
Definition: particle_filter.h:114
pcl::gpu::ParticleFilterGPUTracker::allocateBuffers
virtual void allocateBuffers()
Definition: particle_filter.h:98
pcl::gpu::ParticleFilterGPUTracker::cols_
int cols_
Width of input depth image.
Definition: particle_filter.h:145
pcl::gpu::ParticleFilterGPUTracker::getResult
virtual StateType getResult()
pcl::gpu::DeviceArray2D
DeviceArray2D class
Definition: device_array.h:154
pcl::tracking::ParticleXYZRPY
Definition: tracking.hpp:27
pcl::gpu::ParticleFilterGPUTracker::ref_colors_
DeviceArray2D< PixelRGB > ref_colors_
Definition: particle_filter.h:109
pcl::gpu::ParticleFilterGPUTracker::rng_states
DeviceArray< curandState > rng_states
Definition: particle_filter.h:124
pcl::gpu::ParticleFilterGPUTracker::setMotion
virtual void setMotion(StateType motion)
Definition: particle_filter.h:75
pcl::gpu::ParticleFilterGPUTracker::representative_state_
StateType representative_state_
Definition: particle_filter.h:140
pcl::gpu::ParticleFilterGPUTracker::initial_noise_covariance_
std::vector< float > initial_noise_covariance_
Definition: particle_filter.h:130
pcl::gpu::ParticleFilterGPUTracker::getReferenceCloud
DeviceArray2D< PointType > const getReferenceCloud()
get a pointer to a reference dataset to be tracked.
Definition: particle_filter.h:60
pcl::gpu::ParticleFilterGPUTracker::use_colors_
bool use_colors_
Definition: particle_filter.h:138
pcl::gpu::ParticleFilterGPUTracker::initial_noise_mean_
std::vector< float > initial_noise_mean_
Definition: particle_filter.h:132
pcl::gpu::ParticleFilterGPUTracker::input_colors_
DeviceArray2D< PixelRGB > input_colors_
Definition: particle_filter.h:116
pcl::PointXYZ
A point structure representing Euclidean xyz coordinates.
Definition: point_types.hpp:301
pcl::gpu::ParticleFilterGPUTracker::cols
int cols()
pcl::gpu::DeviceArray
DeviceArray class
Definition: device_array.h:57
pcl::RGB
A structure representing RGB color information.
Definition: point_types.hpp:346
pcl::gpu::ParticleFilterGPUTracker::setParticleNum
void setParticleNum(const int particle_num)
set the number of the particles.
Definition: particle_filter.h:46
pcl::gpu::ParticleFilterGPUTracker::step_noise_covariance_
std::vector< float > step_noise_covariance_
Definition: particle_filter.h:128
pcl::gpu::ParticleFilterGPUTracker::particle_num_
int particle_num_
Definition: particle_filter.h:126
pcl::gpu::ParticleFilterGPUTracker::StateType
pcl::tracking::ParticleXYZRPY StateType
Definition: particle_filter.h:33
pcl::gpu::ParticleFilterGPUTracker::rows_
int rows_
Height of input depth image.
Definition: particle_filter.h:143
pcl::gpu::ParticleFilterGPUTracker::rows
int rows()
pcl::gpu::ParticleFilterGPUTracker
Definition: particle_filter.h:23
pcl::gpu::ParticleFilterGPUTracker::ref_
DeviceArray2D< PointType > ref_
Definition: particle_filter.h:107
pcl::gpu::ParticleFilterGPUTracker::setReferenceCloud
void setReferenceCloud(const DeviceArray2D< PointType > &ref)
set a pointer to a reference dataset to be tracked.
Definition: particle_filter.h:56
pcl::gpu::ParticleFilterGPUTracker::computeTracking
virtual void computeTracking()
Definition: particle_filter.h:92
pcl::gpu::ParticleFilterGPUTracker::getParticleNum
int getParticleNum() const
get the number of the particles.
Definition: particle_filter.h:50
pcl::gpu::ParticleFilterGPUTracker::initCompute
virtual bool initCompute()
Definition: particle_filter.h:85
pcl::gpu::ParticleFilterGPUTracker::tracker_name_
std::string tracker_name_
Definition: particle_filter.h:82
pcl::gpu::ParticleFilterGPUTracker::particles_
DeviceArray< StateType > particles_
Definition: particle_filter.h:121