Skip to content

VladyslavUsenko/basalt

Repository files navigation

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)

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, the repository also includes helper scripts for local development and packaging:

./scripts/build_macos.sh
./scripts/package_macos_release.sh <tag>

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 code.

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

About

Mirror of the Basalt repository. All pull requests and issues should be sent to https://gitlab.com/VladyslavUsenko/basalt

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors