/granite

Primary LanguageC++OtherNOASSERTION

Granite

IEEE Xplore | arxiv | Video

This project contains the code for the IEEE IROS 2021 paper Towards Robust Monocular Visual Odometry for Flying Robots on Planetary Missions, M. Wudenka, M. G. Müller, N. Demmel, A. Wedler, R. Triebel, D. Cremers, W. Stürzl.

It is mainly build on basalt.

Main differences are:

  • support of monocular setups for visual odometry (not mapping)
  • new keyframe selection strategy based on negative entropy for non-inertial setups
  • integration of landmarks "at infinity" to the optimization
  • detection of features to track on more image pyramid levels
  • computation of a scalar indicator for scale variance (stereo) or drift variance (monocular)

Installation

Source installation for Ubuntu >= 18.04 and MacOS >= 10.14 Mojave

Clone the source code for the project and build it. For MacOS you should have Homebrew installed.

git clone --recursive https://github.com/DLR-RM/granite.git
cd granite
./scripts/install_deps.sh

Go to include/granite/utils/common_types.h and decide if the PixelType should be uint8_t or uint16_t. The PixelType determines how many bytes granite uses internally for image representation.

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j8

NOTE: It is possible to compile the code on Ubuntu 16.04, but you need to install cmake-3.10 or higher and gcc-7. See corresponding Dockerfile as an example.

Usage

Development

Licence

The source code is provided under a MIT license. See the LICENSE file for details. Note also the different licenses of thirdparty submodules.

The original source code from Basalt was distributed under a BSD 3-clause license.