MISTLab / Swarm-SLAM

Sparse Decentralized Collaborative Simultaneous Localization and Mapping Framework for Multi-Robot Systems
https://lajoiepy.github.io/cslam_documentation/html/index.html
MIT License
391 stars 40 forks source link

Error while doing "colcon build" #22

Closed rocker12121 closed 7 months ago

rocker12121 commented 1 year ago

I am encountering this error during colcon build. Please suggest a solution.

Starting >>> cslam_common_interfaces Finished <<< cslam_common_interfaces [0.93s]
Starting >>> cslam --- stderr: cslam
In file included from /usr/local/include/gtsam/base/Matrix.h:28, 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/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/local/include/gtsam/base/Vector.h:75:52: error: static assertion failed: Error: GTSAM was built against a different version of Eigen 75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION && | ^ In file included from /usr/local/include/gtsam/base/Matrix.h:28, 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/e/Swarm-SLAM/src/cslam/include/cslam/back_end/utils/logger.h:10, from /home/e/Swarm-SLAM/src/cslam/src/back_end/utils/logger.cpp:1: /usr/local/include/gtsam/base/Vector.h:75:52: error: static assertion failed: Error: GTSAM was built against a different version of Eigen 75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION && | ^ In file included from /usr/local/include/gtsam/base/Matrix.h:28, 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/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/Vector.h:75:52: error: static assertion failed: Error: GTSAM was built against a different version of Eigen 75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION && | ^ In file included from /usr/local/include/gtsam/base/Matrix.h:28, 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/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/pose_graph_manager_node.cpp:1: /usr/local/include/gtsam/base/Vector.h:75:52: error: static assertion failed: Error: GTSAM was built against a different version of Eigen 75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION && | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp: In function ‘geometry_msgs::msg::Pose cslam::gtsam_pose_to_msg(const gtsam::Pose3&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:10:35: error: ‘const class gtsam::Rot3’ has no member named ‘quaternion’; did you mean ‘Quaternion’? 10 | auto rotation = pose.rotation().quaternion(); | ^~~~~~ | Quaternion /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp: In function ‘geometry_msgs::msg::Transform cslam::gtsam_pose_to_transform_msg(const gtsam::Pose3&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:25:35: error: ‘const class gtsam::Rot3’ has no member named ‘quaternion’; did you mean ‘Quaternion’? 25 | auto rotation = pose.rotation().quaternion(); | ^~~~~~ | Quaternion /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp: In function ‘std::vector<cslam_commoninterfaces::msg::PoseGraphEdge<std::allocator >, std::allocator<cslam_commoninterfaces::msg::PoseGraphEdge<std::allocator > > > cslam::gtsam_factors_to_msg(const gtsam::NonlinearFactorGraph&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:63:16: error: ‘dynamic_pointer_cast’ is not a member of ‘boost’; did you mean ‘std::dynamic_pointer_cast’? 63 | boost::dynamic_pointer_cast<gtsam::BetweenFactor>( | ^~~~~~~~ In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:507:5: note: ‘std::dynamic_pointer_cast’ declared here 507 | dynamic_pointer_cast(const shared_ptr<_Up>& r) noexcept | ^~~~~~~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:63:70: error: expected primary-expression before ‘>’ token 63 | boost::dynamic_pointer_cast<gtsam::BetweenFactor>( | ^~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:79:18: error: ‘dynamic_pointer_cast’ is not a member of ‘boost’; did you mean ‘std::dynamic_pointer_cast’? 79 | boost::dynamic_pointer_cast(model); | ^~~~~~~~ In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:507:5: note: ‘std::dynamic_pointer_cast’ declared here 507 | dynamic_pointer_cast(const shared_ptr<_Up>& r) noexcept | ^~~~~~~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:79:66: error: expected primary-expression before ‘>’ token 79 | boost::dynamic_pointer_cast(model); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp: In function ‘gtsam::Values::shared_ptr cslam::values_msg_to_gtsam(const std::vector<cslam_commoninterfaces::msg::PoseGraphValue<std::allocator >, std::allocator<cslam_commoninterfaces::msg::PoseGraphValue<std::allocator > > >&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:116:24: error: ‘make_shared’ is not a member of ‘boost’ 116 | auto values = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:116:24: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | gtsam::enable_if_t<!needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:116:49: error: expected primary-expression before ‘>’ token 116 | auto values = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:116:51: error: expected primary-expression before ‘)’ token 116 | auto values = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp: In function ‘gtsam::NonlinearFactorGraph::shared_ptr cslam::edges_msg_to_gtsam(const std::vector<cslam_commoninterfaces::msg::PoseGraphEdge<std::allocator >, std::allocator<cslam_commoninterfaces::msg::PoseGraphEdge<std::allocator > > >&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:128:23: error: ‘make_shared’ is not a member of ‘boost’ 128 | auto graph = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:128:23: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/gtsam_utils.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | gtsam::enable_if_t<!needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:128:62: error: expected primary-expression before ‘>’ token 128 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/gtsam_utils.cpp:128:64: error: expected primary-expression before ‘)’ token 128 | auto graph = boost::make_shared(); | ^ make[2]: [CMakeFiles/pose_graph_manager.dir/build.make:118: CMakeFiles/pose_graph_manager.dir/src/back_end/gtsam_utils.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... /home/e/Swarm-SLAM/src/cslam/src/back_end/utils/logger.cpp: In member function ‘std::vector<std::pair<std::pair<gtsam::LabeledSymbol, gtsam::LabeledSymbol>, double> > cslam::Logger::compute_inter_robot_loop_closure_errors(const shared_ptr&, const shared_ptr&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/utils/logger.cpp:232:32: error: ‘dynamic_pointer_cast’ is not a member of ‘boost’; did you mean ‘std::dynamic_pointer_cast’? 232 | boost::dynamic_pointer_cast<gtsam::BetweenFactor>( | ^~~~~~~~ In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/utils/logger.h:8, from /home/e/Swarm-SLAM/src/cslam/src/back_end/utils/logger.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:507:5: note: ‘std::dynamic_pointer_cast’ declared here 507 | dynamic_pointer_cast(const shared_ptr<_Up>& r) noexcept | ^~~~~~~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/utils/logger.cpp:232:86: error: expected primary-expression before ‘>’ token 232 | boost::dynamic_pointer_cast<gtsam::BetweenFactor>( | ^~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp: In constructor ‘cslam::DecentralizedPGO::DecentralizedPGO(std::shared_ptr&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:71:24: error: ‘make_shared’ is not a member of ‘boost’ 71 | posegraph = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:71:24: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:71:63: error: expected primary-expression before ‘>’ token 71 | posegraph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:71:65: error: expected primary-expression before ‘)’ token 71 | posegraph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:72:36: error: ‘make_shared’ is not a member of ‘boost’ 72 | current_poseestimates = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:72:36: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:72:61: error: expected primary-expression before ‘>’ token 72 | current_poseestimates = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:72:63: error: expected primary-expression before ‘)’ token 72 | current_poseestimates = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:73:37: error: ‘make_shared’ is not a member of ‘boost’ 73 | odometry_poseestimates = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:73:37: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:73:62: error: expected primary-expression before ‘>’ token 73 | odometry_poseestimates = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:73:64: error: expected primary-expression before ‘)’ token 73 | odometry_poseestimates = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp: In member function ‘cslam_common_interfaces::msg::PoseGraph cslam::DecentralizedPGO::fill_pose_graph_msg(const RobotIds&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:380:23: error: ‘make_shared’ is not a member of ‘boost’ 380 | auto graph = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:380:23: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:380:62: error: expected primary-expression before ‘>’ token 380 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:380:64: error: expected primary-expression before ‘)’ token 380 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp: In member function ‘std::pair<std::shared_ptr, std::shared_ptr > cslam::DecentralizedPGO::aggregate_pose_graphs()’: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:561:23: error: ‘make_shared’ is not a member of ‘boost’ 561 | auto graph = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:561:23: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:561:62: error: expected primary-expression before ‘>’ token 561 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:561:64: error: expected primary-expression before ‘)’ token 561 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:562:27: error: ‘make_shared’ is not a member of ‘boost’ 562 | auto estimates = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:562:27: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:562:52: error: expected primary-expression before ‘>’ token 562 auto estimates = boost::make_shared(); ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:562:54: error: expected primary-expression before ‘)’ token 562 auto estimates = boost::make_shared(); ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:614:18: error: ‘dynamic_pointer_cast’ is not a member of ‘boost’; did you mean ‘std::dynamic_pointer_cast’? 614 boost::dynamic_pointer_cast<gtsam::BetweenFactor>( ^~~~~~~~ In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:507:5: note: ‘std::dynamic_pointer_cast’ declared here 507 dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept ^~~~~~~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:614:72: error: expected primary-expression before ‘>’ token 614 boost::dynamic_pointer_cast<gtsam::BetweenFactor>( ^~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:625:71: error: no matching function for call to ‘std::set<std::pair<long unsigned int, long unsigned int> >::count()’ 625 added_loop_closures.count({factor->key1(), factor->key2()}) == 0) ^ In file included from /usr/include/c++/9/set:61, from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:21, from /opt/ros/foxy/include/rclcpp/executors.hpp:21, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/stl_set.h:748:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::size_type std::set<_Key, _Compare, _Alloc>::count(const key_type&) const [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::size_type = long unsigned int; std::set<_Key, _Compare, _Alloc>::key_type = std::pair<long unsigned int, long unsigned int>]’ 748 count(const key_type& __x) const ^~~~~ /usr/include/c++/9/bits/stl_set.h:748:29: note: no known conversion for argument 1 from ‘’ to ‘const key_type&’ {aka ‘const std::pair<long unsigned int, long unsigned int>&’} 748 count(const key_type& __x) const ~~~~^~~ /usr/include/c++/9/bits/stl_set.h:754:2: note: candidate: ‘template decltype (((const std::set<_Key, _Compare, _Alloc>*)this)->std::set<_Key, _Compare, _Alloc>::_M_t._M_count_tr(__x)) std::set<_Key, _Compare, _Alloc>::count(const _Kt&) const [with _Kt = _Kt; _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >]’ 754 count(const _Kt& __x) const ^~~~~ /usr/include/c++/9/bits/stl_set.h:754:2: note: template argument deduction/substitution failed: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:625:71: note: couldn’t deduce template parameter ‘_Kt’ 625 added_loop_closures.count({factor->key1(), factor->key2()}) == 0) ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:628:70: error: no matching function for call to ‘std::set<std::pair<long unsigned int, long unsigned int> >::insert()’ 628 added_loop_closures.insert({factor->key1(), factor->key2()}); ^ In file included from /usr/include/c++/9/set:61, from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:21, from /opt/ros/foxy/include/rclcpp/executors.hpp:21, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/stl_set.h:509:7: note: candidate: ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename gnu_cxx::alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename gnu_cxx::alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<long unsigned int, long unsigned int>]’ 509 insert(const value_type& __x) ^~ /usr/include/c++/9/bits/stl_set.h:509:32: note: no known conversion for argument 1 from ‘’ to ‘const value_type&’ {aka ‘const std::pair<long unsigned int, long unsigned int>&’} 509 insert(const value_type& __x) ~~~~^ /usr/include/c++/9/bits/stl_set.h:518:7: note: candidate: ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename gnu_cxx::__alloc_traits<_Allocator>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<long unsigned int, long unsigned int>]’ 518 insert(value_type&& __x) ^~ /usr/include/c++/9/bits/stl_set.h:518:27: note: no known conversion for argument 1 from ‘’ to ‘std::set<std::pair<long unsigned int, long unsigned int> >::value_type&&’ {aka ‘std::pair<long unsigned int, long unsigned int>&&’} 518 insert(value_type&& __x) ~~~^ /usr/include/c++/9/bits/stl_set.h:546:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<long unsigned int, long unsigned int>]’ 546 insert(const_iterator __position, const value_type& __x) ^~ /usr/include/c++/9/bits/stl_set.h:546:7: note: candidate expects 2 arguments, 1 provided /usr/include/c++/9/bits/stl_set.h:551:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<long unsigned int, long unsigned int>]’ 551 insert(const_iterator __position, value_type&& __x) ^~ /usr/include/c++/9/bits/stl_set.h:551:7: note: candidate expects 2 arguments, 1 provided /usr/include/c++/9/bits/stl_set.h:566:2: note: candidate: ‘template void std::set<_Key, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >]’ 566 insert(_InputIterator __first, _InputIterator __last) ^~ /usr/include/c++/9/bits/stl_set.h:566:2: note: template argument deduction/substitution failed: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:628:70: note: candidate expects 2 arguments, 1 provided 628 added_loop_closures.insert({factor->key1(), factor->key2()}); ^ In file included from /usr/include/c++/9/set:61, from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:21, from /opt/ros/foxy/include/rclcpp/executors.hpp:21, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/stl_set.h:578:7: note: candidate: ‘void std::set<_Key, _Compare, _Alloc>::insert(std::initializer_list<_Tp>) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >]’ 578 insert(initializer_list __l) ^~ /usr/include/c++/9/bits/stl_set.h:578:43: note: no known conversion for argument 1 from ‘’ to ‘std::initializer_list<std::pair<long unsigned int, long unsigned int> >’ 578 insert(initializer_list __l) ~~~~~~~^ /usr/include/c++/9/bits/stl_set.h:598:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::insert_return_type std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::insert_return_type = std::_Node_insert_return<std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >, std::_Node_handle<std::pair<long unsigned int, long unsigned int>, std::pair<long unsigned int, long unsigned int>, std::allocator<std::_Rb_tree_node<std::pair<long unsigned int, long unsigned int> > > > >; std::set<_Key, _Compare, _Alloc>::node_type = std::_Node_handle<std::pair<long unsigned int, long unsigned int>, std::pair<long unsigned int, long unsigned int>, std::allocator<std::_Rb_tree_node<std::pair<long unsigned int, long unsigned int> > > >]’ 598 insert(node_type&& __nh) ^~ /usr/include/c++/9/bits/stl_set.h:598:26: note: no known conversion for argument 1 from ‘’ to ‘std::set<std::pair<long unsigned int, long unsigned int> >::node_type&&’ {aka ‘std::_Node_handle<std::pair<long unsigned int, long unsigned int>, std::pair<long unsigned int, long unsigned int>, std::allocator<std::_Rb_tree_node<std::pair<long unsigned int, long unsigned int> > > >&&’} 598 insert(node_type&& __nh) ~~^~ /usr/include/c++/9/bits/stl_set.h:603:7: note: candidate: ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::pair<long unsigned int, long unsigned int>; _Compare = std::less<std::pair<long unsigned int, long unsigned int> >; _Alloc = std::allocator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<long unsigned int, long unsigned int> >; std::set<_Key, _Compare, _Alloc>::node_type = std::_Node_handle<std::pair<long unsigned int, long unsigned int>, std::pair<long unsigned int, long unsigned int>, std::allocator<std::_Rb_tree_node<std::pair<long unsigned int, long unsigned int> > > >]’ 603 insert(const_iterator __hint, node_type&& __nh) ^~ /usr/include/c++/9/bits/stl_set.h:603:7: note: candidate expects 2 arguments, 1 provided /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:633:27: error: could not convert ‘{graph, estimates}’ from ‘’ to ‘std::pair<std::shared_ptr, std::shared_ptr >’ 633 return {graph, estimates}; ^

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp: In member function ‘void cslam::DecentralizedPGO::share_optimized_estimates(const gtsam::Values&)’: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:676:39: error: ‘const class gtsam::Values’ has no member named ‘filter’ 676 | gtsam_values_to_msg(estimates.filter(gtsam::LabeledSymbol::LabelTest( | ^~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp: In member function ‘void cslam::DecentralizedPGO::visualization_callback()’: /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:704:25: error: ‘make_shared’ is not a member of ‘boost’ 704 | auto graph = boost::make_shared(); | ^~~ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:704:25: note: suggested alternatives: In file included from /usr/include/c++/9/memory:81, from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:4, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/include/c++/9/bits/shared_ptr.h:714:5: note: ‘std::make_shared’ 714 | make_shared(_Args&&... __args) | ^~~ In file included from /usr/local/include/gtsam/geometry/SOn.h:23, from /usr/local/include/gtsam/geometry/SO3.h:23, from /usr/local/include/gtsam/geometry/Quaternion.h:22, from /usr/local/include/gtsam/geometry/Rot3.h:27, from /usr/local/include/gtsam/geometry/Pose3.h:24, from /home/e/Swarm-SLAM/src/cslam/include/cslam/back_end/decentralized_pgo.h:6, from /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:1: /usr/local/include/gtsam/base/make_shared.h:62:84: note: ‘gtsam::make_shared’ 62 | needs_eigen_aligned_allocator::value, std::shared_ptr> make_shared(Args &&... args) { | ^~~

/home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:704:64: error: expected primary-expression before ‘>’ token 704 | auto graph = boost::make_shared(); | ^ /home/e/Swarm-SLAM/src/cslam/src/back_end/decentralized_pgo.cpp:704:66: error: expected primary-expression before ‘)’ token 704 | auto graph = boost::make_shared(); | ^ make[2]: [CMakeFiles/pose_graph_manager.dir/build.make:90: CMakeFiles/pose_graph_manager.dir/src/back_end/pose_graph_manager_node.cpp.o] Error 1 make[2]: [CMakeFiles/pose_graph_manager.dir/build.make:104: CMakeFiles/pose_graph_manager.dir/src/back_end/utils/logger.cpp.o] Error 1 make[2]: [CMakeFiles/pose_graph_manager.dir/build.make:76: CMakeFiles/pose_graph_manager.dir/src/back_end/decentralized_pgo.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:165: CMakeFiles/pose_graph_manager.dir/all] Error 2 make: *** [Makefile:146: all] Error 2

Failed <<< cslam [12.9s, exited with code 2]

Summary: 1 package finished [14.0s] 1 package failed: cslam 1 package had stderr output: cslam 1 package not processed

HaynesLi commented 9 months ago

uninstall the manually installed Eigen by yourself. Then use "apt install libeigen3-dev "