UAV Systems Engineering · Module 2
M2-T2: GPS, GLONASS, Galileo and BeiDou
Four systems, one idea: more satellites in view means better geometry and more availability where the sky is partly blocked.
A UAV receiver today normally tracks several constellations at once. The systems differ in orbits and signal design, but they share the same pseudorange principle, so a multi-constellation solution is mostly a matter of bookkeeping: more equations, a few extra clock terms.
Learning objectives
After this lesson, you should be able to:
- Name the four global constellations and their operators.
- Compare their orbits and the frequency bands they share.
- Explain the benefit of multi-constellation reception in obstructed sky and its cost.
- Compute the satellite count and HDOP benefit of adding constellations in a simulation.
Conceptual explanation
The four global navigation satellite systems are the United States’ GPS, Russia’s GLONASS, the European Union’s Galileo and China’s BeiDou. Each provides signals from medium Earth orbit (BeiDou also uses geostationary and inclined geosynchronous satellites). Regional systems (QZSS, NavIC) augment coverage in specific areas, and satellite-based augmentation systems (SBAS) broadcast corrections.
| System | Approx. orbital altitude | Common civil frequencies | Notes |
|---|---|---|---|
| GPS | about 20 200 km | L1 1575.42 MHz, L2 1227.60 MHz, L5 1176.45 MHz | CDMA signals |
| Galileo | about 23 200 km | E1 1575.42, E5a 1176.45, E5b 1207.14 MHz | CDMA, shares L1/L5 centre frequencies with GPS |
| GLONASS | about 19 100 km | L1 near 1602 MHz, L2 near 1246 MHz | FDMA on legacy signals, with CDMA signals added in newer satellites |
| BeiDou | about 21 500 km (MEO), plus GEO and IGSO | B1I 1561.098, B1C 1575.42, B2a 1176.45 MHz | regional emphasis over Asia-Pacific in the GEO/IGSO part |

Engineering intuition
Satellites below the local horizon mask or hidden behind buildings do not count. In a street canyon you may see a third of the sky; with only GPS that might be five satellites in a poor arrangement, with four constellations perhaps fifteen in better spread. That is the real benefit of multi-constellation reception for a UAV: availability and geometry, not a magic improvement of the individual measurement.
The price: more channels to track (more receiver power and a more capable chip), an inter-system time offset to estimate, and more exposure to a faulty satellite in any one constellation (integrity checks matter).
Mathematical formulation
With constellations the unknown vector is : one clock term per constellation, because each system has its own time scale. A receiver with satellites in total needs , so a four-constellation receiver needs seven satellites for a full solution (practical receivers estimate the inter-system offsets slowly or use broadcast values to keep sufficient):
- (i)
- index of the constellation that satellite belongs to.
- receiver clock offset relative to system k’s time scale.
Architecture and data flow
The receiver module does the multi-constellation processing and outputs one position, velocity and time fix with quality indicators (satellite counts per constellation, DOP, accuracy estimates). The autopilot configures which constellations are enabled (receiver-specific messages such as UBX configuration for u-blox receivers; consult the receiver documentation). Enable all that the antenna, regulation and receiver allow, and log satellite counts per system.
Real-world UAV applications
- Operating in urban canyons and under partial canopy.
- Raising availability for low-altitude flight near buildings.
- Cross-checking one constellation against another for integrity.
- Selecting a receiver for a UAV that must work at high latitudes.
Implementation example
This runs as shown: a simulation of satellites randomly distributed over the sky with an elevation mask and an obstruction (a building blocking a wedge of azimuth), comparing visible satellite counts and HDOP for one versus four constellations. The satellite counts per system are rough, and the sky model is idealised.
import numpy as np
rng = np.random.default_rng(3)
SATS = {"GPS": 30, "GLONASS": 22, "Galileo": 26, "BeiDou": 35} # rough numbers of usable satellites per system (illustrative)
def sky(constellations): # random directions on the upper hemisphere (idealised sky)
n = sum(SATS[c] for c in constellations)
az = rng.uniform(0, 2 * np.pi, n); el = np.arcsin(rng.uniform(0, 1, n)); return az, el
def visible(az, el, mask_deg=15, blocked_az=(np.radians(40), np.radians(220)), blocked_el_deg=60):
ok = el > np.radians(mask_deg)
wedge = (az > blocked_az[0]) & (az < blocked_az[1]) & (el < np.radians(blocked_el_deg)) # a building hides half the sky below 60 degrees elevation
return ok & ~wedge
def dop(az, el, K, constellation_index):
u = np.stack([np.cos(el) * np.sin(az), np.cos(el) * np.cos(az), np.sin(el)], axis=1) # east, north, up
H = np.hstack([-u, np.zeros((len(u), K))])
for i, k in enumerate(constellation_index): H[i, 3 + k] = 1.0
if len(u) < 3 + K or np.linalg.matrix_rank(H) < 3 + K: return np.inf
Q = np.linalg.inv(H.T @ H); return np.sqrt(Q[0, 0] + Q[1, 1])
def trial(constellations):
azs, els, idx = [], [], []
for k, c in enumerate(constellations):
a, e = sky([c]); azs.append(a); els.append(e); idx.append(np.full(len(a), k))
az, el, idx = np.concatenate(azs), np.concatenate(els), np.concatenate(idx); v = visible(az, el)
return v.sum(), dop(az[v], el[v], len(constellations), idx[v])
res = {}
for name, cons in (("GPS only", ["GPS"]), ("all four", list(SATS))):
out = [trial(cons) for _ in range(300)]
counts = np.array([o[0] for o in out]); h = np.array([o[1] for o in out])
res[name] = (counts.mean(), np.mean(np.isfinite(h)), np.median(h[np.isfinite(h)]))
print(f"{name}: mean {counts.mean():.1f} visible, solution available {100 * np.mean(np.isfinite(h)):.0f}%, median HDOP {np.median(h[np.isfinite(h)]):.2f}")
assert res["all four"][0] > 3 * res["GPS only"][0] and res["all four"][1] >= res["GPS only"][1] and res["all four"][2] < res["GPS only"][2]Common engineering mistakes
Assuming more constellations always improve accuracy
They improve availability and geometry; per-signal error sources remain.
Ignoring the receiver’s signal selection
A receiver may default to GPS plus one other; configure explicitly.
Quoting frequencies from memory
Use the official interface control documents.
Mixing ground-station and receiver time scales
Use consistent GNSS time conversions when logging.
Forgetting regulatory limits on use in a region
Check the rules for the constellations you use.
Failure modes
| Failure mode | How it shows up | Likely cause |
|---|---|---|
| Fewer satellites than expected | Count lower than the configured systems suggest | Constellations not enabled in the receiver, antenna not wideband |
| Single bad satellite | Position jumps | One faulty satellite among many without integrity checking |
| Poor geometry despite many satellites | High DOP in a canyon | Satellites clustered in the open part of the sky |
| Inter-system bias error | Small constant position offset | Wrong inter-system time offset |
Debugging approach
- Log satellite count and C/N0 per constellation.
- Compare position with different constellation sets enabled.
- Check the receiver’s configuration messages and the antenna’s supported bands.
- Look at DOP and the sky plot, not only the satellite number.
Practical exercises
- Find the minimum number of satellites for a solution with three constellations.
- Re-run the simulation with an elevation mask of and compare.
- Add the blocking wedge to a wider azimuth range and see when GPS-only fails.
- Read the interface control document of one system and list its civil signals.
Interview questions
Write an answer in your own words, then reveal the model answer. Nothing is sent anywhere.
Question 1
Why do multi-constellation receivers help UAVs?
Model answer
More satellites are visible in obstructed sky, giving better geometry and more availability, though the individual measurement errors are unchanged.
Question 2
Why does each constellation add an unknown?
Model answer
Each system has its own time scale, so the receiver clock offset relative to each system differs; these offsets are estimated or taken from broadcast values.
Question 3
What is a downside of multi-constellation tracking?
Model answer
More channels (power and cost), more bookkeeping, and exposure to a faulty satellite from any system unless integrity checks are used.
References and further reading
Primary papers, official documentation and standards. Each claim above that is specific to a tool or version points here.
- GPS.gov (official U.S. GPS information; the IS-GPS-200 interface specification is published by the GPS Directorate: look up the current edition from here)
- European GNSS Service Centre: Galileo OS SIS ICD and reference documents
- ESA Navipedia: GNSS systems and signals
- . . Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd ed., Artech House, 2013, chapter 8.