tum-vision / lsd_slam

LSD-SLAM
GNU General Public License v3.0
2.59k stars 1.23k forks source link

SegFault in live_slam #160

Open Anandembeddian opened 8 years ago

Anandembeddian commented 8 years ago

i have installed all nodes and dependencies properly. when i run with any .bag example, the live_slam throws this error:

$ rosrun lsd_slam_core live_slam image:=/imraw camera_info:=/camera_info libdc1394 error: Failed to initialize libdc1394 WAITING for ROS camera calibration! Received ROS Camera Calibration: fx: 254.326950, fy: 375.934387, cx: 267.381897, cy: 231.599091 @ 640x480 RECEIVED ROS camera calibration! Started mapping thread! Started optimization thread Started constraint search thread! Doing Random initialization! Segmentation fault (core dumped)

After gdb, the backtrace of live_slam gives:

(gdb) bt 0xb7fdbbe0 in __kernel_vsyscall () 0xb7e2225c in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187 0xb7d568c1 in void boost::condition_variable_any::waitboost::unique_lock(boost::unique_lockboost::recursive_mutex&) () from /home/anand/rosbuild_ws/package_dir/lsd_slam/lsd_slam_core/lib/liblsdslam.so 0xb7d55fe3 in lsd_slam::LiveSLAMWrapper::Loop() () from /home/anand/rosbuild_ws/package_dir/lsd_slam/lsd_slam_core/lib/liblsdslam.so 0x0806138f in main ()

THE ALLEYOOP GIVES:

==1823== Memcheck, a memory error detector ==1823== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==1823== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info ==1823== Command: /home/anand/rosbuild_ws/package_dir/lsd_slam/lsd_slam_core/bin/live_slam ==1823== ==1823== Invalid read of size 1 ==1823== at 0x0402f368: strlen (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==1823== by 0x040b2cda: ros::master::init(std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > const&) (in /opt/ros/jade/lib/libroscpp.so) ==1823== by 0x0414a768: ros::init(std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > const&, std::string const&, unsigned int) (in /opt/ros/jade/lib/libroscpp.so) ==1823== by 0x0414c5c3: ros::init(int&, char, std::string const&, unsigned int) (in /opt/ros/jade/lib/libroscpp.so) ==1823== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==1823== ==1823== Process terminating with default action of signal 11 (SIGSEGV) ==1823== Access not within mapped region at address 0x0 ==1823== at 0x0402f368: strlen (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==1823== by 0x040b2cda: ros::master::init(std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > const&) (in /opt/ros/jade/lib/libroscpp.so) ==1823== by 0x0414a768: ros::init(std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > const&, std::string const&, unsigned int) (in /opt/ros/jade/lib/libroscpp.so) ==1823== by 0x0414c5c3: ros::init(int&, char, std::string const&, unsigned int) (in /opt/ros/jade/lib/libroscpp.so) ==1823== If you believe this happened as a result of a stack ==1823== overflow in your program's main thread (unlikely but ==1823== possible), you can try to increase the size of the ==1823== main thread stack using the --main-stacksize= flag. ==1823== The main thread stack size used in this run was 8388608. ==1823== ==1823== HEAP SUMMARY: ==1823== in use at exit: 507,924 bytes in 1,880 blocks ==1823== total heap usage: 3,518 allocs, 1,638 frees, 660,264 bytes allocated ==1823== ==1823== For a detailed leak analysis, rerun with: --leak-check=full ==1823== ==1823== For counts of detected and suppressed errors, rerun with: -v ==1823== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) ==1823==

any body having this error??

please help me......

mihaibujanca commented 8 years ago

Maybe try reinstalling libdc1394, as that seems to be the first issue