Course · 66 lessons · 24 labs
Guidance, Navigation and Control
How a vehicle estimates where it is, decides where to go and makes itself get there: feedback and optimal control, inertial and aided navigation, guidance laws and trajectory optimization, for rovers, drones, aircraft, spacecraft and landers.
66 of 66 theory lessons and 24 of 24 labs are open. Items marked planned are not available yet. Course status: in development. Start with M1-T1: Three Questions: Where Am I, Where Should I Go, How Do I Get There.
Course resources Textbooks, courses, reports and tools, each with its licence.
How the course works
Every lesson explains an idea in words first, then defines it, derives it, works a numeric example and shows where a robot uses it. One vehicle carries the course: Hopper, a small planar rocket lander on a test range. Each module adds one block of its GNC system (a model, a compensator, a regulator, a navigation filter, a guidance law) until the capstone lands it under wind, sensor errors and a failed beacon. Aircraft and spacecraft appear in modules 10 and 11.
The course does not repeat what the other tracks teach. Where another page already covers a topic (the Kalman filter, rotations, path planning, PID tuning, PX4), the lesson links to it, and each module lists what it leaves to those pages. Labs are specified and not open yet. The course assumes school algebra and basic Python at the start; each module states the mathematics it needs.
Stage 1: The loop and its models
Module 1 · In progress
The GNC Problem
What guidance, navigation and control each decide, which signals pass between them, why the three loops run at different speeds, and how a mission requirement becomes a number each of them must meet.
Before this module: School algebra and trigonometry. Basic Python.
Covered elsewhere on this site
Completion criteria
- A learner can draw the GNC loop of a vehicle, name the signal on every arrow with its unit and rate, and attribute a missed target to guidance, navigation or control from logged data.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (4)
Labs (1)
- M1-L1Who Missed the Pad?Browser tool
Module 2 · In progress
Modelling a Vehicle for GNC
The frames an aerospace vehicle needs beyond a local map, the rigid-body equations of motion for any vehicle, the forces and actuators that drive them, how to trim and linearize, and how to know that a simulation is right.
Before this module: module 1. Vectors, matrices and rotation matrices (Linear Algebra modules 1, 2 and 7). Derivatives. Partial derivatives are reviewed.
Covered elsewhere on this site
Completion criteria
- A learner can write the equations of motion of a planar and a 6-DoF rigid body, find a trim point, linearize about it, and verify a simulator with conservation checks and step-size studies.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (5)
- M2-T1Frames for Flight: ECI, ECEF, Geodetic, NED, Body and WindTheory · goes deeper than an existing page
- M2-T2Rigid-Body Equations of Motion for Any VehicleTheory · goes deeper than an existing page
- M2-T3Forces, Moments and Actuator ModelsTheory
- M2-T4Trim and LinearizationTheory
- M2-T5Simulation You Can TrustTheory
Labs (2)
- M2-L1Trim and Linearize HopperBrowser lab
- M2-L2Find the Simulator BugBrowser lab
Stage 2: Control
Module 3 · In progress
Classical Feedback Control
The single-loop theory that every autopilot review still uses: transfer functions, what feedback buys and costs, frequency response, the Nyquist criterion and stability margins, loop shaping, the hard limits on performance, and what changes when the controller is a computer.
Before this module: modules 1, 2. Complex numbers and exponentials. First and second-order differential equations. The Laplace transform is introduced.
Covered elsewhere on this site
Completion criteria
- A learner can read gain margin, phase margin, delay margin and bandwidth from a Bode or Nyquist plot, design a lead-lag compensator to a margin specification, and implement it at a fixed sample rate with anti-windup.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (7)
- M3-T1Transfer Functions, Poles and ZerosTheory
- M3-T2What Feedback Buys and What It CostsTheory
- M3-T3Frequency Response and Bode PlotsTheory
- M3-T4The Nyquist Criterion and Stability MarginsTheory
- M3-T5Loop Shaping: Lead, Lag and PID as CompensatorsTheory · goes deeper than an existing page
- M3-T6Limits of Performance: Delay, Right-Half-Plane Zeros and the Bode IntegralTheory
- M3-T7Digital Control: Sampling, Delay and Anti-WindupTheory
Labs (2)
- M3-L1Rescue the Phase MarginBrowser lab
- M3-L2When the Gimbal SaturatesBrowser lab
Module 4 · In progress
State-Space and Optimal Control
Many states and many inputs at once: modes, controllability and observability, observers and the separation principle, the linear-quadratic regulator derived from dynamic programming, why the LQG combination loses its guarantees, and how to track a command without steady-state error.
Before this module: modules 2, 3. Eigenvalues and eigenvectors, positive-definite matrices, quadratic forms (Linear Algebra modules 4 and 6).
Covered elsewhere on this site
Completion criteria
- A learner can test controllability and observability, design a state feedback and an observer, derive and solve the Riccati equation for a small system, and check the margins of the resulting loop.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (6)
- M4-T1State-Space Models, Modes and StabilityTheory
- M4-T2Controllability, Observability and Pole PlacementTheory
- M4-T3Observers and the Separation PrincipleTheory
- M4-T4The Linear-Quadratic Regulator from Dynamic ProgrammingTheory · goes deeper than an existing page
- M4-T5LQG and Why the Guarantees DisappearTheory
- M4-T6Tracking, Integral Action and FeedforwardTheory
Labs (2)
- M4-L1LQR for Hopper and Its MarginsBrowser lab
- M4-L2The Observer That Spoils the LoopBrowser lab
Module 5 · In progress
Nonlinear, Scheduled and Adaptive Control
What is used when one linear design is not enough: Lyapunov's method, gain scheduling across an envelope, dynamic inversion and its incremental form, sliding-mode and adaptive control with their costs, control allocation for redundant effectors, and robustness measures beyond gain and phase margin.
Before this module: modules 3, 4. Module 4. Vector calculus (gradients). The pseudoinverse (Linear Algebra module 6).
Covered elsewhere on this site
Completion criteria
- A learner can prove stability of a simple nonlinear loop with a Lyapunov function, schedule a linear design over an operating variable, invert a known nonlinearity, and allocate a moment command over redundant effectors with limits.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (7)
- M5-T1Lyapunov StabilityTheory
- M5-T2Gain SchedulingTheory
- M5-T3Dynamic Inversion and Its Incremental FormTheory
- M5-T4Sliding-Mode ControlTheory
- M5-T5Adaptive Control and Its RisksTheory
- M5-T6Control AllocationTheory · goes deeper than an existing page
- M5-T7Robustness Beyond Gain and Phase MarginTheory
Labs (2)
- M5-L1Schedule the Gains Through the BurnBrowser lab
- M5-L2Fly with One Effector LostBrowser lab
Stage 3: Navigation
Module 6 · In progress
Inertial Navigation
Navigation with no outside signal, taken to the level of the equations: what inertial sensors measure and how they err, reading a sensor from its Allan variance, the strapdown mechanization, how errors propagate (the Schuler oscillation and the unstable vertical channel), initial alignment, and a drift budget.
Before this module: module 2. Module 2. Rotations and quaternions (Linear Algebra module 7). Variance and standard deviation (Probability module 4).
Covered elsewhere on this site
Completion criteria
- A learner can write and code a strapdown mechanization, read angle random walk and bias instability from an Allan deviation plot, derive the error equations in one horizontal channel, and predict position drift from a sensor specification.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (6)
- M6-T1What Inertial Sensors MeasureTheory · goes deeper than an existing page
- M6-T2Allan Variance: Reading a Sensor from Its NoiseTheory
- M6-T3Strapdown MechanizationTheory · goes deeper than an existing page
- M6-T4INS Error Dynamics and the Schuler OscillationTheory
- M6-T5Initial Alignment: Levelling and GyrocompassingTheory
- M6-T6An Inertial Drift BudgetTheory · goes deeper than an existing page
Labs (2)
- M6-L1Read the Allan PlotBrowser lab
- M6-L2Mechanize and Watch It DriftBrowser lab
Module 7 · In progress
Aided Navigation and Attitude Determination
Bounding inertial drift with outside measurements: the satellite position fix as a least-squares problem, how GNSS and INS are coupled, attitude from vector observations, attitude filters, the other aiding sensors of aircraft and spacecraft, and integrity: knowing when the answer cannot be trusted.
Before this module: module 6. Least squares (Linear Algebra module 5). The Kalman filter and its extended form (Probability modules 7 and 8, or UAV module 3). Singular value decomposition for one lesson.
Covered elsewhere on this site
Completion criteria
- A learner can solve a position fix and its dilution of precision, set up the error-state measurement equations of a loosely and a tightly coupled filter, determine attitude from two vector observations, and compute a protection level for a simple fault model.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (6)
- M7-T1The Position Fix: Pseudoranges, Least Squares and Dilution of PrecisionTheory · goes deeper than an existing page
- M7-T2Coupling GNSS and INS: Loose, Tight and DeepTheory · goes deeper than an existing page
- M7-T3Attitude from Vector Observations: TRIAD and Wahba's ProblemTheory
- M7-T4Attitude Filters: Complementary and MultiplicativeTheory
- M7-T5The Aiding Sensors of Aircraft and SpacecraftTheory
- M7-T6Navigation Integrity: Fault Detection and Protection LevelsTheory · goes deeper than an existing page
Labs (3)
- M7-L1Solve the FixBrowser lab
- M7-L2Two Vectors, One AttitudeBrowser lab
- M7-L3Ride Through the OutageBrowser lab
Stage 4: Guidance
Module 8 · In progress
Guidance Laws
How a vehicle decides what to ask of its controller along a route and at a destination: look-ahead and vector-field path following for vehicles that cannot stop, switching between legs and loiters with total-energy control, and explicit guidance to a terminal position and velocity.
Before this module: modules 1, 3. Vectors and relative motion. First-order and second-order differential equations. Polynomials.
Covered elsewhere on this site
Completion criteria
- A learner can design a nonlinear path-following law and choose its look-ahead from the cross-track dynamics, switch between legs and hold a loiter, and compute a polynomial guidance command to a terminal position and velocity.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (3)
- M8-T1Path-Following Guidance for Vehicles That Cannot StopTheory · goes deeper than an existing page
- M8-T2Mission Guidance: Legs, Loiters and EnergyTheory · goes deeper than an existing page
- M8-T3Explicit Guidance to a Terminal StateTheory
Labs (2)
- M8-L1Hold the Survey Line in WindBrowser lab
- M8-L2Fly the Polynomial DescentBrowser lab
Module 9 · In progress
Trajectory Optimization and Predictive Guidance
Guidance computed rather than derived: the optimal control problem and the minimum principle, direct methods that turn it into a nonlinear program, convex problems that can be solved on board, fuel-optimal powered descent by convexification, and model predictive control as both guidance and control.
Before this module: modules 4, 8. Module 4. Gradients and Lagrange multipliers (introduced). Linear and quadratic programs are defined in the module.
Covered elsewhere on this site
Completion criteria
- A learner can state an optimal control problem, find a bang-bang solution from the minimum principle, transcribe a problem by collocation, recognise a convex problem, and state the conditions under which a predictive controller is stable and stays feasible.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (5)
- M9-T1The Optimal Control Problem and the Minimum PrincipleTheory
- M9-T2Direct Methods: Shooting and CollocationTheory
- M9-T3Convex Optimization for GuidanceTheory
- M9-T4Powered-Descent Guidance by ConvexificationTheory
- M9-T5Model Predictive Control as Guidance and as ControlTheory · goes deeper than an existing page
Labs (2)
- M9-L1Find the Switch TimeBrowser lab
- M9-L2Solve the Landing as a Convex ProgramBrowser lab
Stage 5: Vehicles and system engineering
Module 10 · In progress
Aircraft GNC
The first supporting vehicle. Fixed-wing dynamics and their five modes, the autopilot built by successive loop closure, air data and wind, guidance through an approach and an automatic landing, and the requirements an aircraft control system is judged against.
Before this module: modules 3, 5, 8. Modules 2 to 4.
Covered elsewhere on this site
Completion criteria
- A learner can identify the short-period, phugoid, roll, spiral and Dutch-roll modes from a model or a response, close the loops of a longitudinal and a lateral autopilot in order, and guide an aircraft down a glide slope to a flare.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (5)
- M10-T1Aircraft Dynamics and Their Five ModesTheory
- M10-T2The Autopilot by Successive Loop ClosureTheory
- M10-T3Air Data, Angle of Attack and WindTheory
- M10-T4Approach and Automatic LandingTheory
- M10-T5Handling Qualities, Margins and Envelope ProtectionTheory
Labs (2)
- M10-L1Name the ModeBrowser lab
- M10-L2Close the Loops in OrderBrowser lab
Module 11 · In progress
Spacecraft and Rocket GNC
The second and third supporting vehicles. Orbits in the depth guidance needs, relative motion and rendezvous, attitude dynamics without air, attitude control with wheels and thrusters, ascent through the atmosphere, and entry, descent and landing.
Before this module: modules 5, 7, 9. Modules 2 to 4. Conic sections are reviewed.
Covered elsewhere on this site
- Quaternion algebra and the rotation group
- Mission design, launch windows and interplanetary transfers (outside the scope of this site)
- Structural, thermal and propulsion design (outside the scope of this site)
Completion criteria
- A learner can compute an orbit and a transfer from its elements, propagate relative motion with the Clohessy-Wiltshire equations, predict torque-free motion, design a quaternion-feedback law with wheel limits, and describe the guidance of each phase of an ascent and a landing.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (6)
- M11-T1Orbits for Guidance: Elements, Energy and Delta-vTheory
- M11-T2Relative Motion and RendezvousTheory
- M11-T3Attitude Dynamics Without AirTheory
- M11-T4Attitude Control with Wheels and ThrustersTheory · goes deeper than an existing page
- M11-T5Ascent Guidance and ControlTheory
- M11-T6Entry, Descent and LandingTheory
Labs (2)
- M11-L1Detumble and PointBrowser lab
- M11-L2Approach Along the Velocity BarBrowser lab
Module 12 · In progress
GNC Systems Engineering and Capstone
How a GNC design is shown to work before it flies: error budgets and covariance analysis, Monte Carlo dispersion analysis, a policy for stability margins, mode management and redundancy, the path from model to flight software, and a design review of a complete system. The capstone lands Hopper under dispersions.
Before this module: modules 4, 7, 8, 9. Variance and the Gaussian (Probability modules 2 and 4). Module 4.
Covered elsewhere on this site
Completion criteria
- A learner can build an error budget, plan and read a Monte Carlo campaign with a stated confidence, write a margin policy, and defend a complete GNC design against a requirement with evidence.
- Every lesson has objectives, an explanation in words with a block diagram or figure, definitions with units, a derivation, a worked numeric example reproduced by a test, where real vehicles use the idea, misconceptions, takeaways and three knowledge checks.
- Every lesson of relation "deeper" links to the page it builds on in its first section and does not reuse that page's example.
- Every lab runs in the browser: its starter code fails with a teachable message, its reference solution passes on hidden randomized scenarios, and learner code never receives ground truth.
- Relevant automated tests and the build pass, pages work in light and dark mode at phone and desktop width, and no known blocking defect remains.
Theory (6)
- M12-T1Error Budgets and Covariance AnalysisTheory
- M12-T2Monte Carlo Dispersion AnalysisTheory · goes deeper than an existing page
- M12-T3A Stability-Margin PolicyTheory
- M12-T4Modes, Redundancy and Fault Management in GNCTheory · goes deeper than an existing page
- M12-T5From Model to Flight SoftwareTheory · goes deeper than an existing page
- M12-T6A GNC Design ReviewTheory
Labs (2)
- M12-L1How Many Runs Are Enough?Browser lab
- M12-L2Capstone: Land HopperBrowser lab
Get notified when the next module is released.
One email per new module.