nikolaradulov / SLAMFuse

SLAM performance evaluation framework
https://apt.cs.manchester.ac.uk/projects/PAMELA/
Other
2 stars 1 forks source link

"Cannot open library" error when trying to run ORB-SLAM3 with SLAMBench #17

Open yrq0208 opened 1 year ago

yrq0208 commented 1 year ago

I am able to build ORB-SLAM3 and the MH 01 sequence from the EuRoC dataset with issues. I am also able to load the dataset using "./build/bin/slambench -i datasets/EuRoCMAV/machine_hall/MH_01_easy/MH_01_easy.slam". However, when I run it with ORB-SLAM3 using "./build/bin/slambench -i datasets/EuRoCMAV/machine_hall/MH_01_easy/MH_01_easy.slam -load ./build/lib/libORB_SLAM3-original-library.so", I have "Cannot open library: /media/ruiqi/95477812-1449-4c3f-b238-5295310e2d40/slambench/build/lib/libORB_SLAM3-original.so: undefined symbol: _ZTIN9slambench6values5ValueE".

A similar issue seems to be mentioned in #10 as well, I wonder if is there a solution.

Also, there is no executable such as benchmark_loader, pangolin_loader or lifelong_loader in my build/bin folder, but there is one called "slambench" which seems to be doing the loader's job.

I am not using docker. I am doing this on my workstation with Ubuntu 20.04 (no WSL).

Do we have a document that records the issues that we have when trying to build SLAMBench, along with potential fixes for them? If there is it would be great if it can be shared. @nikolaradulov @yuhaozhang7 Also what SLAMs have you managed to run with SLAMBench? Have you managed to run ORB-SLAM3? I am trying to integrate a SLAM back-end called ICE-BA to SLAMBench and I am learning how to do it atm.

nikolaradulov commented 1 year ago

All the ones ported in #9 have also been run normally. Documentation is still bad at the moment. Best we have so far is the issues here and whatever other content we put on the wiki. benchmark_loader, pangolin_loader or lifelong_loader are all from a previous version of slam. As is the README. The slambench you hve in ./build/bin takes their place.

yuhaozhang7 commented 1 year ago

"_ZTIN9slambench6values5ValueE" is caused by latest changes from slambench-admin, you can checkout the commit 6649295, OR clone the branch algorithm_volume, replace the content of benchmarks.makefile with the changes in commit 6649295 from master, in order to use make orbslam3

For #16 my solution is: 捕获 This is in the /path/to/slambench/benchmarks/orbslam3/src/original/CMakeLists.txt

and for ORB-SLAM3, you also need to cd /path/to/slambench/benchmarks/orbslam3/src/original/Vocabulary then tar -xf ORBvoc.txt.tar.gz

yrq0208 commented 1 year ago

Hi @yuhaozhang7 ,

Regarding the "_ZTIN9slambench6values5ValueE" issue, I am not sure it is caused by commit 6649295 (although it could still be caused by other commits). If I am understanding it correctly, commit 6649295 add more SLAMs in benchmarks.makefile, as well as updates some github repo links for existing SLAMs. I think these changes have been reflected in the master branch (the one I am using). Regardless, I applied the changes in commit 6649295 to my benchmarks.makefile, but the same error still exists.

I am seeing the same error when trying to run ORB-SLAM2, ORB-SLAM3 and OpenVINS. I am guessing the "_ZTIN9slambench6values5ValueE" issue probably has something to do with the compiler version (GCC for example). Could you please let me know what version of GCC are you using with the docker/WSL?

I am still trying the algorithm_volume branch.

yuhaozhang7 commented 1 year ago

@yrq0208 sorry, I mean use git checkout for commit 6649295 because this problem is caused by one of commits after 6649295. and algorithm_volume branch ONLY support generating volume of algorithm, it doesn't support SLAMBench container, so you might need to make slambench, make dataset as usual, and use -load to load algorithm's library in volume.