My environment:Ubuntu20.04,ROS1,gtsam4.0.2,ceres1.14.0;When I used catkin_make, I encountered the following errors:
Base path: /home/doongli/calib_ws
Source space: /home/doongli/calib_ws/src
Build space: /home/doongli/calib_ws/build
Devel space: /home/doongli/calib_ws/devel
Install space: /home/doongli/calib_ws/install
Running command: "make cmake_check_build_system" in "/home/doongli/calib_ws/build"
Running command: "make -j36 -l36" in "/home/doongli/calib_ws/build"
[ 3%] Building CXX object direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/common/estimate_pose.cpp.o
[ 6%] Building CXX object direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp.o
[ 9%] Building CXX object direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/calib/visual_camera_calibration.cpp.o
In file included from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/common/estimate_pose.cpp:9:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/thirdparty/Sophus/sophus/ceres_manifold.hpp:3:10: fatal error: ceres/manifold.h: No such file or directory
3 | #include <ceres/manifold.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/build.make:154: direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/common/estimate_pose.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/calib/visual_camera_calibration.cpp:10:10: fatal error: ceres/autodiff_first_order_function.h: No such file or directory
10 | #include <ceres/autodiff_first_order_function.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/build.make:284: direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/calib/visual_camera_calibration.cpp.o] Error 1
In file included from /usr/local/include/gtsam/base/types.h:31,
from /usr/local/include/gtsam/global_includes.h:22,
from /usr/local/include/gtsam/base/Vector.h:27,
from /usr/local/include/gtsam/base/Matrix.h:26,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/geometry/BearingRange.h:21,
from /usr/local/include/gtsam/geometry/Pose3.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/tbb/task_scheduler_init.h:21:154: note: #pragma message: TBB Warning: tbb/task_scheduler_init.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.
21 | #pragma message("TBB Warning: tbb/task_scheduler_init.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
| ^
In file included from /usr/local/include/gtsam/geometry/Unit3.h:36,
from /usr/local/include/gtsam/geometry/Rot3.h:25,
from /usr/local/include/gtsam/geometry/Pose3.h:24,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/tbb/mutex.h:21:140: note: #pragma message: TBB Warning: tbb/mutex.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.
21 | #pragma message("TBB Warning: tbb/mutex.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
| ^
In file included from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/common/integrated_ct_gicp_factor.hpp:61,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:11:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/common/integrated_ct_gicp_factor_impl.hpp: In member function ‘virtual boost::shared_ptrgtsam::GaussianFactor vlcal::IntegratedCT_GICPFactor_<TargetFrame, SourceFrame>::linearize(const gtsam::Values&) const’:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/common/integrated_ct_gicp_factor_impl.hpp:104:69: error: ‘Hat’ is not a member of ‘gtsam::SO3’
104 | H_transed_pose.block<3, 3>(0, 0) = pose.linear() * -gtsam::SO3::Hat(source_pt.template head<3>());
| ^~~
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp: In member function ‘virtual void vlcal::DynamicPointCloudIntegrator::insert_points(const ConstPtr&)’:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:31: error: ‘PriorFactor’ is not a member of ‘gtsam’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^~~~~~~~~~~
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:9: error: parse error in template argument list
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:55: error: no match for ‘operator>’ (operand types are ‘’ and ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’})
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| gtsam::noiseModel::Isotropic::shared_ptr {aka boost::shared_ptrgtsam::noiseModel::Isotropic}
In file included from /usr/include/boost/optional/optional.hpp:1597,
from /usr/include/boost/optional.hpp:15,
from /usr/local/include/gtsam/base/OptionalJacobian.h:25,
from /usr/local/include/gtsam/base/Matrix.h:25,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/geometry/BearingRange.h:21,
from /usr/local/include/gtsam/geometry/Pose3.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/boost/optional/detail/optional_relops.hpp:43:6: note: candidate: ‘template bool boost::operator>(const boost::optional&, const boost::optional&)’
43 | bool operator > ( optional const& x, optional const& y )
| ^~~~~~~~
/usr/include/boost/optional/detail/optional_relops.hpp:43:6: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::optional’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/optional/optional.hpp:1597,
from /usr/include/boost/optional.hpp:15,
from /usr/local/include/gtsam/base/OptionalJacobian.h:25,
from /usr/local/include/gtsam/base/Matrix.h:25,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/geometry/BearingRange.h:21,
from /usr/local/include/gtsam/geometry/Pose3.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/boost/optional/detail/optional_relops.hpp:77:6: note: candidate: ‘bool boost::operator>(const boost::optional&, const T&) [with T = boost::shared_ptrgtsam::noiseModel::Isotropic]’
77 | bool operator > ( optional const& x, T const& y )
| ^~~~~~~~
/usr/include/boost/optional/detail/optional_relops.hpp:77:38: note: no known conversion for argument 1 from ‘’ to ‘const boost::optional<boost::shared_ptrgtsam::noiseModel::Isotropic >&’
77 | bool operator > ( optional const& x, T const& y )
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/optional/detail/optional_relops.hpp:111:6: note: candidate: ‘template bool boost::operator>(const T&, const boost::optional&)’
111 | bool operator > ( T const& x, optional const& y )
| ^~~~~~~~
/usr/include/boost/optional/detail/optional_relops.hpp:111:6: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::optional’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/optional/optional.hpp:1597,
from /usr/include/boost/optional.hpp:15,
from /usr/local/include/gtsam/base/OptionalJacobian.h:25,
from /usr/local/include/gtsam/base/Matrix.h:25,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/geometry/BearingRange.h:21,
from /usr/local/include/gtsam/geometry/Pose3.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/boost/optional/detail/optional_relops.hpp:146:6: note: candidate: ‘template bool boost::operator>(const boost::optional&, boost::none_t)’
146 | bool operator > ( optional const& x, none_t y )
| ^~~~~~~~
/usr/include/boost/optional/detail/optional_relops.hpp:146:6: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: couldn’t deduce template parameter ‘T’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/optional/optional.hpp:1597,
from /usr/include/boost/optional.hpp:15,
from /usr/local/include/gtsam/base/OptionalJacobian.h:25,
from /usr/local/include/gtsam/base/Matrix.h:25,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/geometry/BearingRange.h:21,
from /usr/local/include/gtsam/geometry/Pose3.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/include/vlcal/preprocess/dynamic_point_cloud_integrator.hpp:8,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:1:
/usr/include/boost/optional/detail/optional_relops.hpp:180:6: note: candidate: ‘template bool boost::operator>(boost::none_t, const boost::optional&)’
180 | bool operator > ( none_t x, optional const& y )
| ^~~~~~~~
/usr/include/boost/optional/detail/optional_relops.hpp:180:6: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::optional’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/ptr_container/ptr_map_adapter.hpp:24,
from /usr/include/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp:9,
from /usr/include/boost/ptr_container/serialize_ptr_map.hpp:9,
from /usr/local/include/gtsam/nonlinear/Values.h:41,
from /usr/local/include/gtsam/nonlinear/NonlinearFactor.h:23,
from /usr/local/include/gtsam/slam/BetweenFactor.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:3:
/usr/include/boost/range/iterator_range_core.hpp:625:9: note: candidate: ‘template<class IteratorT, class ForwardRange> typename boost::enable_if<boost::mpl::not_<boost::is_base_and_derived<boost::iterator_range_detail::iterator_range_tag, ForwardRange> >, bool>::type boost::operator>(const ForwardRange&, const boost::iterator_range&)’
625 | operator>( const ForwardRange& l, const iterator_range& r )
| ^~~~~~~~
/usr/include/boost/range/iterator_range_core.hpp:625:9: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::iterator_range’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/ptr_container/ptr_map_adapter.hpp:24,
from /usr/include/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp:9,
from /usr/include/boost/ptr_container/serialize_ptr_map.hpp:9,
from /usr/local/include/gtsam/nonlinear/Values.h:41,
from /usr/local/include/gtsam/nonlinear/NonlinearFactor.h:23,
from /usr/local/include/gtsam/slam/BetweenFactor.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:3:
/usr/include/boost/range/iterator_range_core.hpp:714:9: note: candidate: ‘template<class Iterator1T, class Iterator2T> bool boost::operator>(const boost::iterator_range&, const boost::iterator_range&)’
714 | operator>( const iterator_range& l, const iterator_range& r )
| ^~~~~~~~
/usr/include/boost/range/iterator_range_core.hpp:714:9: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::iterator_range’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/ptr_container/ptr_map_adapter.hpp:24,
from /usr/include/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp:9,
from /usr/include/boost/ptr_container/serialize_ptr_map.hpp:9,
from /usr/local/include/gtsam/nonlinear/Values.h:41,
from /usr/local/include/gtsam/nonlinear/NonlinearFactor.h:23,
from /usr/local/include/gtsam/slam/BetweenFactor.h:22,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:3:
/usr/include/boost/range/iterator_range_core.hpp:724:9: note: candidate: ‘template<class IteratorT, class ForwardRange> typename boost::enable_if<boost::mpl::not_<boost::is_base_and_derived<boost::iterator_range_detail::iterator_range_tag, ForwardRange> >, bool>::type boost::operator>(const boost::iterator_range&, const ForwardRange&)’
724 | operator>( const iterator_range& l, const ForwardRange& r )
| ^~~~~~~~
/usr/include/boost/range/iterator_range_core.hpp:724:9: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: couldn’t deduce template parameter ‘IteratorT’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
In file included from /usr/include/boost/variant/variant.hpp:42,
from /usr/include/boost/variant.hpp:17,
from /usr/local/include/gtsam/inference/EliminateableFactorGraph.h:23,
from /usr/local/include/gtsam/linear/GaussianFactorGraph.h:25,
from /usr/local/include/gtsam/nonlinear/NonlinearOptimizerParams.h:24,
from /usr/local/include/gtsam/nonlinear/NonlinearOptimizer.h:22,
from /usr/local/include/gtsam/nonlinear/LevenbergMarquardtOptimizer.h:23,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:6:
/usr/include/boost/blank.hpp:83:13: note: candidate: ‘bool boost::operator>(const boost::blank&, const boost::blank&)’
83 | inline bool operator>(const blank&, const blank&)
| ^~~~~~~~
/usr/include/boost/blank.hpp:83:23: note: no known conversion for argument 1 from ‘’ to ‘const boost::blank&’
83 | inline bool operator>(const blank&, const blank&)
| ^~~~~~~~~~~~
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
from /usr/include/boost/lexical_cast.hpp:32,
from /usr/include/boost/date_time/string_parse_tree.hpp:13,
from /usr/include/boost/date_time/period_parser.hpp:14,
from /usr/include/boost/date_time/date_facet.hpp:23,
from /usr/include/boost/date_time/gregorian/gregorian_io.hpp:16,
from /usr/include/boost/date_time/gregorian/gregorian.hpp:31,
from /usr/include/boost/date_time/posix_time/time_formatters.hpp:12,
from /usr/include/boost/date_time/posix_time/posix_time.hpp:24,
from /usr/local/include/gtsam/nonlinear/LevenbergMarquardtOptimizer.h:26,
from /home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:6:
/usr/include/boost/array.hpp:336:10: note: candidate: ‘template<class T, long unsigned int N> bool boost::operator>(const boost::array<T, sz>&, const boost::array<T, sz>&)’
336 | bool operator> (const array<T,N>& x, const array<T,N>& y) {
| ^~~~~~~~
/usr/include/boost/array.hpp:336:10: note: template argument deduction/substitution failed:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:91:147: note: ‘gtsam::noiseModel::Isotropic::shared_ptr’ {aka ‘boost::shared_ptrgtsam::noiseModel::Isotropic’} is not derived from ‘const boost::array<T, sz>’
91 | graph.emplace_shared<gtsam::PriorFactorgtsam::Pose3>(0, gtsam::Pose3(pred_T_odom_lidar_begin), gtsam::noiseModel::Isotropic::Precision(6, 1e3));
| ^
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp: In member function ‘void vlcal::DynamicPointCloudIntegrator::voxelgrid_task()’:
/home/doongli/calib_ws/src/direct_visual_lidar_calibration/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp:144:43: error: ‘const class gtsam::Pose3’ has no member named ‘interpolateRt’
144 | T_odom_lidar = T_odom_lidar_begin.interpolateRt(T_odom_lidar_end, t);
| ^~~~~~~~~~~~~
make[2]: *** [direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/build.make:245: direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/src/vlcal/preprocess/dynamic_point_cloud_integrator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:990: direct_visual_lidar_calibration/CMakeFiles/direct_visual_lidar_calibration.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Invoking "make -j36 -l36" failed