uzh-rpg / rpg_svo_pro_open

GNU General Public License v3.0
1.39k stars 387 forks source link

svo ceres backend package error? #12

Open rainlord opened 3 years ago

rainlord commented 3 years ago
    when i execute the command of roslaunch svo_ros fla_stereo_imu.launch, in the config file of fla_stereo_imu.yaml, the flag of use_ceres_backend was set to be "true",There will have this error as fellow:

Aborted at 1633594407 (unix time) try "date -d @1633594407" if you are using GNU date PC: @ 0x0 (unknown) SIGSEGV (@0x0) received by PID 16632 (TID 0x7f32e7fff700) from PID 0; stack trace: @ 0x7f33244b8f20 (unknown) @ 0x5618dd640875 Eigen::internal::gemm_pack_lhs<>::operator()() @ 0x5618dd65f758 Eigen::internal::general_matrix_matrix_product<>::run() @ 0x7f3322696a7a Eigen::internal::gemm_functor<>::operator()() @ 0x7f33226958ea Eigen::internal::parallelize_gemm<>() @ 0x7f332269476f Eigen::internal::generic_product_impl<>::scaleAndAddTo<>() @ 0x7f3322692f26 Eigen::internal::generic_product_impl<>::evalTo<>() @ 0x7f332269193c Eigen::internal::Assignment<>::run() @ 0x7f332268fdf4 Eigen::internal::call_assignment_no_alias<>() @ 0x7f332268e26a Eigen::PlainObjectBase<>::_set_noalias<>() @ 0x7f332268c087 Eigen::PlainObjectBase<>::_init1<>() @ 0x7f332268b1a6 Eigen::Matrix<>::Matrix<>() @ 0x7f332268a82a Eigen::internal::call_assignment<>() @ 0x7f3322689b58 Eigen::internal::call_assignment<>() @ 0x7f332268918b Eigen::MatrixBase<>::operator=<>() @ 0x7f33226886b0 svo::ceres_backend::SpeedAndBiasError::EvaluateWithMinimalJacobians() @ 0x7f3322688504 svo::ceres_backend::SpeedAndBiasError::Evaluate() @ 0x7f331a864725 ceres::internal::ResidualBlock::Evaluate() @ 0x7f331a8868d1 _ZN5ceres8internal16ProgramEvaluatorINS0_21BlockEvaluatePreparerENS0_19BlockJacobianWriterENS0_21NullJacobianFinalizerEE8EvaluateERKNS0_9Evaluator15EvaluateOptionsEPKdPdSC_SC_PNS0_12SparseMatrixE._omp_fn.2 @ 0x7f3315476edf GOMP_parallel @ 0x7f331a88836a ceres::internal::ProgramEvaluator<>::Evaluate() @ 0x7f331a89b0fd ceres::internal::TrustRegionMinimizer::EvaluateGradientAndJacobian() @ 0x7f331a89bb92 ceres::internal::TrustRegionMinimizer::IterationZero() @ 0x7f331a8a04f4 ceres::internal::TrustRegionMinimizer::Minimize() @ 0x7f331a87220d ceres::Solver::Solve() @ 0x7f331a873099 ceres::Solve() @ 0x7f33224e1bd5 svo::ceres_backend::Map::solve() @ 0x7f33224dcd81 svo::Estimator::optimize() @ 0x7f332246b88c svo::CeresBackendInterface::optimizationLoop() @ 0x7f332248326c std::invoke_impl<>() @ 0x7f332247b4e1 std::__invoke<>() @ 0x7f33224d564b _ZNSt6thread8_InvokerISt5tupleIJMN3svo21CeresBackendInterfaceEFvvEPS3_EEE9_M_invokeIJLm0ELm1EEEEDTcl8invokespcl10_S_declvalIXT_EEEEESt12_Index_tupleIJXspT_EEE

The Specific error code are " return func(0,rows, 0,cols);" as fellow: please tell me where am i wrong ? @uzh-rpg

Index threads = std::min(nbThreads(), pb_max_threads); // if multi-threading is explicitely disabled, not useful, or if we already are in a parallel session, // then abort multi-threading // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp? if((!Condition) || (threads==1) || (omp_get_num_threads()>1)) return func(0,rows, 0,cols);

arjunskumar commented 7 months ago

@rainlord have you managed to fix the issue?