Closed GLtangzero closed 2 months ago
Finished
ros2: sudo apt-get install ros-humble-octomap-ros sudo apt-get install ros-humble-octomap-msgs sudo apt-get install ros-humble-octomap-server
rviz interface: sudo apt-get install ros-humble-octomap-rviz-plugins
About this problem like: $ colcon build --symlink-install --packages-select octomap_msgs octomap_server2 [0.105s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces: 'octomap_msgs' is in: /opt/ros/humble If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time. If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.
If you understand the risks and want to override a package anyways, add the following to the command line: --allow-overriding octomap_msgs
This may be promoted to an error in a future release of colcon-override-check. Starting >>> octomap_msgs Finished <<< octomap_msgs [2.86s]
Starting >>> octomap_server2 [2.969s] WARNING:colcon.colcon_core.shell:The following packages are in the workspace but haven't been built:
WARNING io features related to pcap will be disabled In file included from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/conversions.h:50, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/conversions.cpp:40: /opt/ros/humble/include/tf2_geometry_msgs/tf2_geometry_msgs/tf2_geometry_msgs.h:35:2: warning: #warning This header is obsolete, please include tf2_geometry_msgs/tf2_geometry_msgs.hpp instead [-Wcpp] 35
~~ In file included from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/conversions.h:50, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:51, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /opt/ros/humble/include/tf2_geometry_msgs/tf2_geometry_msgs/tf2_geometry_msgs.h:35:2: warning: #warning This header is obsolete, please include tf2_geometry_msgs/tf2_geometry_msgs.hpp instead [-Wcpp] 35~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/conversions.cpp: In function ‘void octomap::pointsOctomapToPointCloud2(const point3d_list&, sensor_msgs::msg::PointCloud2&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/conversions.cpp:53:57: warning: unused parameter ‘points’ [-Wunused-parameter] 53~~~~^~In file included from /usr/local/include/eigen3/Eigen/Eigenvalues:39, from /usr/local/include/eigen3/Eigen/Dense:7, from /usr/local/include/eigen3/Eigen/Eigen:1, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/transforms.hpp:6, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:50, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In member function ‘Eigen::SelfAdjointEigenSolver~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:413:3: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In function ‘Eigen::ComputationInfo Eigen::internal::computeFromTridiagonal_impl(DiagType&, SubDiagType&, Eigen::Index, bool, MatrixType&)’: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:492:3: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 492~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In static member function ‘static void Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 3, false>::computeRoots(const MatrixType&, Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 3, false>::VectorType&)’: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:577:5: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 577~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:578:5: error: expected ‘;’ before ‘EIGEN_USING_STD_MATH’ 578~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:593:27: error: ‘s_inv3’ was not declared in this scope 593~/usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In static member function ‘static bool Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 3, false>::extract_kernel(Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 3, false>::MatrixType&, Eigen::Ref~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:617:5: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 617~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In static member function ‘static void Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 2, false>::computeRoots(const MatrixType&, Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 2, false>::VectorType&)’: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:731:5: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 731~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In static member function ‘static void Eigen::internal::direct_selfadjoint_eigenvalues<SolverType, 2, false>::run(SolverType&, const MatrixType&, int)’: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:741:5: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 741~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:742:5: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 742~~~~~~~ /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In function ‘void Eigen::internal::tridiagonal_qr_step(RealScalar, RealScalar, Index, Index, Scalar*, Index)’: /usr/local/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:819:3: error: there are no arguments to ‘EIGEN_USING_STD_MATH’ that depend on a template parameter, so a declaration of ‘EIGEN_USING_STD_MATH’ must be available [-fpermissive] 819~~~~~~~ In file included from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp: In member function ‘virtual void octomap_server::OctomapServer::handleNode(const iterator&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:210:58: warning: unused parameter ‘it’ [-Wunused-parameter] 210~~~~~^~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp: In member function ‘virtual void octomap_server::OctomapServer::handleNodeInBBX(const iterator&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:211:63: warning: unused parameter ‘it’ [-Wunused-parameter] 211~~~~~^~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp: In constructor ‘octomap_server::OctomapServer::OctomapServer(const rclcpp::NodeOptions&, std::string)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:148:14: warning: ‘octomap_server::OctomapServer::m_useColoredMap’ will be initialized after [-Wreorder] 148~~~~~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:118:16: warning: ‘double octomap_server::OctomapServer::m_colorFactor’ [-Wreorder] 118~~~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:5:5: warning: when initialized here [-Wreorder] 5~~~~ In file included from /opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/client.hpp:40, from /opt/ros/humble/include/rclcpp/rclcpp/callback_group.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/any_executable.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategy.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategies.hpp:18, from /opt/ros/humble/include/rclcpp/rclcpp/executor_options.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/executor.hpp:37, from /opt/ros/humble/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/executors.hpp:21, from /opt/ros/humble/include/rclcpp/rclcpp/rclcpp.hpp:155, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:8, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual void octomap_server::OctomapServer::insertCloudCallback(const ConstSharedPtr&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:341:50: warning: format ‘%s’ expects argument of type ‘char*’, but argument 5 has type ‘std::string’ {aka ‘std::__cxx11::basic_string~/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:341:52: note: format string is defined here 341In file included from /opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/client.hpp:40, from /opt/ros/humble/include/rclcpp/rclcpp/callback_group.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/any_executable.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategy.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategies.hpp:18, from /opt/ros/humble/include/rclcpp/rclcpp/executor_options.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/executor.hpp:37, from /opt/ros/humble/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/executors.hpp:21, from /opt/ros/humble/include/rclcpp/rclcpp/rclcpp.hpp:155, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:8, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:341:50: warning: spurious trailing ‘%’ in format [-Wformat=] 341 | RCLCPP_ERROR(this->get_logger(), "%s %", msg, ex.what()); | ^ > >, std::shared_ptr<octomap_msgs::srv::GetOctomapResponse<std::allocator > >)’:
/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:783:52: warning: unused parameter ‘req’ [-Wunused-parameter]
783 | const std::shared_ptr req,
| > >, std::shared_ptr<octomap_msgs::srv::GetOctomapResponse<std::allocator > >)’:
/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:802:52: warning: unused parameter ‘req’ [-Wunused-parameter]
802 | const std::shared_ptr req,
| > >, std::shared_ptr<octomap_msgs::srv::BoundingBoxQueryResponse<std::allocator > >)’:
/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:817:43: warning: unused parameter ‘resp’ [-Wunused-parameter]
817 | std::shared_ptr resp) {
| > >, std::shared_ptr<std_srvs::srv::EmptyResponse<std::allocator > >)’:
/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:855:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<visualizationmsgs::msg::Marker<std::allocator >, std::allocator<visualizationmsgs::msg::Marker<std::allocator > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
855 | for (auto i = 0; i < occupiedNodesVis.markers.size(); ++i){
| >, std::allocator<visualizationmsgs::msg::Marker<std::allocator > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
871 | for (auto i = 0; i < freeNodesVis.markers.size(); ++i) {
| req,
| resp) {
|
~/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:341:54: note: format string is defined here 341 | RCLCPP_ERROR(this->get_logger(), "%s %", msg, ex.what()); | ^ In file included from /opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/client.hpp:40, from /opt/ros/humble/include/rclcpp/rclcpp/callback_group.hpp:24, from /opt/ros/humble/include/rclcpp/rclcpp/any_executable.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategy.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategies.hpp:18, from /opt/ros/humble/include/rclcpp/rclcpp/executor_options.hpp:20, from /opt/ros/humble/include/rclcpp/rclcpp/executor.hpp:37, from /opt/ros/humble/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25, from /opt/ros/humble/include/rclcpp/rclcpp/executors.hpp:21, from /opt/ros/humble/include/rclcpp/rclcpp/rclcpp.hpp:155, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/include/octomap_server2/octomap_server.hpp:8, from /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:2: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:341:50: warning: too many arguments for format [-Wformat-extra-args] 341 | RCLCPP_ERROR(this->get_logger(), "%s %", msg, ex.what()); | ^~/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual void octomap_server::OctomapServer::publishAll(const rclcpp::Time&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:595:28: warning: unused variable ‘size’ [-Wunused-variable] 595 | double size = it.getSize(); | ^~~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual bool octomap_server::OctomapServer::octomapBinarySrv(std::shared_ptr<octomap_msgs::srv::GetOctomapRequest<std::allocator~~~~~~~~~^/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual bool octomap_server::OctomapServer::octomapFullSrv(std::shared_ptr<octomap_msgs::srv::GetOctomapRequest<std::allocator~~~~~~~~~^/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘bool octomap_server::OctomapServer::clearBBXSrv(std::shared_ptr<octomap_msgs::srv::BoundingBoxQueryRequest<std::allocator~~~~~~~~^~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘bool octomap_server::OctomapServer::resetSrv(std::shared_ptr<std_srvs::srv::EmptyRequest<std::allocator^~~~~~~/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:871:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<visualizationmsgs::msg::Marker<std::allocator^~~~~~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:835:62: warning: unused parameter ‘req’ [-Wunused-parameter] 835 | const std::shared_ptr~~~~~~~~~~~^/home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:836:57: warning: unused parameter ‘resp’ [-Wunused-parameter] 836 | std::shared_ptr~~~~~~~~~~^~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual void octomap_server::OctomapServer::handlePreNodeTraversal(const rclcpp::Time&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:1163:59: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare] 1163 | for (unsigned int j = mapUpdateBBXMinY; j <= mapUpdateBBXMaxY; ++j) { |^~~~~ /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp: In member function ‘virtual void octomap_server::OctomapServer::handlePostNodeTraversal(const rclcpp::Time&)’: /home/tang/Desktop/slam/octo_slam/src/octomap_server2/src/octomap_server.cpp:1173:29: warning: unused parameter ‘rostime’ [-Wunused-parameter] 1173 | const rclcpp::Time& rostime){ |~~~~^~~ gmake[2]: [CMakeFiles/octomap_server2.dir/build.make:76: CMakeFiles/octomap_server2.dir/src/octomap_server.cpp.o] Error 1 gmake[1]: [CMakeFiles/Makefile2:139: CMakeFiles/octomap_server2.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2Failed <<< octomap_server2 [7.53s, exited with code 2]
Summary: 1 package finished [10.5s] 1 package failed: octomap_server2 1 package had stderr output: octomap_server2
The way to solution is find the octomap_server2/include/octomapserver2/transforms.hpp and change the #include <eigen3/Eigen/Eigen> to #include <Eigen/Dense>_