3.5.55Guidance, Navigation & Control (GNC)

Autonomous GNC for reusable rockets — SpaceX approach overview

2,247 words10 min readdifficulty · medium

The three letters:

  • Guidance — WHERE do I want to go? Computes the desired trajectory / target state.
  • Navigation — WHERE am I now? Estimates position, velocity, attitude from sensors.
  • Control — HOW do I move the actuators to close the gap? Turns the guidance command into gimbal/fin/thruster deflections.

WHY autonomy at all?


The flight phases (mental model)

  1. Boostback burn — reorient and cancel/reverse horizontal velocity toward the landing site.
  2. Coast / entry — grid fins deploy; steer through the atmosphere with lift.
  3. Entry burn — light engines to bleed off velocity before max heating.
  4. Landing burn (the hard part) — a single decelerating burn timed so velocity hits ~0 exactly at ~0 altitude. This is the famous suicide burn / hoverslam.
Figure — Autonomous GNC for reusable rockets — SpaceX approach overview

WHY fuse? The IMU is fast but integrates errors (drift); GPS is drift-free but slow/noisy. The Kalman filter optimally trusts each source according to its uncertainty.


Control: the hoverslam, from first principles

This is the 80/20 core — master this and you understand reusable landing.

Derive the burn from energy/kinematics

Take vertical motion, upward positive. During the landing burn the net upward acceleration is anet=Tmga_{net}=\frac{T}{m}-g (constant, if we approximate T,m,gT,m,g steady). Falling with downward speed v0>0v_0>0 at start altitude hh, we want v=0v=0 at h=0h=0.

Why use v2=v022anetsv^2 = v_0^2 - 2a_{net}\,s? It's the kinematic relation with no time in it — perfect when we care about where speed hits zero, not when.

Set final v=0v=0 over stopping distance hh: 0=v022aneth    anet=v022h0 = v_0^2 - 2a_{net}\,h \;\Rightarrow\; \boxed{a_{net}=\frac{v_0^2}{2h}}

So the required thrust is T=m(g+v022h)T = m\left(g+\frac{v_0^2}{2h}\right)

Throttling and gimbal — closing the loop

Real burns aren't perfect, so the controller continuously corrects using feedback: Tcmd=m(g+v22h)recomputed every cycleT_{cmd}=m\Big(g+\frac{v^2}{2h}\Big)\quad\text{recomputed every cycle} and steers the thrust vector to zero out horizontal error with gimbal deflection δ\delta. A simplified attitude/position law is PID: δ=Kpe+Kde˙+Ki ⁣edt\delta = K_p\,e + K_d\,\dot e + K_i\!\int e\,dt where ee is lateral position/angle error. Why the three terms? KpK_p reacts to present error, KdK_d damps (prevents overshoot/oscillation), KiK_i removes steady bias (e.g. constant crosswind).


Actuators (HOW the commands become motion)

Actuator Regime What it does
Engine gimbal (thrust vectoring) powered flight main steering torque + thrust magnitude
Grid fins atmospheric descent aerodynamic steering (roll/pitch/yaw)
Cold-gas (N₂) thrusters vacuum/coast flip maneuver, attitude when no air & engine off

Common mistakes


Active recall

Recall Feynman: explain to a 12-year-old

Imagine dropping a bouncy ball but you want it to stop softly right on a coin, not bounce. You can't push it gently the whole way (your push is too strong to hover), so instead you let it fall, then give it one big upward shove timed perfectly so it stops exactly at the coin. The rocket does the same: it falls, then fires its engine at just the right height so its speed reaches zero the instant it touches down. And it does all this by itself — sensing where it is, guessing where it's going, and steering — because a human would be too slow.

What do G, N, C stand for in GNC?
Guidance (where to go), Navigation (where I am), Control (how to actuate to get there).
Why must a booster land autonomously instead of remote-piloted?
Latency, plasma blackout, and control loops (~10 ms) faster than human reaction (~250 ms); the landing corridor is too tight for a human.
Why can't a returning booster hover?
Nearly empty, its minimum engine thrust exceeds its weight (TWR > 1), so it can only accelerate up or fall — no steady hover.
Derive the required net deceleration for a hoverslam.
From v2=v022anethv^2=v_0^2-2a_{net}h with final v=0v=0: anet=v02/(2h)a_{net}=v_0^2/(2h).
Ignition altitude formula for a landing burn?
hign=v02/(2anet)h_{ign}=v_0^2/(2a_{net}).
For v0=200 m/s, a_net=20 m/s², when to ignite and for how long?
hign=2002/40=1000h_{ign}=200^2/40=1000 m; burn time t=v0/anet=10t=v_0/a_{net}=10 s.
Why fuse IMU with GPS in navigation?
IMU is fast but its bias drifts as ½bt² after double integration; GPS is drift-free but slow/noisy — the Kalman filter optimally combines them.
What are the three actuators and their regimes?
Engine gimbal (powered flight), grid fins (atmospheric descent), cold-gas thrusters (vacuum/coast & flip).
What do the P, I, D terms of a PID controller each fix?
P reacts to present error, D damps oscillation (rate), I removes steady-state bias like constant wind.
Why solve landing guidance as a convex optimization?
Convex problems have a guaranteed global optimum found in bounded time — deterministic, fuel-optimal, real-time.
What is "lossless convexification" used for?
Reformulating the fuel-optimal powered-descent landing problem into a solvable convex problem without losing optimality.

Connections

  • Kalman Filter — the navigation state estimator.
  • PID Control — baseline feedback law for attitude/position.
  • Convex Optimization & Lossless Convexification — modern powered-descent guidance.
  • Thrust Vectoring (Gimbal) — steering during burn.
  • Rocket Equation (Tsiolkovsky) — fuel budget that makes landing burns tight.
  • Kinematics — v²=v0²+2as — the equation behind the hoverslam.
  • Attitude Dynamics & Quaternions — representing orientation without gimbal lock.

Concept Map

answers WHERE to go

answers WHERE am I

answers HOW to move

forces

uses

handles

fuses IMU and GPS

estimates state

integrates twice

bias grows as half b t squared

bounded by

commands trajectory

feeds back to

drives

executes

Autonomous GNC

Guidance

Navigation

Control

Latency and plasma blackout

Onboard autonomy

Closed-loop feedback

Unknown winds and mass

Kalman filter

r v q omega

IMU dead-reckoning

Position drift

Gimbal fins thrusters

Hoverslam landing burn

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, reusable rocket ka booster jab wapas aata hai, to woh basically ek controlled girta hua object hai. Usko koi human joystick se nahi chalata — sab kuch onboard computer khud karta hai. Yahi hai GNC: Guidance matlab "mujhe kahan jaana hai", Navigation matlab "main abhi kahan hoon" (IMU + GPS ko Kalman filter se mila ke pata karte hain), aur Control matlab "engine gimbal, grid fins aur cold-gas thrusters ko kaise move karun". Ye sab har second mein kai baar recompute hota hai — closed loop, pre-recorded nahi.

Sabse important cheez hai hoverslam (suicide burn). Problem ye hai ki khaali booster ka minimum engine thrust uske weight se zyada hota hai (TWR > 1), isliye woh hover kar hi nahi sakta — helicopter ki tarah dheere-dheere neeche nahi aa sakta. To trick ye hai: gir jao, aur phir ek hi burn ko itne perfect timing pe light karo ki velocity aur altitude dono ek saath zero ho jayein. Formula seedha kinematics se aata hai: v2=v022anethv^2 = v_0^2 - 2a_{net}h mein final v=0v=0 rakho, to anet=v02/(2h)a_{net}=v_0^2/(2h), aur ignition altitude hign=v02/(2anet)h_{ign}=v_0^2/(2a_{net}).

Example se samjho: agar booster 200 m/s se gir raha hai aur engine 20 m/s² deceleration de sakta hai, to hign=2002/40=1000h_{ign}=200^2/40=1000 m. Matlab computer 1000 m pe engine light karega, aur theek 10 second baad speed 0, altitude 0 — barge pe soft landing. Agar late light kiya to crash, jaldi light kiya to hawa mein ruk jayega aur phir gir jayega. Isiliye timing hi sab kuch hai.

Kyun important hai? Kyunki har flight mein wind, exact mass aur engine performance thoda alag hota hai — isliye rocket ko live feedback (PID + convex optimization) se apni trajectory khud adjust karni padti hai. Yahi autonomy rockets ko reusable banati hai, jisse space cheap ho jaata hai.

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections