Triangulation#
Reference of the math used to localise signals, objects, and emitters from multiple measurements. The discipline shows up in GNSS, RF direction-finding, sonar, multilateration of aircraft / ships, astronomical observation, and (more recently) acoustic event localisation and 5G positioning.
The umbrella term positioning covers several distinct problems, each with its own algorithms and error models:
Problem types#
Problem |
Inputs |
|---|---|
Triangulation |
Two or more angle / bearing measurements from known stations to an unknown emitter (AoA, DF). |
Trilateration |
Two or more distance measurements from known stations to an unknown emitter (TOA / RSSI / GNSS). |
Multilateration |
Two or more time-difference-of-arrival (TDOA) measurements from known stations; classical aircraft surveillance. |
Time-of-Arrival |
Single station knows when the emission happened; range = c · ΔT. |
Time-Difference |
Pairs of stations measure relative arrival times; doesn’t require synchronized emission clock. |
Doppler / FDOA |
Frequency shift from a moving emitter / receiver localises along Doppler hyperboloids. |
Hybrid |
Combine angles + ranges + time differences; standard in modern GNSS / 5G positioning. |
Core algorithms#
Algorithm |
Notes |
|---|---|
Linear least-square s |
Classical solution for over-determined trilateration; linearise around an initial guess, solve normal equations. |
Non-linear least-sq |
uares Levenberg-Marquardt / Gauss-Newton; handles the non-linear range-from-position equations directly. |
Weighted least-squa res |
Per-measurement weights from variance estimates; the standard for heterogeneous measurements. |
Kalman filter |
Track a moving emitter by combining a state-transition model with sequential measurements. Linear systems / Gaussian noise. |
Extended Kalman (EK F) |
Linearise non-linear models around the current state; standard in GPS receivers. |
Unscented Kalman (U KF) |
Sigma-point linearisation; better than EKF on highly non-linear models. |
Particle filter |
Monte-Carlo state estimation; handles arbitrary noise / multimodal distributions; expensive. |
Maximum likelihood |
Maximize the joint log-likelihood across measurements; baseline for any noise model. |
Closed-form solvers |
Foy (1976) for TDOA; Bancroft (1985) for GPS; Smith-Abel for hyperbolic. |
TDOA / Chan algorit hm |
Closed-form 2-D TDOA solver; standard cellular E-911. |
TDOA / Friedlander |
|
RSSI fingerprinting |
Match a measured signal-strength vector to a database of known locations; common indoor positioning. |
Pseudo-range solver |
GNSS L1 C/A; iterative trilateration with clock-offset as a fourth unknown. |
Differential GNSS / RTK |
Carrier-phase ambiguity resolution (LAMBDA method); centimetre accuracy. |
PPP (Precise Point |
Pos.) Single-receiver, no base station; uses precise orbits / clocks. |
SLAM |
Simultaneous Localisation and Mapping; the robotics hybrid of mapping + positioning. |
Cooperative localis |
ation Stations measure each other; solves the joint system. Multi-robot, sensor networks. |
Direction finding ( DF) |
Watson-Watt (amplitude); Doppler DF; correlative interferometry; MUSIC / ESPRIT for high-resolution. |
Music / ESPRIT |
Subspace-based DOA estimation; super-resolution. |
Beamforming |
Phased-array sums; Bartlett (conventional), Capon (MVDR), MUSIC (subspace). |
Apollonius / Pappus |
Classical geometric circle intersections; underlies analytic trilateration. |
Error models#
Concept |
Notes |
|---|---|
GDOP / HDOP / VDOP |
Geometric Dilution of Precision; how station geometry amplifies measurement error. |
CRLB |
Cramér-Rao Lower Bound; theoretical floor on unbiased estimator variance for given measurement noise. |
Multipath |
Reflections create false ranges; mitigated by narrow correlator, antenna design, time-tagging. |
NLOS |
Non-line-of-sight bias; longer measured range than true. |
Clock bias |
Receiver clock offset from system time; one extra unknown in pseudorange solutions. |
Atmospheric (GNSS) |
Ionospheric + tropospheric delay; modeled or differenced away. |
Practical stacks#
Domain |
Tools |
|---|---|
GNSS / GPS |
RTKLIB, GLAB, NRCan PPP, GPSTK. |
SDR / RF DF |
KrakenRF / kerberosSDR, GNU Radio, dragOS, OpenWebRX, gr-doa. |
Multilateration |
OpenSky, dump1090 + multilat, LibreATCS. |
Indoor RF |
Kismet WiFi, BLE beacons, DecaWave UWB. |
SLAM |
ROS / ROS2, Cartographer, ORB-SLAM3, RTAB-Map, hdl-graph-slam. |
Underwater / sonar |
AUV positioning; LBL / USBL / SBL acoustic systems. |
Astronomy |
AstroPy, Skyfield, IAU SOFA library. |
Filtering libraries |
FilterPy (Python), Kalmanif (C++), ROS robot_localization. |
Optimization |
Ceres, GTSAM, g2o for non-linear LS / SLAM back-end. |
Tracking and prediction#
Static positioning answers “where is the emitter now?”. Tracking answers “where will it be next, given a sequence of noisy measurements?”. The state-space toolkit underneath:
Concept |
Notes |
|---|---|
State vector |
Position + velocity (CV model), + acceleration (CA), + turn-rate (CT). Augmented with sensor biases as needed. |
Motion models |
CV (constant velocity), CA (constant acceleration), CT (constant turn), Singer (correlated random acceleration), IMM (interacting multiple models). |
Measurement model |
How the true state maps to what the sensor reports (range, bearing, range-rate, image pixel, …). |
Process noise (Q) |
Captures motion-model mismatch; tune to expected maneuver intensity. |
Measurement noise ( |
|
Innovation |
Measurement minus prediction; its statistics validate the model. |
Mahalanobis dist. |
Distance metric in covariance-weighted space; the gating threshold for measurement association. |
Data association |
Decide which measurement updates which track. NN, GNN, PDA (probabilistic), JPDA (joint), MHT (multiple hypothesis), MCMC-DA. |
Track management |
Initialisation, confirmation, deletion; M/N rules. |
Estimators (filtering / smoothing):
Algorithm |
Notes |
|---|---|
Kalman filter |
Linear systems + Gaussian noise; closed-form Bayes-optimal. |
Extended Kalman |
EKF; linearises non-linear models around the current state. Standard in GPS, AHRS, sonar tracking. |
Unscented Kalman |
UKF; sigma-point linearisation; better than EKF for strongly non-linear models, similar cost. |
Cubature Kalman |
CKF; cubature-rule sigma points; close cousin of UKF. |
Information filter |
Algebraic dual of Kalman; useful when many sensors fuse into one state. |
Square-root forms |
SR-KF / SR-UKF; numerically stable variants. |
Particle filter |
Monte-Carlo posterior; arbitrary noise / multimodal; expensive but very general. |
Rao-Blackwellised PF |
Hybrid PF + KF; exploit the linear-Gaussian sub-state. |
Gaussian sum filt. |
Mixture of Kalmans; multimodal estimate. |
Forward-backward |
Smoothing pass after filtering; RTS smoother for Kalman models. |
Bayesian RNN |
Modern: LSTM / Transformer with explicit uncertainty for trajectory prediction. |
Sequence-to-seq. |
Trajectory prediction from past trajectory plus context (Social-LSTM, Social-GAN, Trajectron++). |
Diffusion models |
Probabilistic trajectory forecasting (2024+). |
Multi-target / multi-sensor:
Algorithm |
Notes |
|---|---|
GNN (Global NN) |
Hungarian / Munkres assignment of measurements to tracks. |
PDA / JPDA |
Bayesian soft assignment in clutter. |
MHT |
Maintains multiple hypotheses over data-association ambiguities; pruned by score. |
PHD filter |
Probability-Hypothesis-Density; intensity-based; FISST. |
CPHD, GLMB, LMB |
Random-finite-set descendants of PHD. |
Track-to-track |
Fuse tracks from different sensors into a system track. |
fusion |
(covariance intersection, Bar-Shalom-Campo). |
JIPDA |
Joint integrated PDA; handles existence + association. |
Sensor scheduling |
Which sensor to task next to minimize expected error (information gain). |
Trajectory prediction (planning / forecasting):
Algorithm |
Notes |
|---|---|
Kinematic propag. |
Roll the motion model forward; the cheap baseline. |
Constant turn / Sin |
ger Use parametric motion model + assumed accelerations. |
IMM (Interacting |
Bank of motion models with mode probabilities; switching |
Multiple Models) |
between cruise / turn / brake. |
Behavior models |
Map / lane / waypoint constraints (vehicles, pedestrians). |
Inverse RL / IRL |
Infer the cost function the target is optimizing; predict from that. |
Social-LSTM / |
Pedestrian / vehicle trajectory NNs that condition on |
Social-GAN / Trajectron++ |
neighbor positions. |
Multi-modal NN |
Predict a distribution over future paths (mixture density, diffusion). |
Conformal pred. |
Calibrated prediction intervals around any point estimate. |
Performance metrics:
Metric |
Notes |
|---|---|
RMSE / MAE |
Per-time-step position error. |
NEES / NIS |
Normalized state / innovation squared; consistency tests for filters. |
OSPA / OSPA(2) |
Optimal Subpattern Assignment; multi-target metric that penalises both location error and miscount. |
GOSPA |
Generalised OSPA; current preferred metric. |
ADE / FDE |
Average / Final Displacement Error; trajectory-prediction metrics. |
Track purity |
Fraction of measurements correctly associated to truth. |
Tooling:
FilterPy, KF / EKF / UKF / particle filters (Python).
Stone Soup, DSTL’s open-source tracking framework; full multi-sensor / multi- target stack.
pykalman, simpler KF / EKF.
pomegranate, HMMs + general probabilistic models.
GTSAM, Ceres, g2o, non-linear optimization back-ends used in factor-graph SLAM.
OpenCV trackers, visual single-object trackers (KCF, MOSSE, MIL, CSRT).
Norfair, ByteTrack, BoT-SORT, OC-SORT, modern multi-object tracking on top of object detectors.
Trajectron++, pedestrian / vehicle trajectory prediction.
Operator notes#
Two stations are not enough in 2-D unless the geometry is benign; over-determined systems (4+ stations) give residuals to detect bad measurements (RAIM in GNSS).
TOA needs a synchronized clock at every station (GPS- disciplined oscillator typical); TDOA only needs the difference of clocks, much cheaper.
Geometry matters more than measurement quality, low GDOP rejects far more error than a small variance reduction.
Multi-frequency (L1+L2+L5 GNSS, dual-band SDR) breaks ionospheric delay and lifts accuracy from meters to centimetres.
Hybrid sensors, IMU + GNSS, IMU + camera (visual- inertial), GNSS + cellular, the modern standard in mobile / vehicular / drone applications.
Authorization, direction-finding hardware is regulated in many jurisdictions; receive-only is generally legal, transmit-back / spoofing is not.
References#
Misra & Enge, “Global Positioning System”, the standard GNSS textbook.
Bar-Shalom, Li & Kirubarajan, Estimation with Applications to Tracking and Navigation.
Kay, Fundamentals of Statistical Signal Processing, estimation theory + CRLB.
Van Trees, Detection, Estimation, and Modulation Theory.
Mahafza, Radar Systems Analysis and Design Using MATLAB.
RTKLIB, open-source GNSS positioning library.
GNU Radio, SDR signal processing.
KrakenRF / KerberosSDR, multi-channel SDR for DF.
OpenSky Network, ADS-B / multilateration data.
Kalman and Bayesian Filters in Python (Labbe), accessible introduction.
Map Sources, map data the localised positions land on.
0X47 - Spatial, the operator’s GEOINT discipline.