Skip to content

Latest commit

 

History

History
83 lines (62 loc) · 4.57 KB

File metadata and controls

83 lines (62 loc) · 4.57 KB

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.

Related Publications

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

Binary installation from GitLab releases (Ubuntu 22.04+ amd64, MacOS 26+ arm64)

Install the latest published release into ~/.local:

curl -LsSf https://gitlab.com/VladyslavUsenko/basalt/-/raw/master/scripts/install.sh | sh

The installer places binaries in ~/.local/bin, libraries in ~/.local/lib, and data files in ~/.local/etc/basalt.

Source installation (CMake presets + vcpkg)

Clone the source code with the thirdparty/vcpkg submodule, then build with CMake presets. Install CMake (>= 3.24), Ninja, and a C++ compiler first.

git clone --recursive https://gitlab.com/VladyslavUsenko/basalt.git
cd basalt
# If you cloned without --recursive, fetch the vcpkg submodule:
# git submodule update --init thirdparty/vcpkg

# Bootstrap vcpkg once if needed:
# ./thirdparty/vcpkg/bootstrap-vcpkg.sh -disableMetrics

cmake --preset relwithdebinfo
cmake --build --preset relwithdebinfo -j8
ctest --preset relwithdebinfo

By default presets use: thirdparty/vcpkg/scripts/buildsystems/vcpkg.cmake

On macOS, build the release preset and then package the release artifact:

cmake --preset release
cmake --build --preset release -j8
./scripts/package_macos_release.sh <tag>

Usage

Device support

Licence

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

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