3.5.19Guidance, Navigation & Control (GNC)

GNSS — GPS, GLONASS, Galileo, BeiDou

2,273 words10 min readdifficulty · medium

WHY does GNSS exist / WHAT problem does it solve?

WHAT: GNSS (Global Navigation Satellite System) is a constellation of satellites broadcasting timed signals so any receiver on Earth can compute its position, velocity and time (PVT).

WHY four systems? They are independent national/regional systems built for sovereignty (you don't want your navigation to depend on another country in wartime):

  • GPS — USA, ~24+ satellites, 6 orbital planes, altitude ~20,200 km.
  • GLONASS — Russia, ~24 satellites, 3 planes, ~19,100 km.
  • Galileo — EU (civilian), ~24+ satellites, 3 planes, ~23,222 km.
  • BeiDou (BDS) — China, mix of MEO + GEO + IGSO, ~21,500 km MEO.

HOW a receiver finds its position — derive from scratch

Step 1 — What the receiver actually measures

The satellite ii sits at known position (xi,yi,zi)(x_i,y_i,z_i) (from its broadcast ephemeris). It stamps its transmit time ttxt_{tx} into the signal. The receiver notes arrival time trxt_{rx} on its own clock.

ρi=c(trxttx)\rho_i = c\,(t_{rx} - t_{tx})

Why this step? Distance = speed × time, and the signal travels at cc (speed of light). ρi\rho_i is called the pseudorange — "pseudo" because trxt_{rx} is measured on a biased clock.

Step 2 — Model the true geometry

True geometric distance from receiver (x,y,z)(x,y,z) to satellite ii:

ri=(xxi)2+(yyi)2+(zzi)2r_i = \sqrt{(x-x_i)^2 + (y-y_i)^2 + (z-z_i)^2}

Why this step? This is just the Euclidean distance in 3D — a sphere of radius rir_i centred on the satellite.

Step 3 — Insert the clock bias

Let the receiver clock be ahead of true time by bias bb (seconds). Then measured travel time is too large by bb, so:

  ρi=ri+cb+εi  \boxed{\;\rho_i = r_i + c\,b + \varepsilon_i\;}

Step 4 — Solve the system (linearize)

The equations are nonlinear (square roots). We guess a position x0\mathbf{x}_0 and linearize with a Taylor expansion. The partial derivative of rir_i w.r.t. xx:

rix=xxiri=u^ix\frac{\partial r_i}{\partial x} = \frac{x - x_i}{r_i} = -\hat u_{ix}

Why this step? (xix)ri\dfrac{(x_i-x)}{r_i} is the unit vector pointing from receiver to satellite. So the geometry matrix is made of line-of-sight directions.

Stacking corrections Δx=(Δx,Δy,Δz,cΔb)\Delta\mathbf{x}=(\Delta x,\Delta y,\Delta z,c\,\Delta b):

\mathbf{H}=\begin{bmatrix} -\hat u_{1x} & -\hat u_{1y} & -\hat u_{1z} & 1\\ \vdots & & & \vdots\\ -\hat u_{nx}&-\hat u_{ny}&-\hat u_{nz}&1\end{bmatrix}$$ Solve by least squares and iterate: $$\Delta\mathbf{x} = (\mathbf{H}^{\mathsf T}\mathbf{H})^{-1}\mathbf{H}^{\mathsf T}\,\Delta\boldsymbol\rho$$ *Why least squares?* With 5+ satellites the system is overdetermined; least squares finds the position minimizing total squared residual. ![[3.5.19-GNSS-—-GPS,-GLONASS,-Galileo,-BeiDou.png]] --- ## Geometry matters: DOP > [!definition] Dilution of Precision (DOP) > A number describing how satellite **geometry** amplifies measurement error into position error. Satellites bunched together = bad (high DOP); spread across the sky = good (low DOP). $$\sigma_{\text{position}} = \text{DOP}\times \sigma_{\text{measurement}},\qquad \text{GDOP}=\sqrt{\operatorname{tr}\!\big((\mathbf H^{\mathsf T}\mathbf H)^{-1}\big)}$$ > [!intuition] Why spread-out satellites help > Same reason a carpenter braces a table with legs *spread apart*: closely-spaced supports wobble. Widely separated lines-of-sight make $\mathbf H^{\mathsf T}\mathbf H$ well-conditioned, so a small range error doesn't blow up into a huge position error. **More constellations (GPS+GLONASS+Galileo+BeiDou together) = more satellites visible = lower DOP**, especially in urban canyons. --- ## Relativity — the correction people forget > [!formula] Clock rate correction on GPS satellites > **Special relativity** (satellite moving fast) slows its clock: > $$\frac{\Delta t_{SR}}{t}\approx -\frac{v^2}{2c^2}\;(\text{clock runs slow})$$ > **General relativity** (weaker gravity up high) speeds it up: > $$\frac{\Delta t_{GR}}{t}\approx +\frac{\Delta\Phi}{c^2}=+\frac{GM}{c^2}\Big(\frac1{r_E}-\frac1{r_{sat}}\Big)$$ > Net effect: satellite clocks tick **~+38 μs/day faster**. Ignored → position error grows ~11 km/day! *Why it matters:* light travels 30 cm per nanosecond; 38 μs is enormous. The satellite oscillator is *pre-tuned slower* on the ground to compensate. --- ## Signals & the four systems, compared | System | Owner | Access method | Nominal freq | |---|---|---|---| | GPS | USA | **CDMA** (each sat, same freq, unique code) | L1 1575.42 MHz | | Galileo | EU | CDMA | E1 1575.42 MHz | | BeiDou | China | CDMA | B1 ~1561 MHz | | GLONASS | Russia | **FDMA** (same code, different freq per sat) | ~1602 MHz + k·0.5625 | > [!definition] CDMA vs FDMA > **CDMA** = all satellites share one frequency but each uses a unique orthogonal *pseudo-random code*; the receiver separates them by correlation. **FDMA** = each satellite uses a slightly different *frequency* (old GLONASS design). --- ## Worked examples > [!example] Example 1 — Why 4 satellites (dimension count) > **Q:** You have perfectly synchronized atomic clocks in *both* satellite and receiver. How many satellites now? > **Reasoning:** No clock bias ⇒ $b=0$ is known ⇒ only 3 unknowns $(x,y,z)$ ⇒ **3 satellites**. > *Why this step?* Each unknown eats one equation. Removing $b$ removes one needed equation. > [!example] Example 2 — Pseudorange numbers > **Q:** Signal takes 67 ms to arrive. Distance? > $$\rho = c\cdot t = (3\times10^8)(67\times10^{-3}) = 2.01\times10^7 \text{ m} \approx 20{,}100\text{ km}.$$ > *Why this step?* Consistent with MEO altitude — sanity check passes. > [!example] Example 3 — Clock bias in metres > **Q:** Receiver clock is off by 1 μs. What range error does that inject? > $$c\,b = (3\times10^8)(1\times10^{-6}) = 300\text{ m}.$$ > *Why this step?* Shows why timing dominates GNSS accuracy — a microsecond is a football-stadium-sized error. That's exactly why $b$ must be solved, not assumed. > [!example] Example 4 — DOP intuition > **Q:** Four satellites all near the horizon in one direction. Good or bad? > **A:** Bad — near-parallel line-of-sight vectors ⇒ $\mathbf H^{\mathsf T}\mathbf H$ nearly singular ⇒ huge GDOP ⇒ poor vertical accuracy. > *Why this step?* Vertical error especially blows up because you have no satellite "below" or overhead to constrain height. --- > [!mistake] Steel-man the common errors > **"3 satellites are enough for 3D position."** > *Why it feels right:* 3 unknowns $(x,y,z)$, 3 equations — classic algebra. **Fix:** the receiver clock adds a *hidden 4th unknown* $b$; skipping it injects hundreds of metres of error (Example 3). Need 4. > > **"Pseudorange is the true distance."** > *Why it feels right:* it's "distance = c × time" and time is measured. **Fix:** the time is measured on a *biased* clock, so $\rho = r + cb$. The "pseudo" is the whole point. > > **"Relativity is negligible for engineering."** > *Why it feels right:* relativistic effects are tiny in daily life. **Fix:** at 30 cm/ns precision, the 38 μs/day drift ⇒ ~11 km/day error. GNSS is arguably the biggest everyday proof of GR. > > **"More constellations don't help if I already see 4 GPS sats."** > *Why it feels right:* 4 is the minimum. **Fix:** extra satellites lower **DOP** and give redundancy for detecting faulty measurements (RAIM). More is genuinely better. --- > [!recall]- Feynman: explain to a 12-year-old (click to open) > Imagine you're lost in a giant field at night, and four friends on tall towers each shout "I'm at tower A!" and clap at the exact same second. Sound travels slowly, so a clap from a far friend reaches you later. By comparing *how late* each clap arrives, you can figure out exactly where you're standing. GPS does this with radio "claps" from satellites, using light instead of sound. The tricky part: *your* watch is a bit wrong, so you need one extra friend's clap to also fix your watch — that's why you need **four**, not three. > [!mnemonic] Remember it all > **"Please Give Great Big Clocks"** → > **P**seudorange, **G**eometry (DOP), **G**PS/**G**LONASS, **B**eiDou, **C**lock-bias-4th-unknown & relativity **Clocks**. > And for the 4 systems, alphabetical by owner region roughly: **G**PS(US)–**G**LONASS(Russia)–**G**alileo(EU)–**B**eiDou(China) = "**GGG-B**". --- ## #flashcards/physics What does GNSS stand for and what does it compute? ::: Global Navigation Satellite System; it computes Position, Velocity and Time (PVT). Why does a receiver need a minimum of 4 satellites? ::: Three for $x,y,z$ plus one to solve the unknown receiver-clock bias $b$ (4 unknowns). Define pseudorange and give its equation. ::: Measured range on a biased clock: $\rho_i = r_i + cb + \varepsilon_i$, where $r_i$ is true geometric distance. Why is it called "pseudo" range? ::: Because it uses the receiver's biased clock, so it isn't the true distance until $cb$ is removed. What is DOP and its formula? ::: Dilution of Precision — how satellite geometry amplifies error; $\text{GDOP}=\sqrt{\operatorname{tr}((H^TH)^{-1})}$. Do spread-out or clustered satellites give better accuracy? ::: Spread-out (low DOP); clustered geometry makes $H^TH$ ill-conditioned (high DOP). Net relativistic clock drift on GPS satellites per day and its consequence? ::: About +38 μs/day faster; uncorrected gives ~11 km/day position error. Which two relativistic effects act, and their signs? ::: SR (motion) slows sat clock ($-v^2/2c^2$); GR (weaker gravity) speeds it ($+\Delta\Phi/c^2$); GR dominates. CDMA vs FDMA — which system uses FDMA? ::: GLONASS (classic) uses FDMA (different frequency per satellite); GPS/Galileo/BeiDou use CDMA (shared freq, unique codes). Position-error relation to measurement error via DOP? ::: $\sigma_{\text{pos}} = \text{DOP} \times \sigma_{\text{meas}}$. What error does a 1 μs receiver clock offset cause in range? ::: $cb = 3\times10^8 \times 10^{-6} = 300$ m. What does the geometry matrix $H$ contain? ::: Line-of-sight unit vectors from receiver to each satellite, plus a column of 1's for the clock term. --- ## Connections - [[Trilateration and Multilateration]] - [[Kalman Filter]] — GNSS fused with IMU for smooth PVT - [[Inertial Navigation System (INS)]] — GNSS/INS integration - [[Special Relativity — Time Dilation]] - [[General Relativity — Gravitational Time Dilation]] - [[Least Squares Estimation]] - [[Orbital Mechanics — MEO/GEO/IGSO]] - [[Signal Modulation — CDMA & FDMA]] - [[Dilution of Precision (DOP)]] ## 🖼️ Concept Map ```mermaid flowchart TD GNSS[GNSS constellation] -->|broadcasts| SIG[Timed signals] GNSS -->|four systems| SYS[GPS GLONASS Galileo BeiDou] SYS -->|orbit in| MEO[MEO ~19000-24000 km] SIG -->|receiver measures| PR[Pseudorange rho_i] PR -->|equals c times tx to rx| DIST[Distance = c x time] PR -->|modeled as| OBS[rho = r_i + c x b + err] OBS -->|contains 4 unknowns| UNK[x, y, z, clock bias b] UNK -->|needs one eqn each| FOUR[>= 4 satellites] OBS -->|nonlinear, solved by| LIN[Linearize + Taylor] LIN -->|yields| PVT[Position Velocity Time] UNK -->|resolves| PVT ``` ## 🔊 Hinglish (regional understanding) > [!intuition]- Hinglish mein samjho > GNSS ka core idea simple hai: har satellite continuously apni position (ephemeris) aur apna time broadcast karta rehta hai. Aapka receiver dekhta hai ki signal aane mein kitna time laga, aur distance = speed of light × time se ek "pseudorange" nikaalta hai. Isko pseudo isliye bolte hain kyunki aapke receiver ki ghadi thodi galat hoti hai — yeh clock bias $b$ ek extra unknown ban jaata hai. Isliye teen satellite se $x,y,z$ nahi banta; **chaar satellite chahiye** — teen position ke liye, ek clock bias fix karne ke liye. > > Formula yaad rakho: $\rho_i = r_i + cb$, jahan $r_i$ actual geometric distance hai. In equations ko linearize karke, line-of-sight unit vectors se banaye gaye matrix $H$ ke through least squares se solve karte hain. Yahaan **geometry bahut matter karti hai** — agar satellites aasman mein ek jagah bunch ho gaye to DOP high ho jaata hai aur chhota sa error bada position error ban jaata hai. Isliye jitne zyada constellations (GPS + GLONASS + Galileo + BeiDou saath) use karo, utne zyada satellites visible, utna kam DOP — khaaskar tall buildings ke beech (urban canyon). > > Ek mind-blowing baat: **relativity** ko ignore nahi kar sakte. Satellite tez chalta hai to Special Relativity uski clock slow karti hai, lekin upar gravity kam hai to General Relativity clock fast karti hai — net effect roughly **+38 microsecond/din** fast. Agar correct na karein to har din ~11 km ka error! Isliye satellite ki clock ko ground par hi thoda slow tune karke bhejte hain. Yeh GPS roz-marra ki life mein General Relativity ka sabse bada proof hai. > > Exam tip: numbers pakdo — 1 microsecond clock error = 300 metre distance error (Example 3). Yeh dikhata hai ki GNSS asal mein ek **timing problem** hai, position to bas uska by-product hai. ![[audio/3.5.19-GNSS-—-GPS,-GLONASS,-Galileo,-BeiDou.mp3]]

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections