TAG-K: Tail-Averaged Greedy Kaczmarz for Computationally Efficient and Performant Online Inertial Parameter Estimation

1School of Applied Science, Columbia University
3Barnard College, Columbia University
2Columbia College, Columbia University
4Dartmouth College

IEEE International Conference on Robotics and Automation (ICRA) 2026
*indicates equal contribution.

Performance Visualization

We replay representative tracking trajectories (Figure-8, circle, spiral, ellipse) with unknown payload events from our quadrotor experiments in Isaac Sim, comparing controllers using TAG-K as the online parameter estimator against the best-performing baseline. The first red marker denotes payload addition and the second denotes payload drop; the white curve is the reference trajectory. Performance is evaluated by tracking accuracy relative to the reference. TAG-K adapts substantially faster during both events, yielding more reliable end-to-end performance.

Tracking - Figure 8

Tracking - Circle

Tracking - Spiral

Tracking - Ellipse

Abstract

Accurate online inertial parameter estimation is essential for adaptive robotic control, enabling real-time adjustment to payload changes, environmental interactions, and system wear. Traditional methods such as Recursive Least Squares (RLS) and the Kalman Filter (KF) often struggle to track abrupt parameter shifts or incur high computational costs, limiting their effectiveness in dynamic environments and for computationally constrained robotic systems. As such, we introduce TAG-K, a lightweight extension of the Kaczmarz method that combines greedy randomized row selection for rapid convergence with tail averaging for robustness under noise and inconsistency. This design enables fast, stable parameter adaptation while retaining the low per-iteration complexity inherent to the Kaczmarz framework.

We evaluate TAG-K in synthetic benchmarks and quadrotor tracking tasks against RLS, KF, and other Kaczmarz variants. TAG-K achieves 1.5×–1.9× faster solve times on laptop-class CPUs and 4.8×–20.7× faster solve times on embedded microcontrollers. More importantly, these speedups are paired with improved resilience to measurement noise and a 25% reduction in estimation error, leading to nearly 2× better end-to-end tracking performance.

Key Results

Computational Speed

1.5×–1.9× faster on laptop CPUs
4.8×–20.7× faster on embedded processors (Teensy 4.1)

Estimation Accuracy

~25% lower estimation error than RLS and KF baselines across all test scenarios

Tracking Performance

~2× better downstream trajectory tracking in closed-loop quadrotor control

Embedded-Friendly

O(mn) per-iteration complexity, cache-friendly memory access, no matrix inversions required

Method

TAG-K solves streaming linear systems Aθ ≈ b arising from rigid-body dynamics. At each iteration, it:

  1. Greedy row selection: Picks the measurement row with the largest residual, focusing computational effort where it matters most.
  2. Kaczmarz update: Projects the current estimate onto the hyperplane defined by the selected row—a simple, cache-friendly vector operation with no matrix inversions.
  3. Tail averaging: Averages the last k iterates to damp oscillations and improve convergence, especially under noisy measurements.

This combination yields an estimator that is both fast (O(mn) per iteration, no linear solves) and accurate (greedy selection + averaging compensate for the single-row update limitation).

Implemented Estimators

The online_estimators Python package provides a unified interface for 16 online estimation algorithms. See the full API documentation →

ClassDescription
TAGKGreedy Randomized Kaczmarz + tail averaging (ours)
TAGK_TikhTAGK + Tikhonov regularisation
GRKGreedy Randomized Kaczmarz (max-residual row)
RK / TARKRandomized Kaczmarz / Tail-Averaged RK
RLSRecursive Least Squares with forgetting factor
KFKalman Filter (parameters-as-state formulation)
REKRandomized Extended Kaczmarz (inconsistent systems)
IGRK / MGRKBlock Greedy / Momentum-accelerated GRK
FDBKFully-Determined Block Kaczmarz
RK_ColScaledRK with column-norm scaling
RK_EquiRK with Ruiz equilibration
RK_Tikh / RK_EquiTikhRK + Tikhonov / + equilibration + Tikhonov
GRK_TikhGRK + Tikhonov regularisation

Quick Start

Installation

git clone https://github.com/A2R-Lab/TAG-K.git
cd TAG-K
pip install -e .          # pure-Python
pip install -e ".[cpp]"   # with C++ accelerated backends

Usage

import numpy as np
from online_estimators.estimators import TAGK

rng = np.random.default_rng(0)
n, m = 5, 50
A = rng.standard_normal((m, n))
x_true = rng.standard_normal(n)
b = A @ x_true

est = TAGK(n)
for _ in range(500):
    x_hat = est.iterate(A, b)

print("Error:", np.linalg.norm(x_hat - x_true))

BibTeX

@inproceedings{tagk2026,
  title     = {TAG-K: Tail-Averaged Greedy Kaczmarz for Computationally
               Efficient and Performant Online Inertial Parameter Estimation},
  author    = {Shuo Sha and Anupam Bhakta and Zhenyuan Jiang and Kevin Qiu
               and Ishaan Mahajan and Gabriel Bravo-Palacios and Brian Plancher},
  booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
  year      = {2026}
}