PeterFWS / Structure-PLP-SLAM

[ICRA'23] The official Implementation of "Structure PLP-SLAM: Efficient Sparse Mapping and Localization using Point, Line and Plane for Monocular, RGB-D and Stereo Cameras"
GNU General Public License v3.0
394 stars 59 forks source link

cmake unsuccessful #1

Open GongGQ opened 1 year ago

GongGQ commented 1 year ago

Hello author, I am trying to reproduce your code and compile it after the dependency installation is complete, the following error will appear:

CMake Error in src/PLPSLAM/CMakeLists.txt: Target "PLPSLAM" INTERFACE_INCLUDE_DIRECTORIES property contains path: "/home/xxx/project/Structure-PLP-SLAM/src/PLPSLAM/" which is prefixed in the source directory.

CMake Error in src/PLPSLAM/CMakeLists.txt: Target "PLPSLAM" INTERFACE_INCLUDE_DIRECTORIES property contains path: "/home/xxx/project/Structure-PLP-SLAM/src/PLPSLAM//usr/local/include/DBoW2" which is prefixed in the source directory.

In addition, do you need to compile PLP-SLAM first under the src file? How should these problems be solved?

PeterFWS commented 1 year ago

Hello,

you don't need to compile anything beforehand under the src file.

I haven't encountered this Cmake error before. Could you please try to re-install the DBoW2 lib with an old version, for example, the version from the end of 2019. I can only guess the latest version of DBoW2 has a compatibility problem.

GongGQ commented 1 year ago

Hi, thanks for the explanation, I tried many ways to make cmake succeed. But make still has many errors, such as;

/home/xxx/project/Structure-PLP-SLAM/src/PLPSLAM/system.cc:82:25: error: 'PLPSLAM::data::bow_vocabulary {aka class DBoW2::TemplatedVocabulary<cv::Mat, DBoW2: :FORB>}' has no member named 'loadFromBinaryFile' bowvocab->loadFromBinaryFile(vocab_file_path);

Your code is using binary bag of words, but when compiling it says that it cannot be found loadFromBinaryFile function, how to solve these problems?

PeterFWS commented 1 year ago

Hi,

the compiling error indicates the function loadFromBinaryFile() has been renamed or removed from the DBoW lib you installed. This means the DBoW lib installed on your PC is not the proper one.

Sorry, I do not have a specific solution for that. In this case, could you please try to install the DBoW lib shared from my OneDrive? which is the version of mine link: https://1drv.ms/u/s!Atj7rBR0X5zagZ8EbLK_RJKUaHz1XQ?e=bv93qq

Best regards

theyunfeng commented 1 year ago

Hi,

the compiling error indicates the function loadFromBinaryFile() has been renamed or removed from the DBoW lib you installed. This means the DBoW lib installed on your PC is not the proper one.

Sorry, I do not have a specific solution for that. In this case, could you please try to install the DBoW lib shared from my OneDrive? which is the version of mine link: https://1drv.ms/u/s!Atj7rBR0X5zagZ8EbLK_RJKUaHz1XQ?e=bv93qq

Best regards

Hi Can you also share the g2o please? I encountered the following problems with g2o when compiling: Structure-PLP-SLAM/src/PLPSLAM/optimize/g2o/se3/shot_vertex.h:58:42: error: ‘number_t’ does not name a type void oplusImpl(const numbert *update) override...... I guess it may be a g2o version issue。

PeterFWS commented 1 year ago

Hi,

you can find my shared version of g2o or DBoW2 in the link given with the segmentation masks: https://1drv.ms/u/s!Atj7rBR0X5zagZwcFs1oIqXeV5r4Cw?e=pbnNES

sorry I am not able to retrieve which exact version it was. The openvslam code base used is a relatively old version from 2019.

Best,

theyunfeng commented 1 year ago

Hi,

you can find my shared version of g2o or DBoW2 in the link given with the segmentation masks: https://1drv.ms/u/s!Atj7rBR0X5zagZwcFs1oIqXeV5r4Cw?e=pbnNES

sorry I am not able to retrieve which exact version it was. The openvslam code base used is a relatively old version from 2019.

Best,

it works, thank you very much!