All Projects
Classical GNC · Reference Simulator Working Sim + 44-Chapter Book

FletchGNC + Beyond Proportional Navigation

End-to-end classical GNC stack plus a self-authored 44-chapter technical reference book — the architecture and the canonical doctrine, shipped together as a blueprint for a missile-seeker or orbital-rocket successor.

The Problem

Classical guidance, navigation, and control has 70 years of literature behind it and is scattered across textbooks, mil-aero technical reports, and a handful of canonical papers. There is no single document that takes a working engineer from "I want to guide a thing to a target with constraints" through the modern nonlinear extensions, the differential-geometric reformulations, and the validation machinery you need before anyone will let you fly it.

FletchGNC is two outputs, the second authored to support the first. The simulator is a guided crossbow bolt — a 50 g projectile fired at 120 m/s over 100 – 250 m at sub-5 cm terminal accuracy. The book, Beyond Proportional Navigation, is the canonical reference I wrote while building the simulator, organized so any future guided-system project (missile seeker, orbital rocket, autonomous re-entry) can be bootstrapped from it.

What I Built — the Simulator

A real-time end-to-end GNC stack, modular by subsystem and explicit about every rate, every noise source, and every actuator dynamic. Nothing is faked, nothing is tuned by hand — everything is plant-inverted from first principles.

SubsystemDetail
Physics engine RK4 integration at 1 ms. Quaternion attitude with Rodrigues integration (accurate at high angular rates). Gravity, aerodynamic drag (Cd with AoA), aerodynamic lift (slender body + fin contributions), control forces.
Sensor model Tactical-grade MEMS IMU (BMI088 class): white noise (density × √Fs), Gauss-Markov bias (bounded), scale-factor error, cross-axis misalignment, G-sensitivity coupling, saturation limits.
Navigation 9-state EKF: [px py pz vx vy vz bax bay baz]. Attitude tracked separately via quaternion from gyro. Trapezoidal velocity integration. Runs at 1 kHz.
Guidance Proportional Navigation, a_cmd = N · Vc · LOS_rate. LOS rate from relative velocity, exponentially smoothed (α = 0.3). Augmented gravity term uses 0.05·N — the ballistic fire-control already compensates most of the gravity drop. Runs at 100 Hz (decimated from nav).
Control Plant inversion — no PID, no tuning: δ = (a_desired · m) / (q · CL_α · S_fin · 2). Dynamic pressure q in the denominator gives automatic gain scheduling. Rate damping δ −= 0.002 · ω. Runs at 1 kHz.
Actuator dynamics First-order lag with rate limiting: τ = 1/(2π·bw), slewed and clipped per step. Modeled, not assumed perfect.
State machine OFF → BOOT → IDLE → TARGETING → LOCKED → ARMED → FLIGHT → POST_FLIGHT with enforced transitions. In-flight modes: IDLE → ARMED → BOOST → MIDCOURSE → TERMINAL → IMPACT/MISS.
Core Principle

Author the canonical reference, then live by it — the doctrine and the code are written for the same audience.

The Book: Beyond Proportional Navigation (44 chapters)

Organized so the reader can use it either as a learning path or as a reference. Each chapter is self-contained but builds on the previous; mathematical derivations are complete, with Python verification scripts where helpful.

Structure

  • Foundations: the geometry of pursuit; classical & optimal Proportional Navigation; the conditions under which PN is optimal and where it stops being so.
  • Modern guidance: constrained PN, predictive PN, sliding-mode guidance, impact-angle / impact-time / energy-optimal guidance.
  • Navigation: inertial navigation foundations, Kalman filtering (linear & extended), nonlinear filtering (UKF, particle methods), observability analysis.
  • Control: nonlinear dynamic inversion (NDI), adaptive control (MRAC, L1), actuator allocation, saturation handling.
  • Aerodynamics & ballistics: low-Reynolds-number aerodynamics, Magnus effects, terminal ballistics.
  • Advanced topics: symplectic guidance, information-geometric guidance, octonionic guidance, Lie-group methods, Koopman-spectral guidance.
  • Validation: Monte Carlo design, statistical hit-probability estimation, testing strategy.

From Crossbow Bolt to Orbital Rocket

ORBITAL_GNC_REFERENCE.md is the project's most-load-bearing document: a development reference for the next system that inherits from FletchGNC. It captures what worked architecturally, where each pattern transfers cleanly, and where the physics has to be swapped wholesale. Same module separation:

  • environment/ — physics engine, world model, sensor simulation. Replace bolt aero with rocket propulsion + orbital mechanics; add J2 gravity, atmospheric drag, staging events.
  • gnc/ — flight computer, navigation, guidance, control. Same EKF skeleton, expand state for gyro bias and longer flights. Swap PN for powered explicit guidance (PEG), gravity turn, or optimal ascent trajectory tracking.
  • cdh/ — state machine, data logging, comms protocol. IDLE → PREFLIGHT → COUNTDOWN → IGNITION → ASCENT → STAGING → COAST → CIRCULARIZATION → ORBIT_ACHIEVED / ABORT.
  • ux/ — renderer, scope view, panels, replay. Same patterns; new domain content.

The pattern "compute desired acceleration in world frame, hand to control" stays identical. Plant inversion stays identical — just a different plant model (thrust vector angle = atan(a_lateral / T_axial), or RCS thruster selection). The crossbow bolt was deliberately the smallest fully-instrumented system I could build to validate the architecture before scaling it.

What I Learned

FletchGNC taught me that architecture beats algorithm. A clean module separation with the right rate hierarchy (1 kHz nav, 100 Hz guidance, 1 kHz control on 1 ms physics) and a properly-instrumented sensor model lets you swap algorithms freely; a sloppy architecture means every new algorithm becomes a refactor. The book exists because as I built the simulator I kept needing to explain to myself why a particular design choice was right — and once I'd written 44 chapters of that, I had the reference I'd needed all along.