Original openvslam was adapted to be built on eclipse instead of using cmake, to allow programmers modify the code mainly for testing and usability purposes.
This project is built in eclipse CDT with C++17 and opencv 4, on Ubuntu 20.04. Should work on any:
- C++11+ (this can change if I start rewritting using ranges)
- any C++ IDE, but tips in this file asume you're using eclipse CDT and gcc
- opencv 3+
- any Debian (it includes any Ubuntu, any Linux Mint...)
This readme will be updated with status and compilation tips. Please read ORIGINAL README.md
, a copy from the original openvslam README.
Finshed.
This is finished and unpolished work started and finished on May 2020. Work on this is no longer expected, but can happen any time on without guarantee.
May 25, 2020, it compiles and runs, interactive GUI appears on screen, two threads have names (openVSLAM and Viewer, useful for debugging), but it isn't grabing images from input video file. No errors.
You need dependencies installed as indicated in openvslam installation manual.
You also need orb_vocab_dbow2, a 44MB file provided with openvslam.
The following setting are already set up in eclipse .project
files in this repository.
You'll need to set up these dependencies libraries in your IDE:
Assuming local viewer (I didn't try web viewer):
- pangolin
- GL
- GLEW
OpenCV (this list may contain some unneeded opencv library):
- opencv_core
- opencv_imgproc
- opencv_highgui
- opencv_features2d
- opencv_calib3d
- opencv_video
- opencv_videio
- opencv_imgcodecs
g2o:
- g2o_core
- g2o_stuff
- g2o_types_sba
- g2o_types_sim3
- g2o_solver_dense
- g2o_solver_eigen
- g2o_solver_csparse
- g2o_csparse_extension
- cxsparse
other:
- gomp
- tbb
- yaml-cpp
- /usr/include/suitesparse
- /usr/local/include/eigen3
- /usr/local/include/opencv4 <= Only if you have opencv 4!
- "${workspace_loc:/${ProjName}/src}"
- "${workspace_loc:/${ProjName}/3rd/popl/include}"
- "${workspace_loc:/${ProjName}/3rd/spdlog/include}"
- "${workspace_loc:/${ProjName}/3rd/json/include}"
Also, set up these preprocessor settings in your IDE:
- USE_PANGOLIN_VIEWER
- USE_DBOW2
- GCC C++ compiler dialect: ISO C++17
- GCC C++ compiler miscelanous: Support for pthreads
- GCC Linker General: Support for pthreads
May there be warnings about uninitialized members en spdlog/thread_pool.h .
This folders are excluded from compilation:
- cmake
- docs
- example
- ros
- test
- src/socket_publisher
- Some zero initialization on uninitialized members to silence warnings
- Changed #include <Eigen/... with #include <eigen3/Eigen/... because eigen3/Eigen can be found in usual include path. Adding the include path /usr/local/include/eigen3 didn't work for me, I don't know why.
- src/main.cc is based on example/run_video_slam.cc