wikillm

Concept · 1 paper · updated 2026-11-01

Sliding-window estimation

Sliding-window estimation re-solves a state estimate over only the last few time steps, and folds older steps into a prior. It sits between a live filter and a batch smoother. One card so far: a continuum-robot shape estimator that is close to batch accuracy at about 10 ms per step, with a delay of up to the window length.

state-estimationsliding-windowfactor-graphmarginalisationonline-estimation

Markdown3 min read

AI-compiled overview, updated 2026-11-01, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

Overview

A sliding-window estimator keeps a fixed number of recent time steps in its optimisation. When a new measurement arrives, it adds a state and its factors, re-solves the estimate over the window, and then folds the oldest step into a single prior so the problem size stays bounded 2510.26623 §3.2 2510.26623 alg. 1. The window length is the main design choice. A one-step window reduces to an iterated filter, and a window that spans the whole recording becomes a batch smoother 2510.26623 §3.3.4.

The only card so far covers a continuum robot whose shape is a continuous function of arc length and time. Its estimator is a factor-graph MAP problem on a short window 2510.26623 §3.1 2510.26623 §3.2. The cards in this wiki do not yet cover the pose-graph and visual SLAM windows used elsewhere, so this page describes the technique as that one paper uses it.

Not the same as sliding-window attention, which is a masking pattern in Transformers and has nothing to do with estimating state from measurements.

Variants

Marginalised-prior window (continuum robot)

The window holds w time steps. The state before the window is integrated out with a Schur complement on the information matrix, which leaves one prior on the first state in the window 2510.26623 §3.3.2. Each new time step starts from the midpoint of two predictions, one from the spatial prior and one from the temporal prior 2510.26623 §3.3.1. The state is read from the back of the window, which means the estimate lags by up to the window length 2510.26623 §3.3.3. Card: the paper's card.

The authors report that a 0.1 s window is close to the batch smoother in accuracy and much faster per step 2510.26623 tab. 1. The paper's own sweep found diminishing returns beyond 0.1 s, except on one trajectory where position error rose with window size 2510.26623 §4 2510.26623 §5. The authors attribute that rise to a hypothesis about the sensor, not a tested cause 2510.26623 §5.

When to use which

Window length trades accuracy, latency and cost against each other. The numbers below are author-reported, from one robot and five trajectories, each run once 2510.26623 tab. 1.

SituationUseWhy
Must run live at a fixed rate and the model is nonlinearA window of a few stepsThe paper reports near-batch position error at 0.1 s, against a larger error for the one-step filter 2510.26623 tab. 1
Per-step compute budget is tightA short window, or a filterRuntime per step is about 10 ms for a 0.1 s window and about 4 ms for the filter, against about 1.4 s per step for the 10 s batch 2510.26623 tab. 1
Need the freshest estimate with no delayA filter, or front-of-window readsBack-of-window reads lag by the window length 2510.26623 §3.3.3. The paper reports no accuracy gain from front reads 2510.26623 §5
Need covariance between time steps after the factA window of two or more stepsA one-step window cannot provide these queries 2510.26623 §3.3.4
Covariance queries are not needed and the rate must exceed 200 HzDrop the continuous-time covarianceThe paper reports under 5 ms per step for a variant without it 2510.26623 §5
Sensors are very noisy or rates are lowA larger windowThe paper expects larger windows to help with lower-rate, noisier sensors 2510.26623 §5
Noise is biased or not zero-meanCheck before useThe paper assumes zero-mean noise with no bias and lists this as a limitation 2510.26623 §5

Implementation sketch

Language-agnostic outline of the common core. The steps are the ones the card's algorithm follows. The Schur-complement step is the piece to get right.

Pseudocode
# Sliding-window estimator main loop  [arxiv:2510.26623 alg. 1]
# Input:  prior on the first state, window length w, measurement stream
# Output: one estimate per new time step

def sliding_window(prior, w, measurements):
    # Start with the marginal prior and an empty window  [arxiv:2510.26623 alg. 1]
    factors = [prior]
    window = []
    for z in measurements:
        # Append a new time step, initialised from its two predictions  [§3.3.1]
        window = expand(window, z.time)
        # Add motion, spatial, boundary and measurement factors  [§3.2]
        factors = add_factors(factors, window, z)
        # Re-solve the MAP problem over the window  [§3.1]
        window = solve_map(factors, window)
        # Report the state at the back of the window  [§3.3.3]
        yield window.back_state
        # Fold the oldest step into the prior when the window is full  [§3.3.2]
        if window.steps > w:
            prior, factors = marginalise_oldest(factors, window)
            window = drop_oldest(window)

Where variants differ: the window length w, the extraction point (back or front), whether the joint covariance between steps is kept, and whether a convergence threshold and iteration cap are set. The paper states no convergence rule 2510.26623 §3.1, so the stopping test is an implementation choice that changes the answer.

Contradictions

None known. Only one card covers this slug.

Papers

  • Sliding-window filter for continuum robots: a stochastic sliding-window MAP estimator for a tendon-driven continuum robot, with Schur-complement marginalisation. Author-reported to be close to a batch smoother at about 10 ms per step.

Source and license

Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.