Table of Contents
Fetching ...

Coordinate-Consistent Localization via Continuous-Time Calibration and Fusion of UWB and SLAM Observations

Tien-Dat Nguyen, Thien-Minh Nguyen, Vinh-Hao Nguyen

TL;DR

This paper tackles the problem of coordinate inconsistency in SLAM across multiple sessions by leveraging UWB anchors to define a stable global frame. It introduces a two-stage approach: (i) a continuous-time batch optimization in the first run to jointly estimate 3D anchor positions and per-link biases from SLAM and UWB data, including anchor priors and robustness to outliers, and (ii) a sliding-window Loosely-Coupled Range-SLAM Fusion in subsequent runs to align trajectories within the calibrated anchor frame. The key contributions are the continuous-time anchor calibration with bias compensation, a multi-run loosely-coupled fusion framework that reuses calibrated anchors, and public release of code and data; the method achieves close-to-SLAM accuracy with ATE often below 15 cm and runs in real time on typical hardware. Practically, this enables consistent, cross-session localization for indoor or GNSS-denied environments without repeated anchor surveys, enhancing long-term autonomy for aerial robots and mobile platforms. The results on the NTU VIRAL dataset demonstrate robustness to multipath and NLoS, validating the approach for real-world deployment and benchmarking.

Abstract

Onboard simultaneous localization and mapping (SLAM) methods are commonly used to provide accurate localization information for autonomous robots. However, the coordinate origin of SLAM estimate often resets for each run. On the other hand, UWB-based localization with fixed anchors can ensure a consistent coordinate reference across sessions; however, it requires an accurate assignment of the anchor nodes' coordinates. To this end, we propose a two-stage approach that calibrates and fuses UWB data and SLAM data to achieve coordinate-wise consistent and accurate localization in the same environment. In the first stage, we solve a continuous-time batch optimization problem by using the range and odometry data from one full run, incorporating height priors and anchor-to-anchor distance factors to recover the anchors' 3D positions. For the subsequent runs in the second stage, a sliding-window optimization scheme fuses the UWB and SLAM data, which facilitates accurate localization in the same coordinate system. Experiments are carried out on the NTU VIRAL dataset with six scenarios of UAV flight, and we show that calibration using data in one run is sufficient to enable accurate localization in the remaining runs. We release our source code to benefit the community at https://github.com/ntdathp/slam-uwb-calibration.

Coordinate-Consistent Localization via Continuous-Time Calibration and Fusion of UWB and SLAM Observations

TL;DR

This paper tackles the problem of coordinate inconsistency in SLAM across multiple sessions by leveraging UWB anchors to define a stable global frame. It introduces a two-stage approach: (i) a continuous-time batch optimization in the first run to jointly estimate 3D anchor positions and per-link biases from SLAM and UWB data, including anchor priors and robustness to outliers, and (ii) a sliding-window Loosely-Coupled Range-SLAM Fusion in subsequent runs to align trajectories within the calibrated anchor frame. The key contributions are the continuous-time anchor calibration with bias compensation, a multi-run loosely-coupled fusion framework that reuses calibrated anchors, and public release of code and data; the method achieves close-to-SLAM accuracy with ATE often below 15 cm and runs in real time on typical hardware. Practically, this enables consistent, cross-session localization for indoor or GNSS-denied environments without repeated anchor surveys, enhancing long-term autonomy for aerial robots and mobile platforms. The results on the NTU VIRAL dataset demonstrate robustness to multipath and NLoS, validating the approach for real-world deployment and benchmarking.

Abstract

Onboard simultaneous localization and mapping (SLAM) methods are commonly used to provide accurate localization information for autonomous robots. However, the coordinate origin of SLAM estimate often resets for each run. On the other hand, UWB-based localization with fixed anchors can ensure a consistent coordinate reference across sessions; however, it requires an accurate assignment of the anchor nodes' coordinates. To this end, we propose a two-stage approach that calibrates and fuses UWB data and SLAM data to achieve coordinate-wise consistent and accurate localization in the same environment. In the first stage, we solve a continuous-time batch optimization problem by using the range and odometry data from one full run, incorporating height priors and anchor-to-anchor distance factors to recover the anchors' 3D positions. For the subsequent runs in the second stage, a sliding-window optimization scheme fuses the UWB and SLAM data, which facilitates accurate localization in the same coordinate system. Experiments are carried out on the NTU VIRAL dataset with six scenarios of UAV flight, and we show that calibration using data in one run is sufficient to enable accurate localization in the remaining runs. We release our source code to benefit the community at https://github.com/ntdathp/slam-uwb-calibration.

Paper Structure

This paper contains 19 sections, 19 equations, 6 figures, 2 tables.

Figures (6)

  • Figure 1: Initial run where the anchor positions $\{\,^{U}P_{a}\}$ in some UWB frame $U$ will be estimated by using the SLAM trajectory $\{\prescript{S}{B}{\breve{T}}_k\}$, recorded in the local frame $S$, the UWB ranges $\{\breve{d}^{ij}_{m}\}$, and the anchor–anchor priors $\{\bar{d}_{ab}\}$ .
  • Figure 2: Given two SLAM poses at times $t_k$ and $t_{k+1}$ (dark blue), the interpolated pose at the UWB timestamp $t_m$ (light blue) is obtained by spherical linear interpolation of rotations and linear interpolation of translations with weight $u=(t_m - t_k)/(t_{k+1}-t_k)$.
  • Figure 3: The sensor setup from NTU VIRAL dataset nguyen2022ntuviral studied in this paper.
  • Figure 4: Comparison of raw and filtered UWB range data for sequence “tnp_01” using the process in Sec. \ref{['sec: outlier filtering']}. The measurement filter effectively suppresses large spikes and outliers in the raw distance measurements, yielding much smoother and more consistent readings across all anchor–tag pairs (anchors 100, 101, 102; tags 200A, 201A).
  • Figure 5: Per-window runtime of the proposed LCRSF method on sequence eee_02. The average runtime is around 65 ms, with over 95% of windows staying under the 100 ms limit for 10 Hz SLICT odometry updates.
  • ...and 1 more figures