Skip to content

Project 03

Tethys Robotics

Visual SLAM for underwater robotics

Project
Tethys Robotics
Role
Bachelor's thesis
Organisation
Mobile Robotics Lab, ETH Zürich · Tethys Robotics
Period
Autumn 2025
Dwg no.
CVW-03
Rev
B
Pipeline diagram: input frames, CLAHE contrast enhancement, UFEN extractor, tracking and keypoint matching, local mapping, loop and map merging, pose estimation
Fig. 1Implemented underwater pipeline built on ORB-SLAM3, with pre-processing and learned feature extraction.

1Problem

Once submerged, a robot has no GPS. Underwater platforms therefore rely mostly on acoustic navigation — USBL, Doppler velocity logs, sonar — which works, but is costly, depends on the environment and offers limited spatial resolution.

Cameras are compact, cheap and already on board most inspection robots. The catch is the imagery: turbidity, scattering, blur and a strong blue-green cast reduce contrast and texture, which is exactly what visual tracking depends on.

The question of the thesis: is monocular visual SLAM reliable in underwater scenarios, and how can its robustness be improved under real operating constraints?

2My role

Bachelor's thesis at the Mobile Robotics Lab, ETH Zürich (Prof. Dr. Stefan Leutenegger), in collaboration with Tethys Robotics, building on the SWARM focus project.

I reviewed visual SLAM methods for underwater suitability, built an underwater-adapted monocular pipeline on ORB-SLAM3, integrated a learned feature front end, and evaluated it against ORB-SLAM3, SuperPoint and DROID-SLAM on underwater sequences from Tethys Robotics.

3System overview

Raw monocular frames are converted to grayscale, enhanced with CLAHE (contrast-limited adaptive histogram equalisation) and passed to a SuperPoint-style feature extractor running UFEN weights. UFEN — Underwater Feature Extraction Network — distils SuperPoint into a model trained for underwater degradation; here it is used as a drop-in replacement for the SuperPoint weights.

The network runs as a TorchScript model on the GPU. Its 256-dimensional descriptors are binarised and packed into 32 bytes so the unchanged ORB-SLAM3 back end — Hamming matching, tracking, local mapping, loop closing — can consume them. Non-maximum suppression keeps a capped set of strong, well-spread keypoints.

  1. 01Input frames
  2. 02CLAHE contrast enhancement
  3. 03UFEN extractor
  4. 04Tracking & keypoint matching
  5. 05Local mapping
  6. 06Loop & map merging
  7. 07Pose estimation
Diagram 3.1 — Processing pipeline
Table 3.1 — Specifications
Base frameworkORB-SLAM3Fork: SUPER_SLAM3
Camera setupMonocular
Pre-processingCLAHELocal, clip-limited contrast enhancement
Feature extractionSuperPoint-style network with UFEN weightsTorchScript on GPU
Descriptors256-d, binarised to 32 bytesCompatible with ORB-SLAM3 Hamming matching
BaselinesORB-SLAM3 · SuperPoint · DROID-SLAM
Datasets3 underwater sequences from Tethys RoboticsRepmus Motorbike, Oceanpact Box, Orsted Encirclement
ReferencePhotogrammetry-based trajectory
MetricMean absolute pose error (APE)After Sim(3) Umeyama alignment, evaluated with evo

4Key decisions & trade-offs

  1. 4.1

    Build on ORB-SLAM3, not a learned SLAM system

    In initial validation on the underwater sequences, ORB-SLAM3 tracked more stably than DROID-SLAM. Learned SLAM can reach high peak accuracy when deployment matches its training data, but it degrades under domain shift and needs more compute. On the monotone, low-texture Orsted Encirclement sequence DROID-SLAM diverged (mean APE 1.513 m). So the robust ORB-SLAM3 back end stays, and only the most sensitive stages — pre-processing and feature extraction — are changed.

  2. 4.2

    CLAHE before feature extraction

    Attenuation and scattering wash out local contrast, which hurts keypoint repeatability. CLAHE equalises contrast per tile and clips the histogram so it does not amplify noise and backscatter. With UFEN weights fixed, enabling CLAHE cut mean APE by about 24 % on Repmus Motorbike and 16 % on Oceanpact; on Orsted Encirclement it made no measurable difference.

  3. 4.3

    UFEN features instead of ORB

    The feature front end is the main sensitivity point underwater, so it is swapped while the back end stays fixed to isolate its effect. Non-maximum suppression favours fewer, better-distributed keypoints over ORB-SLAM3's larger feature budget. The trade-off showed in the results: the learned front end won on Oceanpact but not everywhere, and it requires a GPU.

  4. 4.4

    Binarised descriptors to reuse the back end

    SuperPoint-style descriptors are continuous, while ORB-SLAM3 expects binary ones. Binarising and packing them into 32 bytes keeps Hamming matching and every downstream module unchanged, instead of rewriting the SLAM system around a new descriptor type.

5Results

  • Monocular visual SLAM is feasible underwater in structured, sufficiently visible scenes; reliability drops under low contrast, blur and repetitive appearance.
  • The UFEN + CLAHE pipeline achieved the best result on Oceanpact (0.0478 m vs. 0.0488 m mean APE for ORB-SLAM3) and stayed close to ORB-SLAM3 on the other two sequences.
  • Classical feature-based pipelines held up better than learned SLAM under typical underwater conditions; DROID-SLAM failed on Orsted Encirclement.
  • Next steps: fine-tune the feature extractor on representative underwater data, and add inertial or stereo sensing to resolve monocular scale and reduce drift.
Table 5.1 — Mean APE (m) per sequence, lower is better
DROID-SLAMRepmus Motorbike0.072Oceanpact0.212Orsted Encirclement1.513
ORB-SLAM3Repmus Motorbike0.042Oceanpact0.049Orsted Encirclement0.180
SuperPointRepmus Motorbike0.065Oceanpact0.052Orsted Encirclement0.237
UFEN + CLAHE (ours)Repmus Motorbike0.047Oceanpact0.048Orsted Encirclement0.198
Table 5.2 — Ablation: effect of CLAHE with fixed UFEN weights, mean APE (m)
UFENRepmus Motorbike0.063Oceanpact0.057Orsted Encirclement0.197
UFEN + CLAHERepmus Motorbike0.047Oceanpact0.048Orsted Encirclement0.198

6Media

3D plot of the estimated trajectory, coloured by absolute pose error, overlaid on the dashed reference trajectory
Fig. 2Repmus Motorbike sequence: aligned trajectory estimate coloured by absolute pose error, against the reference.
Plot of absolute pose error over time with mean, median, RMSE and standard deviation bands
Fig. 3Repmus Motorbike sequence: absolute pose error over time, after Sim(3) alignment.
ORB-SLAM3 map viewer showing a reconstructed point cloud and camera trajectory, next to the current camera frame with tracked feature points
Fig. 4Map viewer: reconstructed map and trajectory, with tracked features in the current frame.