-
Notifications
You must be signed in to change notification settings - Fork 45
Description
catkin_make of "https://github.com/MapIV/iris" fails.
An error like the one below appears.
I would like to know how to solve it.
The environment and actions taken are described below.
■Error(See attached file for full text of error)
[ 2%] Building CXX object iris/iris/CMakeFiles/iris_node.dir/src/optimize/aligner.cpp.o
[ 2%] Building CXX object iris/iris/CMakeFiles/iris_node.dir/src/optimize/types_gicp.cpp.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/graph_optimizer.cc.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/local_bundle_adjuster.cc.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/transform_optimizer.cc.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/pose_optimizer.cc.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/global_bundle_adjuster.cc.o
[ 8%] Building CXX object iris/openvslam_bridge/3rd/openvslam/src/openvslam/CMakeFiles/openvslam.dir/optimize/g2o/se3/shot_vertex.cc.o
In file included from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:28:26: error: ‘number_t’ does not name a type
28 | void oplusImpl(const number_t* update_) override {
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:28:10: error: ‘void openvslam::optimize::g2o::se3::shot_vertex::oplusImpl(const int*)’ marked ‘override’, but does not override
28 | void oplusImpl(const number_t* update_) override {
| ^~~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h: In member function ‘void openvslam::optimize::g2o::se3::shot_vertex::oplusImpl(const int*)’:
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:29:48: error: no matching function for call to ‘Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >::Map(const int*&)’
29 | Eigen::Map update(update_);
| ^
In file included from /usr/include/eigen3/Eigen/Core:88,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/type.h:10,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:4,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:
/usr/include/eigen3/Eigen/src/Core/Map.h:162:5: note: candidate: ‘Eigen::Map<MatrixType, MapOptions, StrideType>::Map(const Eigen::Map<MatrixType, MapOptions, StrideType>&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>]’
162 | EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/Map.h:162:5: note: no known conversion for argument 1 from ‘const int*’ to ‘const Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >&’
162 | EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/Core:470,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/type.h:10,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.h:4,
from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/se3/shot_vertex.cc:1:
/usr/include/eigen3/Eigen/src/Core/Map.h:156:12: note: candidate: ‘Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, Eigen::Index, Eigen::Index, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*; Eigen::Index = long int]’
156 | inline Map(PointerArgType dataPtr, Index rows, Index cols, const StrideType& stride = StrideType())
| ^~~
/usr/include/eigen3/Eigen/src/Core/Map.h:156:12: note: candidate expects 4 arguments, 1 provided
/usr/include/eigen3/Eigen/src/Core/Map.h:142:12: note: candidate: ‘Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, Eigen::Index, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*; Eigen::Index = long int]’
142 | inline Map(PointerArgType dataPtr, Index size, const StrideType& stride = StrideType())
| ^~~
/usr/include/eigen3/Eigen/src/Core/Map.h:142:12: note: candidate expects 3 arguments, 1 provided
/usr/include/eigen3/Eigen/src/Core/Map.h:129:21: note: candidate: ‘Eigen::Map<MatrixType, MapOptions, StrideType>::Map(Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType, const StrideType&) [with PlainObjectType = const Eigen::Matrix<double, 6, 1, 0, 6, 1>; int MapOptions = 0; StrideType = Eigen::Stride<0, 0>; Eigen::Map<MatrixType, MapOptions, StrideType>::PointerArgType = const double*]’
129 | explicit inline Map(PointerArgType dataPtr, const StrideType& stride = StrideType())
| ^~~
/usr/include/eigen3/Eigen/src/Core/Map.h:129:40: note: no known conversion for argument 1 from ‘const int*’ to ‘Eigen::Map<const Eigen::Matrix<double, 6, 1, 0, 6, 1>, 0, Eigen::Stride<0, 0> >::PointerArgType’ {aka ‘const double*’}
129 | explicit inline Map(PointerArgType dataPtr, const StrideType& stride = StrideType())
| ~~~~~~~~~~~~~~~^~~~~~~
In file included from /home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:26:
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.hpp:63:17: error: ‘number_t’ has not been declared
63 | Matrix3 prec0(number_t e); // for target
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.hpp:64:17: error: ‘number_t’ has not been declared
64 | Matrix3 prec1(number_t e); // for source
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.hpp:67:16: error: ‘number_t’ has not been declared
67 | Matrix3 cov0(number_t e); // for target
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.hpp:68:16: error: ‘number_t’ has not been declared
68 | Matrix3 cov1(number_t e); // for source
| ^~~~~~~~
In file included from /home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/transform_optimizer.cc:4:
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:28:26: error: ‘number_t’ does not name a type
28 | void oplusImpl(const number_t* update_) override {
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:28:10: error: ‘void openvslam::optimize::g2o::sim3::transform_vertex::oplusImpl(const int*)’ marked ‘override’, but does not override
28 | void oplusImpl(const number_t* update_) override {
| ^~~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h: In member function ‘void openvslam::optimize::g2o::sim3::transform_vertex::oplusImpl(const int*)’:
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:29:46: error: ‘number_t’ does not name a type
29 | Eigen::Map<Vec7_t> update(const_cast<number_t*>(update_));
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:29:54: error: expected ‘>’ before ‘’ token
29 | Eigen::Map<Vec7_t> update(const_cast<number_t>(update_));
| ^
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:29:54: error: expected ‘(’ before ‘’ token
29 | Eigen::Map<Vec7_t> update(const_cast<number_t>(update_));
| ^
| (
/home/cool4/catkin_iris_ws/src/iris/openvslam_bridge/3rd/openvslam/src/openvslam/optimize/g2o/sim3/transform_vertex.h:29:55: error: expected primary-expression before ‘>’ token
29 | Eigen::Map<Vec7_t> update(const_cast<number_t*>(update_));
| ^
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:64:9: error: ‘g2o::Matrix3 iris::optimize::EdgeGICP::prec0’ is not a static data member of ‘class iris::optimize::EdgeGICP’
64 | Matrix3 EdgeGICP::prec0(number_t e)
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:64:25: error: ‘number_t’ was not declared in this scope; did you mean ‘g2o::number_t’?
64 | Matrix3 EdgeGICP::prec0(number_t e)
| ^~~~~~~~
| g2o::number_t
In file included from /usr/local/include/g2o/core/jacobian_workspace.h:34,
from /usr/local/include/g2o/core/optimizable_graph.h:39,
from /usr/local/include/g2o/core/base_edge.h:36,
from /usr/local/include/g2o/core/base_fixed_sized_edge.h:35,
from /usr/local/include/g2o/core/base_binary_edge.h:30,
from /home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.hpp:28,
from /home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:26:
/usr/local/include/g2o/core/eigen_types.h:36:7: note: ‘g2o::number_t’ declared here
36 | using number_t = double;
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:65:1: error: expected ‘,’ or ‘;’ before ‘{’ token
65 | {
| ^
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:74:9: error: ‘g2o::Matrix3 iris::optimize::EdgeGICP::prec1’ is not a static data member of ‘class iris::optimize::EdgeGICP’
74 | Matrix3 EdgeGICP::prec1(number_t e)
| ^~~~~~~~
/home/cool4/catkin_iris_ws/src/iris/iris/src/optimize/types_gicp.cpp:74:25: error: ‘number_t’ was not declared in this scope; did you mean ‘g2o::number_t’?
74 | Matrix3 EdgeGICP::prec1(number_t e)
| ^~~~~~~~
| g2o::number_t
・・・・・・
■environment
・Ubuntu20.04
・ROS1(ROS Noetic Ninjemys)
・g2o(https://github.com/RainerKuemmerle/g2o)
・DBoW2(https://github.com/shinsumicco/DBoW2)
・The hardware is “Jestone AGX Orin"
■procedure
1.
Launching the "Ubuntu20.04" environment
↓
2.
ROS1 install
※https://wiki.ros.org/noetic/Installation/Ubuntu
↓
3.
g2o install
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
↓
4.
DBoW2 install
mkdir DBow2_ws
cd DBow2_ws
git clone https://github.com/shinsumicco/DBoW2.git
cd DBoW2
mkdir build
cd build
cmake ..
make sudo make install
↓
5.
MapⅣ/iris build
https://github.com/MapIV/iris.git
mkdir -p catkin_ws/src
cd catkin_ws/src
git clone --recursive https://github.com/MapIV/iris.git
cd ..
catkin_make
An error occurs!!
It looks like the error is that the header on the g2o(version 1.0.0) side cannot be referenced at build time...
g2o libraries and headers are properly stored in include and lib under /usr/local.
No changes have been made to the source code of "MAPⅣ/iris".