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 -
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;
| ^ struct array_size;
| ^::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;
| ^
~~~~~ 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~~~~~ 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~~~~ 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.`