Giter Site home page Giter Site logo

stella-cv / stella_vslam Goto Github PK

View Code? Open in Web Editor NEW
907.0 37.0 389.0 4.27 MB

This is a unofficial fork of OpenVSLAM (https://github.com/xdspacelab/openvslam)

Home Page: https://stella-cv.rtfd.io/en/latest/

License: Other

C++ 94.66% C 0.31% CMake 4.16% Python 0.02% Shell 0.18% Batchfile 0.08% Dockerfile 0.59%
visual-slam

stella_vslam's Introduction

stella_vslam

CI Documentation Status License


NOTE: This is a community fork of xdspacelab/openvslam. It was created to continue active development of OpenVSLAM on Jan 31, 2021. The original repository is no longer available. Please read the official statement of termination carefully and understand it before using this. The similarities with ORB_SLAM2 in the original version have been removed by #252. If you find any other issues with the license, please point them out. See #37 and #249 for discussion so far.

Versions earlier than 0.3 are deprecated. If you use them, please use them as a derivative of ORB_SLAM2 under the GPL license.


Overview

[PrePrint]

stella_vslam is a monocular, stereo, and RGBD visual SLAM system.

Features

The notable features are:

  • It is compatible with various type of camera models and can be easily customized for other camera models.
  • Created maps can be stored and loaded, then stella_vslam can localize new images based on the prebuilt maps.
  • The system is fully modular. It is designed by encapsulating several functions in separated components with easy-to-understand APIs.
  • We provided some code snippets to understand the core functionalities of this system.

One of the noteworthy features of stella_vslam is that the system can deal with various type of camera models, such as perspective, fisheye, and equirectangular. If needed, users can implement extra camera models (e.g. dual fisheye, catadioptric) with ease. For example, visual SLAM algorithm using equirectangular camera models (e.g. RICOH THETA series, insta360 series, etc) is shown above.

We provided documentation for installation and tutorial. The repository for the ROS wrapper is stella_vslam_ros.

Acknowledgements

OpenVSLAM is based on an indirect SLAM algorithm with sparse features, such as ORB-SLAM/ORB-SLAM2, ProSLAM, and UcoSLAM. The core architecture is based on ORB-SLAM/ORB-SLAM2 and the code has been redesigned and written from scratch to improve scalability, readability, performance, etc. UcoSLAM has implemented the parallelization of feature extraction, map storage and loading earlier. ProSLAM has implemented a highly modular and easily understood system earlier.

Examples

Some code snippets to understand the core functionalities of the system are provided. You can employ these snippets for in your own programs. Please see the *.cc files in ./example directory or check Simple Tutorial and Example.

Installation

Please see Installation chapter in the documentation.

The instructions for Docker users are also provided.

Tutorial

Please see Simple Tutorial chapter in the documentation.

A sample ORB vocabulary file can be downloaded from here. Sample datasets are also provided at here.

If you would like to run visual SLAM with standard benchmarking datasets (e.g. KITTI Odometry dataset), please see SLAM with standard datasets section in the documentation.

Community

Please contact us via GitHub Discussions if you have any questions or notice any bugs about the software.

Currently working on

  • Refactoring
  • Algorithm changes and parameter additions to improve performance
  • Add tests
  • Marker integration
  • Implementation of extra camera models
  • Python bindings
  • IMU integration

The higher up the list, the higher the priority. Feedbacks, feature requests, and contribution are welcome!

License

2-clause BSD license (see LICENSE)

The following files are derived from third-party libraries.

Please use g2o as the dynamic link library because csparse_extension module of g2o is LGPLv3+.

Authors of the original version of OpenVSLAM

Citation of original version of OpenVSLAM

OpenVSLAM won first place at ACM Multimedia 2019 Open Source Software Competition.

If OpenVSLAM helps your research, please cite the paper for OpenVSLAM. Here is a BibTeX entry:

@inproceedings{openvslam2019,
  author = {Sumikura, Shinya and Shibuya, Mikiya and Sakurada, Ken},
  title = {{OpenVSLAM: A Versatile Visual SLAM Framework}},
  booktitle = {Proceedings of the 27th ACM International Conference on Multimedia},
  series = {MM '19},
  year = {2019},
  isbn = {978-1-4503-6889-6},
  location = {Nice, France},
  pages = {2292--2295},
  numpages = {4},
  url = {http://doi.acm.org/10.1145/3343031.3350539},
  doi = {10.1145/3343031.3350539},
  acmid = {3350539},
  publisher = {ACM},
  address = {New York, NY, USA}
}

The preprint can be found here.

Reference

  • Raúl Mur-Artal, J. M. M. Montiel, and Juan D. Tardós. 2015. ORB-SLAM: a Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics 31, 5 (2015), 1147–1163.
  • Raúl Mur-Artal and Juan D. Tardós. 2017. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics 33, 5 (2017), 1255–1262.
  • Dominik Schlegel, Mirco Colosi, and Giorgio Grisetti. 2018. ProSLAM: Graph SLAM from a Programmer’s Perspective. In Proceedings of IEEE International Conference on Robotics and Automation (ICRA). 1–9.
  • Rafael Muñoz-Salinas and Rafael Medina Carnicer. 2019. UcoSLAM: Simultaneous Localization and Mapping by Fusion of KeyPoints and Squared Planar Markers. arXiv:1902.03729.
  • Mapillary AB. 2019. OpenSfM. https://github.com/mapillary/OpenSfM.
  • Giorgio Grisetti, Rainer Kümmerle, Cyrill Stachniss, and Wolfram Burgard. 2010. A Tutorial on Graph-Based SLAM. IEEE Transactions on Intelligent Transportation SystemsMagazine 2, 4 (2010), 31–43.
  • Rainer Kümmerle, Giorgio Grisetti, Hauke Strasdat, Kurt Konolige, and Wolfram Burgard. 2011. g2o: A general framework for graph optimization. In Proceedings of IEEE International Conference on Robotics and Automation (ICRA). 3607–3613.

stella_vslam's People

Contributors

alexeymerzlyakov avatar cambloid avatar derpda avatar glpuga avatar haruishi43 avatar ilim0t avatar jacobjohnso avatar jeffin07 avatar jjd9 avatar kbergel avatar kensakurada avatar klintan avatar m-pilia avatar madnessasap avatar matsuren avatar mikiyashibuya avatar mirellameelo avatar oseiskar avatar reunanen avatar saweer avatar schweitzer avatar shiba24 avatar shinsumicco avatar steffenehrle avatar takanotume24 avatar thibaudm avatar urbste avatar vwvw avatar ymd-stella avatar yukatayu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stella_vslam's Issues

Failed to load ORB Vocabulary in Docker

I have successfully compiled the Openvslam in Ubuner 18.04 docker with the instruction in the link,
https://openvslam-community.readthedocs.io/en/latest/docker.html#building-docker-images

After compilation, the following error message was given when I was trying to run the samples in the following link,
https://openvslam-community.readthedocs.io/en/latest/simple_tutorial.html#chapter-simple-tutorial.

I have confirmed that I have downloaded the dbow2 file to the directory and change the -v accordingly. Still, the following error message occurred.

Thank you very much for your help !

[2021-04-28 09:11:24.241] [I] loading ORB vocabulary: ./orb_vocab.dbow2
terminate called after throwing an instance of 'std::runtime_error'
what(): Vocabulary::fromStream invalid signature
*** Aborted at 1619601084 (unix time) try "date -d @1619601084" if you are using GNU date ***
PC: @ 0x7f6fd8ab5fb7 gsignal
*** SIGABRT (@0x237) received by PID 567 (TID 0x7f6fdc984c00) from PID 567; stack trace: ***
@ 0x7f6fdbce1980 (unknown)
@ 0x7f6fd8ab5fb7 gsignal
@ 0x7f6fd8ab7921 abort
@ 0x7f6fd9336957 (unknown)
@ 0x7f6fd933cae6 (unknown)
@ 0x7f6fd933cb21 std::terminate()
@ 0x7f6fd933cd54 __cxa_throw
@ 0x7f6fd79e85ea fbow::Vocabulary::fromStream()
@ 0x7f6fd79e8c12 fbow::Vocabulary::readFromFile()
@ 0x7f6fdbf90f8a openvslam::system::system()
@ 0x5578356f5def (unknown)
@ 0x5578356f4b15 (unknown)
@ 0x7f6fd8a98bf7 __libc_start_main
@ 0x5578356f4fba (unknown)
Aborted (core dumped)

cmake errors when using Ubuntu 16.04

**I compile openvslam as the installation instructions on https://openvslam-community.readthedocs.io/en/latest/installation.html.

The instructions in CMakeLists.txt in openvslam/test
download_project(PROJ googletest
URL https://github.com/google/googletest/archive/release-1.10.0.tar.gz
URL_HASH SHA1=9c89be7df9c5e8cb0bc20b3c4b39bf7e82686770
DOWNLOAD_NO_PROGRESS YES)

does not work, and I modify it as

download_project(PROJ googletest
URL https://github.com/google/googletest/releases/tag/release-1.10.0/release-1.10.0.tar.gz
URL_HASH SHA1=da39a3ee5e6b4b0d3255bfef95601890afd80709
DOWNLOAD_NO_PROGRESS YES)**

Errors occur when I type in the following instructions:

zeng@zeng-System-Product-Name:/media/zeng/work/openvslam/build$ cmake \

-DUSE_PANGOLIN_VIEWER=ON \
-DINSTALL_PANGOLIN_VIEWER=ON \
-DUSE_SOCKET_PUBLISHER=OFF \
-DUSE_STACK_TRACE_LOGGER=ON \
-DBUILD_TESTS=ON \
-DBUILD_EXAMPLES=ON \
..

-- Build type: Release
-- ccache: Enabled
-- Address/Memory sanitizer: DISABLED
-- Architecture-aware optimization: DISABLED
-- Found OpenMP_C: -fopenmp
-- Found OpenMP_CXX: -fopenmp
-- Found OpenMP: TRUE
-- Use OpenCV 3.4.1
CMake Warning (dev) at /usr/local/share/cmake-3.15/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

FindOpenGL found both a legacy GL library:

OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

and GLVND libraries for OpenGL and GLX:

OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
/usr/local/share/cmake-3.15/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
/usr/local/lib/cmake/g2o/g2oConfig.cmake:4 (find_dependency)
src/openvslam/CMakeLists.txt:10 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.

-- Failed to find CXSparse - Could not find CXSparse include directory, set CXSPARSE_INCLUDE_DIR to directory containing cs.h
-- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
-- Found AMD header in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
-- Found CAMD header in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
-- Found COLAMD header in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
-- Found CCOLAMD header in: /usr/include/suitesparse
-- Found SuiteSparse_config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
-- Found SuiteSparse_config header in: /usr/include/suitesparse
-- Adding librt: /usr/lib/x86_64-linux-gnu/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Found METIS library: /usr/local/lib/libmetis.so.
-- OpenMP: DISABLED
-- SSE3 for ORB extraction: DISABLED
-- SSE for floating-point operation: DISABLED
-- BoW framework: FBoW (found in /usr/local/include)
-- No preference for use of exported glog CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported glog CMake configuration if available.
-- Failed to find installed glog CMake configuration, searching for glog build directories exported with CMake.
-- Failed to find an installed/exported CMake configuration for glog, will perform search for installed glog components.
-- Stack trace logger: ENABLED
-- Google Perftools: DISABLED
-- Viewer for examples: PangolinViewer
-- Downloading/updating googletest
-- Configuring done
-- Generating done
-- Build files have been written to: /media/zeng/work/openvslam/build/googletest-download
Scanning dependencies of target googletest-download
[ 11%] Performing download step (download, verify and extract) for 'googletest-download'
-- verifying file...
file='/media/zeng/work/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
-- File already exists and hash match (skip download):
file='/media/zeng/work/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
SHA1='da39a3ee5e6b4b0d3255bfef95601890afd80709'
-- extracting...
src='/media/zeng/work/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
dst='/media/zeng/work/openvslam/build/googletest-src'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 22%] No patch step for 'googletest-download'
[ 33%] No update step for 'googletest-download'
[ 44%] No configure step for 'googletest-download'
[ 55%] No build step for 'googletest-download'
[ 66%] No install step for 'googletest-download'
[ 77%] No test step for 'googletest-download'
[ 88%] Completed 'googletest-download'
[100%] Built target googletest-download
CMake Error at test/CMakeLists.txt:12 (add_subdirectory):
The source directory

/media/zeng/work/openvslam/build/googletest-src

does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "/media/zeng/work/openvslam/build/CMakeFiles/CMakeOutput.log".
See also "/media/zeng/work/openvslam/build/CMakeFiles/CMakeError.log".

Could you please give me some suggestions?Thank you in advance.

g2o error on adding "frame_publsiher.h" in custom executable

Hello, I am making coustom ROS2 node in openvslam_ros package("openvslam_ros_mod.cpp and hpp") to get the current frame image and send it as image topic. The problem occur when adding "openvlsam/publish/ frame_publisher.h" in to my wrapper code. The compliler outputs following error message when compiling the preprocessor;

In file included from /usr/local/include/g2o/core/base_fixed_sized_edge.h:292,
from /usr/local/include/g2o/types/sba/edge_project_psi2uv.h:30,
from /usr/local/include/g2o/types/sba/types_six_dof_expmap.h:38,
from /usr/local/include/openvslam/util/converter.h:8,
from /usr/local/include/openvslam/data/frame.h:6,
from /usr/local/include/openvslam/tracking_module.h:5,
from /usr/local/include/openvslam/publish/frame_publisher.h:5,
from /home/robotis/colcon_ws/src/openvslam_ros/src/openvslam_ros_mod.cpp:4:
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp: In instantiation of ‘void g2o::BaseFixedSizedEdge<D, E, VertexTypes>::linearizeOplusN() [with int N = 0; int D = 3; E = Eigen::Matrix<double, 3, 1>; VertexTypes = {g2o::VertexSE3Expmap}]’:
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:192:43: required from ‘void g2o::BaseFixedSizedEdge<D, E, VertexTypes>::linearizeOplusNs(std::index_sequence<Ints ...>) [with long unsigned int ...Ints = {0}; int D = 3; E = Eigen::Matrix<double, 3, 1>; VertexTypes = {g2o::VertexSE3Expmap}; std::index_sequence<Ints ...> = std::integer_sequence<long unsigned int, 0>]’
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:200:3: required from ‘void g2o::BaseFixedSizedEdge<D, E, VertexTypes>::linearizeOplus() [with int D = 3; E = Eigen::Matrix<double, 3, 1>; VertexTypes = {g2o::VertexSE3Expmap}]’
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:197:6: required from here
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:166:14: error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray<double, 6>’} has no member named ‘fill’
166 | add_vertex.fill(0.);
| ~~~~~~~~~~~^~~~
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:173:30: error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray<double, 6>’} has no member named ‘data’
173 | vertex->oplus(add_vertex.data());
| ~~~~~~~~~~~^~~~
/usr/local/include/g2o/core/base_fixed_sized_edge.hpp:179:30: error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray<double, 6>’} has no member named ‘data’
179 | vertex->oplus(add_vertex.data());
| ~~~~~~~~~~~^~~~

one wired thing is that, src/pangolin_viewer/viewer.cc in openvslam package compiled ok without any error messages, though it also declare "openvlsam/publish/ frame_publisher.h" as i do in the preprocessor.

The things I tried so far is shown below and none of them works.

  1. compile g2o and openvslam package with c++14 option and sudo make install

  2. compile g2o with master brach instead of "9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a" branch recommend by community

Is anyone have same issue and know how to solve it?

Documentation needs to be updated

Hi, thanks for maintaining the openVSLAM.

  1. Build instruction doesn't build executable

I try to fresh install using the OpenVSLAM-Community documentation on Installation section, however, I found that it does not build the executable like run_video_slam, etc. This makes it hard to simply follow the tutorial here.

Shouldn't we update the build instruction to

cd /path/to/openvslam
mkdir build && cd build
cmake \
    -DBUILD_WITH_MARCH_NATIVE=ON \
    -DUSE_PANGOLIN_VIEWER=OFF \
    -DUSE_SOCKET_PUBLISHER=ON \
    -DUSE_STACK_TRACE_LOGGER=ON \
    -DBOW_FRAMEWORK=DBoW2 \
    -DBUILD_TESTS=ON \
    -DBUILD_EXAMPLES=ON \

    ..
make -j4

to also build the examples.

  1. ROS example instruction

When I followed the build instruction for ROS. It will fail with

Base path: /home/jy/openvslam_ws
Source space: /home/jy/openvslam_ws/src
Build space: /home/jy/openvslam_ws/build
Devel space: /home/jy/openvslam_ws/devel
Install space: /home/jy/openvslam_ws/install
####
#### Running command: "cmake /home/jy/openvslam_ws/src -DUSE_PANGOLIN_VIEWER=ON -DUSE_SOCKET_PUBLISHER=OFF -DCATKIN_DEVEL_PREFIX=/home/jy/openvslam_ws/devel -DCMAKE_INSTALL_PREFIX=/home/jy/openvslam_ws/install -G Unix Makefiles" in "/home/jy/openvslam_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/jy/openvslam_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/jy/openvslam_ws/build/test_results
-- Forcing gtest/gmock from source, though one was otherwise available.
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") 
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 2 packages in topological order:
-- ~~  - cv_bridge
-- ~~  - openvslam_ros
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'cv_bridge'
-- ==> add_subdirectory(cv_bridge)
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version "2.7.17") 
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   python
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.17", minimum required is "2.7") 
-- +++ processing catkin package: 'openvslam_ros'
-- ==> add_subdirectory(openvslam_ros)
-- Build type: Release
-- Address/Memory sanitizer: DISABLED
-- Stack trace logger: DISABLED
-- Google Perftools: DISABLED
-- Architecture-aware optimization (-march=native): DISABLED
-- C++11 support: OK (-std=c++17)
CMake Error at openvslam_ros/CMakeLists.txt:124 (find_package):
  By not providing "Findopenvslam.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "openvslam", but CMake did not find one.

  Could not find a package configuration file provided by "openvslam" with
  any of the following names:

    openvslamConfig.cmake
    openvslam-config.cmake

  Add the installation prefix of "openvslam" to CMAKE_PREFIX_PATH or set
  "openvslam_DIR" to a directory containing one of the above files.  If
  "openvslam" provides a separate development package or SDK, be sure it has
  been installed.


-- Configuring incomplete, errors occurred!
See also "/home/jy/openvslam_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/jy/openvslam_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

I think it should be updated such that beginners/ practitioners could seamlessly use it. But since you refactor out the ros package of openVSLAM. I am not sure how to do it.

Merge bug fixes

free() invalid pointer

Hello i tried openvslam with RICOH theta V, but for some reason i have a memory problem. I use rpi4 b 2GB RAM,
Below i show the configuration on the terminal. I am tryin the monocular example, i haven't changed anything in the code.
problem

Setting up CI for ROS

  • build (ROS)
  • build (ROS2)
  • run (ROS)
  • run (ROS2)
  • Add Dockerfile.ros.ci and Dockerfile.ros2.ci
  • Update Dockerfile.ros
  • Add Dockerfile.ros2

Stereo Rectifier for fisheye stereo camera

Hi everyone, I'm currently working with the camera Realsense T265C. Is a Stereo camera with fisheye lenses. When calling openvslam::util::stereo_rectifier I've notice that it is only working for perspective lenses although in the code there's already the option to rectify fisheye images . Is there any reason for that?

Timeline for IMU

Thanks to all who contributed to this project. Also thanks for the community fork.

Is there a timeline for integrating the IMU functionality? Or a WIP branch? There are a number of cameras now equipped with the IMU(intel RealSense, StereoLab's Zed).

Much thanks
Weiwu

Describes how relocalization can fail if the angle from the candidate keyframe is too large

In the case of LiDAR SLAM, the most commonly used LiDAR is a horizontal field of view of 270 to 360 degrees. In this case, if we use a map created by going through a road only once, localization is possible when going through the same road in the opposite direction.
On the other hand, in Visual SLAM, a camera with a relatively narrow horizontal field of view of 80 to 150 degrees may be used. In this case, if we use a map created by going through a road only once, it is impossible to localize when going through the same road in the opposite direction.
Furthermore, based on the same principle, if the field of view is too narrow, "relocalization can fail if the angle from the candidate keyframe is too large."

It would be useful for those who are not familiar with Visual SLAM if these facts are explained using illustrations.

Continue publishing under 2-clause BSD license

Check out the work required to continue publishing under the BSD license.

#35 (comment)

I think it would be good to clarify that the similarity between OpenVSLAM and ORB_SLAM2 is based on the ORB_SLAM2 paper

Tasks:

  • (moved) #239
  • Clarify the scope of contribution for each paper and treat it appropriately in README.md (for moral issue)
    • ORB_SLAM/ORB_SLAM2
    • ProSLAM
    • UcoSLAM

Failed to find CXSparse

OS: Ubuntu 18.04
branch: main (6ce268c)

Following the installation instructions in the docs, after installing all deps, and running cmake .. for openvslam, I saw the error

Failed to find CXSparse - Could not find CXSparse include directory, set CXSPARSE_INCLUDE_DIR to directory containing cs.h

It appears that the debian for suitesparse installed by sudo apt install libsuitesparse-dev installs the cs.h header in /usr/include/suitesparse/cs.h rather than one of the CXSPARSE_CHECK_INCLUDE_DIRS listed in FindCXSparse.cmake

https://github.com/OpenVSLAM-Community/openvslam/blob/6ce268c29539eba8ba624abc39fd5d178c85d3d0/cmake/FindCXSparse.cmake#L127-L132

I modified the above file to include the search path /usr/include/suitesparse and the build succeeded. I'm not a CMake expert, so please confirm this an appropriate addition and I can issue a PR.

Potential bug in pose estimation

(NOT VALID ISSUE)

Hi,

I think there is a potential bug in pose estimation. I am using the latest master openvslam (downloaded and compiled yesterday) and when performing either SLAM or localization, the angle estimation jumps occasionally as you can see from the video.

The pose estimation comes directly from the OpenVSLAM

Running example with simple tutorial failed

Hi, I followed the installation instruction in the tutorial document and everything during the installation seems fine. But when I run the example in simple tutorial section, an error occured as following:
zl@zl-desktop:~/openvslam/build$ ./run_video_slam -v orb_vocab.fbow -m aist_living_lab_1/video.mp4 -c aist_living_lab_1/config.yaml [2021-06-02 09:30:06.105] [I] config file loaded: aist_living_lab_1/config.yaml yaml-cpp: error at line 0, column 0: invalid node; this may result from using a map iterator as a sequence iterator, or vice-versa
The same issue happened when I was trying the docker version as well.

Thanks

The yaml file as following:

Equirectangular model for RICOH THETA S

#==============#

Camera Model

#==============#

Camera.name: "RICOH THETA S 960"
Camera.setup: "monocular"
Camera.model: "equirectangular"

Camera.fps: 30.0
Camera.cols: 1920
Camera.rows: 960

Camera.color_order: "RGB"

#================#

ORB Parameters

#================#

Feature.max_num_keypoints: 2000
Feature.scale_factor: 1.2
Feature.num_levels: 8
Feature.ini_fast_threshold: 20
Feature.min_fast_threshold: 7
Feature.mask_rectangles:

  • [0.0, 1.0, 0.0, 0.1]
  • [0.0, 1.0, 0.84, 1.0]
  • [0.0, 0.2, 0.7, 1.0]
  • [0.8, 1.0, 0.7, 1.0]

error occurred when running video slam on server.

I excuted this shell script on the server (VM instance on Compute Engine. Ubuntu 18.04.).
I make environment for socket viewer.
I got an error. How can I fix it?

script I executed.

#! /bin/bash
VIDEO_PATH=$1

  ${OPENVSLAM_PATH}/openvslam/build/run_video_slam \
      -v ${OPENVSLAM_PATH}/openvslam/build/orb_vocab.fbow \
      -m ${VIDEO_PATH} \
      -c /openvslam/config/theta_v_mp4.yaml \
      --frame-skip 1 \
      --no-sleep \
      --auto-term \
      --map-db ${OPENVSLAM_PATH}/openvslam/build/map.msg \
      --eval-log \

This is the log.

OpenVSLAM root:/openvslam$ source run_openvslam_from_video.sh data/kamakura/R0013872.MP4
[2021-09-18 12:20:05.596] [I] config file loaded: /openvslam/config/theta_v_mp4.yaml
[2021-09-18 12:20:05.596] [I] 
  ___               __   _____ _      _   __  __ 
 / _ \ _ __  ___ _ _\ \ / / __| |    /_\ |  \/  |
| (_) | '_ \/ -_) ' \\ V /\__ \ |__ / _ \| |\/| |
 \___/| .__/\___|_||_|\_/ |___/____/_/ \_\_|  |_|
      |_|                                        
Copyright (C) 2019,
National Institute of Advanced Industrial Science and Technology (AIST)
All rights reserved.
This is free software,
and you are welcome to redistribute it under certain conditions.
See the LICENSE file.
Camera:
  color_order: !<!> RGB
  setup: !<!> monocular
  rows: 1920
  name: !<!> RICOH THETA V
  fps: 30.0
  cols: 3840
  model: !<!> equirectangular
Tracking:
  max_num_keypoints: 5000
Feature:
  mask_rectangles:
    - [0.0, 1.0, 0.0, 0.1]
    - [0.0, 1.0, 0.84, 1.0]
    - [0.0, 0.2, 0.7, 1.0]
    - [0.8, 1.0, 0.7, 1.0]
  scale_factor: 1.2
  min_fast_threshold: 7
  ini_fast_threshold: 20
  num_levels: 8
Mapping:
  baseline_dist_thr_ratio: 0.02
[2021-09-18 12:20:05.596] [I] loading ORB vocabulary: /root/catkin_ws/src/openvslam/build/orb_vocab.fbow
[2021-09-18 12:20:05.624] [I] startup SLAM system
[2021-09-18 12:20:05.625] [I] start mapping module
[2021-09-18 12:20:05.625] [I] start global optimization module
[2021-09-18 12:20:05] [info] asio async_connect error: asio.system:111 (Connection refused)
[2021-09-18 12:20:05] [info] Error getting remote endpoint: asio.system:107 (Transport endpoint is not connected)
[2021-09-18 12:20:05] [error] handle_connect error: Connection refused

This is the docker file I built.

FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive

ARG CMAKE_INSTALL_PREFIX=/usr/local
ARG NUM_THREADS=24
ARG EIGEN3_VERSION=3.3.7
ARG G2O_COMMIT=9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a
ARG OPENCV_VERSION=3.4.0
ARG SIOCLIENT_COMMIT=ff6ef08e45c594e33aa6bc19ebdd07954914efe0
ARG OPENVSLAM_PATH=/root/catkin_ws/src

##############################################################################
##                                Install ROS                               ##
##############################################################################
# setup keys
RUN apt update && apt install -my \
    wget gnupg \
    && apt clean \
    && rm -rf /var/lib/apt/lists/* \
    && apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# setup sources.list
RUN echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros1-latest.list
# install ros
RUN apt update && apt install -y \
    ros-melodic-desktop-full \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# install dependecies
RUN apt update && apt install -y \
    python-rosdep \
    python-rosinstall \
    python-rosinstall-generator \
    python-wstool \
    python-catkin-tools \
    build-essential \ 
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# initiliaze rosdep
RUN rosdep init && rosdep update

##############################################################################
##                       Install Additional Utilities                       ##
##############################################################################
RUN apt update && apt install -y \
    iproute2 \
    iputils-ping \
    net-tools \
    terminator \
    nautilus \
    gedit \
    vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# fix terminator error
RUN apt update && apt install -y \
    dbus-x11 \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# set terminator config
COPY include/config /root/.config/terminator/config

##############################################################################
##                             Install OpenVSLAM                            ##
##############################################################################

# install dependencies via apt
ENV DEBCONF_NOWARNINGS yes
RUN set -x && \
    apt-get update -y -qq && \
    apt-get upgrade -y -qq --no-install-recommends && \
    : "basic dependencies" && \
    apt-get install -y -qq \
    build-essential \
    pkg-config \
    cmake \
    git \
    wget \
    curl \
    tar \
    unzip && \
    : "g2o dependencies" && \
    apt-get install -y -qq \
    libgoogle-glog-dev \
    libatlas-base-dev \
    libsuitesparse-dev \
    libglew-dev && \
    : "OpenCV dependencies" && \
    apt-get install -y -qq \
    libgtk-3-dev \
    libjpeg-dev \
    libpng++-dev \
    libtiff-dev \
    libopenexr-dev \
    libwebp-dev \
    ffmpeg \
    libavcodec-dev \
    libavformat-dev \
    libavutil-dev \
    libswscale-dev \
    libavresample-dev && \
    : "other dependencies" && \
    apt-get install -y -qq \
    libyaml-cpp-dev && \
    : "remove cache" && \
    apt-get autoremove -y -qq && \
    rm -rf /var/lib/apt/lists/*

ENV CPATH=${CMAKE_INSTALL_PREFIX}/include:${CPATH}
ENV C_INCLUDE_PATH=${CMAKE_INSTALL_PREFIX}/include:${C_INCLUDE_PATH}
ENV CPLUS_INCLUDE_PATH=${CMAKE_INSTALL_PREFIX}/include:${CPLUS_INCLUDE_PATH}
ENV LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${LIBRARY_PATH}
ENV LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}

ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

# Eigen
WORKDIR /tmp
RUN set -x && \
    wget -q https://gitlab.com/libeigen/eigen/-/archive/${EIGEN3_VERSION}/eigen-${EIGEN3_VERSION}.tar.bz2 && \
    tar xf eigen-${EIGEN3_VERSION}.tar.bz2 && \
    rm -rf eigen-${EIGEN3_VERSION}.tar.bz2 && \
    cd eigen-${EIGEN3_VERSION} && \
    mkdir -p build && \
    cd build && \
    cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
    .. && \
    make -j${NUM_THREADS} && \
    make install && \
    cd /tmp && \
    rm -rf *
ENV Eigen3_DIR=${CMAKE_INSTALL_PREFIX}/share/eigen3/cmake

# g2o
WORKDIR /tmp
RUN set -x && \
    git clone https://github.com/RainerKuemmerle/g2o.git && \
    cd g2o && \
    git checkout ${G2O_COMMIT} && \
    mkdir -p build && \
    cd build && \
    cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
    -DBUILD_SHARED_LIBS=ON \
    -DBUILD_UNITTESTS=OFF \
    -DG2O_USE_CHOLMOD=OFF \
    -DG2O_USE_CSPARSE=ON \
    -DG2O_USE_OPENGL=OFF \
    -DG2O_USE_OPENMP=ON \
    -DG2O_BUILD_APPS=OFF \
    -DG2O_BUILD_EXAMPLES=OFF \
    -DG2O_BUILD_LINKED_APPS=OFF \
    .. && \
    make -j${NUM_THREADS} && \
    make install && \
    cd /tmp && \
    rm -rf *
ENV g2o_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/g2o

# OpenCV
WORKDIR /tmp
RUN set -x && \
    wget -q https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
    unzip -q ${OPENCV_VERSION}.zip && \
    rm -rf ${OPENCV_VERSION}.zip && \
    cd opencv-${OPENCV_VERSION} && \
    mkdir -p build && \
    cd build && \
    cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
    -DBUILD_DOCS=OFF \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_JASPER=OFF \
    -DBUILD_OPENEXR=OFF \
    -DBUILD_PERF_TESTS=OFF \
    -DBUILD_TESTS=OFF \
    -DBUILD_opencv_apps=OFF \
    -DBUILD_opencv_dnn=OFF \
    -DBUILD_opencv_ml=OFF \
    -DBUILD_opencv_python_bindings_generator=OFF \
    -DENABLE_CXX11=ON \
    -DENABLE_FAST_MATH=ON \
    -DWITH_EIGEN=ON \
    -DWITH_FFMPEG=ON \
    -DWITH_OPENMP=ON \
    .. && \
    make -j${NUM_THREADS} && \
    make install && \
    cd /tmp && \
    rm -rf *
ENV OpenCV_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/opencv4

# socket.io-client-cpp
WORKDIR /tmp
RUN set -x && \
    git clone https://github.com/shinsumicco/socket.io-client-cpp.git && \
    cd socket.io-client-cpp && \
    git checkout ${SIOCLIENT_COMMIT} && \
    git submodule init && \
    git submodule update && \
    mkdir -p build && \
    cd build && \
    cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
    -DBUILD_UNIT_TESTS=OFF \
    .. && \
    make -j${NUM_THREADS} && \
    make install && \
    cd /tmp && \
    rm -rf *
ENV sioclient_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/sioclient

# protobuf
WORKDIR /tmp
RUN set -x && \
    apt-get update -y -qq && \
    apt-get upgrade -y -qq --no-install-recommends && \
    apt-get install -y -qq autogen autoconf libtool && \
    wget -q https://github.com/google/protobuf/archive/v3.6.1.tar.gz && \
    tar xf v3.6.1.tar.gz && \
    cd protobuf-3.6.1 && \
    ./autogen.sh && \
    ./configure --prefix=${CMAKE_INSTALL_PREFIX} --enable-static=no && \
    make -j${NUM_THREADS} && \
    make install && \
    cd /tmp && \
    rm -rf * && \
    apt-get purge -y -qq autogen autoconf libtool && \
    apt-get autoremove -y -qq && \
    rm -rf /var/lib/apt/lists/*

# OpenVSLAM
ENV OPENVSLAM_PATH=${OPENVSLAM_PATH}
RUN mkdir -p ${OPENVSLAM_PATH}
WORKDIR ${OPENVSLAM_PATH}
RUN set -x && \
    : "OpenVSLAM dependencies" && \
    apt-get update -y -qq && \
    apt-get install -y -qq \
    ros-melodic-libg2o && \
    : "remove cache" && \
    apt-get autoremove -y -qq && \
    rm -rf /var/lib/apt/lists/*

RUN set -x && \
    git clone --depth 1 https://github.com/OpenVSLAM-Community/openvslam.git && \
    cd openvslam && \
    git submodule update -i --recursive && \
    mkdir -p build && \
    cd build && \
    CMAKE_PREFIX_PATH=/opt/ros/melodic/lib/cmake cmake \
    -DUSE_SOCKET_PUBLISHER=ON \
    -DBUILD_EXAMPLES=ON \
    -DUSE_STACK_TRACE_LOGGER=ON \
    -DINSTALL_PANGOLIN_VIEWER=OFF \
    -DUSE_PANGOLIN_VIEWER=OFF \
    .. && \
    make -j${NUM_THREADS} && \
    make install && \
    rm -rf CMakeCache.txt CMakeFiles Makefile cmake_install.cmake example src && \
    chmod -R 777 ./*

# Download dataset
COPY /include/download_dataset.sh /download_dataset.sh
RUN /download_dataset.sh

##############################################################################
##                     Install Additional ROS Packages                      ##
##############################################################################
# OpenVSLAM ROS package
RUN mkdir -p /root/catkin_ws/src
RUN apt update && apt install -y \
    ros-melodic-image-transport
WORKDIR /
RUN git clone --branch melodic --depth 1 https://github.com/ros-perception/vision_opencv.git
RUN cp -r vision_opencv/cv_bridge /root/catkin_ws/src
RUN rm -rf vision_opencv

WORKDIR /root/catkin_ws/src
RUN git clone --branch ros --depth 1 https://github.com/OpenVSLAM-Community/openvslam_ros.git
WORKDIR /root/catkin_ws
# RUN ["/bin/bash", "-c", "source /opt/ros/melodic/setup.bash && catkin build -DUSE_PANGOLIN_VIEWER=OFF -DUSE_SOCKET_PUBLISHER=ON"]

##############################################################################
##                              Bashrc Setting                              ##
##############################################################################
# set alias
COPY ./include/alias.sh /alias.sh
RUN echo "source /alias.sh" >> ~/.bashrc

# display git branch name and container name
COPY ./include/git-prompt.sh /git-prompt.sh
COPY ./include/git-completion.bash /git-completion.bash
RUN echo "source /git-prompt.sh" >> ~/.bashrc
RUN echo "source /git-completion.bash" >> ~/.bashrc
RUN echo "GIT_PS1_SHOWDIRTYSTATE=true" >> ~/.bashrc
RUN echo "export PS1='\[\e[1;44m\]OpenVSLAM\[\e[0m\] \u:\w\[\033[1;31m\]\$(__git_ps1)\[\033[00m\]\$ '">> ~/.bashrc

# catkin build
COPY ./include/catkin_build_for_socket.sh /catkin_build.sh
# RUN echo "source /catkin_build.sh" >> ~/.bashrc

WORKDIR /openvslam
ENTRYPOINT ["/bin/bash"]

I run container image by this command.

#! /bin/bash

# pangolin or socket
VIEWER_TYPE=socket

docker run \
    --name openvslam_${VIEWER_TYPE} \
    -it --rm \
    --net host \
    --volume /etc/localtime:/etc/localtime:ro \
    --volume $PWD/../../vslam/openvslam:/openvslam \
    openvslam-intel:${VIEWER_TYPE}

installation failed at last command make -j4

Hi, I followed all of the OpenVSlam installation instructions and got a fatal error while running the make -j4 command:

/home/rover/openvslam/src/openvslam/data/bow_vocabulary.h:10:10: fatal error: fbow/vocabulary.h: No such file or directory
   10 | #include <fbow/vocabulary.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

The previous command was:

cmake \
   -DUSE_PANGOLIN_VIEWER=ON \
   -DINSTALL_PANGOLIN_VIEWER=ON \
   -DUSE_SOCKET_PUBLISHER=OFF \
   -DUSE_STACK_TRACE_LOGGER=ON \
   -DBUILD_TESTS=ON \
   -DBUILD_EXAMPLES=ON \
   ..

And I got:

-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type: Release
-- ccache: Disabled
-- Address/Memory sanitizer: DISABLED
-- Architecture-aware optimization: DISABLED
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "3.3") 
-- Found OpenCV: /usr (found suitable version "4.2.0", minimum required is "4.0") found components: core imgcodecs videoio features2d calib3d highgui 
-- Use OpenCV 4.2.0
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
  Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
  available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

  and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

  OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
  compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /usr/local/lib/cmake/g2o/g2oConfig.cmake:4 (find_dependency)
  src/openvslam/CMakeLists.txt:10 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so   
-- Failed to find CXSparse - Could not find CXSparse include directory, set CXSPARSE_INCLUDE_DIR to directory containing cs.h
-- Found BLAS: /usr/lib/x86_64-linux-gnu/libf77blas.so;/usr/lib/x86_64-linux-gnu/libatlas.so  
-- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
-- Found AMD header in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
-- Found CAMD header in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
-- Found COLAMD header in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
-- Found CCOLAMD header in: /usr/include/suitesparse
-- Found SuiteSparse_config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
-- Found SuiteSparse_config header in: /usr/include/suitesparse
-- Adding librt: /usr/lib/x86_64-linux-gnu/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Did not find METIS library (optional SuiteSparse dependency)
-- Found SuiteSparse: TRUE (found version "5.7.1") 
-- OpenMP: DISABLED
-- SSE3 for ORB extraction: DISABLED
-- SSE for floating-point operation: DISABLED
-- BoW framework: FBoW (found in /usr/local/include)
-- No preference for use of exported glog CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported glog CMake configuration if available.
-- Found installed version of glog: /usr/local/lib/cmake/glog
-- Detected glog version: 0.6.0
-- Found Glog: glog::glog  
-- Stack trace logger: ENABLED
-- Google Perftools: DISABLED
-- Viewer for examples: PangolinViewer
-- Downloading/updating googletest
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rover/openvslam/build/googletest-download
Scanning dependencies of target googletest-download
[ 11%] Creating directories for 'googletest-download'
[ 22%] Performing download step (download, verify and extract) for 'googletest-download'
-- Downloading...
   dst='/home/rover/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
   timeout='none'
-- Using src='https://github.com/google/googletest/archive/release-1.10.0.tar.gz'
-- verifying file...
       file='/home/rover/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
-- Downloading... done
-- extracting...
     src='/home/rover/openvslam/build/googletest-download/googletest-download-prefix/src/release-1.10.0.tar.gz'
     dst='/home/rover/openvslam/build/googletest-src'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 33%] No patch step for 'googletest-download'
[ 44%] No update step for 'googletest-download'
[ 55%] No configure step for 'googletest-download'
[ 66%] No build step for 'googletest-download'
[ 77%] No install step for 'googletest-download'
[ 88%] No test step for 'googletest-download'
[100%] Completed 'googletest-download'
[100%] Built target googletest-download
-- Found PythonInterp: /usr/bin/python3.8 (found version "3.8.10") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rover/openvslam/build

Any idea why I got this error ?

develop branch

The develop branch has translated comments and initial support for windows build. could the branch be forked as well?

Limitations of relocalization

The conditions for successful relocalization are difficult for non-specialists to understand. In this issue, we will consider adding documentation, logs, and visualization.

Documentation

Close camera position and camera angle are relatively easy conditions to understand. This is essentially the presence of enough landmarks that can be matched with the features of the frame. In Equirectangular, the relocalization succeeds regardless of the yaw angle of the camera. For models other than Equirectangular, relocalization fails if the yaw angle from the keyframe is significantly different even if the position from the keyframe is the same. See #79 (comment).

Logs

If candidates are empty, or if candidates are rejected, the reason for the rejection should be shown.

Visualization

Since the position and orientation of the candidate keyframes for relocalization are important, it is necessary to be able to see which ones are the candidate keyframes.

TODO

Invalid epipole check in match_for_triangulation

Re-posting this upstream issue here:

The epipole check for triangulating new points is being performed even if reproject_to_bearing returns false and epiplane_in_keyfrm_2 is invalid. This can happen for, for example, perspective cameras when the epipole is not visible. The resulting value of epiplane_in_keyfrm_2 is not normalized which can cause a significant number of potential matches to fail this check.

The fix is in this upstream PR. It can be a very important fix if a perspective camera moves laterally so that the epipole is not in the field of view.

use_robust_matcher_for_relocalization_request

Hi,

I have noticed your recent commit where you have included a new parameter:
use_robust_matcher_for_relocalization_request

Is there any documentation describing what does this parameter really do?

Missign header in frame_publisher.cc

Hi! While trying to build and install the openvslam, an error occurred in the build step. The run of make command raised an error: complaining about std::setprecision that it isn't a member of std. I think there is a missing header in the src/openvslam/publish/frame_publisher.cc.

Adding the header iomanip worked for me, is there any problem with that??

  • OS: Ubuntu 20.04
  • Compiler: c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    err

Remove link to spectrum chat?

Hi,

I glanced through that spectrum and no one's answered anything as far as I could scroll. Maybe we should just put that to rest and remove links to it now that the official maintainers have given up on the project entirely.

Localize with different camera

Hi,

I built a map using a stereo camera where the image size was 1280 by 1024 and I am trying to localize a different camera in the map with image size 1344 by 720. However I can't seem to localize the new camera. I have calibrated the new camera and fed in the right parameters. I looked at this issue xdspacelab/openvslam#388. but cant seem to get my data to work. Any thoughts ? I can share my data if need be.
Thanks

ORB SLAM Version

Hi the framework input is orb_vocab.fbow, Which algorithm version does this follow , ORB SLAM2 or ORB SLAM3?

Visual inertial

Dear sir/mam,
Im beginner in slam algorithm and the concept is new to me ,currently learning about visual inertial slam could you please provide some detail on how you integrated imu with openvslam. We are witnessing commercialization of slam in lot of ar products like magic leap, hololens, Arcore and arkit what do you think are the missing elements in opensource vio or visual inertial slam algorithms. What make these algorithms so robust and efficient despite the fact that they are engineered by world class researchers and programmers.
Thank you
Waiting for reply

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.