38                 const rtabmap_ros::RGBDImageConstPtr& image1Msg)
    43         rtabmap_ros::UserDataConstPtr userDataMsg; 
    44         nav_msgs::OdometryConstPtr odomMsg; 
    45         sensor_msgs::LaserScan scanMsg; 
    46         sensor_msgs::PointCloud2 scan3dMsg; 
    47         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
    49         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
    63                 const sensor_msgs::LaserScanConstPtr& scanMsg)
    68         rtabmap_ros::UserDataConstPtr userDataMsg; 
    69         nav_msgs::OdometryConstPtr odomMsg; 
    70         sensor_msgs::PointCloud2 scan3dMsg; 
    71         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
    73         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
    87                 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
    92         rtabmap_ros::UserDataConstPtr userDataMsg; 
    93         nav_msgs::OdometryConstPtr odomMsg; 
    94         sensor_msgs::LaserScan scanMsg; 
    95         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
    97         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   111                 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
   116         rtabmap_ros::UserDataConstPtr userDataMsg; 
   117         nav_msgs::OdometryConstPtr odomMsg; 
   118         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   120         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   134                 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
   139         rtabmap_ros::UserDataConstPtr userDataMsg; 
   140         nav_msgs::OdometryConstPtr odomMsg; 
   141         sensor_msgs::LaserScan scanMsg; 
   142         sensor_msgs::PointCloud2 scan3dMsg; 
   144         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg)
   165         rtabmap_ros::UserDataConstPtr userDataMsg; 
   166         sensor_msgs::LaserScan scanMsg; 
   167         sensor_msgs::PointCloud2 scan3dMsg; 
   168         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   170         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   185                 const sensor_msgs::LaserScanConstPtr& scanMsg)
   190         rtabmap_ros::UserDataConstPtr userDataMsg; 
   191         sensor_msgs::PointCloud2 scan3dMsg; 
   192         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   194         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   209                 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
   214         rtabmap_ros::UserDataConstPtr userDataMsg; 
   215         sensor_msgs::LaserScan scanMsg; 
   216         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   218         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   233                 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
   238         rtabmap_ros::UserDataConstPtr userDataMsg; 
   239         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   241         std::vector<rtabmap_ros::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_ros::RGBDImageConstPtr& image1Msg,
   260                 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
   265         rtabmap_ros::UserDataConstPtr userDataMsg; 
   266         sensor_msgs::LaserScan scanMsg; 
   267         sensor_msgs::PointCloud2 scan3dMsg; 
   269         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   286                 const rtabmap_ros::RGBDImageConstPtr& image1Msg)
   291         nav_msgs::OdometryConstPtr odomMsg; 
   292         sensor_msgs::LaserScan scanMsg; 
   293         sensor_msgs::PointCloud2 scan3dMsg; 
   294         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   296         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   310                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   311                 const sensor_msgs::LaserScanConstPtr& scanMsg)
   316         nav_msgs::OdometryConstPtr odomMsg; 
   317         sensor_msgs::PointCloud2 scan3dMsg; 
   318         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   320         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   334                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   335                 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
   340         nav_msgs::OdometryConstPtr odomMsg; 
   341         sensor_msgs::LaserScan scanMsg; 
   342         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   344         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   358                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   359                 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
   364         nav_msgs::OdometryConstPtr odomMsg; 
   365         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   367         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   385                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   386                 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
   391         nav_msgs::OdometryConstPtr odomMsg; 
   392         sensor_msgs::LaserScan scanMsg; 
   393         sensor_msgs::PointCloud2ConstPtr scan3dMsg; 
   395         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   412                 const rtabmap_ros::RGBDImageConstPtr& image1Msg)
   417         sensor_msgs::LaserScan scanMsg; 
   418         sensor_msgs::PointCloud2 scan3dMsg; 
   419         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   421         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   436                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   437                 const sensor_msgs::LaserScanConstPtr& scanMsg)
   442         sensor_msgs::PointCloud2 scan3dMsg; 
   443         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   445         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   460                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   461                 const sensor_msgs::PointCloud2ConstPtr& scan3dMsg)
   466         sensor_msgs::LaserScan scanMsg; 
   467         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   469         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   484                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   485                 const rtabmap_ros::ScanDescriptorConstPtr& scanDescMsg)
   490         rtabmap_ros::OdomInfoConstPtr odomInfoMsg; 
   492         std::vector<rtabmap_ros::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_ros::UserDataConstPtr & userDataMsg,
   511                 const rtabmap_ros::RGBDImageConstPtr& image1Msg,
   512                 const rtabmap_ros::OdomInfoConstPtr& odomInfoMsg)
   517         sensor_msgs::LaserScan scanMsg; 
   518         sensor_msgs::PointCloud2 scan3dMsg; 
   520         std::vector<rtabmap_ros::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,
   549 #ifdef RTABMAP_SYNC_USER_DATA
   559                 rgbdSubs_[0]->subscribe(nh, 
"rgbd_image", queueSize);
   561 #ifdef RTABMAP_SYNC_USER_DATA   562                 if(subscribeOdom && subscribeUserData)
   566                         if(subscribeScanDesc)
   570                                 if(subscribeOdomInfo)
   573                                         ROS_WARN(
"subscribe_odom_info ignored...");
   577                         else if(subscribeScan2d)
   581                                 if(subscribeOdomInfo)
   584                                         ROS_WARN(
"subscribe_odom_info ignored...");
   588                         else if(subscribeScan3d)
   592                                 if(subscribeOdomInfo)
   595                                         ROS_WARN(
"subscribe_odom_info ignored...");
   599                         else if(subscribeOdomInfo)
   615                         if(subscribeScanDesc)
   619                                 if(subscribeOdomInfo)
   622                                         ROS_WARN(
"subscribe_odom_info ignored...");
   626                         else if(subscribeScan2d)
   630                                 if(subscribeOdomInfo)
   633                                         ROS_WARN(
"subscribe_odom_info ignored...");
   637                         else if(subscribeScan3d)
   641                                 if(subscribeOdomInfo)
   644                                         ROS_WARN(
"subscribe_odom_info ignored...");
   648                         else if(subscribeOdomInfo)
   659 #ifdef RTABMAP_SYNC_USER_DATA   660                 else if(subscribeUserData)
   663                         if(subscribeScanDesc)
   667                                 if(subscribeOdomInfo)
   670                                         ROS_WARN(
"subscribe_odom_info ignored...");
   674                         else if(subscribeScan2d)
   678                                 if(subscribeOdomInfo)
   681                                         ROS_WARN(
"subscribe_odom_info ignored...");
   685                         else if(subscribeScan3d)
   689                                 if(subscribeOdomInfo)
   692                                         ROS_WARN(
"subscribe_odom_info ignored...");
   696                         else if(subscribeOdomInfo)
   710                         if(subscribeScanDesc)
   714                                 if(subscribeOdomInfo)
   717                                         ROS_WARN(
"subscribe_odom_info ignored...");
   721                         else if(subscribeScan2d)
   725                                 if(subscribeOdomInfo)
   728                                         ROS_WARN(
"subscribe_odom_info ignored...");
   732                         else if(subscribeScan3d)
   736                                 if(subscribeOdomInfo)
   739                                         ROS_WARN(
"subscribe_odom_info ignored...");
   743                         else if(subscribeOdomInfo)
   760                                 uFormat(
"\n%s subscribed to:\n   %s",
 void rgbdCallback(const rtabmap_ros::RGBDImageConstPtr &)
cv::Mat RTABMAP_EXP uncompressData(const cv::Mat &bytes)
std::string uFormat(const char *fmt,...)
std::string getTopic() const
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
#define SYNC_DECL3(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2)
ROSCPP_DECL const std::string & getName()
message_filters::Subscriber< rtabmap_ros::UserData > userDataSub_
bool subscribedToOdomInfo_
message_filters::Subscriber< rtabmap_ros::OdomInfo > odomInfoSub_
bool subscribedToScanDescriptor_
message_filters::Subscriber< sensor_msgs::LaserScan > scanSub_
message_filters::Subscriber< rtabmap_ros::ScanDescriptor > scanDescSub_
message_filters::Subscriber< nav_msgs::Odometry > odomSub_
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)
void toCvShare(const rtabmap_ros::RGBDImageConstPtr &image, cv_bridge::CvImageConstPtr &rgb, cv_bridge::CvImageConstPtr &depth)
void setupRGBDCallbacks(ros::NodeHandle &nh, ros::NodeHandle &pnh, bool subscribeOdom, bool subscribeUserData, bool subscribeScan2d, bool subscribeScan3d, bool subscribeScanDesc, bool subscribeOdomInfo, int queueSize, bool approxSync)
std::string subscribedTopicsMsg_
std::vector< message_filters::Subscriber< rtabmap_ros::RGBDImage > * > rgbdSubs_
#define SYNC_DECL4(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3)
#define SYNC_DECL2(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1)
void commonSingleCameraCallback(const nav_msgs::OdometryConstPtr &odomMsg, const rtabmap_ros::UserDataConstPtr &userDataMsg, const cv_bridge::CvImageConstPtr &imageMsg, const cv_bridge::CvImageConstPtr &depthMsg, const sensor_msgs::CameraInfo &rgbCameraInfoMsg, const sensor_msgs::CameraInfo &depthCameraInfoMsg, 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< rtabmap_ros::KeyPoint > &localKeyPoints=std::vector< rtabmap_ros::KeyPoint >(), const std::vector< rtabmap_ros::Point3f > &localPoints3d=std::vector< rtabmap_ros::Point3f >(), const cv::Mat &localDescriptors=cv::Mat())