---
kind: concept
slug: map-maintenance
title: Map maintenance
summary: >-
  Keeps a stored visual map of a repeated route current as light and seasons
  change. Compares never updating, copying the newest view, replacing failing
  features, multiple maps, score-based and time-aware (FreMEn) updates. In one
  outdoor three-month study, FreMEn and score-based did best. Static maps fail
  on large light changes; copying the newest view drifts.
tags: [robotics, navigation, mapping, long-term-autonomy]
papers: ["2603.12460"]
related: [simultaneous-localization-and-mapping, topological-map-navigation, local-feature-matching, feature-selection]
status: draft
updated_at: 2026-11-03
---

## Overview

A robot that repeats a taught route localises by matching the features in its
current camera view against a stored set of features for the nearby part of the
route [arxiv:2603.12460 §III]. Each run adds information about the scene, but
the stored features also age. Light, weather and season change which features
are visible, so a map that is never touched stops matching, while a map that
takes in every new view accumulates noise [arxiv:2603.12460 §I].

Map maintenance is the rule that decides, after each run, which stored features
leave and which features from the current view enter. The rules differ in what
they use as evidence: nothing, the newest view alone, the match outcome of each
feature, or a model of when each feature tends to be visible
[arxiv:2603.12460 §IV-A].

The evidence every rule uses is the same. Each stored feature is labelled as
matched correctly, matched incorrectly, or not matched, based on a horizontal
shift estimated by histogram voting over the matched pairs
[arxiv:2603.12460 §IV] [arxiv:2603.12460 §III].

## Variants

### Static map

The map is taught once and never changed. This is the baseline. In the paper's
day-to-night sessions, navigation on static maps was stable until the
illumination changed significantly, and then it failed [arxiv:2603.12460 §V].
Card: [Halodová et al. 2026](/papers/2603.12460).

### Latest-view map

The whole local map is replaced with features from the current image. The
paper expects a copy-of-a-copy drift, because the robot's heading is never
estimated exactly, so new features sit slightly off from the originals
[arxiv:2603.12460 §IV-A]. In the experiments, drift became visible only after
many traversals, and the paper calls this rule's performance "rather low"
[arxiv:2603.12460 §V].

### Replace-on-failure rules (aggressive, strict, summary)

Three rules remove features that were matched incorrectly or not matched, and
add new ones from the current view [arxiv:2603.12460 §IV-A]:

- **Aggressive:** replaces every feature that was not matched or matched
  incorrectly.
- **Strict:** replaces only the features matched incorrectly, with the same
  number of new features.
- **Summary:** removes the features matched incorrectly and adds 10 % of the
  features from the current image, so the map grows over time.

The text gives no error values for these rules. Their results appear only in
[fig. 4] of the paper, and the text names only FreMEn and the score-based rule
as the best performers [arxiv:2603.12460 §V].

### Multiple maps

When too few features in the current view match correctly, the current features
are stored as an extra local map for the same place. At run time the map with
the most matches is used [arxiv:2603.12460 §IV-A]. The paper does not state the
threshold that triggers a new map, and this rule has no separate result in the
text.

### Score-based adaptive map

Each stored feature has a score. The score rises when the feature is matched
correctly, falls when it is matched incorrectly, and falls by a smaller amount
when it is not matched. After a map is used, the features with the worst scores
are removed and the same number of features is added from the current view
[arxiv:2603.12460 §IV-A]. The paper's experiments set the correct-match change
and the incorrect-match penalty to 1, and the not-matched penalty to 0, with
500 features per local map and 5 % of features exchanged per run
[arxiv:2603.12460 §V]. It was the second-best rule in the replay comparison,
and in the field it guided the robot through sessions that ran from late
afternoon into the night [arxiv:2603.12460 §V]. Card:
[Halodová et al. 2026](/papers/2603.12460).

New features are chosen by their descriptor distance to the nearest feature
already in the map. Features far from the map are treated as more distinctive,
and choosing by this distance beat random choice in the paper's comparison
[arxiv:2603.12460 §IV-B] [arxiv:2603.12460 §V].

### Time-aware map (FreMEn)

The score is replaced by a per-feature model of visibility over time, fitted
with spectral analysis, so that a feature's score can be predicted for the
current time of day [arxiv:2603.12460 §IV-A] [arxiv:2603.12460 fig. 2]. Each
match outcome is added to the feature's model at the time it happened. At run
time, the features with the highest predicted scores are used. Removal uses
each feature's mean score over time [arxiv:2603.12460 §IV-A]. In the replay
comparison, it was the best of the rules tested [arxiv:2603.12460 §V]. The
paper gives no harmonic count, window length, time units, prediction horizon
or number of features used at run time, so the rule cannot be reproduced from
the text alone [arxiv:2603.12460 §IV-A].

## When to use which

| Situation | Use | Why |
|---|---|---|
| Appearance changes are small and short-term | Static map | Stable across the paper's day sessions; failed only on large illumination change [arxiv:2603.12460 §V] |
| Repeated runs across light changes, no time model needed | Score-based map | Second-best in replay and guided night sessions; the rule has few parameters, all stated [arxiv:2603.12460 §IV-A] [arxiv:2603.12460 §V] |
| Changes recur by time of day or season and the effort of a spectral model is acceptable | FreMEn | Best in replay [arxiv:2603.12460 §V]; but the model parameters are not stated, so expect to tune them yourself |
| Any long-term deployment | Avoid latest-view copying | Drift appeared only after many traversals, so short tests will miss it [arxiv:2603.12460 §V] |
| Scenes that split into clearly different appearances | Multiple maps | Mentioned as a rule, with no separate result and no stated trigger [arxiv:2603.12460 §IV-A] |

The paper's comparison covers one robot, one taught path and a forest park, so
the ranking is not known to hold elsewhere [arxiv:2603.12460 §V].

## Implementation sketch

Score-based update, the common core of the adaptive rules. FreMEn replaces the
score lookup with a model prediction at the current time.

```pseudocode
# Score-based map update  [arxiv:2603.12460 §IV-A]
# n features are exchanged per run; the paper uses 5 % of the map  [§V]

def update_map(local_map, outcomes, view, n):
    # 1. Adjust each stored feature's score from its match outcome  [§IV-A]
    for feature in local_map:
        if outcome(feature) == CORRECT:
            feature.score += 1          # correct-match change  [§V]
        elif outcome(feature) == INCORRECT:
            feature.score -= 1          # incorrect-match penalty  [§V]
        # not matched: score unchanged (not-matched penalty 0)  [§V]
    # 2. Remove the n features with the lowest scores  [§IV-A]
    local_map.remove_lowest(n)
    # 3. Add n features from the view, most distinctive first  [§IV-B]
    for feature in most_distinct(view, local_map, n):
        # shift by the current horizontal offset before adding  [§IV-B]
        local_map.add(shift(feature, delta))
    return local_map
```

The initial score of a new feature is not stated in the paper, and removal
depends on it, so record the value you use. The paper also does not state the
local-map spacing or the bin width of the voting histogram
[arxiv:2603.12460 §III].

## Contradictions

- **Sign convention.** The paper's text calls the incorrect-match and
  not-matched values penalties, but the experiment section gives them as
  positive magnitudes (1 and 0) without a sign [arxiv:2603.12460 §IV-A]
  [arxiv:2603.12460 §V]. An implementer has to pick the sign.
- **Session count.** The experiment section says "almost 200" sessions, and
  also gives 178 traversals and 5696 images from 32 local maps
  [arxiv:2603.12460 §V]. The two counts describe the same dataset in different
  ways and do not add up to one number.
- **Public code.** The paper describes eight update rules and FreMEn. The
  public repository, as checked for the card, has only the score-based rule
  and updates it on a distance trigger rather than on each local-map use. See
  the [card's Paper vs code section](/papers/2603.12460). A reproduction from
  the public code therefore tests a different system from the one compared
  in the paper.

## Papers

- [Halodová et al. 2026](/papers/2603.12460), on predictive and adaptive map updates for long-term visual navigation: compares static, latest-view, aggressive, strict, summary, multiple-map, score-based and FreMEn updates for teach-and-repeat navigation over a three-month outdoor dataset.
