38 const rtabmap_msgs::RGBDImageConstPtr& image1Msg)
43 rtabmap_msgs::UserDataConstPtr userDataMsg;
44 nav_msgs::OdometryConstPtr odomMsg;
45 sensor_msgs::LaserScan scanMsg;
46 sensor_msgs::PointCloud2 scan3dMsg;
47 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
49 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
50 if(!image1Msg->global_descriptor.data.empty())
52 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
56 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
57 scanMsg, scan3dMsg, odomInfoMsg,
58 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
61 void CommonDataSubscriber::rgbdScan2dCallback(
62 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
63 const sensor_msgs::LaserScanConstPtr& scanMsg)
68 rtabmap_msgs::UserDataConstPtr userDataMsg;
69 nav_msgs::OdometryConstPtr odomMsg;
70 sensor_msgs::PointCloud2 scan3dMsg;
71 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
73 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
74 if(!image1Msg->global_descriptor.data.empty())
76 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
80 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
81 *scanMsg, scan3dMsg, odomInfoMsg,
82 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
85 void CommonDataSubscriber::rgbdScan3dCallback(
86 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
87 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
92 rtabmap_msgs::UserDataConstPtr userDataMsg;
93 nav_msgs::OdometryConstPtr odomMsg;
94 sensor_msgs::LaserScan scanMsg;
95 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
97 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
98 if(!image1Msg->global_descriptor.data.empty())
100 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
104 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
105 scanMsg, *scan3dMsg, odomInfoMsg,
106 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
109 void CommonDataSubscriber::rgbdScanDescCallback(
110 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
111 const rtabmap_msgs::ScanDescriptorConstPtr& scanDescMsg)
116 rtabmap_msgs::UserDataConstPtr userDataMsg;
117 nav_msgs::OdometryConstPtr odomMsg;
118 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
120 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
121 if(!image1Msg->global_descriptor.data.empty())
123 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
127 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
128 scanDescMsg->scan, scanDescMsg->scan_cloud, odomInfoMsg,
129 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
132 void CommonDataSubscriber::rgbdInfoCallback(
133 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
134 const rtabmap_msgs::OdomInfoConstPtr& odomInfoMsg)
139 rtabmap_msgs::UserDataConstPtr userDataMsg;
140 nav_msgs::OdometryConstPtr odomMsg;
141 sensor_msgs::LaserScan scanMsg;
142 sensor_msgs::PointCloud2 scan3dMsg;
144 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
145 if(!image1Msg->global_descriptor.data.empty())
147 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
151 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
152 scanMsg, scan3dMsg, odomInfoMsg,
153 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
158 void CommonDataSubscriber::rgbdOdomCallback(
159 const nav_msgs::OdometryConstPtr & odomMsg,
160 const rtabmap_msgs::RGBDImageConstPtr& image1Msg)
165 rtabmap_msgs::UserDataConstPtr userDataMsg;
166 sensor_msgs::LaserScan scanMsg;
167 sensor_msgs::PointCloud2 scan3dMsg;
168 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
170 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
171 if(!image1Msg->global_descriptor.data.empty())
173 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
177 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
178 scanMsg, scan3dMsg, odomInfoMsg,
179 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
182 void CommonDataSubscriber::rgbdOdomScan2dCallback(
183 const nav_msgs::OdometryConstPtr & odomMsg,
184 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
185 const sensor_msgs::LaserScanConstPtr& scanMsg)
190 rtabmap_msgs::UserDataConstPtr userDataMsg;
191 sensor_msgs::PointCloud2 scan3dMsg;
192 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
194 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
195 if(!image1Msg->global_descriptor.data.empty())
197 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
201 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
202 *scanMsg, scan3dMsg, odomInfoMsg,
203 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
206 void CommonDataSubscriber::rgbdOdomScan3dCallback(
207 const nav_msgs::OdometryConstPtr & odomMsg,
208 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
209 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
214 rtabmap_msgs::UserDataConstPtr userDataMsg;
215 sensor_msgs::LaserScan scanMsg;
216 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
218 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
219 if(!image1Msg->global_descriptor.data.empty())
221 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
225 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
226 scanMsg, *scan3dMsg, odomInfoMsg,
227 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
230 void CommonDataSubscriber::rgbdOdomScanDescCallback(
231 const nav_msgs::OdometryConstPtr & odomMsg,
232 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
233 const rtabmap_msgs::ScanDescriptorConstPtr& scanDescMsg)
238 rtabmap_msgs::UserDataConstPtr userDataMsg;
239 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
241 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
242 if(!image1Msg->global_descriptor.data.empty())
244 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
246 if(!scanDescMsg->global_descriptor.data.empty())
248 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
252 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
253 scanDescMsg->scan, scanDescMsg->scan_cloud, odomInfoMsg,
254 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
257 void CommonDataSubscriber::rgbdOdomInfoCallback(
258 const nav_msgs::OdometryConstPtr & odomMsg,
259 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
260 const rtabmap_msgs::OdomInfoConstPtr& odomInfoMsg)
265 rtabmap_msgs::UserDataConstPtr userDataMsg;
266 sensor_msgs::LaserScan scanMsg;
267 sensor_msgs::PointCloud2 scan3dMsg;
269 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
270 if(!image1Msg->global_descriptor.data.empty())
272 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
276 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
277 scanMsg, scan3dMsg, odomInfoMsg,
278 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
282 #ifdef RTABMAP_SYNC_USER_DATA
284 void CommonDataSubscriber::rgbdDataCallback(
285 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
286 const rtabmap_msgs::RGBDImageConstPtr& image1Msg)
291 nav_msgs::OdometryConstPtr odomMsg;
292 sensor_msgs::LaserScan scanMsg;
293 sensor_msgs::PointCloud2 scan3dMsg;
294 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
296 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
297 if(!image1Msg->global_descriptor.data.empty())
299 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
303 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
304 scanMsg, scan3dMsg, odomInfoMsg,
305 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
308 void CommonDataSubscriber::rgbdDataScan2dCallback(
309 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
310 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
311 const sensor_msgs::LaserScanConstPtr& scanMsg)
316 nav_msgs::OdometryConstPtr odomMsg;
317 sensor_msgs::PointCloud2 scan3dMsg;
318 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
320 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
321 if(!image1Msg->global_descriptor.data.empty())
323 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
327 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
328 *scanMsg, scan3dMsg, odomInfoMsg,
329 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
332 void CommonDataSubscriber::rgbdDataScan3dCallback(
333 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
334 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
335 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
340 nav_msgs::OdometryConstPtr odomMsg;
341 sensor_msgs::LaserScan scanMsg;
342 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
344 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
345 if(!image1Msg->global_descriptor.data.empty())
347 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
351 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
352 scanMsg, *scan3dMsg, odomInfoMsg,
353 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
356 void CommonDataSubscriber::rgbdDataScanDescCallback(
357 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
358 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
359 const rtabmap_msgs::ScanDescriptorConstPtr& scanDescMsg)
364 nav_msgs::OdometryConstPtr odomMsg;
365 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
367 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
368 if(!image1Msg->global_descriptor.data.empty())
370 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
372 if(!scanDescMsg->global_descriptor.data.empty())
374 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
378 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
379 scanDescMsg->scan, scanDescMsg->scan_cloud, odomInfoMsg,
380 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
383 void CommonDataSubscriber::rgbdDataInfoCallback(
384 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
385 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
386 const rtabmap_msgs::OdomInfoConstPtr& odomInfoMsg)
391 nav_msgs::OdometryConstPtr odomMsg;
392 sensor_msgs::LaserScan scanMsg;
393 sensor_msgs::PointCloud2ConstPtr scan3dMsg;
395 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
396 if(!image1Msg->global_descriptor.data.empty())
398 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
402 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
403 scanMsg, *scan3dMsg, odomInfoMsg,
404 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
409 void CommonDataSubscriber::rgbdOdomDataCallback(
410 const nav_msgs::OdometryConstPtr & odomMsg,
411 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
412 const rtabmap_msgs::RGBDImageConstPtr& image1Msg)
417 sensor_msgs::LaserScan scanMsg;
418 sensor_msgs::PointCloud2 scan3dMsg;
419 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
421 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
422 if(!image1Msg->global_descriptor.data.empty())
424 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
428 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
429 scanMsg, scan3dMsg, odomInfoMsg,
430 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
433 void CommonDataSubscriber::rgbdOdomDataScan2dCallback(
434 const nav_msgs::OdometryConstPtr & odomMsg,
435 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
436 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
437 const sensor_msgs::LaserScanConstPtr& scanMsg)
442 sensor_msgs::PointCloud2 scan3dMsg;
443 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
445 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
446 if(!image1Msg->global_descriptor.data.empty())
448 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
452 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
453 *scanMsg, scan3dMsg, odomInfoMsg,
454 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
457 void CommonDataSubscriber::rgbdOdomDataScan3dCallback(
458 const nav_msgs::OdometryConstPtr & odomMsg,
459 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
460 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
461 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
466 sensor_msgs::LaserScan scanMsg;
467 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
469 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
470 if(!image1Msg->global_descriptor.data.empty())
472 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
476 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
477 scanMsg, *scan3dMsg, odomInfoMsg,
478 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
481 void CommonDataSubscriber::rgbdOdomDataScanDescCallback(
482 const nav_msgs::OdometryConstPtr & odomMsg,
483 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
484 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
485 const rtabmap_msgs::ScanDescriptorConstPtr& scanDescMsg)
490 rtabmap_msgs::OdomInfoConstPtr odomInfoMsg;
492 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
493 if(!image1Msg->global_descriptor.data.empty())
495 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
497 if(!scanDescMsg->global_descriptor.data.empty())
499 globalDescriptorMsgs.push_back(scanDescMsg->global_descriptor);
503 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
504 scanDescMsg->scan, scanDescMsg->scan_cloud, odomInfoMsg,
505 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
508 void CommonDataSubscriber::rgbdOdomDataInfoCallback(
509 const nav_msgs::OdometryConstPtr & odomMsg,
510 const rtabmap_msgs::UserDataConstPtr & userDataMsg,
511 const rtabmap_msgs::RGBDImageConstPtr& image1Msg,
512 const rtabmap_msgs::OdomInfoConstPtr& odomInfoMsg)
517 sensor_msgs::LaserScan scanMsg;
518 sensor_msgs::PointCloud2 scan3dMsg;
520 std::vector<rtabmap_msgs::GlobalDescriptor> globalDescriptorMsgs;
521 if(!image1Msg->global_descriptor.data.empty())
523 globalDescriptorMsgs.push_back(image1Msg->global_descriptor);
527 depth, image1Msg->rgb_camera_info, image1Msg->depth_camera_info,
528 scanMsg, scan3dMsg, odomInfoMsg,
529 globalDescriptorMsgs, image1Msg->key_points, image1Msg->points,
538 bool subscribeUserData,
539 bool subscribeScan2d,
540 bool subscribeScan3d,
541 bool subscribeScanDesc,
542 bool subscribeOdomInfo)
547 #ifdef RTABMAP_SYNC_USER_DATA
559 #ifdef RTABMAP_SYNC_USER_DATA
560 if(subscribeOdom && subscribeUserData)
564 if(subscribeScanDesc)
568 if(subscribeOdomInfo)
571 ROS_WARN(
"subscribe_odom_info ignored...");
575 else if(subscribeScan2d)
579 if(subscribeOdomInfo)
582 ROS_WARN(
"subscribe_odom_info ignored...");
586 else if(subscribeScan3d)
590 if(subscribeOdomInfo)
593 ROS_WARN(
"subscribe_odom_info ignored...");
597 else if(subscribeOdomInfo)
613 if(subscribeScanDesc)
617 if(subscribeOdomInfo)
620 ROS_WARN(
"subscribe_odom_info ignored...");
624 else if(subscribeScan2d)
628 if(subscribeOdomInfo)
631 ROS_WARN(
"subscribe_odom_info ignored...");
635 else if(subscribeScan3d)
639 if(subscribeOdomInfo)
642 ROS_WARN(
"subscribe_odom_info ignored...");
646 else if(subscribeOdomInfo)
657 #ifdef RTABMAP_SYNC_USER_DATA
658 else if(subscribeUserData)
661 if(subscribeScanDesc)
665 if(subscribeOdomInfo)
668 ROS_WARN(
"subscribe_odom_info ignored...");
672 else if(subscribeScan2d)
676 if(subscribeOdomInfo)
679 ROS_WARN(
"subscribe_odom_info ignored...");
683 else if(subscribeScan3d)
687 if(subscribeOdomInfo)
690 ROS_WARN(
"subscribe_odom_info ignored...");
694 else if(subscribeOdomInfo)
708 if(subscribeScanDesc)
712 if(subscribeOdomInfo)
715 ROS_WARN(
"subscribe_odom_info ignored...");
719 else if(subscribeScan2d)
723 if(subscribeOdomInfo)
726 ROS_WARN(
"subscribe_odom_info ignored...");
730 else if(subscribeScan3d)
734 if(subscribeOdomInfo)
737 ROS_WARN(
"subscribe_odom_info ignored...");
741 else if(subscribeOdomInfo)
758 uFormat(
"\n%s subscribed to:\n %s",