<aside> ⚠️

This page is synced from GitHub. Edits will be overwritten.

Source: https://github.com/uwrealitylabs/standalone-knowledge-base/blob/main/docs/tracking/t_slam.md

Last synced: 2026-11-01 23:20:23 UTC

</aside>

t_slam

Part of Project Standalone.

Monado's SLAM tracker adapter (src/xrt/auxiliary/tracking/t_tracker_slam.cpp). It sits between the Monado headset driver and an external SLAM library. The team configures and wires it; it should not need modification.

Interfaces

Face Interface Used by
Input xrt_slam_sinks (camera, IMU, ground-truth, device-mask sinks); see Sinks Capture or replay source
Output xrt_tracked_slam_get_tracked_pose(xts, time, &pose) HMD device
Algorithm VIT, a C interface to a shared library loaded at runtime Basalt fork now, GPU SLAM later

Responsibilities

  1. Load the VIT library from the configured path.
  2. Pass calibration and the library's own config file.
  3. Forward frames and IMU samples to the library.
  4. Store timestamped pose estimates in a history.
  5. Answer pose queries for arbitrary times by interpolation or prediction.
  6. Convert coordinate conventions; optional smoothing.
  7. Tooling: debug UI, CSV trajectories, EuRoC recording, ground-truth comparison.

Usage

t_slam_fill_default_config → set fields of t_slam_tracker_config → t_slam_create(xfctx, config, ...) → t_slam_start. Create returns both the sinks and the query object.

Config fields: VIT system library path, algorithm-specific config file, camera count, prediction level, CSV output.

Internals