Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenNI got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenNI-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. In can found the rest of them in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change in the functions are needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenNI OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenNI-2.4.9 OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. In can found the rest of them in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change in the functions are needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards

click to hide/show revision 3
added the includes of the files

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. In can found the rest of them in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change in the functions are needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards

NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu.wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. In can found the rest of them in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change in the functions are needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards

NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu.wrapper.cpp:sift_gpu_wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. In The rest can be found the rest of them in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change in the functions are needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards

NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu_wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. The rest can be found in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a change modification in the functions are is needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regardsregards!


NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu_wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. The rest can be found in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a modification in the functions is needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards!


NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu_wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

UPDATE: Update: string err corrected: used #include <string> and std::string instead of just string.

Help with header/code adaptation of RGBDSLAM

Hi to all,

Right now I'm trying to adapt and migrate the ROS package RGBDSLAM to ROS Indigo and, after talking to Felix Endres, the code developer and the responsible for the package maintenance, I thought it should be better to get some help around here, cause it seems like the API from OpenCV got some changes that are not compatible with the rgbdslam previous code.

Right now I have OpenCV-2.4.9 installed on Ubuntu 13.10 Saucy. The following errors appear when I do catkin_make on the workspace folder: (I'm going to split them in different cases so it can be better analyzed)

In file included from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:18:0:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:40: error: ‘cv::vector’ has not been declared
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.h:49:46: error: expected ‘,’ or ‘...’ before ‘<’ token
  void detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const cv::Mat& mask = cv::Mat()) const;
                                              ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:55: error: ‘cv::vector’ has not been declared
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:108:61: error: expected ‘,’ or ‘...’ before ‘<’ token
 void SiftGPUWrapper::detect(const cv::Mat& image, cv::vector<cv::KeyPoint>& keypoints, std::vector<float>& descriptors, const Mat& mask) const {
                                                             ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp: In member function ‘void SiftGPUWrapper::detect(const cv::Mat&, int) const’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:111:9: error: ‘keypoints’ was not declared in this scope
         keypoints.clear();
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:133:9: error: ‘descriptors’ was not declared in this scope
         descriptors.resize(128 * num_features);
         ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/sift_gpu_wrapper.cpp:141:5: error: ‘keypoints’ was not declared in this scope
     keypoints.clear();
     ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:40: error: ‘string’ does not name a type
 FeatureDetector* createDetector( const string& detectorType ) 
                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:370:48: error: ISO C++ forbids declaration of ‘detectorType’ with no type [-fpermissive]
 FeatureDetector* createDetector( const string& detectorType ) 
                                                ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp: In function ‘cv::FeatureDetector* createDetector(const int&)’:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:374:23: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     if( !detectorType.compare( "FAST" ) ) {
                       ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: error: no matching function for call to ‘cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(cv::FastAdjuster*, int, int, int)’
             params->get<int>("adjuster_max_iterations"));
                                                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:379:56: note: candidates are:
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
                 from /usr/include/opencv/cv.h:68,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:25:
/usr/local/include/opencv2/features2d.hpp:762:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::DynamicAdaptedFeatureDetector&)
     DynamicAdaptedFeatureDetector(const DynamicAdaptedFeatureDetector&);
     ^
/usr/local/include/opencv2/features2d.hpp:762:5: note:   candidate expects 1 argument, 4 provided
/usr/local/include/opencv2/features2d.hpp:753:5: note: cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector(const cv::Ptr<cv::AdjusterAdapter>&, int, int, int)
     DynamicAdaptedFeatureDetector( const Ptr<AdjusterAdapter>& adjuster, int min_features=400, int max_features=500, int max_iters=5 );
     ^
/usr/local/include/opencv2/features2d.hpp:753:5: note:   no known conversion for argument 1 from ‘cv::FastAdjuster*’ to ‘const cv::Ptr<cv::AdjusterAdapter>&’
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:381:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "STAR" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:385:28: error: request for member ‘compare’ in ‘detectorType’, which is of non-class type ‘const int’
     else if( !detectorType.compare( "SIFT" ) ) {
                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:387:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
         fd = new SiftFeatureDetector(SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                                            ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:388:44: error: ‘cv::SIFT::DetectorParams’ has not been declared
                                      SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                                            ^

In file included from /opt/ros/indigo/include/ros/ros.h:40:0,
                 from /home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:16:
/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:390:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_THRESHOLD(),
                        ^

/home/nuno/AIMAVProject_ws/src/rgbdslam_v2/src/misc.cpp:391:24: error: ‘cv::SIFT::DetectorParams’ has not been declared
                  SIFT::DetectorParams::GET_DEFAULT_EDGE_THRESHOLD());
                        ^

There are some others but I think for now you can have an idea of what may be missing on these files. The rest can be found in the ROS Answers topic (http://answers.ros.org/question/173203/rgbdslam-indigo-support/). I assume it can be lack of includes in the headers but if also a modification in the functions is needed, I need help in this cause I'm not familiar with the OpenCV code and API.

Thank you very much in advance! Best regards!


NOTE: Just to help, here are the includes of sift_gpu_wrapper.cpp and sift_gpu_wrapper.h. For node.h and the others are near the same, but I want to first evaluate sift_gpu_wrapper:

sift_gpu_wrapper.h:

#ifndef SIFT_GPU_FEATURE_DETECTOR_H
#define SIFT_GPU_FEATURE_DETECTOR_H

//#ifdef USE_SIFT_GPU
#include <opencv2/features2d/features2d.hpp>
#include <opencv/cv.h>
#include <SiftGPU/SiftGPU.h>
#include <QMutex>
/*!
 * \brief Interface for SiftGPU
 * The class is used as an interface to SiftGPU.
 * It's a singleton class
 */

sift_gpu_wrapper.cpp:

#ifdef USE_SIFT_GPU
#include "sift_gpu_wrapper.h"
#include <GL/gl.h>
#include <iostream>
#include <ros/ros.h>
#include <stdio.h>
#include "parameter_server.h"
#include "scoped_timer.h"
using namespace cv;

UPDATE: Update: string err corrected: used #include <string> and std::string instead of just string.