AUV Navigation — Embedded EKF Sensor Fusion
LabMACS, UNIVPM — EKF, USBL integration, low-level serial, offline analysis toolchain
A real-time state-estimation payload for autonomous underwater vehicles, where GPS is unavailable and acoustic positioning is sparse and noisy. Built at LabMACS (UNIVPM) and written up in a paper currently under review (IEEE MED 2026). The core estimator lives in a private lab repository — this is its public showcase; the linked repo holds the offline analysis and visualization toolchain, which I authored entirely.
- 9-state EKF (position / velocity / acceleration) on an NVIDIA Jetson TX2, with a constant-acceleration model propagated at 50 Hz and asynchronous, multi-rate measurement updates.
- Heterogeneous sensor fusion: XSens MTi-670 IMU (100 Hz), BlueRobotics depth sensor (10 Hz), and an EvoLogics S2C USBL acoustic link (~0.5 Hz) — each on its own thread feeding a shared state.
- Range-only USBL update: a deliberate, robust choice — acoustic range is far cleaner than bearing on a low-cost USBL; combined with the depth measurement it constrains position to a circle on the measured depth plane.
- Embedded comms: a custom binary protocol (struct + base64) packs telemetry into the 64-byte payload limit of the acoustic modem, plus the low-level serial interface to a host vehicle’s controller.
- Validated in the water: static and dynamic pool campaigns; the filter converges to the acoustic fix when updates are consistent and dead-reckons through acoustic dropouts on IMU alone. I also built the offline EKF replay, trajectory/range/depth plots, a spline-based ground-truth editor and the noise-tuning configuration system.