OpenVSLAM: A Versatile Visual SLAM Framework

Overview

OpenVSLAM: A Versatile Visual SLAM Framework

Wercker Status Documentation Status License Join the community on Spectrum


NOTE: This is a community fork of xdspacelab/openvslam. It was created to continue active development of OpenVSLAM.


Overview

[PrePrint] [YouTube]

OpenVSLAM is a monocular, stereo, and RGBD visual SLAM system. 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 OpenVSLAM 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.

OpenVSLAM is based on an indirect SLAM algorithm with sparse features, such as ORB-SLAM, ProSLAM, and UcoSLAM. One of the noteworthy features of OpenVSLAM 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.

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.

We provided documentation for installation and tutorial. Please contact us via GitHub issues if you have any questions or notice any bugs about the software.

Motivation

Visual SLAM is regarded as a next-generation technology for supporting industries such as automotives, robotics, and xR. We released OpenVSLAM as an opensource project with the aim of collaborating with people around the world to accelerate the development of this field. In return, we hope this project will bring safe and reliable technologies for a better society.

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

If you want to join our Spectrum community, please join from the following link:

Join the community on Spectrum

Currently working on

  • IMU integration
  • Python bindings
  • Implementation of extra camera models
  • Refactoring

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+.

Contributors

Citation

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.
Issues
  • Continue publishing under 2-clause BSD license

    Continue publishing under 2-clause BSD license

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

    https://github.com/OpenVSLAM-Community/openvslam/pull/35#issuecomment-786322269

    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)
      • [x] ORB_SLAM/ORB_SLAM2
      • [x] ProSLAM
      • [x] UcoSLAM
    compliance 
    opened by ymd-stella 36
  • Process died, occurred in commit f42bfcf

    Process died, occurred in commit f42bfcf

    Recently, I pulled the code with the latest version (openvslam commit code: f42bfcfabbaf3e4fd0021ac3e283bb89a4312db9 openvslam_ros commit code: a1e575aa4b811639a545644b438f5bf83cd17684 )

    The updated codes are compiled successfully and installed in the dynamic link library When I run the executable run_slam in ROS2, it works fine temporarily. However, run time errors occur at any random time without outputting any error messages.

    Using gdb prefix, it shows me the following backtrace just before the process dies.

    #0  0x00007ffff7b24b1d in openvslam::data::landmark::erase_observation(std::shared_ptr<openvslam::data::keyframe> const&) () at /usr/local/lib/libopenvslam.so
    #1  0x00007ffff7bc437e in openvslam::optimize::local_bundle_adjuster::optimize(std::shared_ptr<openvslam::data::keyframe> const&, bool*) const () at /usr/local/lib/libopenvslam.so
    #2  0x00007ffff7ae3dde in openvslam::mapping_module::mapping_with_new_keyframe() ()
        at /usr/local/lib/libopenvslam.so
    #3  0x00007ffff7ae4904 in openvslam::mapping_module::run() () at /usr/local/lib/libopenvslam.so
    #4  0x00007ffff6b62de4 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
    #5  0x00007ffff7243609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff6850293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    

    I've experimented on [intel NUC core i7 10gen with 16GB RAM], [RYZEN 7 5800H with 32GB RAM] and they both show the same issue. Is there anyone who solved this problem?

    bug in progress needs reproducer 
    opened by Sang-Beom-Woo 23
  • Clarify the functional correspondence between the ORB_SLAM2 code and OpenVSLAM code and evaluate the similarities

    Clarify the functional correspondence between the ORB_SLAM2 code and OpenVSLAM code and evaluate the similarities

    Continued from https://github.com/OpenVSLAM-Community/openvslam/issues/37.

    Extracted similar modules between ORB_SLAM2 and OpenVSLAM.

    • data modules
      • Frame - data::frame
      • KeyFrame - data::keyframe
      • MapPoint - data::landmark
      • Map - data::map_database
      • KeyFrameDatabase - data::bow_database
    • visualization modules
      • Viewer, MapDrawer, FrameDrawer - pangolin_viewer, publish::*
    • other modules
      • System - system, io::trajectory_io
      • Initializer - solve::*, initialize::*
      • Tracking - tracking_module, module::frame_tracker, module::keyframe_inserter, module::local_map_updater, module::relocalizer, module::initializer
      • LocalMapping - mapping_module, module::local_map_cleaner, module::two_view_triangulator
      • LoopClosing - global_optimization_module, module::loop_bundle_adjuster, module::loop_detector
      • Optimizer - optimize::*
      • ORBextractor - feature::*
      • ORBmatcher - match::*
      • PnPsolver - solve::pnp_solver
      • Sim3Solver - solve::sim3_solver

    Based on these correspondences, similarity should be assessed by making comparisons at a appropriately abstract level. It is important to note that their creative expression may be limited by ideas. (Please refer Merger doctrine.)

    In summary, under efficiency constraints, if different expressions are considered, they should be removed and rewritten from scratch.

    compliance 
    opened by ymd-stella 17
  • Documentation needs to be updated

    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.

    documentation 
    opened by surfii3z 12
  • Fix stereo rectifier node loader

    Fix stereo rectifier node loader

    This PR fixes the stereo rectification configuration loading, which is reading the configuration from the wrong YAML node (one level up from where it should).

    opened by glpuga 6
  • Add update_pose() API call

    Add update_pose() API call

    Adding new system.h/system.cc API call for updating camera position by known pose. This is a part required for https://github.com/OpenVSLAM-Community/openvslam_ros/issues/11 ticket to add the support of the /initialpose intentionally set by developer.

    opened by AlexeyMerzlyakov 6
  • Timeline for IMU

    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

    enhancement 
    opened by oscarpang 6
  • "Tracking" status verification

    Hi. This is regarding a "tracking" status verification which can be useful for the Openvslam_ros's package in order to decide when publishing the pose info. Please, refer to this discussion for further details.

    opened by mirellameelo 5
  • Remove link to spectrum chat?

    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.

    opened by SteveMacenski 5
  • Add CMake preset to build on windows

    Add CMake preset to build on windows

    • Add build script
    • Added CONFIG flag to find_package SuiteSparse to find missing cs.h
    • Currently only static build is supported

    Examples are disabled because Pangolin build fails with vcpkg

    opened by Cambloid 5
  • Build scripts and vcpkg

    Build scripts and vcpkg

    The original author created some powershell scripts to build openvslam on windows

    https://github.com/shinsumicco/openvslam-on-msvc

    I tried with vcpkg but it fails when setting the -DDBoW2_DIR in the command line. It works when DBoW2_DIR path is set in the cmake script.

    Is this caused by vcpkg?

    enhancement 
    opened by Cambloid 5
  • Some problems in angle_checker.h

    Some problems in angle_checker.h

    Thanks for the great work.
    Just wanna point out that the naming of histogram_length_ in angle_checker.h is kind of confusing.
    It combines two concept

    1. The total number of bins
    2. The width of a bin

    It seems to me it should be separated into two variables as bin_width_ and histogram_length_.
    Also, the angle may be 720 or larger. This is not handled well now. File link: https://github.com/stella-cv/stella_vslam/blob/main/src/stella_vslam/match/angle_checker.h#L71.

    template<typename T>
    inline void angle_checker<T>::append_delta_angle(float delta_angle, const T& match) {
        // TODO:
        // It should also consider edge cases like -721 or 721
        if (delta_angle < 0.0) {
            delta_angle += 360.0;
        }
        if (360.0 <= delta_angle) {
            delta_angle -= 360.0;
        }
        
        // TODO:
        // It uses `histogram_length_` as the width of a bin to get the index. 
        // I would say this is `bin_width_` but not `histogram_length_`
        const auto bin = static_cast<unsigned int>(cvRound(delta_angle * inv_histogram_length_));
    
        assert(bin < histogram_length_);
        angle_histogram_.at(bin).push_back(match);
    }
    
    enhancement 
    opened by ttaoREtw 4
  • Expose 'tracking_module.cc::feed_frame()'-parameter 'init_retry_thr' to 'conf'-class

    Expose 'tracking_module.cc::feed_frame()'-parameter 'init_retry_thr' to 'conf'-class

    What issue is the feature request related to?

    The system resets if it looses tracking shortly after initialization - this is reasonable behavior. However, currently the threshold is hard-coded to 5 sec but this value does not fit all applications (mine included),

    Describe the solution you'd like

    Expose init_retry_thr from tracking_module::feed_frame().

    How to achieve this

    (Includes @ymd-stella's comment below. Thanks)

    • [ ] In tracking_module.h/.cc: Through the tracking_module constructor expose init_retry_thr and set the default value to 5.0. See: https://github.com/stella-cv/stella_vslam/blob/3f4b160e4eb065cf9a800160e9b38887658cd58f/src/stella_vslam/tracking_module.h#L114-L122 and https://github.com/stella-cv/stella_vslam/blob/3f4b160e4eb065cf9a800160e9b38887658cd58f/src/stella_vslam/tracking_module.cc#L24-L27
    • [ ] (Optional) In tracking_module.cc: If init_retry_thr is negative then never reset system. Corresponding to init_retry_thr=infinity.
    • [ ] In docs "Parameter"-section: Add variable init_retry_thr and a fitting description. See https://github.com/stella-cv/docs/blob/9cb9458c9ea9e49d8feaa71c278f9872f76a2588/docs/parameters.rst?plain=1#L101-L117

    Describe alternatives you've considered

    Changing the video metadata FPS would allow for indirectly affecting the threshold but could have unintentional consequences.

    enhancement config/tuning/usage 
    opened by McC0dy 2
  • Documenting conventions

    Documenting conventions

    I've been using openvslam/stella_vslam for some time and I find it really difficult to find info about the conventions used (what is the ordering of the bearing vectors ? how is the axes oriented ? etc.).

    Is there a place where all these informations are centralized ?

    If not, I think it could really help new contributors and speed up their onboarding. Maybe by using a wiki that everyone can update.

    documentation enhancement 
    opened by ali-sx 1
  • Memory leak in SocketViewer

    Memory leak in SocketViewer

    Describe the bug

    When run_video_slam is run repeatedly, memory usage does not decrease when the map is reset on the second run.

    To Reproduce

    while ./run_euroc_slam -v ${VOCAB?} -d /euroc/MH_01/ -c /openvslam/example/euroc/EuRoC_mono.yaml --log-level=trace --auto-term > log.txt; do echo .; done
    

    Environment

    • OS: SocketViewer is running on Windows10
    • Commit id: ab50a9026c9ac80ddd037ead0e1135b99b76d59f
    • Install procedure: docker
    • dataset: EuRoC MH_01
    bug 
    opened by ymd-stella 0
  • cv::KeyPoint may not be saving/loading as intended

    cv::KeyPoint may not be saving/loading as intended

    Describe the bug

    When saving maps to sqlite3, cv::KeyPoint may not be saving/loading as intended. The following warning has been issued.

    /openvslam/src/openvslam/data/map_database.cc:538:76: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'class cv::KeyPoint' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
    

    Environment

    • CPU: Intel
    • OS: Ubuntu18.04
    • Commit id: 64f4f63b187a3f09927fe7510e4a461271e9d8c3
    • Install procedure: docker

    Additional context

    Related to https://github.com/stella-cv/stella_vslam/pull/269.

    bug 
    opened by ymd-stella 2
  • Save/Load orb_params_database

    Save/Load orb_params_database

    What issue is the feature request related to?

    orb_params_database is not saved. Parameters are loaded from yaml files.

    Describe the solution you'd like

    Save/Load orb_params_database to/from sqlite3 database.

    How to achieve this

    • [ ] Save orb_params_database to sqlite3 database.
    • [ ] Load orb_params_database from sqlite3 database.

    Describe alternatives you've considered

    It may be sufficient to include a description in the documentation or output a message at runtime.

    Additional context

    Related to https://github.com/stella-cv/stella_vslam/pull/269.

    enhancement 
    opened by ymd-stella 0
[3DV 2021] DSP-SLAM: Object Oriented SLAM with Deep Shape Priors

DSP-SLAM Project Page | Video | Paper This repository contains code for DSP-SLAM, an object-oriented SLAM system that builds a rich and accurate joint

Jingwen Wang 303 Jul 3, 2022
HybVIO visual-inertial odometry and SLAM system

HybVIO A visual-inertial odometry system with an optional SLAM module. This is a research-oriented codebase, which has been published for the purposes

Spectacular AI 250 Jul 1, 2022
A 3D DNN-based Metric Semantic Dense Mapping pipeline and a Visual Inertial SLAM system

MSDM-SLAM This repository represnets a 3D DNN-based Metric Semantic Dense Mapping pipeline and a Visual Inertial SLAM system that can be run on a grou

ITMO Biomechatronics and Energy Efficient Robotics Laboratory 9 Jun 20, 2022
A powerful and versatile dynamic instrumentation toolkit.

MIGI Migi(My Ideas Got Incepted) is a powerful and versatile dynamic instrumentation toolkit. How it works By injecting Python scripts into target hos

nomads 3 Jan 11, 2022
Radar SLAM: yeti radar odometry + ScanContext-based Loop Closing

navtech-radar-slam Radar SLAM: yeti radar odometry + ScanContext-based Loop Closing What is Navtech-Radar-SLAM? In this repository, a (minimal) SLAM p

Giseop Kim 70 Jun 9, 2022
A real-time LiDAR SLAM package that integrates FLOAM and ScanContext.

SC-FLOAM What is SC-FLOAM? A real-time LiDAR SLAM package that integrates FLOAM and ScanContext. FLOAM for odometry (i.e., consecutive motion estimati

Jinlai Zhang 11 May 21, 2022
A real-time LiDAR SLAM package that integrates TLOAM and ScanContext.

SC-TLOAM What is SC-TLOAM? A real-time LiDAR SLAM package that integrates TLOAM and ScanContext. TLOAM for odometry. ScanContext for coarse global loc

Jinlai Zhang 3 Sep 17, 2021
Real-time LiDAR SLAM: Scan Context (18 IROS) + LeGO-LOAM (18 IROS)

SC-LeGO-LOAM NEWS (Nov, 2020) A Scan Context integration for LIO-SAM, named SC-LIO-SAM (link), is also released. Real-time LiDAR SLAM: Scan Context (1

Giseop Kim 10 May 5, 2022
SPM-SLAM (improved)

Marker-based SLAM 此项目是SPM-SLAM的改进版本,也是一种基于AprilTag或者Aruco类型标记(marker)的SLAM系统,通过在环境中布置不同ID的marker,即可快速实现高精度的相机定位,经过在实验室环境下的测试,可以达到厘米级精度。具体流程可看图1。绿色部分是对

null 41 Jun 16, 2022
Final push for EAO-SLAM-Improve

EAO-SLAM-Improve-Final-Poject This is my final improve for EAO-SLAM, full project can be found at https://pan.baidu.com/s/1Zgat7FRjKEi7cbN3QDtqbA, pas

null 7 Jun 15, 2022
Research on Event Accumulator Settings for Event-Based SLAM

Research on Event Accumulator Settings for Event-Based SLAM This is the source code for paper "Research on Event Accumulator Settings for Event-Based

Robin Shaun 20 Jun 22, 2022
Experiments with ORB-SLAM and emscripten

Experiments with ORB-SLAM3 and emscripten Experiments to attempt to get ORB-SLAM3 working with emscripten. Please use the binvoc branch of my own fork

Nick Whitelegg 8 May 19, 2022
Finds static ORB features in a video(excluding the dynamic objects), typically for a SLAM scenario

static-ORB-extractor : SORBE Finds static ORB features in a video(excluding the dynamic objects), typically for a SLAM scenario Requirements OpenCV 3

null 4 Feb 26, 2022
Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.

Cartographer Purpose Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platfo

Cartographer 6k Jul 1, 2022
An implementation of AVP-SLAM and some new contributions

AVP-SLAM-PLUS AVP-SLAM-PLUS is an implementation of AVP-SLAM and some new contributions. Performance of AVP-SLAM-PLUS could be found in video(https://

null 298 Jun 27, 2022
Implementation of "An Analytical Solution to the IMU Initialization Problem for Visual-Inertial Systems"

An Analytical Solution to the IMU Initialization Problem for Visual-Inertial Systems Implementation of "An Analytical Solution to the IMU Initializati

David Zuniga-Noel 68 Apr 29, 2022
C++ Implementation of "An Equivariant Filter for Visual Inertial Odometry", ICRA 2021

EqF VIO (Equivariant Filter for Visual Inertial Odometry) This repository contains an implementation of an Equivariant Filter (EqF) for Visual Inertia

null 50 Jun 15, 2022
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.

Isaac ROS Visual Odometry This repository provides a ROS2 package that estimates stereo visual inertial odometry using the Isaac Elbrus GPU-accelerate

NVIDIA Isaac ROS 167 Jul 1, 2022
R3live - A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package

R3LIVE A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package News [Dec 31, 2021] Release of cod

HKU-Mars-Lab 916 Jun 23, 2022