Git Product home page Git Product logo

revo's Introduction

Robust Edge-based Visual Odometry (REVO)

Please note that the code is still in the testing phase.

In this work, we present a robust edge-based visual odometry (REVO) system for RGBD sensors. Edges are more stable under varying lighting conditions than raw intensity values, which leads to higher accuracy and robustness in scenes, where feature- or photoconsistency-based approaches often fail. The results show that our method performs best in terms of trajectory accuracy for most of the sequences indicating that edges are suitable for a multitude of scenes.

If you use this work, please cite any of the following publications:

  • Combining Edge Images and Depth Maps for Robust Visual Odometry, Schenk Fabian, Fraundorfer Friedrich, BMVC 2017, pdf,video
  • Robust Edge-based Visual Odometry using Machine-Learned Edges, Schenk Fabian, Fraundorfer Friedrich, IROS 2017, pdf, video

License

REVO is licensed under the GNU General Public License Version 3 (GPLv3).

If you want to use this software commercially, please contact us.

Building the framework

So far, the framework has only been built and tested on the following system.

Requirements

Building on Windows and backwards compatibility might be added in the future.

Optional

Set the optional packages in the cmake-gui

  • Pangolin (for graphical viewer)
  • Intel RealSense ZR300 (see below)
  • Orbbec Astra Pro (see below)

Build commands

git clone REVO
cd REVO
mkdir build
cd build
cmake . ..
make -j

How to reproduce the results from the paper

Use the TUM dataset. Download the sequence you want to test and specify it in the dataset_tumX.yaml settings file.

In the "REVO" directory:

build/REVO config/revo_settings.yaml config/dataset_tum1.yaml

Supported Sensors

For Intel set "WITH_REALSENSE" and for ORBBEC set "WITH_ORBBEC_ASTRA_PRO" and make sure that you set the USB rules in a way that the sensor is accessible for every user (default is root only).

Currently, either Orbbec or RealSense is possible due to conflicting libuvc libraries. This should be resolved quite soon.

Intel RealSense ZR300

Install librealsense, set the intrinsic parameters in the config file. This framework was tested with the Intel RealSense ZR300.

Orbbec Astra Pro Sensor

The standard OpenNI driver can only access the depth stream of the Orbbec Astra Pro Sensor, thus we have to access the color stream like a common webcam. Note: We use libuvc because the standard webcam interface of OpenCV buffers the images and doesn't always return the newest image.

First download the openni driver and choose the correct *.zip file that matches your architecture, e.g. OpenNI-Linux_x64-2.3.zip. Extract it and copy libOpenNI2.so and the "Include" and "OpenNI2" folder to REVO_FOLDER/orbbec_astra_pro/drivers.

Then install Olaf Kaehler's fork of libuvc by performing the following steps in the main directory.

cd ThirdParty
git clone https://github.com/olafkaehler/libuvc
cd libuvc
mkdir build
cd build
cmake . ..
make -j
make install

revo's People

Watchers

James Cloos avatar Castiel avatar

Forkers

yzxstore fgxhxx

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.