Go to file
Nikolaus Demmel b627b41033 ci: disable GCC11 build, since it fails due to a GCC bug 2021-12-04 12:14:22 +01:00
cmake_modules fix for new TBB version 2021-05-23 20:42:29 +02:00
data ICCV'21 square root marginalization paper code release 2021-10-15 15:09:15 +02:00
doc ICCV'21 square root marginalization paper code release 2021-10-15 15:09:15 +02:00
docker Update Docker images 2021-10-16 15:37:24 +02:00
include/basalt flow: add checks for numerical failure to avoid crashes in SE2::exp 2021-12-03 17:45:25 +01:00
python/basalt ICCV'21 square root marginalization paper code release 2021-10-15 15:09:15 +02:00
scripts Update deps scripts 2021-10-16 15:48:52 +02:00
src fix warnings: unused variables 2021-11-11 21:21:28 +02:00
test cmake: adjust to basalt headers cmake changes 2021-12-04 12:14:22 +01:00
thirdparty cmake: adjust to basalt headers cmake changes 2021-12-04 12:14:22 +01:00
.clang-format add ./scripts/clang-format-all.sh and fix formatting 2019-04-24 13:16:06 +02:00
.clang-tidy Clang Tidy 2021-05-08 16:03:15 +00:00
.gitignore ICCV'21 square root marginalization paper code release 2021-10-15 15:09:15 +02:00
.gitlab-ci.yml ci: disable GCC11 build, since it fails due to a GCC bug 2021-12-04 12:14:22 +01:00
.gitmodules remove fmt submodule 2021-12-04 12:14:22 +01:00
.style.yapf ICCV'21 square root marginalization paper code release 2021-10-15 15:09:15 +02:00
CMakeLists.txt cmake: adjust to basalt headers cmake changes 2021-12-04 12:14:22 +01:00
LICENSE Initial commit 2019-04-14 21:08:32 +02:00
README.md Reference granite for multi-flow implementation 2021-10-15 15:11:40 +02:00

README.md

pipeline status

Basalt

For more information see https://vision.in.tum.de/research/vslam/basalt

teaser

This project contains tools for:

  • Camera, IMU and motion capture calibration.
  • Visual-inertial odometry and mapping.
  • Simulated environment to test different components of the system.

Some reusable components of the system are available as a separate header-only library (Documentation).

There is also a Github mirror of this project to enable easy forking.

Visual-Inertial Odometry and Mapping:

Calibration (explains implemented camera models):

Calibration (demonstrates how these tools can be used for dataset calibration):

  • The TUM VI Benchmark for Evaluating Visual-Inertial Odometry, D. Schubert, T. Goll, N. Demmel, V. Usenko, J. Stückler, D. Cremers, In 2018 International Conference on Intelligent Robots and Systems (IROS), [DOI:10.1109/IROS.2018.8593419], [arXiv:1804.06120].

Calibration (describes B-spline trajectory representation used in camera-IMU calibration):

Optimization (describes square-root optimization and marginalization used in VIO/VO):

  • Square Root Marginalization for Sliding-Window Bundle Adjustment, N. Demmel, D. Schubert, C. Sommer, D. Cremers, V. Usenko, In 2021 International Conference on Computer Vision (ICCV), [arXiv:2109.02182]

Installation

APT installation for Ubuntu 20.04 and 18.04 (Fast)

Set up keys, add the repository to the sources list, update the Ubuntu package index and install Basalt:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0AD9A3000D97B6C9
sudo sh -c 'echo "deb [arch=amd64] http://packages.usenko.eu/ubuntu $(lsb_release -sc) $(lsb_release -sc)/main" > /etc/apt/sources.list.d/basalt.list'
sudo apt-get update
sudo apt-get install basalt

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://gitlab.com/VladyslavUsenko/basalt.git
cd basalt
./scripts/install_deps.sh
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j8

Usage

Device support

Development

Licence

The code is provided under a BSD 3-clause license. See the LICENSE file for details. Note also the different licenses of thirdparty submodules.

Some improvements are ported back from the fork granite (MIT license).