rubengooj / pl-svo

This code contains an algorithm to compute monocular visual odometry by using both point and line segment features, based on the open source version of SVO.
GNU General Public License v3.0
240 stars 73 forks source link

Seg Fault after successful compiling #2

Open puiglm opened 7 years ago

puiglm commented 7 years ago

commad: ../bin/run_pipeline ../config/dataset_params.yaml

I get the following error: FATAL: Signal SIGSEGV caught!

gdb does not provide any information: Program received signal SIGSEGV, Segmentation fault. 0x000000000040f862 in main ()

I have not idea where the issue might be. I compiled Sophus, Vitik, SVO and pl-svo in that order.

Thanks, Luis Puig

llcc343 commented 7 years ago

Maybe you can try gdb to get some information

highlightz commented 7 years ago

@longchao343 超哥,你跑起来了吗?调用mrpt库生成场景那里一直崩溃,请问如何解决?

highlightz commented 7 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what():

=============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225:

Aborted (core dumped)

llcc343 commented 7 years ago

@highlightz 跑起来了,我把mrpt相关的全部去掉了,他的显示实现好像有问题,数据集没几个能跑通的。。。

highlightz commented 7 years ago

V102这种,跑的效果如何?稳定性和精度。

jessicajie commented 6 years ago

I want yo know the" ./run_pipeline ",how to use?

I always have this mistake: FATAL: Signal SIGSEGV caught! Aborted (core dumped)

What needs to be modified in this step?Can the specific command guide me? Which dataset is better here? Thanks very much!

cumtchenchang commented 6 years ago

@highlightz 请问你调试出来了吗?我也是遇到segmentation fault。

newyeo commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what():

=============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225:

Aborted (core dumped)

I do have the same problem. Maybe there is a bug related to scene so that I can not run it. after I comment several lines about scene, it finally runs. commented lines as below: 385 scene.initializeScene(T_f_w); //in run_pipline.cpp 483 scene.setLinesSVO(lines3d); //in run_pipline.cpp 486 scene.updateScene(); //in run_pipline.cpp

the result is nothing show in MRPT window. you can only see the output in console.

2016cxg commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what():

=============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225:

Aborted (core dumped)

I am not sure about your issue, but I really meet one like this, 2019-02-13 19-15-44

I found I was incorrectly organizing the datasets directory. Later, I corrected like this, 2019-02-13 19-28-08

Reason As is seen is this organization, datasets is a library of my datasets and image1 goes a sample. Note that in the image1 directory, I have my image files whose extension are .png in directory images. Meanwhile, dataset_params.yaml should also be included.
Those two requirements was told in statement That sequence folder must contain the dataset configuration file named dataset_params.yaml following the examples in pl-svo/confin from pl-svo Readme.md file and in statement the images_subfolder: images/ from dataset_params.yaml file.

Then, I set the environmental variable DATASETS_DIR using commands like this 2019-02-13 20-02-57

Reason Setting environmental variable DATASETS_DIR was required in the statement the environment variable ${DATASETS_DIR} that must be previously set. from Readme.md. Note that that the path value of DATASETS_DIR refers to the path of directory datasets as mentioned in red frame in the following picture 2019-02-13 19-28-08

After the two operations, I run run_pipline using dataset_name image1, as is shown below 2019-02-13 20-14-01

Hope you are in helping hands

2016cxg commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what(): =============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225: Aborted (core dumped)

I do have the same problem. Maybe there is a bug related to scene so that I can not run it. after I comment several lines about scene, it finally runs. commented lines as below: 385 scene.initializeScene(T_f_w); //in run_pipline.cpp 483 scene.setLinesSVO(lines3d); //in run_pipline.cpp 486 scene.updateScene(); //in run_pipline.cpp

the result is nothing show in MRPT window. you can only see the output in console.

Maybe bugs lie in sceneRepresentation.cpp, where there is something wrong with line 264, line 285, line 313.

I investigate by some lines like this 2019-02-14 01-59-35 and then re-run sudo ./bash.sh, then I run *./run_pipline image1 and get stuck at that line who comes as vaux = v_aux;*

I dig deeper and find that vaux are always holding the same value with v_aux, thus no need to differentiate them. Therefore, I replace vaux with v_aux and comment this line vaux = v_aux; , so are the other two variables vauxgt and vaux1 . Then I recompile and re-run run_pipline to successfully see the window. My final video seems like this

Hope a helping hand!

maazmb commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what(): =============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225: Aborted (core dumped)

I do have the same problem. Maybe there is a bug related to scene so that I can not run it. after I comment several lines about scene, it finally runs. commented lines as below: 385 scene.initializeScene(T_f_w); //in run_pipline.cpp 483 scene.setLinesSVO(lines3d); //in run_pipline.cpp 486 scene.updateScene(); //in run_pipline.cpp the result is nothing show in MRPT window. you can only see the output in console.

Maybe bugs lie in sceneRepresentation.cpp, where there is something wrong with line 264, line 285, line 313.

I investigate by some lines like this 2019-02-14 01-59-35 and then re-run sudo ./bash.sh, then I run *./runpipline image1* and get stuck at that line who comes as vaux = vaux;**

I dig deeper and find that _vaux_ are always holding the same value with vaux, thus no need to differentiate them. Therefore, I replace vaux with v_aux and comment this line vaux = v_aux; , so are the other two variables vauxgt and vaux1 . Then I recompile and re-run run_pipline_ to successfully see the window. My final video seems like this

Hope a helping hand!

@2016cxg : Bro can we please chat in detail...im having this issue running pl-svo. I would be grateful. My wechat: Maazbutt or 13121025446

I think this error is because of line 559 in scenerepresentation.cpp....as it cannot find any help.png. As the code gets stuck at line 561 which actually needs the aux/help.png (not available). looking forward to talk with you

newyeo commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what(): =============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225: Aborted (core dumped)

I do have the same problem. Maybe there is a bug related to scene so that I can not run it. after I comment several lines about scene, it finally runs. commented lines as below: 385 scene.initializeScene(T_f_w); //in run_pipline.cpp 483 scene.setLinesSVO(lines3d); //in run_pipline.cpp 486 scene.updateScene(); //in run_pipline.cpp the result is nothing show in MRPT window. you can only see the output in console.

Maybe bugs lie in sceneRepresentation.cpp, where there is something wrong with line 264, line 285, line 313.

I investigate by some lines like this 2019-02-14 01-59-35 and then re-run sudo ./bash.sh, then I run *./runpipline image1* and get stuck at that line who comes as vaux = vaux;**

I dig deeper and find that _vaux_ are always holding the same value with vaux, thus no need to differentiate them. Therefore, I replace vaux with v_aux and comment this line vaux = v_aux; , so are the other two variables vauxgt and vaux1 . Then I recompile and re-run run_pipline_ to successfully see the window. My final video seems like this

Hope a helping hand!

I've seen there are only three vaux in the following several lines but I did not test it because it can not compile successfully as the develop verionment changed. Embarrassing ..... Now I've changed to another program. I will try to debug it at my spare time. Thank you anyway!

newyeo commented 5 years ago

I meet below running error, which seems originate from mrpt based scene creating: [INFO] SVO initialized before scene creating after scene constructing terminate called after throwing an instance of 'std::logic_error' what(): =============== MRPT EXCEPTION ============= void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 209: Origin image is empty! (o.img==NULL) void mrpt::utils::CImage::copyFastFrom(mrpt::utils::CImage&), line 225: Aborted (core dumped)

I do have the same problem. Maybe there is a bug related to scene so that I can not run it. after I comment several lines about scene, it finally runs. commented lines as below: 385 scene.initializeScene(T_f_w); //in run_pipline.cpp 483 scene.setLinesSVO(lines3d); //in run_pipline.cpp 486 scene.updateScene(); //in run_pipline.cpp the result is nothing show in MRPT window. you can only see the output in console.

Maybe bugs lie in sceneRepresentation.cpp, where there is something wrong with line 264, line 285, line 313.

I investigate by some lines like this 2019-02-14 01-59-35 and then re-run sudo ./bash.sh, then I run *./runpipline image1* and get stuck at that line who comes as vaux = vaux;**

I dig deeper and find that _vaux_ are always holding the same value with vaux, thus no need to differentiate them. Therefore, I replace vaux with v_aux and comment this line vaux = v_aux; , so are the other two variables vauxgt and vaux1 . Then I recompile and re-run run_pipline_ to successfully see the window. My final video seems like this

Hope a helping hand!

It surely will stick at line vaux = v_aux . I tried your method. Comment this line vaux = v_aux and repleace the other vaux with v_aux . Then sometimes it can work sometimes it can not and it doesn't show tracjectory.
Finally, I made a change in CmakeList.txt . changes like below:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -mtune=native -march=native")

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

Change the first line into the second line. Means delete compile options behind the c++11. Then it works!

Hoping a useful hand.

zxp771 commented 5 years ago

Hi @2016cxg Thx for your sharing. I tried your suggestion. But there still has the same error like this: image I modified the code as you said"replace vaux,v_auxgt,vaux1 with v_aux,v_auxgt,v_aux1" image image And set the DATASET DIR image Then rerun the ./run_pipeline image1. image Could you please give me some advise to solve the problem?