Mongla
An AUV autonomy stack that has to be right when nobody is watching.
SOURCE — fh1m/mongla_wsAn independent ROS 2 control, mission and vision stack for AUVs — a control board with firmware I wrote, a Hailo-8 neural accelerator that does nothing but see, and a rule that no number appears without the measurement that produced it.
Mongla is the stack I would build if I controlled the whole architecture. Reflexes live on the board — a 500 Hz control loop on an ESP32 core handling sensors, control and DShot — and thinking lives on a Raspberry Pi 5 with a Hailo-8 AI HAT. The two are joined by a single USB-C cable speaking MAVLink 2, and exactly one node is allowed to touch the board.
The philosophy is the point: absence renders as “--”, never 0.0; a verb that reports success while the vehicle does nothing is treated as the worst failure there is; and every shipped threshold is backed by a measurement with its method and conditions written next to it. The test suite is 3,756 checks, and the honest status badge reads “in water: never”.
Vision runs at a measured 53.9 Hz through the ROS graph (18.0 ms photon-to-detection), with per-camera calibration measured in water — 46.7°, not the datasheet’s 63.8° in air. A right-invariant EKF predicts on the board IMU and corrects with depth, optical-flow velocity and heading, replaying late measurements at the instant they describe rather than on arrival.