22 #ifndef __PLUGINS_PERCEPTION_BUMBLEBEE2_BUMBLEBEE2_THREAD_H_ 23 #define __PLUGINS_PERCEPTION_BUMBLEBEE2_BUMBLEBEE2_THREAD_H_ 26 #include <pcl/point_cloud.h> 27 #include <pcl/point_types.h> 29 #include <core/threading/thread.h> 30 #include <aspect/blocked_timing.h> 31 #include <aspect/clock.h> 32 #include <aspect/configurable.h> 33 #include <aspect/logging.h> 34 #include <aspect/blackboard.h> 35 #include <aspect/tf.h> 36 #include <aspect/pointcloud.h> 39 class SwitchInterface;
40 class OpenCVStereoParamsInterface;
42 #ifdef USE_TIMETRACKER 48 class Bumblebee2Camera;
49 class SharedMemoryImageBuffer;
57 class TriclopsColorImage;
75 virtual void finalize();
78 void get_triclops_context_from_camera();
79 void deinterlace_green(
unsigned char* src,
unsigned char* dest,
80 unsigned int width,
unsigned int height);
81 void fill_xyz_xyzrgb(
const short int *dispdata,
82 const TriclopsColorImage *img_right_rect_color,
85 void fill_xyzrgb(
const short int *dispdata,
86 const TriclopsColorImage *img_rect_color,
88 void fill_xyz(
const short int *dispdata,
97 STEREO_MATCHER_TRICLOPS,
104 } OpenCVStereoAlgorithm;
113 TriclopsData *triclops_;
116 unsigned int height_;
122 unsigned char *buffer_green_;
123 unsigned char *buffer_rgb_;
124 unsigned char *buffer_rgb_left_;
125 unsigned char *buffer_rgb_right_;
126 unsigned char *buffer_yuv_left_;
127 unsigned char *buffer_yuv_right_;
128 unsigned char *buffer_rgb_planar_left_;
129 unsigned char *buffer_rgb_planar_right_;
143 std::string cfg_base_frame_;
144 std::string cfg_frames_prefix_;
145 float cfg_frames_interval_;
146 StereoMatcher cfg_stereo_matcher_;
149 OpenCVStereoAlgorithm cfg_opencv_stereo_algorithm_;
150 int cfg_bm_pre_filter_type_;
151 unsigned int cfg_bm_pre_filter_size_;
152 unsigned int cfg_bm_pre_filter_cap_;
153 unsigned int cfg_bm_sad_window_size_;
154 int cfg_bm_min_disparity_;
155 unsigned int cfg_bm_num_disparities_;
156 unsigned int cfg_bm_texture_threshold_;
157 unsigned int cfg_bm_uniqueness_ratio_;
158 unsigned int cfg_bm_speckle_window_size_;
159 unsigned int cfg_bm_speckle_range_;
160 bool cfg_bm_try_smaller_windows_;
162 bool cfg_sgbm_p1_auto_;
163 bool cfg_sgbm_p2_auto_;
166 int cfg_sgbm_disp_12_max_diff_;
168 float disparity_scale_factor_;
170 cv::Mat *cv_disparity_;
176 #ifdef USE_TIMETRACKER 178 unsigned int tt_loopcount_;
179 unsigned int ttc_full_loop_;
180 unsigned int ttc_transforms_;
181 unsigned int ttc_msgproc_;
182 unsigned int ttc_capture_;
183 unsigned int ttc_preprocess_;
184 unsigned int ttc_rectify_;
185 unsigned int ttc_stereo_match_;
186 unsigned int ttc_pcl_xyzrgb_;
187 unsigned int ttc_pcl_xyz_;
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
Thread to acquire data from Bumblebee2 stereo camera.
Fawkes library namespace.
Thread aspect to provide and access point clouds.
virtual void run()
Code to execute in the thread.
virtual void run()
Stub to see name in backtrace for easier debugging.
A class for handling time.
Thread class encapsulation of pthreads.
Thread aspect to use blocked timing.
SwitchInterface Fawkes BlackBoard Interface.
OpenCVStereoParamsInterface Fawkes BlackBoard Interface.
Shared memory image buffer.
Thread aspect to log output.
Thread aspect to access configuration data.
RefPtr<> is a reference-counting shared smartpointer.