Hey Blue Robotics Community!
Relatively frequently I see people asking about, hovering, dead reckoning, and using GPS or IMUs for localization. This is often enough I think perhaps it would be useful to have a small guide on localizing underwater vehicles. This a first draft and should be considered an introductory guide. Any comments, criticisms, or things that I left off are welcomed and appreciated.
Why is localization a problem for underwater vehicles?
In the field of in air robotics, localization, in generality, is a solved problem; the Global Positioning System, or GPS, can tell us global position down to centimeter accuracy. As we all soon find out in our underwater expeditions, magnetic waves used for all common forms of wireless communications do not penetrate water. This is why we use wired tethers. GPS uses electromagnetic waves to relay information from orbiting satellites to the GPS device on the ground. *A note is needed here, there are some exceptions and nuance to this entire guide that I have left out for the sake of brevity.
Okay so I can't use GPS, why don't I just use my IMU? Double Integrating Acceleration gives displacement right?
While true that an ideal IMU can be used as a self contained localization system, hobby grade and even professional grade IMUs are very noisy. When double integrating the error builds exponentially. We once ran an experiment where we left our vehicle sitting for 1 hour and measured the drift from this localization technique, we found that we had traveled several thousand miles during that time and the vehicle thought it was a couple cities away. This being said IMUs are wonderful tools for telling the current orientation of the vehicle.
I would like to stop here for a moment and say for most applications of ROVs and even AUVs this is plenty; that realistically having the vehicle's orientation but not its position is sufficient for most applications. I would recommend seriously evaluating why you think you need full localization and pursuing any possible workarounds first. I say this because localization is huge step up in terms of price and or complexity. The sensor package needed to do this can easily be 20 times the cost of the rest of the vehicle. I will discuss some low cost solutions as well but note, I have never seen success with them outside a lab or used them personally and they take a considerable amount of skill and time to implement. I discuss them here to give a complete overview and so that underwater localization moves forward from the current solution, throw money at it till you know where you are.
So now for the actual information. This guide will discuss Doppler Velocity Loggers (DVL), Ultra Short Baseline systems (USBL), DIY acoustic transponder systems, Simultaneous Localization and Mapping (SLAM) using both optical and sonar solutions, and optical flow using cameras and side scan sonars. (If I missed anything please tell me.)
Off the Shelf Solutions
DVL, and USBL are turnkey solutions and made by several companies. Both are acoustic devices but use vastly different principles of operation. Despite their differences, for the purposes of this discussion their major advantages are the same, you can just buy them and they work, and will likely have much higher precision than the other solutions. DVLs send acoustic pings to the bottom and record the doppler shift of the reflected ping. This gives the velocity of the vehicle relative to the sea floor. By integration we can determine the position of the vehicle. The down side to DVLs is that they rely on an unobstructed area between the below the vehicle, and there can be error caused by debris on the seafloor(pipes, steep slopes boulders). Additionally DVL's have a maximum altitude off the seafloor. The major advantages of the DVL are that it is self contained, the unit is only on the vehicle and doesn't need a transponder at a fixed location. USBL are a system of a transponder on the vehicle and a transceiver on the surface. The transceiver determines the range and bearing to the transponder on the vehicle. The Disadvantages of a USBL are that there are two separate units, one on the vehicle and one at a fixed location. The advantages of the USBL is the fixed reference location on the surface as well as cost.
Do it Yourself Solutions
It is relatively feasible to design your own USBL type system with a pinger on the surface or vehicle and a passive sonar array that can determine the range and bearing to said pinger. Either make or buy a pinger and a passive sonar array to give range and bearing to the pinger. Much more work and expertise needed to do this but probably can be done for 1/20-1/5 the price of a DVL. The limitations on this are refresh rate and accuracy, how often and how far does the pinger ping, and how accurately can the passive sonar array determine the range and angle. As a note for this the Digital Signal Processing on this type of system, while to DSP professionals is quite trivial it requires a strong understanding of the principles and techniques used. Some interesting threads over at Open ROV on making Acoustic modems which have a lot of overlap.
SLAM, Simultaneous localization and mapping has been a hot topic in robotics in recent years and can be adapted for underwater use. This can be done using cameras or sonars. With cameras limitations are range and features, often there are simply not enough features that we can see with our underwater cameras for SLAM algorithms to work. The same principles can be applied to imaging sonars, note that sonars are actually fairly noisy, and the amount of noise in them may make it difficult for computer interpretation. Further with the mechanical scanning sonars that are more affordable the refresh rate is going to be a limiting factor, and a multibeam imaging sonar is going to be as, if not more, expensive than a DVL or USBL system.
Optical Flow tracking, in recent years I have seen a number of AUVs attempt to use optical flow with a downward camera to extract localization. This involves seeing how far features under the vehicle have moved between frames of a downward camera, and determining the vehicle's displacement from that. While on face value this seems a relatively straightforward and low cost solution I have never seen or heard of it working on an AUV. I have several theories as to why this is any as likely as another. 1 most of the test time for these vehicles is in featureless bottomed pools. The pre made libraries assume a lense model without clear hulls and water in the way. The vehicle's pitch and change heights which can interfere. Likely it is some combination of these, and by no means is it impossible to use optical flow, just I have seen many people pursuing this solution without success.
SideScan Sonar Flow? I honestly don't fully understand the mechanics of side scan sonars so I would call on the more experienced members of this forum to comment on this, but it may be feasible to use a side scan sonar in place of a camera in some sort of optical flow system.
Disclosures: I have been working on AUVs for the last 7 years, all of the vehicles I have worked on have either had no localization system or has used a DVL. I am far from an expert in on this topic so I welcome anyone to comment or criticize with anything you think I have wrong or should add.