ANYbotics / grid_map

Universal grid map library for mobile robotic mapping
BSD 3-Clause "New" or "Revised" License
2.53k stars 794 forks source link

grid_map_filters package fails during build #414

Open Kukhokuhle opened 5 months ago

Kukhokuhle commented 5 months ago

Hi all,

I am on Ubuntu 20.04 and using ROS noetic.

Attempting to build grid_map is unsuccessful because the grid_map_filters package fails. I get the idea that the issue is with Eigen and opencv2 but I am unable to pin it down.

Here is the output of the build process:

`Errors << grid_map_filters:make /home/kukhokuhle/catkin_ws/logs/grid_map_filters/build.make.001.log In file included from /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:14, from /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor:31, from /usr/local/include/opencv4/opencv2/core/eigen.hpp:66, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:17: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h:254:30: error: redeclared with 1 template parameter 254 | template struct array_size; | ^~~~~~ In file included from /usr/include/eigen3/Eigen/Core:162, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/include/grid_map_filters/MedianFillFilter.hpp:11, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:9: /usr/include/eigen3/Eigen/src/Core/util/Meta.h:445:55: note: previous declaration ‘template<class T, class EnableIf> struct Eigen::internal::array_size’ used 2 template parameters 445 | template<typename T, typename EnableIf = void> struct array_size { | ^~~~~~ In file included from /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:14, from /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor:31, from /usr/local/include/opencv4/opencv2/core/eigen.hpp:66, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:17: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h:255:41: error: redefinition of ‘struct Eigen::internal::array_size<const std::array<_Tp, _Nm> >’ 255 | template<class T, std::size_t N> struct array_size<const std::array<T,N> > { | ^~~~~~~~~~ In file included from /usr/include/eigen3/Eigen/Core:162, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/include/grid_map_filters/MedianFillFilter.hpp:11, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:9: /usr/include/eigen3/Eigen/src/Core/util/Meta.h:461:44: note: previous definition of ‘struct Eigen::internal::array_size<const std::array<_Tp, _Nm> >’ 461 | template<typename T, std::size_t N> struct array_size<const std::array<T,N> > { | ^~~~~~~~~~ In file included from /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:14, from /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor:31, from /usr/local/include/opencv4/opencv2/core/eigen.hpp:66, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:17: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h:258:30: error: redeclared with 1 template parameter 258 | template struct array_size; | ^~~~~~ In file included from /usr/include/eigen3/Eigen/Core:162, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/include/grid_map_filters/MedianFillFilter.hpp:11, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:9: /usr/include/eigen3/Eigen/src/Core/util/Meta.h:445:55: note: previous declaration ‘template<class T, class EnableIf> struct Eigen::internal::array_size’ used 2 template parameters 445 | template<typename T, typename EnableIf = void> struct array_size { | ^~~~~~ In file included from /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:14, from /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor:31, from /usr/local/include/opencv4/opencv2/core/eigen.hpp:66, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:17: /usr/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h:259:41: error: redefinition of ‘struct Eigen::internal::array_size<std::array<_Tp, _Nm> >’ 259 | template<class T, std::size_t N> struct array_size<std::array<T,N> > { | ^~~~~~~~ In file included from /usr/include/eigen3/Eigen/Core:162, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/include/grid_map_filters/MedianFillFilter.hpp:11, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:9: /usr/include/eigen3/Eigen/src/Core/util/Meta.h:464:44: note: previous definition of ‘struct Eigen::internal::array_size<std::array<_Tp, _Nm> >’ 464 | template<typename T, std::size_t N> struct array_size<std::array<T,N> > { | ^~~~~~~~ In file included from /usr/include/eigen3/unsupported/Eigen/CXX11/Tensor:115, from /usr/local/include/opencv4/opencv2/core/eigen.hpp:66, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:17: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h: In member function ‘void Eigen::TensorContractionEvaluatorBase::evalGemm(Eigen::TensorContractionEvaluatorBase::Scalar*) const’: /usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h:466:111: error: wrong number of template arguments (6, should be at least 7) 466 | internal::gemm_pack_lhs<LhsScalar, Index, typename LhsMapper::SubMapper, mr, Traits::LhsProgress, ColMajor> pack_lhs; | ^ In file included from /usr/include/eigen3/Eigen/Core:286, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/include/grid_map_filters/MedianFillFilter.hpp:11, from /home/kukhokuhle/catkin_ws/src/grid_map/grid_map_filters/src/MedianFillFilter.cpp:9: /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h:28:8: note: provided for ‘template<class Scalar, class Index, class DataMapper, int Pack1, int Pack2, class Packet, int StorageOrder, bool Conjugate, bool PanelMode> struct Eigen::internal::gemm_pack_lhs’ 28 | struct gemm_pack_lhs; | ^~~~~ make[2]: [CMakeFiles/grid_map_filters.dir/build.make:102: CMakeFiles/grid_map_filters.dir/src/MedianFillFilter.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... make[1]: [CMakeFiles/Makefile2:1505: CMakeFiles/grid_map_filters.dir/all] Error 2 make: [Makefile:141: all] Error 2 cd /home/kukhokuhle/catkin_ws/build/grid_map_filters; catkin build --get-env grid_map_filters | catkin env -si /usr/bin/make --jobserver-auth=3,4; cd -

.................................................................................. Failed << grid_map_filters:make [ Exited with code 2 ]
Failed <<< grid_map_filters [ 6.5 seconds ]
Abandoned <<< grid_map [ Unrelated job failed ]
Abandoned <<< grid_map_demos [ Unrelated job failed ]
[build] Summary: 32 of 35 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: 2 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 10.7 seconds total.`

juanvon commented 4 months ago

I have tried in 20.04 and 18.04, 20.04 can build succeed without any other operations. create a new virtual env and retry?