Module 11 — Navigation & autonomy
From "where am I?" to "fly there yourself." This is where the FPV stack meets robotics.
🟢 Foundations. GNSS receivers hear satellites' timestamped signals; each time difference defines a sphere, and ~4+ spheres intersect at your position (trilateration). Accuracy ~1–3 m for hobby modules; HDOP in your OSD is the geometry-quality score (lower = better). A compass gives heading (GPS course is unreliable when slow), the barometer gives smooth relative altitude, and the EKF from Module 3 fuses it all. With that state, the autopilot offers RTL (return-to-launch — configure it before you need it), Loiter/PosHold, and Auto waypoint missions.
🟡 Practitioner. Geodesy you actually use: positions arrive as latitude/longitude (WGS-84); autopilots convert to a local NED frame (North-East-Down, meters) around home. Distance between two coordinates (haversine):
Position control is the cascade from Module 4 wearing a jacket: position error → velocity setpoint (P), velocity error → acceleration → desired tilt → the rate loop you already know. Plan a mission in Mission Planner / QGroundControl, simulate it in SITL, then fly it.
🔴 Advanced. Guidance: ArduPilot's L1 controller tracks paths by aiming at a point a set distance ahead — the same trick as steering a car. RTK GNSS uses carrier-phase corrections from a base station for centimeter accuracy. Beyond GNSS: optical flow (camera-based velocity, indoor hover), rangefinders, and visual odometry / VIO — estimating motion from camera + IMU, the front door to SLAM. Add a companion computer (Raspberry Pi class) speaking MAVLink to the FC: now OpenCV detections can become velocity setpoints — e.g., an AprilTag precision landing, or the object-tracking gimbal that replaces your head tracker.
⚫ Master. Path planning (A*, RRT*), trajectory optimization (minimum-snap polynomials — why cinematic autonomous shots look buttery), obstacle avoidance policies, and learning-based control: research teams have flown learned policies that beat human champions in drone racing. Mastery here means you can take a paper from arXiv, reproduce it in simulation, and state honestly what transfers to your 7-inch and what doesn't.
Mastery checklist
- Configure and test failsafe + RTL so a link loss at distance is a non-event.
- Fly a scripted SITL mission, then the same mission in the field, and diff the logs.
- Stream MAVLink into your own Python program and plot live position.
🖼️ Image ideas: your own Mission Planner screenshots; NASA/ESA public-domain GNSS constellation illustrations; Wikimedia Commons "GPS trilateration" diagrams (PD versions).
📚 Free resources: ArduPilot full-parameter & mission docs; PX4 user guide; QGroundControl docs; "Kalman and Bayesian Filters in Python" (again — the GNSS modules).