Skip to content
forked from uzh-rpg/slam-eds

Events-aided Sparse Odometry: this is the library for the direct approach using events and frames

License

Notifications You must be signed in to change notification settings

volkbay/slam-eds

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event-aided Direct Sparse Odometry (EDS)

Direct visual odometry approach using events and frames (CVPR 2022)

License

See LICENSE file

Installation

The easiest way to build and install this package is to use Rock's build system. See this page on how to install Rock. You can use the EDS builconf which tells you how to install and use this library from scratch. There is also the option to build and use this library in a Docker container.

However, if you feel that it's too heavy for your needs, Rock aims at having most of its "library" packages (such as this one) to follow best practices. See this page for installation instructions outside of Rock. It means this library and its dependencies are standard C++ libraries. Therefore you can build your own EDS system based on this code which is out of the Rock ecosystem.

Updates on Installation (2023)

  • In addition to dependencies below, SINTEF/SISL, rice & ruby-dev (for Ruby bindings), rock/frame_helper, and rock/jpeg_conversion are needed.
  • OpenCV, PCL, yaml-cpp, Ceres and Ruby may be easily installed by Linux packages.
  • One can also try installing SISL from related package repo. But in case of 'compile with -fPIC' error for amd64 systems, it is best to build SISL from its GitHub repo from scratch. While doing this you need to uncomment corresponding line in CMake file.
  • Rice is simply installed by ˋgem install rice -v3.0.0ˋ.
  • Some parts related to boost placeholders are modified in this source code. Please check updated commit.

Dependencies

This is an standard C++ library which generates a shared library by default. Dependencies are listed in the manifest file, those are:

  • base/cmake: the CMake pure function to build this library
  • base/types: C++ basic types (types depends on std C++ and Eigen)
  • base/logging: C++ library for logging (similar to Google glog)
  • slam/ceres_solver: the Ceres solver library
  • slam/pcl: the point cloud library
  • opencv: Open source Computer Vision library. Ubuntu 20.04 uses 4.2.0
  • yaml-cpp: YAML config parser for the configuration parameters

Rock CMake Macros

This package uses a set of CMake helper shipped as the Rock CMake macros. Documentations is available on this page. These macros are pure CMake functions, so they are totally independent of the Rock ecosystem.

Library Standard Layout

This directory structure follows some simple rules, to allow for generic build processes and simplify reuse of this project. Following these rules ensures that the Rock CMake macros automatically handle the project's build process and install setup properly.

EDS Folder Structure

directory purpose
src/ Contains all header (.h/.hpp) and source files
src/bundles This is the backend optimation from DSO
src/init This is the DSO initializer class
src/io I/O wrapper from images and maps different types
src/mapping This is the pixel selector based on DSO
src/sophus The Sophus template header-only library based on Eigen
src/tracking This is the EDS tracker to perform Events to Model alignment
src/utils Some utils functions
build/ * The target directory for the build process, temporary content
test/ Boost Unit test to check basic class functionalities

About

Events-aided Sparse Odometry: this is the library for the direct approach using events and frames

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.3%
  • Other 0.7%