We release our reference implementation of Efficient Octree-Based Volumetric SLAM Supporting Signed-Distance and Occupancy Mapping [1] under the BSD 3-clause license on GitHub.

Software and Datasets by the Dyson Robotics Lab

We were involved in development and release of the dense SLAM system ElasticFusion [2‌‌], the semantic SLAM system SemanticFusion [3‌‌‌], and datasets such as SceneNet RGB-D [4‌‌‌‌]. They are all available here.


We are pleased to announce the open-source release of OKVIS: Open Keyframe-based Visual Inertial SLAM under the terms of the BSD 3-clause license. OKVIS tracks the motion of an assembly of an Inertial Measurement Unit (IMU) plus N cameras (tested: mono, stereo and four-camera setup) and reconstructs the scene sparsely. This is the Author’s implementation of the [5‌‌‌‌‌] and [6‌‌‌‌‌‌] with more results in [7‌‌‌‌‌‌‌]. There is currently no loop-closure detection / optimisation included, but we are working on it.

Video: see

Copyright (c) 2016, Autonomous Systems Lab / ETH Zurich
Software authors and contributors: Stefan Leutenegger, Andreas Forster, Paul Furgale, Pascal Gohl, and Simon Lynen

To obtain the ROS-Version, follow the instructions here:
This is ready to be used with a Skybotix VI-Sensor or to process ROS bags.

We also provide a non-ROS version to use as a generic CMake library, which includes some minimal examples to process datasets:



NEWS: BRISK Version 2 with shorter descriptors, higher speed and compatibility with OpenCV version 3 is available here:

This is the Author’s implementation of BRISK: Binary Robust Invariant Scalable Keypoints [8‌‌‌‌‌‌‌‌]. Various (partly unpublished) extensions are provided, some of which are described in [7‌‌‌‌‌‌‌]. In particular, the default descriptor consists of 48 instead of 64 bytes.

Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software. The 3-clause BSD license (see file LICENSE) applies. Supported operating systems: Linux or MacOS X, tested on Ubuntu 14.04 and El Capitan. Vector instructions (SSE2 and SSSE3 or NEON) must be available. Depends on OpenCV 2.4 or newer. OpenCV 3 is compatible, however not extensively tested and the demo application is somewhat limited in functionality. See for further instructions on how to build and use the library and demo application.

Original BRISK

Still available is the original author’s implementation of [8‌‌‌‌‌‌‌‌]: Requires OpenCV 2.1-2.3.

[1] Emanuele Vespa, Nikolay Nikolov, Marius Grimm, Paul H Kelly, Stefan Leutenegger, Efficient Octree-Based Volumetric SLAM Supporting Signed-Distance and Occupancy Mapping, IEEE Robotics and Automation Letters, 2018
[2‌‌] T. Whelan, R. F. Salas-Moreno, B. Glocker, A. J. Davison, S. Leutenegger, ElasticFusion: Real-Time Dense SLAM and Light Source Estimation, Intl. J. of Robotics Research, IJRR, 2016
[3‌‌‌] J McCormac, A Handa, A Davison, S Leutenegger, SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks, 2016
[5‌‌‌‌‌] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart, Paul Furgale, Keyframe-based visual–inertial odometry using nonlinear optimization, The International Journal of Robotics Research, pp.0278364914554813, 2014
[6‌‌‌‌‌‌] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart, Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization., Robotics: Science and Systems, 2013
[7‌‌‌‌‌‌‌] Stefan Leutenegger, Unmanned Solar Airplanes, 2014
[8‌‌‌‌‌‌‌‌] Stefan Leutenegger, Margarita Chli, Roland Yves Siegwart, BRISK: Binary robust invariant scalable keypoints, Computer Vision (ICCV), 2011 IEEE International Conference on, pp.2548–2555, 2011