Giter Site home page Giter Site logo

wwxuezhi / supereight Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emanuelev/supereight

0.0 1.0 0.0 829 KB

supereight: a high performance template octree library and a dense volumetric SLAM pipeline implementation

CMake 1.43% Makefile 0.11% C++ 94.40% C 0.07% Python 2.94% Objective-C 0.92% Shell 0.08% TeX 0.04%

supereight's Introduction

supereight: a fast octree library for Dense SLAM

welcome to supereight: a high performance template octree library and a dense volumetric SLAM pipeline implementation.

Related publications

This software implements the octree library and dense SLAM system presented in our paper Efficient Octree-Based Volumetric SLAM Supporting Signed-Distance and Occupancy Mapping. If you publish work that relates to this software, please cite our paper as:

@ARTICLE{VespaRAL18, author={E. Vespa and N. Nikolov and M. Grimm and L. Nardi and P. H. J. Kelly and S. Leutenegger}, journal={IEEE Robotics and Automation Letters}, title={Efficient Octree-Based Volumetric SLAM Supporting Signed-Distance and Occupancy Mapping}, year={2018}, volume={3}, number={2}, pages={1144-1151}, doi={10.1109/LRA.2018.2792537}, ISSN={}, month={April}}

Licence

The core library is released under the BSD 3-clause Licence. There are part of the this software that are released under MIT licence, see individual headers for which licence applies.

Project structure

supereight is made of three main different components:

  • se_core: the main header only template octree library
  • se_denseslam: the volumetric SLAM pipelines presented in [1], which can be compiled in a library and used in external projects. Notice that the pipeline API exposes the discrete octree map via a shared_ptr. As the map is a template class, it needs to be instantiated correctly. You do this by defining a SE_FIELD_TYPE macro before including DenseSLAMSystem.h. The field type must be consistent with the library you are linking against. Have a look at se_denseslam and se_apps CMakeLists to see how it is done in our examples.
  • se_apps: front-end applications which run the se-denseslam pipelines on given inputs or live camera.

Additionally, se_tools includes the dataset generation tool and some libraries required by se_denseslam and se_apps.

Dependencies

The following packages are required to build the se-denseslam library:

  • CMake >= 3.10
  • Eigen3
  • Sophus
  • OpenMP (optional)
  • GTest

The benchmarking and GUI apps additionally require:

  • GLut
  • OpenGL
  • OpenNI2
  • PkgConfig/Qt5
  • Python/Numpy for evaluation scripts

Build

From the project root: make This will create a build/ folder from which cmake .. is invoked.

Usage example

To run one of the apps in se_apps you need to first produce an input file. We use SLAMBench 1.0 file format (https://github.com/pamela-project/slambench). The tool scene2raw can be used to produce an input sequence from the ICL-NUIM dataset:

mkdir living_room_traj2_loop
cd living_room_traj2_loop
wget http://www.doc.ic.ac.uk/~ahanda/living_room_traj2_loop.tgz
tar xzf living_room_traj2_loop.tgz
cd ..
build/se_tools/scene2raw living_room_traj2_loop living_room_traj2_loop/scene.raw

Then it can be used as input to one of the apps

./build/se_apps/se-denseslam-sdf-main -i living_room_traj2_loop/scene.raw -s 4.8 -p 0.34,0.5,0.24 -z 4 -c 2 -r 1 -k 481.2,-480,320,240  > benchmark.log

supereight's People

Contributors

emanuelev avatar sotpapathe avatar juantarrio avatar nilsiism avatar

Watchers

James Cloos 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.