Originally published at: http://bluerobotics.com/ardusub-research-development-dvl/
As you browse through our 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:
- New to subsea navigation? (Nortek Wiki)
- Acoustic Doppler current profiler: Bottom Tracking (Wikipedia)
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.
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.
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:
- Raspberry Pi 3B
- Nortek DVL1000
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.
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.