Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault (core dumped) when run with dataset_tum #3

Closed
kintzhao opened this issue Dec 3, 2019 · 10 comments
Closed

Segmentation fault (core dumped) when run with dataset_tum #3

kintzhao opened this issue Dec 3, 2019 · 10 comments

Comments

@kintzhao
Copy link

kintzhao commented Dec 3, 2019

I have Segmentation fault when run:
build/RESLAM config_files/reslam_settings.yaml config_files/dataset_tum1.yaml

test_error.txt

yhzhao@yhzhao:~/test_git/RESLAM$ pkg-config --modversion eigen3
3.2.92

yhzhao@yhzhao:~/test_git/RESLAM$ build/RESLAM config_files/reslam_settings.yaml config_files/dataset_tum1.yaml
INF|System.cpp[readSettings,144]: EnableLocalMapping: 1
INF|System.cpp[readSettings,158]: SystemMultiThreading: 0
INF|System.cpp[readSettings,165]: Read: [1, 1, 1.25, 1.5] into 1 1 1.25 1.5
INF|System.cpp[readSensorSettings,90]: InputDatasetFile1: associate.txt
INF|System.cpp[readSensorSettings,92]: InputDatasetFile2: associate.txt
INF|System.cpp[readSensorSettings,106]: InputSkipFirstNFrames: 0
INF|System.cpp[readSensorSettings,112]: InputDepthMin: 0.1 InputDepthMax: 5.2
INF|LocalMapper.cpp[LocalMapper,55]: setThreadReduce: 0xb2c100
INF|Tracker.cpp[Tracker,42]: mCameraMatrix: 517.306 516.469
INF|fernrelocaliser.cpp[FernRelocaliser,297]: imgSize / (1 << levels): [40 x 30] height: 480 width: 640
INF|FernConservatory.cpp[FernConservatory,47]: Generating FernConservatory with: 500 4 [40 x 30] [0, 255] 4 width: 40x h:30
INF|fernrelocaliser.cpp[FernRelocaliser,300]: Creating RelocDatabase!
INF|Tracker.cpp[Tracker,42]: mCameraMatrix: 517.306 516.469
INF|Input.cpp[readGTTrajectory,50]: Reading: /home/yhzhao/dataSets/vslam/tum/rgbd_dataset_freiburg1_desk2/groundtruth.txt
INF|Input.cpp[InputDatasetReader,104]: Reading: /home/yhzhao/dataSets/vslam/tum/rgbd_dataset_freiburg1_desk2/associate.txt
START PANGOLIN!
Input.cpp[readImages,192]: readImages loop!
INF|Input.cpp[getImages,128]: getimages!0
INF|Input.cpp[getImages,132]: mNbReceivedImages!1
INF|System.cpp[startSystem,229]: input is still active!


INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 2 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 3
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 4
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 5
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 6
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 7
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 7 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 8
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 9
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 10
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 11
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 12
INF|ceresloopcloser.cpp[BuildOptimizationProblem,97]: Fixing: 12 flagFixPose: 1
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 13
INF|ceresloopcloser.cpp[BuildOptimizationProblem,94]: p: 14
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
Segmentation fault (core dumped)

@fabianschenk
Copy link
Owner

Hi,
thanks for your interest in RESLAM.
Others also had this problem and it is related to your Ceres/Eigen version.
It has been already solved in: #2

@kintzhao
Copy link
Author

kintzhao commented Dec 3, 2019

@fabianschenk which version is need?

test_error_cmake.txt

Found Ceres version: 1.14.0
Found required Ceres dependency: Eigen version 3.2.92

@fabianschenk
Copy link
Owner

I tried various versions of Ceres (1.13, 1.14 and 2.0). Do you use the same Eigen version in Ceres and RESLAM? Could you try installing the latest (stable) Eigen version 3.3.7 ?

@fabianschenk fabianschenk reopened this Dec 3, 2019
@kintzhao
Copy link
Author

kintzhao commented Dec 3, 2019

Thanks. It is ok when i re-install by your latest (stable) Eigen version 3.3.7 .

@kintzhao kintzhao closed this as completed Dec 3, 2019
@kintzhao kintzhao reopened this Dec 3, 2019
@kintzhao
Copy link
Author

kintzhao commented Dec 3, 2019

it is ok on the data: /home/yhzhao/dataSets/vslam/tum/rgbd_dataset_freiburg1_desk2
error on rgbd_dataset_freiburg2_large_with_loop

rgbd_dataset_freiburg2_large_with_loop-error.txt

@kintzhao
Copy link
Author

kintzhao commented Dec 3, 2019

error on "/home/yhzhao/dataSets/vslam/tum/rgbd_dataset_freiburg2_pioneer_360"

INF|Tracker.cpp[trackFrameOnLvl,765]: (1, 7,0.999294 ): FINISHED pyramid level 1 (last residual reduction too small).
INF|Tracker.cpp[trackFrames,97]: Time for tracking at lvl: 1:4044/4
INF|Tracker.cpp[trackFrames,82]: Tracking level: 0 from 24 to 4755832512519864320
INF|Tracker.cpp[trackFrameOnLvl,718]: Computing rel. transformation between: 0(1311876806.855905) and 88(1311876806.755717) on lvl: 0
INF|Tracker.cpp[trackFrameOnLvl,734]: Transformation before 0: 0.999292 -0.00494103 0.0372881 0.00366753
0.00476046 0.999977 0.00492975 -0.00992683
-0.0373116 -0.00474876 0.999292 -0.0250039
INF|Tracker.cpp[trackFrameOnLvl,765]: (0, 2,0.99992 ): FINISHED pyramid level 0 (last residual reduction too small).
INF|Tracker.cpp[trackFrames,97]: Time for tracking at lvl: 0:1965/1
INF|Tracker.cpp[analyseTrackingResult,811]: opticalFlowThreshold: 0.871777 resInfo good: 1725, 18
INF|System.cpp[trackNewestFrame,327]: Time for tracking: 10382/10
INF|System.cpp[trackNewestFrame,336]: Tracking Status: Ok T_ref_N: 0.999181 -0.0040993 0.0402446 -0.00273555
0.00385844 0.999974 0.00606088 -0.00962771
-0.0402684 -0.00590064 0.999171 -0.0158214
INF|PangolinDSOViewer.cpp[publishCamPose,731]: publishCamPose!89
INF|PangolinDSOViewer.cpp[pushLiveFrame,778]: Time for pushingLiveFrame: 2020
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
Input.cpp[readImages,206]: Got image from sensor!90
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
Input.cpp[readImages,215]: mInputFrameQueue: 1
Input.cpp[readImages,218]: mNbOfImages: 91
INF|System.cpp[startSystem,229]: input is still active!
INF|System.cpp[startSystem,231]: Got frame!
INF|DataStructures.cpp[computeOptimizationStructure,141]: Adding distancetransform for frame: 1311876806.956004
Input.cpp[readImages,192]: readImages loop!
INF|Input.cpp[getImages,128]: getimages!91
INF|Input.cpp[getImages,132]: mNbReceivedImages!92
INF|System.cpp[trackNewestFrame,313]: Time for computing poses: 3
INF|Tracker.cpp[trackFrames,78]: initPose: 0.996727 -0.00843261 0.080398 -0.00606612
0.00746956 0.999897 0.0122719 -0.0193616
-0.0804932 -0.0116312 0.996687 -0.0314627
INF|Tracker.cpp[trackFrames,82]: Tracking level: 2 from 24 to 4755832512519864320
INF|Tracker.cpp[trackFrameOnLvl,718]: Computing rel. transformation between: 0(1311876806.956004) and 88(1311876806.755717) on lvl: 2
INF|Tracker.cpp[trackFrameOnLvl,734]: Transformation before 2: 0.996727 -0.00843261 0.080398 -0.00606612
0.00746956 0.999897 0.0122719 -0.0193616
-0.0804932 -0.0116312 0.996687 -0.0314627
INF|Tracker.cpp[trackFrameOnLvl,777]: (2, 5): FINISHED pyramid level 2 (stepsize too small).
INF|Tracker.cpp[trackFrames,97]: Time for tracking at lvl: 2:920/0
INF|Tracker.cpp[trackFrames,82]: Tracking level: 1 from 24 to 4755832512519864320
INF|Tracker.cpp[trackFrameOnLvl,718]: Computing rel. transformation between: 0(1311876806.956004) and 88(1311876806.755717) on lvl: 1
INF|Tracker.cpp[trackFrameOnLvl,734]: Transformation before 1: 0.997057 -0.0141979 0.0753427 -0.00150326
0.0152135 0.999801 -0.0129226 0.00316986
-0.0751442 0.0140308 0.997074 -0.0620407
INF|Tracker.cpp[trackFrameOnLvl,765]: (1, 6,0.999562 ): FINISHED pyramid level 1 (last residual reduction too small).
INF|Tracker.cpp[trackFrames,97]: Time for tracking at lvl: 1:865/0
INF|Tracker.cpp[trackFrames,82]: Tracking level: 0 from 24 to 4755832512519864320
INF|Tracker.cpp[trackFrameOnLvl,718]: Computing rel. transformation between: 0(1311876806.956004) and 88(1311876806.755717) on lvl: 0
INF|Tracker.cpp[trackFrameOnLvl,734]: Transformation before 0: 0.997155 -0.00615544 0.0751272 0.00946236
0.00649213 0.99997 -0.00423817 -0.0127139
-0.0750988 0.00471385 0.997165 -0.0696723
INF|Tracker.cpp[trackFrameOnLvl,777]: (0, 3): FINISHED pyramid level 0 (stepsize too small).
INF|Tracker.cpp[trackFrames,97]: Time for tracking at lvl: 0:688/0
INF|Tracker.cpp[analyseTrackingResult,811]: opticalFlowThreshold: 1.20053 resInfo good: 1336, 407
INF|System.cpp[trackNewestFrame,327]: Time for tracking: 2889/2
INF|System.cpp[trackNewestFrame,336]: Tracking Status: NewKeyframe T_ref_N: 0.996845 -0.00659775 0.0790944 0.00204792
0.00714771 0.999952 -0.00667207 -0.000315638
-0.0790466 0.00721637 0.996845 -0.0442528
INF|Mapper.cpp[addKeyFrameHeaderAndId,394]: addKeyFrameHeaderAndId timestamp: 1311876806.956004
INF|DataStructures.cpp[makeKeyFrame,99]: Making 1311876806.956004 to keyframe with id: 4755832512519864320
INF|DataStructures.cpp[computeValidEdgePixels,207]: computingValidEdgePixels for 1311876806.956004
INF|DataStructures.cpp[computeValidEdgePixels,235]: Time for edge list computation: 842 size: 1575
INF|Mapper.cpp[addKeyFrameToAll,454]: addKeyFrameHeaderAndId4755832512519864320 timestamp: 1311876806.956004
INF|Mapper.cpp[addKeyFrameToAll,459]: lock addKeyFrameToAll frames mode!
INF|LocalMapper.cpp[flagFramesForMarginalization,1005]: flagFramesForMarginalization7
INF|WindowedOptimizer.cpp[takeData,246]: takeData: 25 = 25
INF|LocalMapper.cpp[addNewResidualsForOldPoints,88]: addNewResidualsForOldPoints!
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x4eff640fh->id: 18 25 90goodE: 0
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x4ee5320fh->id: 19 25 90goodE: 0
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x46789a0fh->id: 20 25 90goodE: 0
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x7dd0900fh->id: 21 25 90goodE: 0
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x4e76760fh->id: 22 25 90goodE: 99
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x5872660fh->id: 23 25 90goodE: 119
INF|LocalMapper.cpp[addNewResidualsForOldPoints,93]: refFrameNew: 0x2a80ae0 fh1 0x4e66f40fh->id: 24 25 90goodE: 0
INF|LocalMapper.cpp[activatePointsMT,943]: Making new distance map for refFrameNew25
INF|LocalMapper.cpp[activateEdges_Reductor,929]: Added: 37 out of 46 immature points to active points
INF|LocalMapper.cpp[activatePointsMT,973]: optEdgePixels.size: 46 newEdgePixels: 46
INF|LocalMapper.cpp[localMappingLinear,601]: Window poses before optimize:
INF|LocalMapper.cpp[linearizeAll,483]: linearizeAll! 611
ERR|LocalMapper.cpp[optimize,259]: Time for linearize and calcEnergy: 101 lastEnergy: 136.744 0 0
ERR|LocalMapper.cpp[optimize,266]: Time for applyRes_Reductor: 21
INF|LocalMapper.cpp[optimize,276]: Start Energy: 136.744 0 0 lastEnergyL: 0
INF|LocalMapper.cpp[optimize,282]: Iteration: 0 lastX: -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan -nan
Sophus ensure failed in function 'static Sophus::SO3<Scalar_> Sophus::SO3<Scalar_, Options>::expAndTheta(const Tangent&, Sophus::SO3<Scalar_, Options>::Scalar*) [with Scalar_ = double; int Options = 0; Sophus::SO3<Scalar_, Options>::Tangent = Eigen::Matrix<double, 3, 1>; Sophus::SO3<Scalar_, Options>::Scalar = double]', file '/home/yhzhao/test_git/RESLAM/thirdparty/Sophus/sophus/so3.hpp', line 563.
SO3::exp failed! omega: nan nan nan, real: nan, img: nan
Aborted (core dumped)

@fabianschenk
Copy link
Owner

I'm currently a bit busy and will try to run the sequences in the evening.

@fabianschenk
Copy link
Owner

Hi,
I looked at rgbd_dataset_freiburg2_large_with_loop and this sequence cannot work with RESLAM as we need a depth map to initialize the edges. For example, the depth map 1311875592.200814 of rgbd_dataset_freiburg2_large_with_loop contains nearly no valid depths. The problem is that (nearly) all RGBD sensors cannot estimate depth for surfaces far away from the sensor (around > 6 m) due to their small baseline. To process such sequences, you would need a system that can handle either monocular images (without depth) or one the can also estimate the depth of edges without initialization from the depth sensor.
Regarding the crash, there seems there is a bug in RESLAM that causes some problems after repeated tracking losses. Sadly, I don't have time to look into the problem at the moment since I'm not employed by the university anymore.
Thanks for pointing me to this error and I hope I'll find time in the future to fix it.

@zzodo
Copy link

zzodo commented Mar 16, 2020

Another segmentation fault was found while running RESLAM with "rgbd_dataset_freiburg1_floor" repeatedly at the sequence of "1305033560.376140.png". Have you finished fixing the aforementioned bugs in the system? Looking forward to improvements.

Thanks and regards.

@fabianschenk
Copy link
Owner

Hi,
thanks for pointing that out.
I was pretty busy the last months but since everything is a bit slower these days due to Coronavirus I might have time to look into it at the end of next week. I remember that rgbd_dataset_freiburg1_floor ran through on my system at some point. Strange that it stopped working. I'll investigate also next week.
Best
Fabian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants