A Doppler Velocity Log (DVL) estimates a vehicle’s velocity relative to the seafloor by measuring the Doppler shift of acoustic pulses reflected off the bottom.
Basic Principle
A DVL emits acoustic beams — typically four, in a Janus configuration — and measures the frequency shift of each return. For a beam with transmitted frequency and measured return frequency , the Doppler shift gives the along-beam velocity component:
where is the speed of sound in water.
Combining Beams
With four beams arranged symmetrically around the vehicle’s vertical axis, the individual beam velocities are combined into a 3D velocity vector in the vehicle frame:
where is the pseudo-inverse of the beam geometry matrix.
Practical Notes
| Condition | Effect |
|---|---|
| Altitude too low | Beam overlap, corrupted return |
| Altitude too high | Loss of bottom lock |
| Soft or sloped terrain | Reduced return quality |
A simple bottom-lock check in code:
def has_bottom_lock(beam_ranges, min_range=0.5, max_range=100.0):
return all(min_range < r < max_range for r in beam_ranges)
Summary
DVL velocity is a bottom-relative measurement, not an inertial one. Combined with an IMU and a state estimator, it forms the backbone of most practical underwater dead-reckoning systems.