ROV Position Hold and Non-GPS Navigation!

Nortek DVL1000

Hi everyone! I just wanted to share our team’s recent dive into the world of DVLs or Doppler Velocity Loggers. Read more below!

As you browse through Blue Robotics’ community forums, you may come across the term “DVL”. What is this piece of equipment and why is it useful?

What is a DVL?

A Doppler Velocity Log (DVL) is an underwater navigation instrument that gets an acoustic “lock” on the bottom like a single-beam echosounder. However, in addition to measuring the distance to the bottom like an echosounder, a DVL also measures the velocity relative to the bottom. This relative velocity measurement can then be used for holding a stable position, obtaining a speed reading or navigating without the need for an acoustic positioning system. The DVL also enables the vehicle to navigate autonomously and facilitates the pilot’s control of the vehicle, similar to the vision sensors in an aerial drone like the DJI Mavic.

Here are some additional references which go into more detail:

Experimental Testing

With these interests in mind, Nortek graciously lent Blue Robotics a DVL1000 for testing purposes. The DVL1000 is an ideal piece of equipment due to its high accuracy and thorough integration documentation.

Nortek DVL1000

Nortek DVL1000

Hardware Installation

Mounting the DVL1000 to a BlueROV2 involved drilling appropriately spaced holes on the bottom frame panel and securing the DVL in place. A modified Payload Skid was installed to act as a protective cage.

Nortek DVL1000 installed on a BlueROV2

Nortek DVL1000 installed on a BlueROV2

A special cable was built using a Seacon MCIL8 in-line wet-mateable connector and a penetrator on the other end. The cable was terminated with an RJ45 connector and spades installed on the appropriate wires to configure for Ethernet communications.

A 3-port Ethernet switch was installed inside the BlueROV2 on top of the Fathom-X and had the following connections:

  • Fathom-X
  • Raspberry Pi 3B
  • Nortek DVL1000

3-Port Ethernet switch used for the DVL integration

3-Port Ethernet switch used for the DVL integration

ArduSub Integration

ArduPilot has a series of libraries available for non-GPS navigation. The two libraries that were most applicable for integrating a DVL are Optical Flow and Visual Odometry. The Visual Odometry Library was chosen to try first.

The Blue Robotics software team wrote a driver to convert the position sentences from the DVL into the VISION_POSITION_DELTA messages that could be interpreted by the ArduSub firmware.

Physical Testing

After the driver was tested by using a SITL Simulator (Software in the Loop), physical testing was conducted in the Blue Robotics pool.

Position hold and non-GPS navigation were successfully demonstrated with the results shown in the video below:

Future ArduSub Support

Support for DVLs is not implemented in the current version of ArduSub, but is something the ArduSub developers are currently working on. There is no planned timeline for implementation, as the feature will need to be thoroughly tested with accessible hardware.


This is really interesting. Being able to automatically control the sub’s position underwater is really a big step forward.