36 #define IMAGE_CONVERSION() \ 38 std::vector<cv_bridge::CvImageConstPtr> imageMsgs(3); \ 39 std::vector<cv_bridge::CvImageConstPtr> depthMsgs(3); \ 40 rtabmap_ros::toCvShare(image1Msg, imageMsgs[0], depthMsgs[0]); \ 41 rtabmap_ros::toCvShare(image2Msg, imageMsgs[1], depthMsgs[1]); \ 42 rtabmap_ros::toCvShare(image3Msg, imageMsgs[2], depthMsgs[2]); \ 43 if(!depthMsgs[0].get()) \ 45 std::vector<sensor_msgs::CameraInfo> cameraInfoMsgs; \ 46 cameraInfoMsgs.push_back(image1Msg->rgb_camera_info); \ 47 cameraInfoMsgs.push_back(image2Msg->rgb_camera_info); \ 48 cameraInfoMsgs.push_back(image3Msg->rgb_camera_info); \ 49 std::vector<sensor_msgs::CameraInfo> depthCameraInfoMsgs; \ 50 depthCameraInfoMsgs.push_back(image1Msg->depth_camera_info); \ 51 depthCameraInfoMsgs.push_back(image2Msg->depth_camera_info); \ 52 depthCameraInfoMsgs.push_back(image3Msg->depth_camera_info); \ 53 std::vector<rtabmap_ros::GlobalDescriptor> globalDescriptorMsgs; \ 54 std::vector<std::vector<rtabmap_ros::KeyPoint> > localKeyPoints; \ 55 std::vector<std::vector<rtabmap_ros::Point3f> > localPoints3d; \ 56 std::vector<cv::Mat> localDescriptors; \ 57 if(!image1Msg->global_descriptor.data.empty()) \ 58 globalDescriptorMsgs.push_back(image1Msg->global_descriptor); \ 59 if(!image2Msg->global_descriptor.data.empty()) \ 60 globalDescriptorMsgs.push_back(image2Msg->global_descriptor); \ 61 if(!image3Msg->global_descriptor.data.empty()) \ 62 globalDescriptorMsgs.push_back(image3Msg->global_descriptor); \ 63 localKeyPoints.push_back(image1Msg->key_points); \ 64 localKeyPoints.push_back(image2Msg->key_points); \ 65 localKeyPoints.push_back(image3Msg->key_points); \ 66 localPoints3d.push_back(image1Msg->points); \ 67 localPoints3d.push_back(image2Msg->points); \ 68 localPoints3d.push_back(image3Msg->points); \ 69 localDescriptors.push_back(rtabmap::uncompressData(image1Msg->descriptors)); \ 70 localDescriptors.push_back(rtabmap::uncompressData(image2Msg->descriptors)); \ 71 localDescriptors.push_back(rtabmap::uncompressData(image3Msg->descriptors)); 74 void CommonDataSubscriber::rgbd3Callback(
75 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
76 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
77 const rtabmap_ros::RGBDImageConstPtr& image3Msg)
81 nav_msgs::OdometryConstPtr odomMsg;
82 rtabmap_ros::UserDataConstPtr userDataMsg;
83 sensor_msgs::LaserScan scanMsg;
84 sensor_msgs::PointCloud2 scan3dMsg;
85 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
87 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
88 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
89 localKeyPoints, localPoints3d, localDescriptors);
91 void CommonDataSubscriber::rgbd3Scan2dCallback(
92 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
93 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
94 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
95 const sensor_msgs::LaserScanConstPtr& scanMsg)
99 nav_msgs::OdometryConstPtr odomMsg;
100 rtabmap_ros::UserDataConstPtr userDataMsg;
101 sensor_msgs::PointCloud2 scan3dMsg;
102 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
104 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, *scanMsg,
105 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
106 localKeyPoints, localPoints3d, localDescriptors);
108 void CommonDataSubscriber::rgbd3Scan3dCallback(
109 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
110 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
111 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
112 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
116 nav_msgs::OdometryConstPtr odomMsg;
117 rtabmap_ros::UserDataConstPtr userDataMsg;
118 sensor_msgs::LaserScan scanMsg;
119 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
121 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
122 *scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
123 localKeyPoints, localPoints3d, localDescriptors);
125 void CommonDataSubscriber::rgbd3ScanDescCallback(
126 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
127 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
128 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
129 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
133 nav_msgs::OdometryConstPtr odomMsg;
134 rtabmap_ros::UserDataConstPtr userDataMsg;
135 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
136 if(!scanDescMsg->global_descriptor.data.empty())
138 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
141 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanDescMsg->scan,
142 scanDescMsg->scan_cloud, odomInfoMsg, globalDescriptorMsgs,
143 localKeyPoints, localPoints3d, localDescriptors);
145 void CommonDataSubscriber::rgbd3InfoCallback(
146 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
147 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
148 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
149 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
153 nav_msgs::OdometryConstPtr odomMsg;
154 rtabmap_ros::UserDataConstPtr userDataMsg;
155 sensor_msgs::LaserScan scanMsg;
156 sensor_msgs::PointCloud2 scan3dMsg;
158 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
159 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
160 localKeyPoints, localPoints3d, localDescriptors);
164 void CommonDataSubscriber::rgbd3OdomCallback(
165 const nav_msgs::OdometryConstPtr & odomMsg,
166 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
167 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
168 const rtabmap_ros::RGBDImageConstPtr& image3Msg)
172 rtabmap_ros::UserDataConstPtr userDataMsg;
173 sensor_msgs::LaserScan scanMsg;
174 sensor_msgs::PointCloud2 scan3dMsg;
175 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
177 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
178 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
179 localKeyPoints, localPoints3d, localDescriptors);
181 void CommonDataSubscriber::rgbd3OdomScan2dCallback(
182 const nav_msgs::OdometryConstPtr & odomMsg,
183 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
184 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
185 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
186 const sensor_msgs::LaserScanConstPtr& scanMsg)
190 rtabmap_ros::UserDataConstPtr userDataMsg;
191 sensor_msgs::PointCloud2 scan3dMsg;
192 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
194 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, *scanMsg,
195 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
196 localKeyPoints, localPoints3d, localDescriptors);
198 void CommonDataSubscriber::rgbd3OdomScan3dCallback(
199 const nav_msgs::OdometryConstPtr & odomMsg,
200 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
201 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
202 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
203 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
207 rtabmap_ros::UserDataConstPtr userDataMsg;
208 sensor_msgs::LaserScan scanMsg;
209 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
211 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
212 *scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
213 localKeyPoints, localPoints3d, localDescriptors);
215 void CommonDataSubscriber::rgbd3OdomScanDescCallback(
216 const nav_msgs::OdometryConstPtr & odomMsg,
217 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
218 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
219 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
220 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
224 rtabmap_ros::UserDataConstPtr userDataMsg;
225 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
226 if(!scanDescMsg->global_descriptor.data.empty())
228 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
231 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanDescMsg->scan,
232 scanDescMsg->scan_cloud, odomInfoMsg, globalDescriptorMsgs,
233 localKeyPoints, localPoints3d, localDescriptors);
235 void CommonDataSubscriber::rgbd3OdomInfoCallback(
236 const nav_msgs::OdometryConstPtr & odomMsg,
237 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
238 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
239 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
240 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
244 rtabmap_ros::UserDataConstPtr userDataMsg;
245 sensor_msgs::LaserScan scanMsg;
246 sensor_msgs::PointCloud2 scan3dMsg;
248 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
249 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
250 localKeyPoints, localPoints3d, localDescriptors);
253 #ifdef RTABMAP_SYNC_USER_DATA 255 void CommonDataSubscriber::rgbd3DataCallback(
256 const rtabmap_ros::UserDataConstPtr& userDataMsg,
257 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
258 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
259 const rtabmap_ros::RGBDImageConstPtr& image3Msg)
263 nav_msgs::OdometryConstPtr odomMsg;
264 sensor_msgs::LaserScan scanMsg;
265 sensor_msgs::PointCloud2 scan3dMsg;
266 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
268 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
269 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
270 localKeyPoints, localPoints3d, localDescriptors);
272 void CommonDataSubscriber::rgbd3DataScan2dCallback(
273 const rtabmap_ros::UserDataConstPtr& userDataMsg,
274 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
275 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
276 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
277 const sensor_msgs::LaserScanConstPtr& scanMsg)
281 nav_msgs::OdometryConstPtr odomMsg;
282 sensor_msgs::PointCloud2 scan3dMsg;
283 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
285 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, *scanMsg,
286 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
287 localKeyPoints, localPoints3d, localDescriptors);
289 void CommonDataSubscriber::rgbd3DataScan3dCallback(
290 const rtabmap_ros::UserDataConstPtr& userDataMsg,
291 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
292 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
293 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
294 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
298 nav_msgs::OdometryConstPtr odomMsg;
299 sensor_msgs::LaserScan scanMsg;
300 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
302 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
303 *scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
304 localKeyPoints, localPoints3d, localDescriptors);
306 void CommonDataSubscriber::rgbd3DataScanDescCallback(
307 const rtabmap_ros::UserDataConstPtr& userDataMsg,
308 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
309 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
310 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
311 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
315 nav_msgs::OdometryConstPtr odomMsg;
316 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
317 if(!scanDescMsg->global_descriptor.data.empty())
319 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
322 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanDescMsg->scan,
323 scanDescMsg->scan_cloud, odomInfoMsg, globalDescriptorMsgs,
324 localKeyPoints, localPoints3d, localDescriptors);
326 void CommonDataSubscriber::rgbd3DataInfoCallback(
327 const rtabmap_ros::UserDataConstPtr& userDataMsg,
328 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
329 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
330 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
331 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
335 nav_msgs::OdometryConstPtr odomMsg;
336 sensor_msgs::LaserScan scanMsg;
337 sensor_msgs::PointCloud2 scan3dMsg;
339 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
340 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
341 localKeyPoints, localPoints3d, localDescriptors);
344 void CommonDataSubscriber::rgbd3OdomDataCallback(
345 const nav_msgs::OdometryConstPtr& odomMsg,
346 const rtabmap_ros::UserDataConstPtr& userDataMsg,
347 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
348 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
349 const rtabmap_ros::RGBDImageConstPtr& image3Msg)
353 sensor_msgs::LaserScan scanMsg;
354 sensor_msgs::PointCloud2 scan3dMsg;
355 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
357 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
358 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
359 localKeyPoints, localPoints3d, localDescriptors);
361 void CommonDataSubscriber::rgbd3OdomDataScan2dCallback(
362 const nav_msgs::OdometryConstPtr& odomMsg,
363 const rtabmap_ros::UserDataConstPtr& userDataMsg,
364 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
365 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
366 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
367 const sensor_msgs::LaserScanConstPtr& scanMsg)
371 sensor_msgs::PointCloud2 scan3dMsg;
372 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
374 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, *scanMsg,
375 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
376 localKeyPoints, localPoints3d, localDescriptors);
378 void CommonDataSubscriber::rgbd3OdomDataScan3dCallback(
379 const nav_msgs::OdometryConstPtr& odomMsg,
380 const rtabmap_ros::UserDataConstPtr& userDataMsg,
381 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
382 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
383 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
384 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
388 sensor_msgs::LaserScan scanMsg;
389 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
391 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
392 *scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
393 localKeyPoints, localPoints3d, localDescriptors);
395 void CommonDataSubscriber::rgbd3OdomDataScanDescCallback(
396 const nav_msgs::OdometryConstPtr& odomMsg,
397 const rtabmap_ros::UserDataConstPtr& userDataMsg,
398 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
399 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
400 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
401 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
405 rtabmap_ros::OdomInfoConstPtr odomInfoMsg;
406 if(!scanDescMsg->global_descriptor.data.empty())
408 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
411 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanDescMsg->scan,
412 scanDescMsg->scan_cloud, odomInfoMsg, globalDescriptorMsgs,
413 localKeyPoints, localPoints3d, localDescriptors);
415 void CommonDataSubscriber::rgbd3OdomDataInfoCallback(
416 const nav_msgs::OdometryConstPtr& odomMsg,
417 const rtabmap_ros::UserDataConstPtr& userDataMsg,
418 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
419 const rtabmap_ros::RGBDImageConstPtr& image2Msg,
420 const rtabmap_ros::RGBDImageConstPtr& image3Msg,
421 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
425 sensor_msgs::LaserScan scanMsg;
426 sensor_msgs::PointCloud2 scan3dMsg;
428 depthMsgs, cameraInfoMsgs, depthCameraInfoMsgs, scanMsg,
429 scan3dMsg, odomInfoMsg, globalDescriptorMsgs,
430 localKeyPoints, localPoints3d, localDescriptors);
434 void CommonDataSubscriber::setupRGBD3Callbacks(
438 bool subscribeUserData,
439 bool subscribeScan2d,
440 bool subscribeScan3d,
441 bool subscribeScanDescriptor,
442 bool subscribeOdomInfo,
449 for(
int i=0; i<3; ++i)
454 #ifdef RTABMAP_SYNC_USER_DATA 455 if(subscribeOdom && subscribeUserData)
459 if(subscribeScanDescriptor)
463 if(subscribeOdomInfo)
466 ROS_WARN(
"subscribe_odom_info ignored...");
470 else if(subscribeScan2d)
474 if(subscribeOdomInfo)
477 ROS_WARN(
"subscribe_odom_info ignored...");
481 else if(subscribeScan3d)
485 if(subscribeOdomInfo)
488 ROS_WARN(
"subscribe_odom_info ignored...");
492 else if(subscribeOdomInfo)
508 if(subscribeScanDescriptor)
512 if(subscribeOdomInfo)
515 ROS_WARN(
"subscribe_odom_info ignored...");
519 else if(subscribeScan2d)
523 if(subscribeOdomInfo)
526 ROS_WARN(
"subscribe_odom_info ignored...");
530 else if(subscribeScan3d)
534 if(subscribeOdomInfo)
537 ROS_WARN(
"subscribe_odom_info ignored...");
541 else if(subscribeOdomInfo)
552 #ifdef RTABMAP_SYNC_USER_DATA 553 else if(subscribeUserData)
556 if(subscribeScanDescriptor)
560 if(subscribeOdomInfo)
563 ROS_WARN(
"subscribe_odom_info ignored...");
566 else if(subscribeScan2d)
570 if(subscribeOdomInfo)
573 ROS_WARN(
"subscribe_odom_info ignored...");
577 else if(subscribeScan3d)
581 if(subscribeOdomInfo)
584 ROS_WARN(
"subscribe_odom_info ignored...");
588 else if(subscribeOdomInfo)
602 if(subscribeScanDescriptor)
606 if(subscribeOdomInfo)
609 ROS_WARN(
"subscribe_odom_info ignored...");
613 else if(subscribeScan2d)
617 if(subscribeOdomInfo)
620 ROS_WARN(
"subscribe_odom_info ignored...");
624 else if(subscribeScan3d)
628 if(subscribeOdomInfo)
631 ROS_WARN(
"subscribe_odom_info ignored...");
635 else if(subscribeOdomInfo)
CommonDataSubscriber(bool gui)
std::string uFormat(const char *fmt,...)
#define SYNC_DECL3(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2)
message_filters::Subscriber< rtabmap_ros::UserData > userDataSub_
bool subscribedToOdomInfo_
message_filters::Subscriber< rtabmap_ros::OdomInfo > odomInfoSub_
#define SYNC_DECL5(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4)
#define IMAGE_CONVERSION()
bool subscribedToScanDescriptor_
message_filters::Subscriber< sensor_msgs::LaserScan > scanSub_
message_filters::Subscriber< rtabmap_ros::ScanDescriptor > scanDescSub_
virtual void commonMultiCameraCallback(const nav_msgs::OdometryConstPtr &odomMsg, const rtabmap_ros::UserDataConstPtr &userDataMsg, const std::vector< cv_bridge::CvImageConstPtr > &imageMsgs, const std::vector< cv_bridge::CvImageConstPtr > &depthMsgs, const std::vector< sensor_msgs::CameraInfo > &cameraInfoMsgs, const std::vector< sensor_msgs::CameraInfo > &depthCameraInfoMsgs, const sensor_msgs::LaserScan &scanMsg, const sensor_msgs::PointCloud2 &scan3dMsg, const rtabmap_ros::OdomInfoConstPtr &odomInfoMsg, const std::vector< rtabmap_ros::GlobalDescriptor > &globalDescriptorMsgs=std::vector< rtabmap_ros::GlobalDescriptor >(), const std::vector< std::vector< rtabmap_ros::KeyPoint > > &localKeyPoints=std::vector< std::vector< rtabmap_ros::KeyPoint > >(), const std::vector< std::vector< rtabmap_ros::Point3f > > &localPoints3d=std::vector< std::vector< rtabmap_ros::Point3f > >(), const std::vector< cv::Mat > &localDescriptors=std::vector< cv::Mat >())=0
message_filters::Subscriber< nav_msgs::Odometry > odomSub_
#define SYNC_DECL6(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5)
message_filters::Subscriber< sensor_msgs::PointCloud2 > scan3dSub_
void subscribe(ros::NodeHandle &nh, const std::string &topic, uint32_t queue_size, const ros::TransportHints &transport_hints=ros::TransportHints(), ros::CallbackQueueInterface *callback_queue=0)
std::vector< message_filters::Subscriber< rtabmap_ros::RGBDImage > * > rgbdSubs_
#define SYNC_DECL4(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3)