Giter VIP home page Giter VIP logo

orb-slam3forwindows's Introduction

ORB-SLAM3 for Windows

ORB-SLAM3 Project for Windows Platform (espacially Visual Studio)
We have tested the library in Windows 10, Visual Studio 2015.

Reference

To do...

Update from ORB-SLAM3 V0.2 to V0.3

Prerequisites

  1. Visual Studio: Tested with VS2015

  2. Cmake: Required at least 2.8. (Tested with 3.14.7)

  3. OpenCV: Required at least 3.0. (Tested with 3.4.1)

  4. glew (for pangolin): Tested with 2.1.0

  5. boost: Tested with 1.67.0: https://www.boost.org/users/history/version_1_67_0.html

Build

eigen

DBoW2

  • Open cmake-gui and make a 'build' directory in ORB-SLAM3forWindows/Thirdparty/DBoW2
  • Click Configure and select Visual Studio 14 2015 x64.
  • Click Generate and open the resulting project in the build directory.
  • Change build type to Release.
  • Right click on DBoW2 project -> Properties -> General -> Target Extension: .lib, and Configure Type: Static Library (.lib)
  • DBoW2 project -> Properties -> C/C++ Tab -> Code Generation -> Runtime Library: Multi-threaded(/MT)
  • Build ALL_BUILD. Finish(DBoW2.lib).

g2o

  • Open cmake-gui and Make a 'build' directory in ORB-SLAM3forWindows/Thirdparty/g2o
  • Click Configure and select Visual Studio 14 2015 x64.
  • Click Generate and open the resulting project in the build directory.
  • Change build type to Release.
  • Right click on g2o project -> Properties -> General -> Target Extension: .lib, and Configure Type: Static Library (.lib)
  • g2o project -> Properties -> C/C++ Tab -> Code Generation -> Runtime Library: Multi-threaded(/MT)
  • g2o project -> Properties -> C/C++ Tab -> Preprocessor -> Preprocessor Definitions: add a 'WINDOWS'.
  • Build ALL_BUILD. Finish(g2o.lib).

Pangolin

  • Open cmake-gui and Make a 'build' directory in ORB-SLAM3forWindows/Thirdparty/Pangolin
  • Click Configure and select Visual Studio 14 2015 x64.
  • cmake error: could not find git for clone of ... : Disable BUILD_EXTERN_GLEW, LIBJPEG, LIBPNG and input value directly (used GLEW only)
  • If window says Configuring Done, it's OK
  • Click Generate and open the resulting project in the build directory.
  • Change build type to Release.
  • pangolin project -> Properties -> C/C++ Tab -> Code Generation -> Runtime Library: Multi-threaded(/MT)
  • Build ALL_BUILD. (ignore error "cannot open input file 'pthread.lib') Finish(pangolin.lib).

ORB-SLAM3 for Windows

  • Open cmake-gui and make a 'build' directory in ORB-SLAM3forWindows
  • Click Configure and select Visual Studio 14 2015 x64.
  • Click Generate and open the resulting project in the build directory.
  • Change build type to Release.
  • Setting Boost Library (include, dir, ...)
  • Right click on ORB-SLAM3 project -> Properties -> General -> Target Extension: .lib, and Configure Type: Static Library (.lib)
  • ORB-SLAM3 project -> Properties -> C/C++ Tab -> Code Generation -> Runtime Library: Multi-threaded(/MT)
  • ORB-SLAM3 project -> Properties -> C/C++ Tab -> Preprocessor -> Preprocessor Definitions: check 'COMPILEDWITHC11'.
  • Build ORB-SLAM3 (not ALL_BUILD). Finish(ORB_SLAM3.lib)

Test Program

We have tested the following projects: mono_euroc, mono_inertial_euroc, stereo_euroc, stereo_inertial_euroc

example: The EuRoC MAV Dataset: monocular-inertial

  • Open mono_inertial_euroc directory in ORB-SLAM3forWindows.
  • Change build type to Release.
  • Setting Boost Library (include, dir, ...)
  • Right click on mono_inertial_euroc project -> Properties -> C/C++ Tab -> Code Generation -> Runtime Library: Multi-threaded(/MT)
  • mono_inertial_euroc project -> Properties -> Linker -> Advanced -> Delete import library.
  • Define 'usleep' function in mono_inertial_euroc.cc
  • Build mono_inertial_euroc. Finish(mono_inertial_euroc.exe).
  • Visual Studio 0xC00000FD: Stack overflow error: Right click on the project -> Properties -> Linker -> System -> Stack Reserve Size: 8388608(8MB) or more (the default stack size is 1MB = 1048576)
  • You will find the test program in ORB-SLAM3forWindows\Examples\Monocular-Inertial\Release.
  • Download the EuRoC MAV Dataset: https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
  • Convert ORBvoc.txt.tar.gz -> ORBvoc.txt
  • Execute the following script:
    mono_inertial_euroc.exe (path_to_vocabulary) (path_to_settings) (path_to_image_folder_1) (path_to_times_file_1) (path_to_image_folder_2) (path_to_times_file_2) ... (path_to_image_folder_N) (path_to_times_file_N)
  • The result of Machine Hall 01 Dataset (monocular-inertial):

example_mono_inertial_euroc

orb-slam3forwindows's People

Contributors

chanho-code avatar

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.