Where Visual Positioning Works: 12 Environments and What Each One Takes

A technical walk-through of the 12 failure modes every autonomy team faces when moving from controlled environments to the field.

Localization is not one problem

In most built environments the geometry pins down four or five degrees of freedom and leaves one or two almost free. That free axis is nearly always the one the building labelled, because somebody had to number the repeating modules, and MultiSet VPS reads those labels.What a VPS is and how it works

Twelve environments

Twelve environments, and what each one takes

Pick the one that looks like your site. Each opens to the mechanics, the mechanism MultiSet uses, and what to send us if you want it tested on your own building.

01Indoor environmentsWarehouses, hospitals, data centres

Bounded, lit, predictable, and still the hardest class of site to localize in.

Plan of a corridor lined with eight identical repeating door modules. A dimension line marks lateral and vertical position as locked by the walls, while an arrow along the corridor shows position along it is quantised to the door pitch and otherwise unconstrained.
Why this environment is hard
  • Identical modules, bay to bay
  • Curtains move, walls stay
  • Mesh fronts confuse depth
What MultiSet VPS does here

Bay numbers, signage and asset tags sit on the axis the geometry leaves free, and they are still there next week. Nothing gets installed, so the scan is the deployment.

Bring us this: a scan of the floor you think is hardest. Book a demo
02Moving objectsPeople, vehicles, equipment

The static-world assumption fails on day one. Fusing more evidence per query is how MultiSet VPS absorbs it.

A room whose fixed structure is unchanged, with one large object drawn in two positions, was and now. An arrow between them marks the axis normal to the moved surface as the one that goes free.
Why this environment is hard
  • Booms settle somewhere new each case
  • Stanchions: least permanent, most weighted
  • Drapes change every visible surface
What MultiSet VPS does here

Transient objects are filtered when the map is built, and stronger query modes fuse more evidence at query time, so one obstructed view cannot decide the pose.

Bring us this: the log where the pose jumped. Book a demo
03Changing environmentsRetail, events, fit-outs

Every map goes stale. Refreshing it should cost a scan, not a re-authoring project.

Two plans side by side, the stored map and the world today, sharing almost no common shapes. A question mark between them shows that geometric registration has no basis on which to relate the two.
Why this environment is hard
  • Bare Monday, built by Wednesday
  • One reset moves every plane
  • Crop closes the aisle daily
What MultiSet VPS does here

Map Versioning aligns a new scan to the old one using the VPS itself, not ICP. The base scan stays the frame of record, so your content never moves.

Bring us this: ask what a map update costs in your current stack. Map Versioning
04GPS-denied environmentsBasements, tunnels, vessels

MultiSet VPS never touches a satellite, and still reports a global position from below deck.

A section below grade or below the waterline with the satellite reference crossed out, showing a run of repeated plant bays. An arrow along the run marks position along it as the unconstrained axis.
Why this environment is hard
  • No signal, and the hull moves
  • Vaults reached through a hatch
  • Platform glazing aliases and scatters
What MultiSet VPS does here

No satellite is involved at any point, so the denied case is the default case. Georeference once and it still returns global coordinates with the antenna disconnected.

Bring us this: your denial mode. Absent, degraded, or contested. Book a demo
05Changing conditionsLight, fog, washdown

Light, heat and airborne water degrade every sensor. Escalating query modes are how MultiSet VPS absorbs it.

A sensor with a short band of usable range before a curtain of fog, frost and washdown aerosol. Beyond it the line is dashed, showing returns coming from the medium rather than the surface behind it.
Why this environment is hard
  • Cold store doors fog the lens
  • Mill heat bends sightlines
  • Washdown returns before any surface
What MultiSet VPS does here

Escalate through query modes as conditions worsen, and gate on the confidence value returned with every pose rather than trusting whichever view arrived.

Bring us this: captures from your worst hour, not your best. Book a demo
06Unstructured terrainSolar, agriculture, mining

No walls, no corners, no reliable planes. MultiSet VPS localizes on appearance instead.

Identical rows on sloping graded ground. An upward arrow marks the surface normal as the only constrained direction, while an arrow along the slope shows both ground tangent directions sliding free.
Why this environment is hard
  • Tracker panels rotate through the day
  • Every vineyard row pruned alike
  • Water at the toe returns nothing
What MultiSet VPS does here

Serial plates, row markers and ground texture stay stable where the geometry is uniform. Appearance has no equivalent of geometric degeneracy.

Bring us this: the two hundred metres of route you trust least. 360 to VPS
07Featureless and low-textureCleanrooms, studios, vessels

Featureless describes two different problems. MultiSet VPS solves the more common one.

A cylindrical vessel interior in section. An arrow along the axis and a curved arrow around the end face mark translation along the axis and rotation about it as two degrees of freedom with no geometric support, while height stays constrained.
Why this environment is hard
  • Cleanrooms stripped of cues by protocol
  • Stages stripped of them deliberately
  • Silos symmetric about the axis
What MultiSet VPS does here

Attention-based matching weights the few distinctive pixels and ignores the generic ones. Object Tracking on a rigid, textured, asymmetric asset is a cheaper first move.

Bring us this: send a scan and we will tell you which kind of low-feature site you have. Object Tracking
08Multi-level mapsHotels, stadia, car parks

Two levels look identical from inside. MultiSet VPS lets you rule one out before matching begins.

Four stacked building levels with identical section, door pitch and fittings. A dimension line marks the plan as identical on every level, and a vertical arrow shows vertical position, and with it level identity, as the ambiguous axis.
Why this environment is hard
  • Floors differ only in printed numbers
  • Decks stacked, and in motion
  • Concourse rings directly above each other
What MultiSet VPS does here

Numbering, graphics and wear differ level to level where the footprint does not. Pass in the level you already know from a lift button, a beacon or a barometer.

Bring us this: let us look at what your stack already knows about level. Book a demo
09Large-scale sitesTerminals, plants, campuses

MultiSet VPS has no drift budget, because there is no trajectory in the estimate.

A chart of error against distance travelled over ten kilometres. A widening wedge shows error growing when position is integrated from motion, against a constant band showing error staying flat when each pose is computed against the map.
Why this environment is hard
  • Steel corrupts the fix you would use
  • Session joins hide pose discontinuities
  • Rolling rebuild keeps part stale
What MultiSet VPS does here

Each pose is computed against a server-side map from one observation, so the error carries no trajectory term. Rebuilding one map leaves the rest of the site untouched.

Bring us this: ask what share of your accuracy engineering exists purely to contain drift. Book a demo
10Repetitive environmentsCorridors, aisles, cabins

The structure repeats, the labelling does not, and MultiSet VPS reads the labelling.

Nine identical bays above a match-cost curve whose minima recur at the repeat pitch. The true position and the selected position sit on adjacent minima exactly one pitch apart, showing perceptual aliasing.
Why this environment is hard
  • Seat pitch identical for forty metres
  • Glazing is the least trustworthy cue
  • Archive shelving moves on rails
What MultiSet VPS does here

Distinctive labelling is weighted over the repeated module, and recall improves every generation. Supplying a rough position first is the single most effective fix.

Bring us this: the log where the pose jumped by exactly one repeat unit. Book a demo
11Glass, mirrors and reflective surfacesAtria, curtain wall, retail

The surfaces that define the space are the ones a sensor cannot trust.

A glazed pane with the real room on one side and a dashed ghost copy of it appearing behind the glass. The mullion and etched signage are marked as the stable cues, while the extent of the space stays uncertain.
Why this environment is hard
  • Glass passes through, or reflects twice
  • Mirrors present a plausible copy
  • Specular highlights move with you
What MultiSet VPS does here

Capture the mullions, signage and structure, not the pane. A heavily reflective space with no fixed graphics is genuinely hard, and worth finding before a pilot.

Bring us this: the atrium, the mirrored lift lobby or the fitting-room wall. Book a demo
12Crowded and occluded spacesStations, concourses, events

When half the field of view is people, what is left has to be enough.

A concourse at peak with the lower field of view filled by a crowd. A highlighted band across the upper third marks the signage gantry, soffit, fascia and column heads that crowds never occlude, captioned capture high.
Why this environment is hard
  • Bodies fill the lower view
  • Density moves with the timetable
  • Reference scan is years old
What MultiSet VPS does here

Crowded scenes against years-old scans are benchmarked directly and improve every generation. Capture high: the soffit and gantry are never occluded.

Bring us this: your peak-hour footage, not your six-in-the-morning survey walk. Overnight AR event navigation
What makes it work

Six mechanisms, and which environments each one covers

Appearance matching

Reads signage, labels, wear and texture, the cues sitting on the axis geometry leaves free. A 6-DoF pose from one camera frame, with no drift term.

Covers 01, 04, 06, 08, 10
Future proofed releases

Attention-based matching weights distinctive pixels and down-weights the repeated ones. Every engine generation raises recall and cuts false positives on the hardest, most repetitive scenes, without changing the API you build against.

Covers 07, 10, 11, 12
Query modes and confidence

Trade latency for certainty per call, and gate on the confidence value returned with every pose. Simulate against your map in the portal to choose the right mode before you deploy.

Covers 02, 05, 08, 10, 12
Priors you already have

Pass in a rough position, a floor level or a geo fix. Each one shrinks the candidate set before the ambiguous step, and most stacks already know all three.

Covers 04, 08, 09, 10
Map Versioning and MapSet

Alignment computed by the VPS rather than ICP, so it survives drastic change between captures. Multiple scans active in one frame, merged into a single coordinate system.

Covers 03, 06, 09
Capture discipline

Panoramas mandatory. Corridors both directions. Glass and mirrors out of centre frame. Capture high in crowds. Fixes more complaints than tuning does.

Covers 01, 07, 10, 11, 12
Getting started

From scan to production in three steps

01
Capture

Use the survey you already own, or take one walk with a 360 camera.

‍Scan formats and scanners

02
Map and localize

Build the VPS map and filter transient objects. Query from APIs and SDKs.

‍Developer docs

03
Keep it true

Map Versioning for sites that change, MapSet for sites too big for one capture.

‍Map Versioning

Questions we get

Frequently asked questions

Why does a robot report a confident position that is wrong by exactly one aisle?

Because the space repeats. Every aisle, bay or row was built the same way, so one view fits the map in several places and the error is one whole module. Capture each repeating run in both directions, and use an engine that weights the distinctive cues. MultiSet VPS does the second, with rejection gating aimed at the confident-wrong pose.

Which environments is visual positioning hardest in, and which is it easiest in?

Easiest where a space is lit and visually distinctive: signage, labels, asset tags and painted markings. Hardest where visual cues are stripped out on purpose, like a cleanroom or a green-screen stage, or where there's no light. Repeating structures are the ones people had to label, so where geometry runs out, appearance is usually richest.

What happens to localization when a warehouse or a store gets rearranged?

Accuracy degrades gradually, with no warning, and the fix is a re-scan. MultiSet aligns the new scan to the old one with the VPS itself, so the merge survives refits and a change of scanner. The original scan stays the frame of record, so anchored content never moves. An empty hall and a built-out hall can both be live.

Does localization accuracy get worse the further a device travels?

Not with MultiSet. Systems that integrate motion build up error along the route, and a tenth of a per cent of drift is a metre over a kilometre. MultiSet computes each pose against the map from a single observation, so distance adds no error. What grows with site size is search cost, and a rough position or geo prior bounds it.

How does a localizer tell the fourth floor from the eleventh when they look identical?

Two ways. Appearance, because room numbering, door graphics, notices, wayfinding and wear differ level to level even where the footprint does not. And explicit level knowledge, which you usually already have from a lift button, a beacon or a barometer: pass it in as a prior and the search is narrowed to that level before the ambiguous step runs.

What does featureless actually mean, and does it stop visual positioning working?

It covers two opposite problems. The common one is a large uniform floor that gives geometry almost nothing, while its painted markings, labels and patch repairs pin the location down. The reverse is an unlit plant room or bare concrete in the dark. Visual positioning is built for the first case and needs a geometric layer for the second.

Does visual positioning work in spaces full of glass and mirrors?

Usually yes, and mostly by capturing correctly. Glass and mirrors show geometry that isn't there. Keep them out of the centre of frame and frame the mullions, etched signage, floor and soffit instead, which are fixed and unaffected by reflection. A fully mirrored space with no fixed graphics is hard for any method, so find it before a pilot.

Does visual positioning still work when a space is full of people?

Yes, and it's measured. Crowded scenes queried against scans years older are part of MultiSet's standard benchmark, and recall has improved with every engine generation. Capture high, because crowds never block the upper third of a concourse, and use a stronger query mode so a crowd has to block several viewpoints at once.

Does visual positioning work with no satellite signal at all, underground or below deck?

Yes. No satellite is involved at any point, so there's no degraded mode to design for, and jamming and spoofing don't touch it. Georeference the map once and the pose still returns as GeoPose in WGS 84, so a device in a sub-basement reports a valid latitude, longitude and altitude. On a vessel, the map frame travels with the hull.

Do I have to re-scan a site before visual positioning will work on it?

Usually not. Leica RTC360 and BLK360, NavVis, Faro, XGRIDS and Matterport Pro2 and Pro3 all record panoramic imagery with the point cloud. Check the export setting, because the panoramas carry the localization and must be included. If a capture has no imagery, one Insta360 X4 or X5 walk adds a visual layer at roughly a thousand square feet per minute.

GPS-denied environments

What GPS-denied actually means

GPS-denied is used loosely, and it covers four situations that fail in different ways.

Indoors. Satellite signals do not survive a roof and a steel frame. This is total denial, and it is the normal condition for warehouses, plants, hospitals and any covered facility.

Under structure. Pipe racks, sub-decks, vessel interiors, tunnels, bridge undersides. Partial sky view produces a fix that exists and is wrong, which is more dangerous than no fix.

Urban canyon. Signals arrive by reflection off buildings rather than directly. The receiver reports a confident position that can be tens of metres off, and it moves as you move.

Jamming and spoofing. Deliberate denial. Jamming removes the signal; spoofing replaces it with a false one, which the receiver cannot distinguish and will report as valid.

The common thread across all four is that the failure is rarely a clean absence of data. It is confident wrongness, which is why an independent absolute fix matters more than a better receiver.

Why dead reckoning is not the answer past a short window

The standard response to losing GNSS is to coast on inertial navigation: integrate accelerometer and gyroscope readings from the last known position and estimate where you must be now.

That works, briefly. Position is the double integral of acceleration, so a small accelerometer bias grows with the square of elapsed time. Seconds are fine. Minutes are not. Wheel odometry drifts the same way through slip.

An absolute visual fix breaks that loop. The camera recognises where it is against a map that already exists, and the error resets to the accuracy of that fix. In a fused stack the INS supplies smooth motion between fixes and the VPS supplies the correction.

Drones and UAV inspection

Inside a building, under a deck, between tanks or close against a structure, GNSS is unreliable, and a drone with a degraded fix can't hold position where the inspection matters.

One capture flight produces the map. After that, any aircraft flying the space gets an absolute pose from its camera, and the same map serves the technician who walks the site afterwards.

Drone mapping and single-panorama localization shipped in v2.3.0. ArduPilot and PX4 take the pose as an external position estimate. Where a site has surveyed control points, RTK fixes the map to the world and the VPS fixes the aircraft to the map.

ROS 2 camera-based localization in GPS-denied environments

MultiSet publishes into the ROS 2 transform tree, so the VPS pose arrives as a standard frame alongside odometry and SLAM, and SLAM keeps the smooth tracking between frames. Query the VPS on a timer or when confidence drops, and gate on the confidence value each response carries.

The same map and API serve AMRs, AGVs, drones and cobots, in MultiSet Cloud, a private VPC, on-premises or fully on-device. The wider argument for one shared frame is on the robotics page.

AR training and simulation adds a requirement of its own: twelve or more headsets of mixed generations have to agree on one origin for the whole exercise.

One more environment worth naming: construction jobsites, which change weekly, so the map is built before the mechanical, electrical and plumbing goes in and still has to resolve in the finished room.