jhu-lcsr / handeye_calib_camodocal

Easy to use and accurate hand eye calibration which has been working reliably for years (2016-present) with kinect, kinectv2, rgbd cameras, optical trackers, and several robots including the ur5 and kuka iiwa.
BSD 2-Clause "Simplified" License
543 stars 178 forks source link

catkin_make fails #34

Closed SarfarazHabib closed 4 years ago

SarfarazHabib commented 4 years ago

Hi, I cloned your package in my ROS workspace and installed all the dependencies manually. Now when I am trying to catkin_make workspace it gives me this error.

I am new to ROS and C++, can anyone help me please ?

[ 98%] Built target realsense2_camera In file included from /usr/local/include/ceres/internal/autodiff.h:151:0, from /usr/local/include/ceres/autodiff_cost_function.h:130, from /usr/local/include/ceres/ceres.h:37, from /home/robotics/software-pickbot/src/handeye_calib_camodocal/./src/camodocal/calib/HandEyeCalibration.h:6, from /home/robotics/software-pickbot/src/handeye_calib_camodocal/src/camodocal/calib/HandEyeCalibration.cc:1: /usr/local/include/ceres/jet.h:951:8: error: ‘ScalarBinaryOpTraits’ is not a class template struct ScalarBinaryOpTraits<ceres::Jet<T, N>, T, BinaryOp> { ^ /usr/local/include/ceres/jet.h:955:58: error: type/value mismatch at argument 3 in template parameter list for ‘template<class BinaryOp, class T, int N> struct Eigen::ScalarBinaryOpTraits’ struct ScalarBinaryOpTraits<T, ceres::Jet<T, N>, BinaryOp> { ^ /usr/local/include/ceres/jet.h:955:58: note: expected a constant of type ‘int’, got ‘BinaryOp’ In file included from /usr/local/include/ceres/internal/autodiff.h:151:0, from /usr/local/include/ceres/autodiff_cost_function.h:130, from /usr/local/include/ceres/ceres.h:37, from /home/robotics/software-pickbot/src/handeye_calib_camodocal/src/handeye_calibration.cpp:1: /usr/local/include/ceres/jet.h:951:8: error: ‘ScalarBinaryOpTraits’ is not a class template struct ScalarBinaryOpTraits<ceres::Jet<T, N>, T, BinaryOp> { ^ /usr/local/include/ceres/jet.h:955:58: error: type/value mismatch at argument 3 in template parameter list for ‘template<class BinaryOp, class T, int N> struct Eigen::ScalarBinaryOpTraits’ struct ScalarBinaryOpTraits<T, ceres::Jet<T, N>, BinaryOp> { ^ /usr/local/include/ceres/jet.h:955:58: note: expected a constant of type ‘int’, got ‘BinaryOp’ handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/build.make:86: recipe for target 'handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/src/camodocal/calib/HandEyeCalibration.cc.o' failed make[2]: [handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/src/camodocal/calib/HandEyeCalibration.cc.o] Error 1 make[2]: Waiting for unfinished jobs.... handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/build.make:62: recipe for target 'handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/src/handeye_calibration.cpp.o' failed make[2]: [handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/src/handeye_calibration.cpp.o] Error 1 CMakeFiles/Makefile2:3958: recipe for target 'handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/all' failed make[1]: [handeye_calib_camodocal/CMakeFiles/handeye_calib_camodocal.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j12 -l12" failed

SarfarazHabib commented 4 years ago

I had different versions of Eigen. For Eigen3.2.90 it was throwing above error, when i moved to eigen3.3.7 It works fine