MCPcopy Create free account
hub / github.com/VladyslavUsenko/basalt

github.com/VladyslavUsenko/basalt @0.1.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.7 ↗ · + Follow
944 symbols 1,979 edges 130 files 42 documented · 4% updated 3mo ago★ 926

Browse by type

Functions 783 Types & classes 161
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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: * Visual-Inertial Mapping with Non-Linear Factor Recovery, V. Usenko, N. Demmel, D. Schubert, J. Stückler, D. Cremers, In IEEE Robotics and Automation Letters (RA-L) [DOI:10.1109/LRA.2019.2961227] [arXiv:1904.06504].

Calibration (explains implemented camera models): * The Double Sphere Camera Model, V. Usenko and N. Demmel and D. Cremers, In 2018 International Conference on 3D Vision (3DV), [DOI:10.1109/3DV.2018.00069], [arXiv:1807.08957].

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): * Efficient Derivative Computation for Cumulative B-Splines on Lie Groups, C. Sommer, V. Usenko, D. Schubert, N. Demmel, D. Cremers, In 2020 Conference on Computer Vision and Pattern Recognition (CVPR), [DOI:10.1109/CVPR42600.2020.01116], [arXiv:1911.08860].

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

Core symbols most depended-on inside this repo

Shape

Method 573
Function 210
Class 157
Enum 4

Languages

C++88%
Python12%

Modules by API surface

include/basalt/optimization/spline_optimize.h36 symbols
include/basalt/utils/imu_types.h29 symbols
include/basalt/linearization/landmark_block_abs_dynamic.hpp29 symbols
src/linearization/linearization_abs_qr.cpp24 symbols
include/basalt/vi_estimator/sc_ba_base.h23 symbols
src/linearization/linearization_rel_sc.cpp20 symbols
src/linearization/linearization_abs_sc.cpp20 symbols
src/calibration/cam_imu_calib.cpp20 symbols
include/basalt/utils/common_types.h20 symbols
src/calibration/cam_calib.cpp18 symbols
include/basalt/optimization/accumulator.h18 symbols
include/basalt/optimization/poses_optimize.h17 symbols

For agents

$ claude mcp add basalt \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page