I would like to try SIFT/SURF features with RTAB-Map to see how they perform against FAST/FREAK.
I downloaded OpenCV 2.4.11 source code and compiled it enabling the nonfree module, the included SIFT/SURF samples work.
However, when I go into "RTAB-Map settings >> Visual word >> Visual word type" the choices SIFT/SURF are still disabled. I noticed that when installing the ROS Indigo full package it installed also OpenCV 2.4 without nonfree module, so how can I make RTAB-Map "point" to the custom compiled OpenCV I just installed? I installed RTAB-Map with standard "sudo apt-get install ros-indigo-rtabmap-ros", do I have to recompile RTAB-Map?
Yes, RTAB-Map should be built from source if you want SURF/SIFT. Normally, if your OpenCV 2.4.11 is installed in /usr/local (default), RTAB-Map should link on it instead of the one installed in /usr (the one installed with Indigo). If installed to a custom path, you can set environment variable OpenCV_DIR to the directory containing the "OpenCVConfig.cmake" (CMake uses this file to link on the right OpenCV). See the installation instructions from source here.
Note: you should uninstall ros-indigo-rtabmap-ros and ros-indigo-rtabmap if you build RTAB-Map from source.