Engineering and Technology
Celestial compass sensor mimics the insect eye for navigation under cloudy and occluded skies
E. Gkanias, R. Mitchell, et al.
The study addresses the need for a robust, lightweight, low-power compass for autonomous navigation that is independent of external infrastructure and resilient to disturbance. Conventional allothetic solutions such as magnetometers can be affected by electronic interference, while GPS requires satellite infrastructure. Inspired by insect navigation, which exploits skylight intensity and polarisation to infer solar position, the authors propose a sensor and computational model that mimic the dorsal rim area (DRA) of insect compound eyes. The central hypothesis is that a fan-like arrangement of polarisation-sensitive units combined with simple spatial integration can estimate solar azimuth accurately and robustly, outperforming more complex polarisation-only approaches, particularly under clouds and occlusions.
Prior work on celestial compasses often focuses on estimating the angle of polarisation (AoP) at multiple sky points and then inferring solar azimuth using computationally intensive methods such as eigenvector analysis, discrete Fourier transforms, or Hough-like approaches. Early bio-inspired sensors used photodiodes with orthogonal polarisers combined through polarisation opponent (POL-OP) units to estimate AoP at the zenith, requiring additional intensity information to resolve 180° ambiguity. Later, it was noted that tilted, non-zenith measurements can break this ambiguity, suggesting the functional value of the insect DRA’s fan-like arrangement for instantaneous, unambiguous readings. The authors’ earlier computational work demonstrated, in simulation, that a DRA-like array and circular-mean integration could recover solar azimuth efficiently. This paper extends that line by providing a hardware prototype and comparing against established AoP-based models (eigenvector/covariance and the four-zeros method) and simpler intensity- or polarisation-only compasses.
Hardware: The sensor consists of eight polarisation axis analysers (PAAs) evenly distributed around a ring tilted by 45°, mimicking the insect DRA’s fan-like layout. Each PAA comprises four UV-sensitive photodiodes (SG01D-18, SGLUX) with linear polarisers at 0°, 45°, 90°, 135°, read by TIAs using LTC6082 op-amps (30 MΩ feedback, 6.8 pF for ~15 kHz GBWP). Signals are digitised by ADS112C04 16-bit delta-sigma ADCs (differential mode, 45 Hz), managed via an I2C multiplexer (TCA9548A) controlled by a Raspberry Pi. Mechanical parts were 3D-printed; the eight PAAs are mounted at 45° elevation. Acceptance angle per photodiode is ~45° (detectable up to ~60°). Signal processing and compass model: For each PAA, only the 0° and 90° channels are used for insect-equivalence. Intensity I = (I90 + I0)/2; polarisation response p = (I90 − I0)/(2I) ∈ [−1, 1]. Celestial integration c = I − p. For K PAAs, responses (I, p, or c) are mapped to unit vectors with angles equal to each PAA azimuth and magnitudes equal to the response; their circular mean z = (1/K) Σk c_k e^{i 2π(k−1)/K} yields an estimate of solar azimuth α = −i ln z and dispersion σ = √2(1 − ||z||). Equivalent estimates are computed using I or p alone for comparison. Data collection: A TurtleBot3 Burger with an IMU and a zenith-facing panoramic camera carried the sensor. Data were collected in May 2022 (Sardinia, Italy) and Nov 2022 (Vryburg and Bela Bela, South Africa) across varied solar elevations, weather, and occlusion conditions. Each session comprised twelve 360° rotations; the robot was initialised towards magnetic north (±5°), and IMU provided local orientation. For analysis, a pooled dataset was created including I, p, c responses at many orientations. Interpolation allowed reconstruction of different hypothetical PAA counts evenly distributed around the ring by selecting nearest actual measurements. Performance metrics: Global error (RMSE) measures deviation from theoretical solar azimuth during a rotation (with ±5° initialisation uncertainty); local error (RMSE) measures consistency in tracking a fixed azimuth over a rotation (IMU as ground truth). Errors were computed over 360 sampled orientations per rotation. Comparative models: Two AoP-based alternatives were implemented. (1) Eigenvectors (covariance) model computes AoP and DoP from all four polariser channels per PAA, forms unit vectors perpendicular to AoP (assumed inward-facing to resolve 180° ambiguity), then uses the eigenvector of the covariance with the highest eigenvalue as solar direction. (2) Four-zeros model uses Fourier coefficients of p across PAAs, fits a curve with first two harmonics, finds four zero crossings by Newton–Raphson, and estimates solar azimuth as the midpoint of the closest zero pair. All methods were implemented in Python; analyses followed the defined RMSE procedures. Additional details: Full hardware schematics, PCB layouts, materials, robot control via ROS, and data acquisition procedures are described, including calibration logistics and sky imaging for session documentation.
- Spatial sampling: With minimal three PAAs, global RMSE was 10.53°. Performance improved monotonically with more PAAs; with 60 PAAs, global RMSE was 2.65° (approaching initialisation error). Local error dropped substantially at ≥6 PAAs (e.g., 3.78°). Improvements beyond ~35 PAAs were marginal (local RMSE 0.53° for 36 PAAs vs 0.43° for 60 PAAs). Subsequent analyses used eight PAAs (hardware configuration).
- Solar elevation: For elevations >10°, performance was stable (average RMSE: global 5.89°, local 2.77°). Errors increased rapidly at low elevations; at and below 0°, predictions were not useful. A rise in global error near zenith likely reflected increased ground-truth uncertainty from sky images rather than compass limitations.
- Atmospheric conditions: Across Sardinia (humid, coastal), Vryburg (dry savannah), and Bela Bela (woodlands), performance was comparable; atmospheric differences did not substantially affect results.
- Cloud cover: Thin or broken clouds had limited impact; thick, uniform, or solid cloud cover degraded performance for all methods.
- Occlusions (canopy/buildings): Intensity and polarisation compasses were strongly affected by whether the sun-side or anti-sun side was occluded, respectively. Celestial integration c = I − p leveraged whichever cue was reliable at the time, providing more robust estimates. More PAAs reduced errors, especially under dense occlusion.
- Model comparison: Celestial integration generally outperformed intensity-only and polarisation-only compasses across conditions; when the sun was completely hidden, the polarisation compass performed better. Against AoP-based methods, celestial integration yielded the lowest errors: with 36 PAAs and local reference under clear skies, celestial compass achieved 0.59° RMSE vs 2.70° for eigenvectors and 70.38° for four-zeros. The four-zeros model was fragile (failed with sun elevation >45° or <15°). The eigenvector model was less affected by occlusions than four-zeros, but degraded substantially with clouds or when the sun was fully hidden due to unresolved 180° ambiguities.
The hardware implementation validates a biologically inspired approach wherein sensor morphology and simple spatial integration produce robust solar azimuth estimates. Integrating intensity and polarisation (c = I − p) combines complementary information, improving robustness under clouds and occlusions relative to using either cue alone. The approach outperformed established AoP-based algorithms that require more complex computation and calibration. Biological plausibility is underscored by parallels to insect visual pathways: orthogonal polarisers emulate R7/R8 microvilli; POL-OP-like subtraction and normalisation correspond to known circuitry (R7 inhibited by R8; Dm9 normalisation; DmDRA1 encoding polarisation) projecting via MeTu to AOTu and central complex; summation into a ring-like representation is analogous to vector coding of heading in central brain circuits. The method provides a compact, energy-efficient compass input that could be fused with self-motion (e.g., IMU/optic flow) to stabilise orientation, akin to insect systems. The sensor showed resilience across diverse atmospheric conditions and partial occlusions, suggesting utility for autonomous platforms operating outdoors without reliance on GPS or magnetometers.
The study presents a compact celestial compass sensor and computation inspired by insect DRA morphology that uses an array of PAAs and a simple circular-mean of a combined intensity–polarisation signal to estimate solar azimuth. Field tests across varied locations, solar elevations, cloud covers, and occlusions demonstrate robust performance, with clear advantages over intensity-only, polarisation-only, and two AoP-based methods (eigenvectors and four-zeros). The approach provides efficient, low-computation compass estimates suitable for autonomous navigation, and offers insight into plausible neural processing in insects. Future work includes miniaturisation (integrated PCB or CMOS with tailored polarisers), adding spectral channels, incorporating optic flow and temporal filtering (e.g., Kalman or recurrent networks), calibration-free handling of ambiguities, and systematic nocturnal validation (moonlit skies).
Performance degrades at low solar elevations (≤10° and particularly ≤0°), under thick uniform cloud cover, and when the sun is completely obscured, where the polarisation-only compass may outperform the integrated method. The global error metric includes ±5° initialisation uncertainty, and ground-truth estimation from sky images becomes less reliable near zenith. The implemented model omits spectral and optic flow inputs and circadian corrections known from insect systems. The four-zeros comparator is fragile across common elevations. The current prototype is relatively bulky compared to camera-based solutions and was not systematically evaluated at night.
Related Publications
Explore these studies to deepen your understanding of the subject.

