Changliu52 / ORB_SLAM2_ROS

Other
9 stars 4 forks source link

process has died [pid 2262, exit code -11] #3

Open pras2020 opened 6 years ago

pras2020 commented 6 years ago

I built orb slam2 for ros kinetic and opencv 3.1.0 and my system requirement is core i5 with 4 GB RAM.I getting the folloiwng error once after the stereo initialisation.

screenshot from 2018-01-14 19-43-03

error "[slam-2] process has died [pid 2262, exit code -11, cmd /home/prashanthr/catkin_ws/devel/lib/orb_slam2/Stereo /home/prashanthr/catkin_ws/src/ORB_SLAM2_ROS/orb_slam2_lib/Vocabulary/ORBvoc.txt /home/prashanthr/catkin_ws/src/ORB_SLAM2_ROS/orb_slam2_ros/settings/taracali_orb.yaml true name:=slam log:=/home/prashanthr/.ros/log/096d2d36-f934-11e7-a8c8-c81f66027c0a/slam-2.log]. log file: /home/prashanthr/.ros/log/096d2d36-f934-11e7-a8c8-c81f66027c0a/slam-2*.log"

This comes after once a single point cloud is generated in RVIZ.

pras2020 commented 6 years ago

do i need to do any opencv configuration in ros

Changliu52 commented 6 years ago

Make sure the the path to the vocabulary is correct. If problem persist, your 4gb ram might be too low.

MaEppl commented 6 years ago

Hey, have you solved this issue? I have the same problem:

Input sensor was set to: Stereo [ INFO] [1534846008.041914791]: octomapWorker thread: waiting for ORBState OK [ INFO] [1534846008.074786775]: ROS publisher started New map created with 27 points [orb_slam2-1] process has died [pid 30791, exit code -11, cmd /home/matthias/ORB_rviz/ORB_SLAM2_ROS/orb_slam2_ros/build/devel/lib/orb_slam2/Stereo /home/matthias/ORB_rviz/ORB_SLAM2_ROS/orb_slam2_lib/Vocabulary/ORBvoc.txt /home/matthias/ORB_rviz/ORB_SLAM2_ROS/orb_slam2_ros/settings/taracali_orb.yaml true /camera/left/image_raw:=/camera/infra1/image_rect_raw /camera/right/image_raw:=/camera/infra2/image_rect_raw __name:=orb_slam2 __log:=/home/matthias/.ros/log/a5d9ecb2-a529-11e8-a60c-a8206618e828/orb_slam2-1.log]. log file: /home/matthias/.ros/log/a5d9ecb2-a529-11e8-a60c-a8206618e828/orb_slam2-1*.log

This happens random. Maybe every tenth attempt is successful. Then I get the following output:

Input sensor was set to: Stereo [ INFO] [1534845923.850489254]: octomapWorker thread: waiting for ORBState OK [ INFO] [1534845923.913527654]: ROS publisher started New map created with 27 points Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting... Track lost soon after initialisation, reseting...

I think this is because I've not adapted the settings file. I'm also using an i5 with 16GB RAM.

MaEppl commented 6 years ago

with valgrind I get the following output. Seems like it has sth. to do with g2o library. But couldn't fix it. Conditional jump or move depends on uninitialised value(s) could that also be a problem?

Camera Parameters:

  • fx: 383.495
  • fy: 383.495
  • cx: 321.577
  • cy: 245.378
  • k1: 0
  • k2: 0
  • p1: 0
  • p2: 0
  • fps: 30
  • color order: RGB (ignored if grayscale)

ORB Extractor Parameters:

  • Number of Features: 1200
  • Scale Levels: 8
  • Scale Factor: 1.2
  • Initial Fast Threshold: 20
  • Minimum Fast Threshold: 7

Depth Threshold (Close/Far Points): 1.74993

ORB-SLAM2 Copyright (C) 2014-2016 Raul Mur-Artal, University of Zaragoza. This program comes with ABSOLUTELY NO WARRANTY; This is free software, and you are welcome to redistribute it under certain conditions. See LICENSE.txt.

Input sensor was set to: Stereo [ INFO] [1534867794.041239383]: octomapWorker thread: waiting for ORBState OK [ INFO] [1534867795.271772155]: ROS publisher started ==11187== Thread 10: ==11187== Conditional jump or move depends on uninitialised value(s) ==11187== at 0x45957F: ROSPublisher::Run() (ROSPublisher.cpp:741) ==11187== by 0xAC7AC7F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==11187== by 0x5A446B9: start_thread (pthread_create.c:333) ==11187== by 0xB26141C: clone (clone.S:109) ==11187== ==11187== Thread 1: ==11187== Conditional jump or move depends on uninitialised value(s) ==11187== at 0xA667823: ORB_SLAM2::Frame::ComputeStereoMatches() (Frame.cc:538) ==11187== by 0xA66A876: ORB_SLAM2::Frame::Frame(cv::Mat const&, cv::Mat const&, double const&, ORB_SLAM2::ORBextractor, ORB_SLAM2::ORBextractor, DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>, cv::Mat&, cv::Mat&, float const&, float const&) (Frame.cc:90) ==11187== by 0xA5BD964: ORB_SLAM2::Tracking::GrabImageStereo(cv::Mat const&, cv::Mat const&, double const&) (Tracking.cc:202) ==11187== by 0xA5A9718: ORB_SLAM2::System::TrackStereo(cv::Mat const&, cv::Mat const&, double const&) (System.cc:171) ==11187== by 0x433D53: ImageGrabber::GrabStereo(boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&) (ros_stereo.cc:169) ==11187== by 0x43BFD5: operator() (function_template.hpp:773) ==11187== by 0x43BFD5: boost::detail::function::void_function_obj_invoker9<boost::function<void (boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&)>, void, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr) (function_template.hpp:159) ==11187== by 0x455291: boost::function9<void, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr >::operator()(boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr) const (function_template.hpp:773) ==11187== by 0x4558E7: message_filters::CallbackHelper9T<boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&>::call(bool, ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&, ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&) (signal9.h:128) ==11187== by 0x44D375: call (signal9.h:304) ==11187== by 0x44D375: signal (synchronizer.h:332) ==11187== by 0x44D375: message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::publishCandidate() (approximate_time.h:500) ==11187== by 0x45240F: message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::process() (approximate_time.h:776) ==11187== by 0x4547E3: void message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::add<1>(boost::mpl::at_c<boost::mpl::vector<ros::MessageEvent<sensormsgs::Image<std::allocator > const>, ros::MessageEvent<sensormsgs::Image<std::allocator > const>, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl_::na>, 1>::type const&) (approximate_time.h:213) ==11187== by 0x447480: operator() (function_template.hpp:773) ==11187== by 0x447480: call (signal1.h:76) ==11187== by 0x447480: call (signal1.h:119) ==11187== by 0x447480: signalMessage (simple_filter.h:136) ==11187== by 0x447480: message_filters::Subscriber<sensormsgs::Image<std::allocator > >::cb(ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&) (subscriber.h:206) ==11187== ==11187== Conditional jump or move depends on uninitialised value(s) ==11187== at 0xA668ED2: ORB_SLAM2::Frame::ComputeStereoMatches() (Frame.cc:612) ==11187== by 0xA66A876: ORB_SLAM2::Frame::Frame(cv::Mat const&, cv::Mat const&, double const&, ORB_SLAM2::ORBextractor, ORB_SLAM2::ORBextractor, DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>, cv::Mat&, cv::Mat&, float const&, float const&) (Frame.cc:90) ==11187== by 0xA5BD964: ORB_SLAM2::Tracking::GrabImageStereo(cv::Mat const&, cv::Mat const&, double const&) (Tracking.cc:202) ==11187== by 0xA5A9718: ORB_SLAM2::System::TrackStereo(cv::Mat const&, cv::Mat const&, double const&) (System.cc:171) ==11187== by 0x433D53: ImageGrabber::GrabStereo(boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&) (ros_stereo.cc:169) ==11187== by 0x43BFD5: operator() (function_template.hpp:773) ==11187== by 0x43BFD5: boost::detail::function::void_function_obj_invoker9<boost::function<void (boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&)>, void, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr) (function_template.hpp:159) ==11187== by 0x455291: boost::function9<void, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr >::operator()(boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr<sensormsgs::Image<std::allocator > const>, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr, boost::shared_ptr) const (function_template.hpp:773) ==11187== by 0x4558E7: message_filters::CallbackHelper9T<boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr<sensormsgs::Image<std::allocator > const> const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&, boost::shared_ptr const&>::call(bool, ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&, ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&, ros::MessageEvent const&) (signal9.h:128) ==11187== by 0x44D375: call (signal9.h:304) ==11187== by 0x44D375: signal (synchronizer.h:332) ==11187== by 0x44D375: message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::publishCandidate() (approximate_time.h:500) ==11187== by 0x45240F: message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::process() (approximate_time.h:776) ==11187== by 0x4547E3: void message_filters::sync_policies::ApproximateTime<sensormsgs::Image<std::allocator >, sensormsgs::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::add<1>(boost::mpl::at_c<boost::mpl::vector<ros::MessageEvent<sensormsgs::Image<std::allocator > const>, ros::MessageEvent<sensormsgs::Image<std::allocator > const>, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, ros::MessageEvent, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl::na, mpl_::na>, 1>::type const&) (approximate_time.h:213) ==11187== by 0x447480: operator() (function_template.hpp:773) ==11187== by 0x447480: call (signal1.h:76) ==11187== by 0x447480: call (signal1.h:119) ==11187== by 0x447480: signalMessage (simple_filter.h:136) ==11187== by 0x447480: message_filters::Subscriber<sensormsgs::Image<std::allocator > >::cb(ros::MessageEvent<sensormsgs::Image<std::allocator > const> const&) (subscriber.h:206) ==11187== New map created with 26 points [ INFO] [1534867801.136384734]: octomapWorker thread: starting to work (ORBState is OK) [ INFO] [1534867801.167077044]: octomapWorker thread: missing camera TF, losing 1 pointcloud chunks. [ INFO] [1534867802.148579410]: octomapWorker thread: missing camera TF, losing 0 pointcloud chunks. [ INFO] [1534867803.169411977]: octomapWorker thread: missing camera TF, losing 0 pointcloud chunks. [ INFO] [1534867804.169998735]: octomapWorker thread: missing camera TF, losing 0 pointcloud chunks. [ INFO] [1534867805.184675728]: octomapWorker thread: missing camera TF, losing 0 pointcloud chunks. Stereo: /usr/include/eigen3/Eigen/src/Core/MapBase.h:168: void Eigen::MapBase<Derived, 0>::checkSanity() const [with Derived = Eigen::Map<Eigen::Matrix<double, 2, 6, 0, 2, 6>, 32, Eigen::Stride<0, 0> >]: Assertion `((size_t(m_data) % (((int)1 >= (int)internal::traits::Alignment) ? (int)1 : (int)internal::traits::Alignment)) == 0) && "data is not aligned"' failed. ==11187== ==11187== Process terminating with default action of signal 6 (SIGABRT): dumping core ==11187== at 0xB18F428: raise (raise.c:54) ==11187== by 0xB191029: abort (abort.c:89) ==11187== by 0xB187BD6: assert_fail_base (assert.c:92) ==11187== by 0xB187C81: assert_fail (assert.c:101) ==11187== by 0xA621D78: checkSanity (MapBase.h:168) ==11187== by 0xA621D78: MapBase (MapBase.h:155) ==11187== by 0xA621D78: MapBase (MapBase.h:243) ==11187== by 0xA621D78: Map (Map.h:151) ==11187== by 0xA621D78: g2o::BaseUnaryEdge<2, Eigen::Matrix<double, 2, 1, 0, 2, 1>, g2o::VertexSE3Expmap>::linearizeOplus(g2o::JacobianWorkspace&) (base_unary_edge.hpp:77) ==11187== by 0xA63120C: g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::buildSystem() (block_solver.hpp:531) ==11187== by 0xE3B4ED7: g2o::OptimizationAlgorithmLevenberg::solve(int, bool) (optimization_algorithm_levenberg.cpp:87) ==11187== by 0xE3AC4F6: g2o::SparseOptimizer::optimize(int, bool) (sparse_optimizer.cpp:388) ==11187== by 0xA618AE9: ORB_SLAM2::Optimizer::PoseOptimization(ORB_SLAM2::Frame*) (Optimizer.cc:379) ==11187== by 0xA5B733E: ORB_SLAM2::Tracking::TrackReferenceKeyFrame() (Tracking.cc:785) ==11187== by 0xA5BD367: ORB_SLAM2::Tracking::Track() (Tracking.cc:313) ==11187== by 0xA5BD98B: ORB_SLAM2::Tracking::GrabImageStereo(cv::Mat const&, cv::Mat const&, double const&) (Tracking.cc:204) ==11187== ==11187== HEAP SUMMARY: ==11187== in use at exit: 420,010,298 bytes in 2,280,849 blocks ==11187== total heap usage: 8,856,032 allocs, 6,575,183 frees, 2,142,576,859 bytes allocated ==11187== ==11187== LEAK SUMMARY: ==11187== definitely lost: 1,770 bytes in 11 blocks ==11187== indirectly lost: 69 bytes in 1 blocks ==11187== possibly lost: 3,256 bytes in 29 blocks ==11187== still reachable: 420,005,203 bytes in 2,280,808 blocks ==11187== suppressed: 0 bytes in 0 blocks ==11187== Rerun with --leak-check=full to see details of leaked memory ==11187== ==11187== For counts of detected and suppressed errors, rerun with: -v ==11187== Use --track-origins=yes to see where uninitialised values come from ==11187== ERROR SUMMARY: 25007 errors from 10 contexts (suppressed: 0 from 0) Killed

pras2020 commented 6 years ago

No, I couldn't solve this issue and final took orb Slam 2 by raulmer and not this code.

Charles-cyx commented 2 years ago

Hi,have you solved this problem?

mgrallos commented 1 year ago

No, I couldn't solve this issue and final took orb Slam 2 by raulmer and not this code.

I used Orb Slam 2 and problem still exist. what is causing this problem ?