ORB_SLAM3 icon indicating copy to clipboard operation
ORB_SLAM3 copied to clipboard

running mono_euroc with MH01 successfuly, but has segmentation fault(core dumped) at the end

Open KaqiKaqi opened this issue 3 years ago • 7 comments

I ran mono_euroc with MH01 successfuly, but has segmentation fault at the end. log is as follows:

num_seq = 1
file name: dataset-MH01_mono
Loading images for sequence 0...LOADED!

-------

ORB-SLAM3 Copyright (C) 2017-2020 Carlos Campos, Richard Elvira, Juan J. Gómez, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
ORB-SLAM2 Copyright (C) 2014-2016 Raúl Mur-Artal, José M.M. Montiel and Juan D. Tardós, 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: Monocular
Loading settings from ./Examples/Monocular/EuRoC.yaml
Camera1.k3 optional parameter does not exist...
	-Loaded camera 1
	-Loaded image info
	-Loaded ORB settings
Viewer.imageViewScale optional parameter does not exist...
	-Loaded viewer settings
System.LoadAtlasFromFile optional parameter does not exist...
System.SaveAtlasToFile optional parameter does not exist...
	-Loaded Atlas settings
System.thFarPoints optional parameter does not exist...
	-Loaded misc parameters
----------------------------------
SLAM settings: 
	-Camera 1 parameters (Pinhole): [ 458.65399169921875 457.29598999023438 367.21499633789062 248.375 ]
	-Camera 1 distortion parameters: [  -0.28340810537338257 0.073959067463874817 0.00019359000725671649 1.7618711353861727e-05 ]
	-Original image size: [ 752 , 480 ]
	-Current image size: [ 600 , 350 ]
	-Camera 1 parameters after resize: [  365.94735717773438 333.44500732421875 292.99069213867188 181.10678100585938 ]
	-Sequence FPS: 20
	-Features per image: 1000
	-ORB scale factor: 1.2000000476837158
	-ORB number of scales: 8
	-Initial FAST threshold: 20
	-Min FAST threshold: 7


Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Initialization of Atlas from scratch 
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name: 
There are 1 cameras in the atlas
Camera 0 is pinhole
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/core/src/parallel/registry_parallel.impl.hpp (96) ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/highgui/src/registry.impl.hpp (114) UIBackendRegistry UI: Enabled backends(2, sorted by priority): GTK(1000); GTK2(990) + BUILTIN(GTK2)
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/highgui/src/backend.cpp (90) createUIBackend UI: using backend: GTK (priority=1000)
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/highgui/src/window_gtk.cpp (2364) createWindow OpenCV/UI: Creating GTK window: ORB-SLAM3: Current Frame (1)
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/highgui/src/window_gtk.cpp (573) CvWindow OpenCV/UI: creating GTK window: ORB-SLAM3: Current Frame
Starting the Viewer
First KF:0; Map init KF:0
New Map created with 271 points
Shutdown

Saving trajectory to f_dataset-MH01_mono.txt ...
There are 1 maps in the atlas
  Map 0 has 342 KFs

End of saving trajectory to f_dataset-MH01_mono.txt ...

Saving keyframe trajectory to kf_dataset-MH01_mono.txt ...
[ INFO:[email protected]] global /home/ber/workspace/code/opencv-4.5.5/modules/highgui/src/window_gtk.cpp (1273) destroy OpenCV/UI: destroying GTK window: ORB-SLAM3: Current Frame
./run_mh01.sh: line 1: 21428 Segmentation fault      (core dumped) ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /home/ber/data/euroc/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono

But no segmentation fault happed when running MH02. Does anyone have some idea?

KaqiKaqi avatar Jan 14 '22 13:01 KaqiKaqi

Try to print the Map pointer in the function saving keyframe trajectory, in System.cc. You might see that the pointer is null because your map does not have enough keyframes. I think the author corrected this bug for keyframes only in the v1.0 release.

Edit: The error seems to come from GetAllKeyFrames() in Map.cc, mspKeyFrames might be destroyed too early.

yhabib29 avatar Jan 25 '22 10:01 yhabib29

You should initialize the Map pointer with a nullptr, this solve the problem: Replace: https://github.com/UZ-SLAMLab/ORB_SLAM3/blob/851db08347849a94c51d3ebc3a36df8a114b800f/src/System.cc#L1062 by: Map* pBiggerMap == nullptr;

yhabib29 avatar Jan 25 '22 16:01 yhabib29

hello @jdtardos @yhabib29 ! when I ran "./Examples/Stereo-Inertial/stereo_inertial_realsense_D435i Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/RealSense_D435i.yaml",it has a segmentation fault at the end,log is as follows: "SLAM settings:-Camera 1 parameters (Pinhole): [382.613 382.613 320.183 236.455]" Could you please give some suggestions? Thanks!

miscedence12 avatar Apr 14 '22 08:04 miscedence12

@aichishiguocai You seems to be using Rectified Camera type. There is an error in Settings.cc:554 if you are running v1.0 release. It is a different problem, you should try changing this line:

-if(settings.sensor_ == System::STEREO || settings.sensor_ == System::IMU_STEREO){
+if((settings.sensor_ == System::STEREO || settings.sensor_ == System::IMU_STEREO) && settings.cameraType_ !=  Settings::Rectified){

yhabib29 avatar Apr 14 '22 15:04 yhabib29

Hello @yhabib29 ! Thanks for your reply,when I change the line as you mentioned,it has another error,as fllows: “Loading ORB Vocabulary.This could take a while ,Illegal instruction”. I do not know what it occurs,what's your ideas?

miscedence12 avatar Apr 15 '22 02:04 miscedence12

Sorry, no idea on this error, it is not supposed to be linked with the changes I suggested previously. If you undo the previous change only, does it still happen ? Maybe send a screenshot of the program output ...

yhabib29 avatar Apr 26 '22 14:04 yhabib29

https://github.com/UZ-SLAMLab/ORB_SLAM3/issues/452 maybe this issue could help you fix this segfault bug. And I fixed the bug by following its solution.

nickxiang0306 avatar Jul 15 '22 07:07 nickxiang0306

hello @jdtardos @yhabib29 ! when I ran "./Examples/Stereo-Inertial/stereo_inertial_realsense_D435i Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/RealSense_D435i.yaml",it has a segmentation fault at the end,log is as follows: "SLAM settings:-Camera 1 parameters (Pinhole): [382.613 382.613 320.183 236.455]" Could you please give some suggestions? Thanks!

Hi @miscedence12, I am having the same issue. Did you fix the problem?

MynhLoveBunCha avatar Sep 07 '23 09:09 MynhLoveBunCha

@MynhLoveBunCha hello, I haven't used this algorithm for over a year, and I remember we solved this problem very well at that time, it seems to be a problem with the camera configuration file,best wishes!

miscedence12 avatar Sep 07 '23 09:09 miscedence12