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