Segmentation fault (core dumped)
minxuanjun opened this issue · 10 comments
I am deeply attracted by your work,and thank you very much for your open source. But when I test your code , I encounter a program error “Segmentation fault (core dumped)”
Hi,
I'm very excited to hear that people are interested in my work.
Could you please elaborate a bit more on how you try to run RESLAM and where exactly the "segmentation fault" occurs?
Make sure that you specify the correct dataset folder and that you pass the config files in the correct order.
If you're at ICRA at the moment, we could also meet up ;)
@fabianschenk Thank you very much for your prompt reply. because we are not in a same time zone, I can't reply in time. I run the following script RESLAM ../config_files/reslam_settings.yaml ../config_files/dataset_tum1.yaml in the build directory according your tutorial, it works well for a while, then a Segmentation fault error is throwed.The contents of the terminal output are as follows:
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 14 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 15
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 15 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 16
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 16 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,103]: nFixedPoses: 7
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Hi,
I think there might be a problem with the Ceres version. Which version do you use? I'm currently on the a bit outdated Ceres 1.13.
Which dataset do you try to run?
I'll install the new Ceres version and try to reproduce the error when I'm back at my lab on Monday.
Best
@fabianschenk @minxuanjun Hi,Is the problem solved now? I also encountered the same problem, when the program runs halfway, there will be a segmentation error, as shown.
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 85
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 85 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 86
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 86 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 87
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 87 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,103]: nFixedPoses: 7
Segmentation fault(core dumped)
Hi,
it is not solved yet since I haven't been back in the lab.
Once I'm back, I'll try to reproduce the segmentation fault and implement a fix.
Which version of ceres do you use @Quitino ?
Hi,@fabianschenk Thank you very much for your reply, I am using version ceres 1.14.
@fabianschenk ,HI, How does RESLAM work on low-texture scenes?
I'm trying to reproduce the error but so far I've not managed to.
I tried various versions of Ceres (1.13, 1.14 and 2.0) the newest Sophus version and also the newest Eigen version. I get the same loop closure candidates but Ceres simply runs through instead of crashing. Everything points towards a problem with Ceres.
@Quitino
Did you also build the Ceres tests?
If yes, could you run the simple_bundle_adjuster as suggested in http://ceres-solver.org/installation.html:
bin/simple_bundle_adjuster ../ceres-solver-1.14.0/data/problem-16-22106-pre.txt
Regarding the low-texture scenes: Currently, RESLAM relies on Canny and of course on the defined thresholds. If no or very few edges are detected, then RESLAM has similar problems as feature- or (most) photoconsistency-based methods. You could try different edge detectors since CNN-based sometimes find edges even in challenging scenes.
We published another paper at BMVC that tackles this problem by combining the edge-based term with an ICP term. The paper is called: "Combining edge images and depth maps for robust visual odometry".
Hi @fabianschenk Sorry, I didn't get back to you in time. Now that the problem has been solved, my Eigen library version is wrong. Thank you very much for your excellent work.
@Quitino Thank you for your response.
I'm happy that the problem is solved. If anything else comes up, just open another issue.