2017-02-13 288 views
1

我試圖運行ORB_SLAM,它是一種在Ubuntu 16.04上對ROS執行SLAM(同時本地化和映射)的算法。但是,當我嘗試構建包時,我收到了此錯誤消息。構建ORB_SLAM時出現Eigen錯誤

[ 0%] Built target rospack_genmsg_libexe 
[ 0%] Built target rosbuild_precompile 
[ 5%] Building CXX object CMakeFiles/ORB_SLAM.dir/src/Optimizer.cc.o 
In file included from /usr/include/eigen3/Eigen/Core:297:0, 
       from /home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/types/../core/jacobian_workspace.h:30, 
       from /home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/types/../core/optimizable_graph.h:41, 
       from /home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/types/../core/base_vertex.h:30, 
       from /home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h:34, 
       from /home/akanksha/ORB_SLAM/include/LoopClosing.h:33, 
       from /home/akanksha/ORB_SLAM/include/Optimizer.h:27, 
       from /home/akanksha/ORB_SLAM/src/Optimizer.cc:21: 
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<int, -1, 1>; Src = Eigen::Matrix<long int, -1, 1, 0, -1, 1>; Func = Eigen::internal::assign_op]’: 
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void*>::type) [with Dst = Eigen::Matrix<int, -1, 1>; Src = Eigen::Matrix<long int, -1, 1, 0, -1, 1>; Func = Eigen::internal::assign_op; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void*>::type = void*]’ 
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:693:18: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Matrix<int, -1, 1>; Src = Eigen::Matrix<long int, -1, 1, 0, -1, 1>]’ 
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:682:32: required from ‘Derived& Eigen::PlainObjectBase::_set(const Eigen::DenseBase&) [with OtherDerived = Eigen::Matrix<long int, -1, 1, 0, -1, 1>; Derived = Eigen::Matrix<int, -1, 1>]’ 
/usr/include/eigen3/Eigen/src/Core/Matrix.h:225:24: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::DenseBase&) [with OtherDerived = Eigen::Matrix<long int, -1, 1, 0, -1, 1>; _Scalar = int; int _Rows = -1; int _Cols = 1; int _Options = 0; int _MaxRows = -1; int _MaxCols = 1]’ 
/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h:367:17: required from ‘Eigen::PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>& Eigen::PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>::operator=(const Eigen::PermutationBase&) [with Other = Eigen::PermutationMatrix<-1, -1, long int>; int SizeAtCompileTime = -1; int MaxSizeAtCompileTime = -1; _StorageIndex = int]’ 
/home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:68:18: required from ‘void g2o::LinearSolverEigen::CholeskyDecomposition::analyzePatternWithPermutation(g2o::LinearSolverEigen::SparseMatrix&, const PermutationMatrix&) [with MatrixType = Eigen::Matrix<double, 7, 7, 0, 7, 7>; g2o::LinearSolverEigen::SparseMatrix = Eigen::SparseMatrix<double, 0>; g2o::LinearSolverEigen::PermutationMatrix = Eigen::PermutationMatrix<-1, -1, long int>]’ 
/home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:195:9: required from ‘void g2o::LinearSolverEigen::computeSymbolicDecomposition(const g2o::SparseBlockMatrix&) [with MatrixType = Eigen::Matrix<double, 7, 7, 0, 7, 7>]’ 
/home/akanksha/ORB_SLAM/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:100:37: required from ‘bool g2o::LinearSolverEigen::solve(const g2o::SparseBlockMatrix&, double*, double*) [with MatrixType = Eigen::Matrix<double, 7, 7, 0, 7, 7>]’ 
/home/akanksha/ORB_SLAM/src/Optimizer.cc:989:1: required from here 
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:119:9: error: ‘YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY’ is not a member of ‘Eigen::internal::static_assertion’ 
    if (Eigen::internal::static_assertion<static_cast(CONDITION)>::MSG) {} 
    ^
/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h:707:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’ 
    EIGEN_STATIC_ASSERT((internal::functor_is_product_like::ret 
    ^
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3: note: in expansion of macro ‘EIGEN_CHECK_BINARY_COMPATIBILIY’ 
    EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar); 
    ^
CMakeFiles/ORB_SLAM.dir/build.make:1065: recipe for target 'CMakeFiles/ORB_SLAM.dir/src/Optimizer.cc.o' failed 
make[2]: *** [CMakeFiles/ORB_SLAM.dir/src/Optimizer.cc.o] Error 1 
CMakeFiles/Makefile2:324: recipe for target 'CMakeFiles/ORB_SLAM.dir/all' failed 
make[1]: *** [CMakeFiles/ORB_SLAM.dir/all] Error 2 
Makefile:127: recipe for target 'all' failed 
make: *** [all] Error 2 
+0

看看是否有幫助:http://stackoverflow.com/questions/38647114/orb-slam-installation-on- Ubuntu的xenial-16-04 –

回答