Indoor positioning · Research visualization

UWB indoor localization

Known anchors. Noisy ranges. A position estimate.

Redmond R. Shamshiri
Anchor-based positioning for indoor agriculture
Simulation study · 2D
Trajectory & localization error
Computing…Fixed sampling · 10 Hz

Figure caption.

Method & assumptions

2D range model. Anchor positions are known exactly. The tag and anchors share one elevation; distances are planar. Each measurement has independent zero-mean Gaussian noise. A constant positive bias can be applied to anchor A3 throughout the run.

ri,k = ‖pk − ai‖ + εi,k + bi,   εi,k ∼ N(0, σ²)
p̂k = arg minp Σi (‖p − ai‖ − ri,k)²
ek = ‖p̂k − pk‖,   RMSE = √[(1/N) Σk ek²]

Estimator. Nonlinear least squares (NLS) fits range residuals using a damped iterative solver initialized by linearized ranging equations. The estimator receives only the measured ranges and anchor coordinates. It uses no true positions, NLOS correction, temporal filtering, or map constraints. Finite estimates can lie outside the room.

Experiment. A prescribed polyline is sampled every 0.1 s at 0.6 m/s, with instantaneous heading changes at corners. The random seed fixes the noise sequence; replay changes only its display. Changing a model parameter recomputes the entire run. The 95th percentile uses the nearest-rank convention. Statistics include valid samples only; failed samples are reported separately. Negative simulated ranges invalidate that sample rather than being silently clipped.

Scope. This is an illustrative simulation, not measured UWB performance. Constant bias is a simplified NLOS model. It omits multipath dynamics, packet loss, anchor uncertainty, antenna delays, vertical offsets, and robot dynamics. A physical installation with different antenna heights needs a height-aware range model.

Method references. Beuchat et al. (2019), optimization-based localization; Decawave APS006 (2014), channel effects on ranging. These references support the method background; they do not validate this simulation's accuracy.
Current ranges & anchor coordinates

Anchorx (m)y (m)Range (m)Residual (m)

Residual = fitted geometric distance − measured range. The biased anchor, when enabled, is marked with an asterisk.