angetria / flir_lepton

ROS Package to interfere with Flir-Lepton LWIR sensor
Other
11 stars 9 forks source link

Error in catkin_make step #9

Open kjw8041 opened 8 years ago

kjw8041 commented 8 years ago

Hello, after completing the prior steps, I enter the following command:

cd ~/lepton_catkin_ws && catkin_make

I begin to build the sources for a short time until I receive the following error:

-- Could not find the required component 'sensor_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "sensor_msgs" with any of the following names:

sensor_msgsConfig.cmake
sensor_msgs-config.cmake

Add the installation prefix of "sensor_msgs" to CMAKE_PREFIX_PATH or set "sensor_msgs_DIR" to a directory containing one of the above files. If "sensor_msgs" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): flir_lepton/flir_lepton_msgs/CMakeLists.txt:4 (find_package)

-- Configuring incomplete, errors occurred! See also "/home/pi/lepton_catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/pi/lepton_catkin_ws/build/CMakeFiles/CMakeError.log". Invoking "cmake" failed

Could you help me clarify a solution to this error?

Regards, Kent Warren

klpanagi commented 8 years ago

Hello Kent,

The error is produced due to missing dependencies on the system you are trying to build this package.

Thank you for reporting this as we do not mention required dependencies in the main README.

All dependencies are ros packages and you can automatically install them using rosdep

$ cd ~/lepton_catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=indigo -y

After installing required dependencies, make sure to cleanup build and devel directories and refresh for the current shell and try building it again (Assuming you are using bash):

$ rm -rf build devel
$ source ~/.bashrc
$ catkin_make
kjw8041 commented 8 years ago

Thank you for the quick response.

I entered the rosdep install command that you suggested and received the following error.

pi@raspberry:~/lepton_catkin_ws $ rosdep install --from-paths src --ignore-src --rosdistro=indigo -y ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: flir_lepton_image_processing: No definition of [dynamic_reconfigure] for OS [debian] flir_lepton_msgs: No definition of [sensor_msgs] for OS [debian] flir_lepton_sensor: No definition of [sensor_msgs] for OS [debian]

I apologize if I am missing something simple, I am not too familiar with ROS.

klpanagi commented 8 years ago

I assume that you have ubuntu14.04LTS installed on the rpi2...

Then you might have missed initiating rosdep.

$ sudo rosdep init
$ cd ~/lepton_catkin_ws
$ rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro=indigo -y
kjw8041 commented 8 years ago

I have raspbian (jessie) installed on my rpi 3 model B

Also when I tested the prior code, rosdep was already initiated.

klpanagi commented 8 years ago

It seems that rosdep queries wrong distribution repositories for the depended packages. It queries at debian repos and we want it to query at debian:jessie repos. You can explicitly set this as an argument to the rosdep cli:

$ rosdep install --from-paths src --ignore-src --rosdistro=indigo -y --os=debian:jessie

Also, did you follow this guide to build ROS on raspbian:jessie?

kjw8041 commented 8 years ago

So I went back and reworked through that guide to build ROS on raspbian:jessie. It seems I might have missed something on my first try.

When I try and run cd ~/lepton_catkin_ws && catkin_make

I begin to build the sources again for a short time until I receive the following (different) error:

CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:76 (find_package): Could not find a package configuration file provided by "cv_bridge" with any of the following names:

cv_bridgeConfig.cmake
cv_bridge-config.cmake

Add the installation prefix of "cv_bridge" to CMAKE_PREFIX_PATH or set "cv_bridge_DIR" to a directory containing one of the above files. If "cv_bridge" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): flir_lepton/flir_lepton_image_processing/CMakeLists.txt:4 (find_package)

-- Could not find the required component 'cv_bridge'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "cv_bridge" with any of the following names:

cv_bridgeConfig.cmake
cv_bridge-config.cmake

Add the installation prefix of "cv_bridge" to CMAKE_PREFIX_PATH or set "cv_bridge_DIR" to a directory containing one of the above files. If "cv_bridge" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): flir_lepton/flir_lepton_image_processing/CMakeLists.txt:4 (find_package)

-- Configuring incomplete, errors occurred! See also "/home/pi/lepton_catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/pi/lepton_catkin_ws/build/CMakeFiles/CMakeError.log". Invoking "cmake" failed

I believe that rebuilding ROS solved my prior errors. However, now that ROS is compiled correctly, I do not know what will correct my current error."

klpanagi commented 8 years ago

Following this guide i expect that you have installed minimum ROS (ros_comm) because you are missing the cv_bridge package.

Follow Section 4 on that guide to also install cv_bridge, if you cannot resolve those dependencies using rosdep

Also, if you get similar missing dependency errors, install them using the same procedure. The flir_lepton package has the following dependencies, which are not included in the ros_comm package list:

kjw8041 commented 8 years ago

So I've gone through the ROS installation again, this time completing the full package as hyperlinked in your prior comment.

Now I run the following and reach 72% before an error cd ~/lepton_catkin_ws && catkin_make

output [ 72%] Building CXX object flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/src/utils/blob_detection.cpp.o Building CXX object flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/src/utils/edge_detection.cpp.o Building CXX object flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/src/utils/roi_filters.cpp.o /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp: In static member function ‘static void flir_lepton::flir_lepton_imageprocessing::BlobDetection::detectBlobs(const cv::Mat&, std::vectorcv::KeyPoint)’: /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:80:47: error: no matching function for call to ‘cv::SimpleBlobDetector::SimpleBlobDetector(cv::SimpleBlobDetector::Params&)’ cv::SimpleBlobDetector blobDetector(params); ^ /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:80:47: note: candidates are: In file included from /usr/local/include/opencv2/opencv.hpp:50:0, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/defines.h:48, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/parameters.h:42, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/visualization.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/morphological_operators.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/blob_detection.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:38: /usr/local/include/opencv2/features2d.hpp:545:20: note: cv::SimpleBlobDetector::SimpleBlobDetector() class CV_EXPORTS_W SimpleBlobDetector : public Feature2D ^ /usr/local/include/opencv2/features2d.hpp:545:20: note: candidate expects 0 arguments, 1 provided /usr/local/include/opencv2/features2d.hpp:545:20: note: cv::SimpleBlobDetector::SimpleBlobDetector(const cv::SimpleBlobDetector&) /usr/local/include/opencv2/features2d.hpp:545:20: note: no known conversion for argument 1 from ‘cv::SimpleBlobDetector::Params’ to ‘const cv::SimpleBlobDetector&’ /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:81:37: error: no matching function for call to ‘cv::SimpleBlobDetector::create(const char [11])’ blobDetector.create("SimpleBlob"); ^ /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:81:37: note: candidate is: In file included from /usr/local/include/opencv2/opencv.hpp:50:0, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/defines.h:48, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/parameters.h:42, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/visualization.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/morphological_operators.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/include/flir_lepton_image_processing/utils/blob_detection.h:41, from /home/pi/lepton_catkin_ws/src/flir_lepton/flir_lepton_image_processing/src/utils/blob_detection.cpp:38: /usr/local/include/opencv2/features2d.hpp:577:5: note: static cv::Ptrcv::SimpleBlobDetector cv::SimpleBlobDetector::create(const cv::SimpleBlobDetector::Params&) create(const SimpleBlobDetector::Params &parameters = SimpleBlobDetector::Params()); ^ /usr/local/include/opencv2/features2d.hpp:577:5: note: no known conversion for argument 1 from ‘const char [11]’ to ‘const cv::SimpleBlobDetector::Params&’ flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/build.make:54: recipe for target 'flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/src/utils/blobdetection.cpp.o' failed make[2]: ** [flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/src/utils/blob_detection.cpp.o] Error 1 make[2]: * Waiting for unfinished jobs.... CMakeFiles/Makefile2:1742: recipe for target 'flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/all' failed make[1]: * [flir_lepton/flir_lepton_image_processing/CMakeFiles/flir_lepton_image_processing_utils.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *\ [all] Error 2

Thank you for all your help.

TTF34 commented 7 years ago

I have reached the exact same error while attempting to catkin_make on the latest distribution of ROS (kinetic) and Ubuntu OS although it is consistently occurring around 75% of the way through the build process. Do you have any idea what the root cause for this is? Are we missing the dependencies for "Simple BlobDetector" and is this something we can manually install?

klpanagi commented 7 years ago

Hello @TTF34,

We have not tested it under ROS Kinect . It has been implemented and tested with ROS Hydro and Indigo. Based on @kjw8041 latest comment, i understand that you use an external (Not-ROS), distribution of OpenCV

/usr/local/include/opencv2/features2d.hpp:545:20: note: candidate expects 0 arguments, 1 provided
/usr/local/include/opencv2/features2d.hpp:545:20: note: cv::SimpleBlobDetector::SimpleBlobDetector(const cv::SimpleBlobDetector&)
/usr/local/include/opencv2/features2d.hpp:545:20: note: no known conversion for argument 1 from ‘cv::SimpleBlobDetector::Params’ to ‘const cv::SimpleBlobDetector&’

and the symbols do not exist.

Try installing open-cv from ROS repositories (have a look here).