1 Introduction

Autonomous Underwater Vehicles (AUVs) have emerged as the platform of choice for a wide variety of survey tasks in the commercial, oceanographic, and military domains. Within the oceanographic community, AUVs are used for tasks such as seafloor mapping (e.g., Caress et al. 2012; Kelley et al. 2005), habitat monitoring (e.g., Williams et al. 2012), optical surveys (e.g., Singh et al. 2004a), high-resolution magnetic surveys (Tivey et al. 1998), climate change research (Schofield et al. 2010) and localizing hydrothermal and hydrocarbon plumes (German et al. 2008; Camilli et al. 2010, respectively). An advantage of AUVs over other ocean observation methods is the potential for reduced costs (i.e., decreased dependence on manned surface vessels) as well as increased mission duration—especially as long-range AUVs mature (Hobson et al. 2012; Furlong et al. 2012) and longer duration missions (on the order of weeks or months) increasingly become a reality.

As with present AUV operations, navigation is a crucial element for long duration missions. This problem is especially acute in deep water where the time and power costs associated with surfacing for Global Positioning System (GPS) position fixes is prohibitively high. A variety of methods exist in deep water (Kinsey et al. 2006; Paull et al. 2014 provide surveys of the state of the art) with Doppler Velocity Log (DVL) navigation (e.g., Brokloff 1994; Kinsey and Whitcomb 2004) being the predominant method for AUVs operating within 200–300 m of the seafloor. Precision navigation in the mid-water column (i.e., below the sea surface and more than a few hundred meters from the seafloor) is more difficult (Kinsey et al. 2006, 2014) and presents challenges for AUVs operating in this region. This implies that few methods are available for deep-diving AUVs during descent from the sea surface to the ocean floor. For example, the Sentry AUV conducts operations at depths up to 6000 m and during long descents can horizontally drift hundreds of meters from the launch position. Like most deep-diving AUVs, Sentry relies on Ultra Short Base Line (USBL) navigation (e.g., Peyronnet et al. 1998) during these descents and the position of the AUV is tracked from the ship and, upon acquisition of DVL bottom-lock near the seafloor, the AUV’s USBL position is transmitted via acoustic modem to the AUV thereby enabling the necessary navigation correction. This paradigm has two drawbacks: (1) USBL navigation is noisy and provides position estimates at \(\sim \)10 s intervals; and (2) requires the continuous presence of an expensive dedicated surface vessel. Long Base Line (LBL) can also provide navigation during descent but require time-consuming deployment of transponders (Hunt et al. 1974; Yoerger et al. 2007). Thus, developing methods that improve navigation in the mid-water column while reducing the dependency on surface vessels or a-priori infrastructure would reduce the costs and supervision associated with AUV missions.

This paper proposes a localization solution in the mid-water column that takes advantage of the near constant current profile layer velocities over short time periods. A common assumption in the oceanographic community is that the water currents are constant during the period in which they are observed, a period of minutes (Visbeck 2002). For deep diving AUVs operating in the open ocean, such as Sentry , currents are constant over time scales of hours. The AUVs typically descend at 30–40 m/min and Acoustic Doppler Current Profilers (ADCPs) possess ranges of 40–120 m. Thus the observable period for each water current velocity layer is on the order of minutes during which the ocean currents will change negligibly. When fused with other sensor observations, we show that there is improved localization performance for AUVs operating in both shallow and deep water.

This paper is organized as follows: Sect. 2 provides a literature review with a focus on mid-water column localization. Section 3 presents our ADCP-aided localization method. Section 4 applies the ADCP localization method to 2D and 3D simulated cases. Section 5 implements localization with the ADCP sensor-aiding using real data on a shallow water instance coupled with view-based SLAM. Section 6 applies the filter to data collected during deep water missions. Section 7 compares the experimental results presented in this paper and discusses their implications. Section 8 concludes the paper with a summary of the contributions along with suggestions for the direction of future work.

Previous work by the authors has reported the theory of ADCP-aided localization, illustrative examples and initial experimental results (Medagoda et al. 2010, 2011)—these prior results are summarized here for completeness (Sects. 3, 4.1, and 5, respectively). This paper expands on this prior work in a number of ways. First, this paper provides a more extensive literature review including how this work distinguishes itself from other work in ADCP-aided navigation (Sect. 2). Second, we introduce a strategy to marginalize out older states for computational efficiency and study the implication of adding carrier phase GPS (Sect. 4.2). The effects of these improvements are studied using new simulations for deeper water and longer timescales (Sect. 4.2.2). Third, we implement and assess this method on data obtained on deep-water AUV dives and report the details associated with implementing this method in deep-water including incorporating sensor error checking information (Sect. 6). Finally, this paper summarizes and compares all of the simulations and experiments, and analyzes the drivers for localization performance using this method (Sect. 7).

2 Mid-water localization

AUV georeferencing is typically achieved by fusing information from multiple sensors to estimate the vehicle’s position and orientation in space. Depth and attitude estimates can be directly obtained from existing sensors—e.g., hydrostatic pressure measurements provide accurate absolute depth information and Attitude Heading Reference Systems (AHRSs) provide orientation measurements [though there is significant variance in accuracy, cost, and power (Kinsey et al. 2006)]. Horizontal XY position estimates are more difficult to obtain. GPS is available on the ocean surface, but does not penetrate the water. DVLs provide velocity-over-ground information when within bottom-lock distance of the seafloor and when coupled with an attitude sensor provide dead reckoning. A variety of frameworks are employed to fuse navigation sensor data; such as the Extended Kalman Filter (EKF) framework, although other probabilistic estimation techniques can be utilized (Paull et al. 2014). This allows for near-optimal estimation, although optimality can be traded off for stability in alternative implementations (Kinsey et al. 2014). GPS and DVL observations are unavailable in the mid-water column and thus other solutions are required for localization.

2.1 Time-of-flight acoustic localization methods

Traditional solutions to georeference during a descent or ascent include time-of-flight acoustic localization methods such as USBL and LBL. USBL requires a ship to track the vehicle acoustically, thus requiring a tending vessel for the duration of the mission. This may not always be possible, for example under ice. LBL requires an acoustic transponder network, which includes deploying and surveying in the beacons. To reduce the set-up requirements, single fixed beacons can be utilized (Paull et al. 2014). Regardless of the method, the mission will be limited to the range of the acoustic beacon network—typically 1–10 km ranges with \(\sim \)10 m accuracy (Kinsey et al. 2006; McPhail and Pebody 2009).

2.2 Localization using an IMU

IMUs employ accelerometers and gyroscopes to provide body-relative accelerations and rotation rates to constrain the position, velocity and attitude estimates through integration of the outputs. Given an IMU capable of gyrocompassing (observing the locally projected 15 deg/hr rotation of the Earth), the position error growth is approximately \(\delta p \approx \delta \omega \, \mathbf R _0 t\) (Titterton and Weston 2004). \(\delta p\) is the position drift, \(\delta \omega \) is the gyro bias, \(\mathbf R _0\) is the radius of the Earth, and t is time.

Thus a navigation-grade IMU (often in excess of $100k USD (Kinsey et al. 2006) with \(0.01 ^{\circ }\)/h gyro bias, will achieve \(\sim \)1 km/h position drift without aiding. Alternatively, a tactical grade IMU (approximately $16k USD) with \(1^{\circ }\)/h gyro bias will achieve \(\sim \)100 km/h position drift without aiding. Once underwater, when the vehicle is within DVL range of the seafloor, \(\sim \) 0.2 % distance traveled position error growth (2\(\sigma \)) is possible when DVL is coupled with a navigation-grade IMU (Napolitano 2004; iXSea Accessed 22-03-2012).

2.3 Localization using a DVL

The DVL operates by sending out an acoustic pulse and measures the Doppler shift of the return pulse from the seafloor (colloquially referred to as ’DVL bottom-lock’). By using four sensor beams with different orientations, the 3D velocity of the DVL can be determined. The fourth sensor provides redundancy in the estimation of the current profile velocities (Gordon 1996). The result is a velocity estimate with an accuracy of \(\sim \)10 mm/s (2\(\sigma \)) for a 1200 kHz DVL.

Low-frequency (300 kHz) DVL can be in continuous use for altitudes less than \(\sim \)200 m. The DVL sensor provides measurements of the seafloor-relative velocity of the AUV. By combining this information with an appropriate heading reference, the observations can be placed in a global reference frame and integrated for underwater dead reckoning (Brokloff 1994; Whitcomb et al. 1999; Kinsey and Whitcomb 2004).

2.3.1 Localization using the DVL water-track mode

The DVL water-track mode provides a measurement of the velocity of the AUV relative to a user-programmable water sampling volume, instead of the seafloor like the DVL. It is a built-in capability of DVLs requiring only software configuration changes (Gordon 1996). It operates by sending out an acoustic pulse and relying on scatterers, such as plankton, to reflect back the pulse. Using the Doppler effect, the velocity of the scatterers relative to the instrument can be determined. Since it is assumed that the scatterers move with the water currents, the DVL water-track measures the velocity of the water column currents relative to the sensor which can be used for dead-reckoning—albeit not referenced to the seafloor (Brokloff 1997). By time-gating the signal for a specific time period, a user-programmable water sampling volume is measured. This method assumes that currents are horizontally homogeneous across a water layer to arrive at a water current estimate (Gordon 1996).

2.3.2 Acoustic Doppler current profiler (ADCP)

The ADCP (Brumley et al. 1991) is another mode of the same DVL sensor and operates similarly to the DVL water-track mode. The ADCP processes returns at different times instead of one. This allows the sensor to measure water currents at different ranges, segmenting the observation into measurement cells. This is illustrated in Fig. 1.

Fig. 1
figure 1

The ADCP mode of the DVL sensor operates by looking at the returns from scatterers in the water column along each of the 4 beams. This information can be combined to arrive at the 3D velocity of the water currents relative to the ADCP sensor in a similar way to the DVL sensor. By time-gating the signal return, differently distanced water currents can be estimated. This is in contrast to the DVL water-track mode, since the ADCP mode measures multiple water currents spread spatially

By using 4 differently aligned sensor beams and assuming horizontally homogeneous currents, the 3D velocity of the current can be determined in a similar manner to the DVL mode. The result is a current estimate with an accuracy of \(\sim \) 20 mm/s (2\(\sigma \)) observing 2 m/s currents for a 1200 kHz instrument.Footnote 1

Acoustic Doppler Current Profilers (ADCPs) have traditionally been used by the oceanographic community to estimate water current profiles for scientific studies. The existing method applies least-squares to fuse lowered ADCP and DVL bottom-lock information (Visbeck 2002). This approach does not address ADCP sensor biases (Gordon 1996) and sensor uncertainties as their effects on the overall current profile are assumed minimal. However, biases have implications on the velocity estimates of an AUV-mounted ADCP used for localization during descent or ascent. Furthermore, this prior work does not seek to estimate the ADCP position.

2.4 Vehicle model based navigation

Using a model of the vehicle dynamics to predict how the vehicle will move given the estimated control actions (such as thrusters) allows additional information to be fed into the localization algorithms. In Hegrenaes and Hallingstad (2011), the vehicle model aids the localization by modeling the AUV dynamics given control actions and a local water current estimate. This implementation uses an IMU as the prediction stage of an Extended Kalman Filter (EKF). The vehicle model provides input to the update stage, facilitated by adding a correlation term to the state vector, which has a first-order Markov bias model. A navigation-grade IMU coupled with a vehicle model and DVL water-track mode estimates of currents can achieve \(\sim \)60 m over 30 min (2\(\sigma \)) position uncertainty growth after acquiring DVL bottom-lock (Hegrenaes and Berglund 2009). The assumption is a time-varying current in the measured water sampling volume. Prior to DVL bottom-lock, the position uncertainty growth is \(\sim \)450 m over 30 min (Hegrenaes and Berglund 2009). As time progresses, this conservative constraint approaches the worst case water current velocity uncertainty.

Fig. 2
figure 2

ADCP-aiding method sequence a Initial GPS position and velocity are known, and water velocities can be estimated. b The AUV moves, and re-observes the same depth cells. c The estimated AUV velocity in the world frame can be updated, and new depth cells, shown in red (bottom right), can be added to the filter

3 ADCP sensor aiding with water layers

An alternative to using the DVL water-track mode is to use the ADCP mode to provide spatially-mapped finer-depth resolution current estimation. This introduces the possibility of improved vehicle motion estimates. The standard parametrization of the ocean for lowered ADCP is to layer the ocean into discrete, isocurrent layers (Visbeck 2002), or depth cells. This standard will be applied in this paper. This relies on the assumption of horizontal homogeneity across the water current layer (Gordon 1996).

In parallel to our work (Medagoda et al. 2010, 2011) was that of Stanway (2011) and Stanway (2012). In Stanway’s work, a least squares approach to estimate water currents and vehicle pose was applied. GPS, ADCP, DVL and magnetic compass heading are utilized for localization. His work addresses practical ADCP implementation issues for deep water localization, such as ADCP sensor configuration and diagnostics during AUV ascents, which complements our work. The recursive least squares approach is similar to the computational complexity of the delayed-state filter (with marginalization) used in this paper.

In comparison, this work has explored the incorporation of SLAM and retaining the entire state history of the filter for relinearization purposes. Reinearization (Kaess et al. 2011) of the Jacobians is undertaken to improve consistency in linearizing filters such as non-linear least squares and the EKF. This is due to the linearization point being around the estimate (which contains error) and not the unknown true state. Through smoothing, past states are better estimated. The Jacobians then can be recalculated. Relinearization requires increased computational cost. Due to a more general framework in this paper, the IMU, TDCP GPS and view-based SLAM can be incorporated. The incorporation of ADCP bias estimation in the filter is undertaken in this paper. Stanway’s work does not incorporate bias estimation, nor are uncertainty bounds analyzed. The illustrative example in Sect. 4.1 outlines how both Stanway’s and this paper’s method works. An uncertainty analysis of our method is also undertaken.

3.1 ADCP estimation and navigation aiding process

We assume that initially the AUV has position and velocity estimates in the navigation frame at the sea surface from GPS, illustrated in Fig. 2a. With the initial measurement from the ADCP sensor, body-relative water depth cell velocities below the vehicle are observed using each ADCP measurement cell. These observations can be used to estimate the full current profiles in the navigation frame by using the estimated vehicle velocity at the surface.

The vehicle then submerges and GPS measurements stop. When another ADCP measurement is made, the vehicle re-observes the same depth cells, shown in Fig. 2b. Given the estimated water current velocity of the re-observed depth cell and the body-relative velocity of these depth cells from the ADCP, a filter can simultaneously update the estimate of the vehicle velocity and current profile velocities as shown in Fig. 2c. This assumes that the water current velocity in this depth cell remains constant, which is realistic over a re-observation period of minutes (Visbeck 2002). This is in addition to the horizontal homogeneity assumption for the ADCP footprint during the descent. New water current velocity states are initialized when ascending due to temporal and spatial changes.

New depth cells can also now be estimated as the vehicle changes depth as shown in the bottom right of Fig. 2c in red. The result is an estimate of the vehicle motion and a water column current profile. When the vehicle is within DVL range of the seafloor, this velocity constraint on the vehicle is also incorporated into the filter.

3.2 Extended information filter with current profiling

Vehicle pose states, ADCP bias (outlined in Sect. 3.2.2) states and water current velocity are all estimated simultaneously. Water velocity states are parameterized as isocurrent depth cells, each with an associated velocity vector. An Extended Information Filter (EIF) is applied to estimate the states of the vehicle given the various vehicle sensor measurements (Walter et al. 2007). This allows the water current layer depth cell states to be estimated, along with maintaining the correlations between the states. The EIF also allows relinearization (Kaess et al. 2011) of the Jacobians if required and can incorporate view-based SLAM (Mahon et al. 2008) if applicable, which is not computationally feasible with a naive EKF implementation. It also enables the entire state history of the vehicle to be viewed for analysis, as it acts as a delayed state smoother.

Vehicle pose states such as position, velocity and attitude, ADCP bias states and water current velocity states are stored in a state vector of the form

$$\begin{aligned} \hat{\mathbf {x}}^{+}(t_{k}) = \left[ \begin{array}{c} {\hat{\mathbf {x}}^{+}_{P_{1}}}(t_{k}) \\ \vdots \\ {\hat{\mathbf {x}}^{+}_{P_{n_{P}}}}(t_{k}) \\ {\hat{\mathbf {x}}^{+}_{b_{c,1}}}(t_{k}) \\ \vdots \\ {\hat{\mathbf {x}}^{+}_{b_{c,n_{b}}}}(t_{k}) \\ {\hat{\mathbf {x}}^{+}_{v_{c,n}}}(t_{k}) \\ \vdots \\ {\hat{\mathbf {x}}^{+}_{v_{c,n_{v}}}}(t_{k}) \end{array} \right] = \left[ \begin{array}{c} {\hat{\mathbf {x}}^{+}_{P}}(t_{k}) \\ {\hat{\mathbf {x}}^{+}_{b_{c}}}(t_{k}) \\ {\hat{\mathbf {x}}^{+}_{v_{c}}}(t_{k}) \end{array} \right] \end{aligned}$$
(1)

where \({\hat{\mathbf {x}}^{+}_{P}}(t_{k}) = \left[ \begin{array}{c}\hat{\mathbf {x}}^{+\mathsf {T}}_{P_{1}}(t_{k}) ,\ldots ,\hat{\mathbf {x}}^{+\mathsf {T}}_{P_{n_{P}}}(t_{k})\end{array}\right] ^{\mathsf {T}}\) is a vector of past and present pose states where \(n_{P}\) is the number of vehicle pose states, \({\hat{\mathbf {x}}^{+}_{b_{c}}}(t_{k}) = \left[ \begin{array}{c}\hat{\mathbf {x}}^{+\mathsf {T}}_{b_{c,1}}(t_{k}) ,\ldots ,\hat{\mathbf {x}}^{+\mathsf {T}}_{b_{c,n_{b}}}(t_{k})\end{array}\right] ^{\mathsf {T}}\) is a vector of past and present ADCP bias states where \(n_{b}\) is the number of ADCP bias states and \({\hat{\mathbf {x}}^{+}_{v_{c}}}(t_{k}) = \left[ \begin{array}{c}\hat{\mathbf {x}}^{+\mathsf {T}}_{v_{c,1}}(t_{k}) ,\ldots ,\hat{\mathbf {x}}^{+\mathsf {T}}_{v_{c,n_{v}}}(t_{k})\end{array}\right] ^{\mathsf {T}}\) is a vector of past and present ADCP water current velocity states where \(n_{v}\) is the number of water current velocity states. In this this paper, \(n_{P} = 9\). \(n_{b}\) is initialized at 60 in this paper, with the state number increasing at a desired rate (in this case every 5 min). \(n_{v}\) begins at 60, and then increases as more water current states are observed during vertical motion. As shown later, these states can be marginalized if no longer observed, without effecting the estimation of present states. This prevents an unbounded increase in the computation cost. The covariance between the pose states and the water current states are in the form

$$\begin{aligned} \hat{\mathbf {P}}^{+}(t_{k}) = \left[ \begin{array}{c c c} \hat{\mathbf {P}}^{+}_{PP}(t_{k}) &{} \hat{\mathbf {P}}^{+}_{Pb_{c}}(t_{k}) &{} \hat{\mathbf {P}}^{+}_{Pv_{c}}(t_{k}) \\ \hat{\mathbf {P}}^{+\mathsf {T}}_{Pb_{c}}(t_{k}) &{} \hat{\mathbf {P}}^{+}_{b_{c}b_{c}}(t_{k}) &{} \hat{\mathbf {P}}^{+}_{b_{c}v_{c}}(t_{k}) \\ \hat{\mathbf {P}}^{+\mathsf {T}}_{Pv_{c}}(t_{k}) &{} \hat{\mathbf {P}}^{+\mathsf {T}}_{b_{c}b_{c}}(t_{k}) &{} \hat{\mathbf {P}}^{+}_{v_{c}v_{c}}(t_{k}) \end{array} \right] \end{aligned}$$
(2)

In the information form, the filter maintains the matrix \(\mathbf {Y}\), which is the inverse of the covariance matrix

$$\begin{aligned} {\hat{\mathbf {Y}}^{+}}(t_{k}) = [\hat{\mathbf {P}}^{+}(t_{k})]^{-1} \end{aligned}$$
(3)

and the information vector \(\mathbf {y}\), which is related to the state estimate by

$$\begin{aligned} {\hat{\mathbf {y}}^{+}}(t_{k}) = {\hat{\mathbf {Y}}^{+}}(t_{k})\hat{\mathbf {x}}^{+}(t_{k}) \end{aligned}$$
(4)

The information vector has the form

$$\begin{aligned} \hat{\mathbf {y}}^{+}(t_{k}) = \left[ \begin{array}{c} {\hat{\mathbf {y}}^{+}_{P}}(t_{k}) \\ {\hat{\mathbf {y}}^{+}_{b_{c}}}(t_{k}) \\ {\hat{\mathbf {y}}^{+}_{v_{c}}}(t_{k}) \end{array} \right] \end{aligned}$$
(5)

and the information matrix has the form

$$\begin{aligned} \hat{\mathbf {Y}}^{+}(t_{k}) = \left[ \begin{array}{c c c} \hat{\mathbf {Y}}^{+}_{PP}(t_{k}) &{} \hat{\mathbf {Y}}^{+}_{Pb_{c}}(t_{k}) &{} \hat{\mathbf {Y}}^{+}_{Pv_{c}}(t_{k}) \\ \hat{\mathbf {Y}}^{+\mathsf {T}}_{Pb_{c}}(t_{k}) &{} \hat{\mathbf {Y}}^{+}_{b_{c}b_{c}}(t_{k}) &{} \hat{\mathbf {Y}}^{+}_{b_{c}v_{c}}(t_{k}) \\ \hat{\mathbf {Y}}^{+\mathsf {T}}_{Pv_{c}}(t_{k}) &{} \hat{\mathbf {Y}}^{+\mathsf {T}}_{b_{c}b_{c}}(t_{k}) &{} \hat{\mathbf {Y}}^{+}_{v_{c}v_{c}}(t_{k}) \end{array} \right] \end{aligned}$$
(6)

Observations, which include ADCP measurements, are assumed to be made according to

$$\begin{aligned} \mathbf {z}(t_{k}) = \mathbf {h}(\mathbf {x}(t_{k}))+\mathbf {\nu }(t_{k}) \end{aligned}$$
(7)

in which \(\mathbf {z}(t_{k})\) is an observation vector, \(\mathbf {h}(\mathbf {x}(t_{k}))\) is the sensor model relating states to observations, and \(\mathbf {\nu }(t_{k})\) is a vector of observation noise with covariance \(\mathbf {R}(t_{k})\). New information from sensor measurements are incorporated into the information vector and matrix

$$\begin{aligned} {\hat{\mathbf {y}}^{+}}(t_{k})= & {} {\hat{\mathbf {y}}^{-}}(t_{k}) + \mathbf {i}(t_{k}) \end{aligned}$$
(8)
$$\begin{aligned} {\hat{\mathbf {Y}}^{+}}(t_{k})= & {} {\hat{\mathbf {Y}}^{-}}(t_{k}) + \mathbf {I}(t_{k}) \end{aligned}$$
(9)

in which

$$\begin{aligned} \mathbf {i}(t_{k})= & {} \mathbf {\nabla }_x^{\mathsf {T}}\mathbf {h}(t_{k})\mathbf {R}^{-1}(t_{k})(\mathbf {z}(t_{k})\ldots \nonumber \\&-\mathbf {h}({\hat{\mathbf {x}}^{-}}(t_{k})) +\mathbf {\nabla }_x\mathbf {h}(t_{k}){\hat{\mathbf {x}}^{-}}(t_{k})) \end{aligned}$$
(10)
$$\begin{aligned} \mathbf {I}(t_{k})= & {} \mathbf {\nabla }_x^{\mathsf {T}}\mathbf {h}(t_{k})\mathbf {R}^{-1}(t_{k})\mathbf {\nabla }_x\mathbf {h}(t_{k}) \end{aligned}$$
(11)

where \({\hat{\mathbf {x}}^{-}}(t_{k})\) is the a priori state estimate and \(\mathbf {\nabla }_x\mathbf {h}(t_{k})\) is the Jacobian of the observation with respect to the state. Using this framework, the recursive non-linear weighted least squares solution to the states can be estimated.

3.2.1 ADCP observation equation

Given the 3D velocities output from the ADCP, the observation function for each ADCP measurement is

$$\begin{aligned} \mathbf h _{ADCP,i} = \mathbf C _{n}^{b}(- \mathbf v _{v}^{n}+\sum \mathbf W _{j}{} \mathbf v _{c,j}^{n}) + \mathbf b _{c,i} + \nu _{ADCP} \end{aligned}$$
(12)

where:

  • \(\mathbf h _{ADCP,i}\) = ADCP measured current vector in the ith measurement cell

  • \(\mathbf C _{n}^{b}\) = Coordinate transform from navigation/world frame to ADCP/body frame

  • \(\mathbf v _{v}^{n}\) = Vehicle velocity in the world/navigation frame

  • \(\mathbf W _{j}\) = Weighting function for each water current velocity from depth cell j, outlined in Gordon (1996)

  • \(\mathbf v _{c,j}^{n}\) = water current velocity from depth cell j. Each depth cell contains a current velocity state in the X and Y direction, which represents the average velocity of the current through that layer

  • \(\mathbf b _{c,i}\) = Bias in the ith measurement cell in the body frame

  • \(\nu _{ADCP}\) = Random noise in the ADCP measurement, with standard deviation given by the sensor manufacturer

The ADCP measurement equation correlates the vehicle velocity and water current velocities.

3.2.2 ADCP biases

It is important to consider any biases in the measurements, as they will provide a large source of error, and will result in the filter becoming overconfident if left unmodeled. Sources of ADCP biases include measurement cell dependent biases, such as (a) beam and sensor misalignment, (b) beam geometry; and (c) signal/noise ratio and biases dependent on changing depth, including temperature, pressure, scatterers and sound speed estimate error (Gordon 1996; Atkinson 2008). In this paper, these ADCP biases are estimated as the summed effect on the measurement cell observation in the body frame.

Estimation of bias states enables localization corrections and their uncertainty can be modeled. In order to improve the observability of the ADCP sensor relative biases (\(\mathbf b _{c,i} \)) and allow disambiguation from the true currents (\(\mathbf v _{c,j}^{n} \)), rotation about heading is required, due to the transformation \(\mathbf C _{n}^{b}\) in Eq. 12.

The ADCP bias with time can be modeled as a first-order Markov process in a similar way to how a time varying, bounded bias can be modeled with IMU sensors (Flenniken IV 2005):

$$\begin{aligned} \dot{{\mathbf{b}}_{c,i}} = -\frac{1}{\tau _{bias}}\mathbf{b }_{c,i} + \nu _{bias} \end{aligned}$$
(13)

where \(\tau _{bias}\) is the expected rate change of the ADCP sensor (a tuned parameter). \(\nu _{bias}\) is a zero-mean normally distributed random variable with

$$\begin{aligned} \sigma _{bias} = \sqrt{\frac{2f\sigma _{bias\,drift}^2}{\tau _{bias}}} \end{aligned}$$
(14)

where \(\sigma _{bias\,drift}\) is the standard deviation of the bias in the long term, and limits the magnitude of the bias. It is a tuned parameter, which is given by the manufacturer as 1 cm/s. f is the frequency at which the process model operates. \(\tau _{bias}\) is a tuned parameter that can be be determined through accounting for the expected bias drift rate, which depends on a number of factors as described previously. In this paper, a conservative time constant of 500 s is used and provided good performance on the experimental data.

4 Vertical descent simulation

This section explores the performance of the ADCP localization algorithm given vertical descent in simulation—first in two-dimensions and then in six-dimensions.

4.1 Two degrees-of-freedom simulation

The example in Sect. 3.1 and Fig. 2a–c can be simulated to illustrate the operation and performance of the filter, including how the errors evolve in the states. This simulation illustrates how both Stanway’s and this paper’s method works. A 1-dimensional current field is simulated in which the vehicle is descending, and free to move left or right (but not into and out of the page). The vehicle experiences unmodeled drag (in the localization filter) which causes it to move with the currents. The vehicle is also assumed not to pitch resulting in two degrees-of-freedom (2DOF) in translation. To further simplify the analysis of this example, the bias states are not simulated nor estimated. Table 1 lists parameter values used for the 2DOF simulation.

Table 1 Parameter values used in the 2DOF simulation

To facilitate analysis, the full state history, or smoothed solution, of the information filter is used. All poses are kept in the state estimator. Figure 3a show the position of the ADCP-aided estimate before DVL bottom-lock is obtained. The ADCP-aided estimate also has access to the ADCP observations. The ADCP-aiding filter position uncertainty growth is approximately 40 m (2\(\sigma \)).

Figure 3b show the position estimate after DVL bottom-lock is obtained for the entire state history. The DVL bottom-lock allows the entire velocity history to be constrained due to the correlations of vehicle velocity with water current velocity states, according to the ADCP measurements (12). The observation of DVL body-relative velocity is back-propagated to the entire descent because these correlations are accounted for in the Information Filter through the corrected water current estimates. The ADCP-aiding filter position uncertainty growth is now approximately 6 m (2\(\sigma \)).

Fig. 3
figure 3

2DOF simulation position estimates for the entire state history with the ADCP-aiding filter a before DVL bottom-lock and b after DVL bottom-lock

Fig. 4
figure 4

2DOF simulation velocity errors for the entire state history with the ADCP-aiding filter a before DVL bottom-lock and b after DVL bottom-lock

Figure 4a show the vehicle velocity errors before DVL bottom-lock for the entire state history. The velocity uncertainty slightly increases with time because of information loss from a finite number of uncertain measurements from the ADCP during the descent. Information loss is defined as the increase in velocity uncertainty as velocity estimates are extracted through re-observing the water currents with the ADCP, which translates into position uncertainty due to the position being the integral of velocity with time. This increase in velocity uncertainty is negligible because of the high number of re-observations of each current velocity bin (up to 750 times in this case). The uncertainty in velocity is primarily from the initial GPS velocity uncertainty, at 0.04 m/s (2\(\sigma \)).

While undergoing descent prior to DVL bottom-lock, the velocity error is observed to have a Markov nature. The initial velocity error (from the surface) remains as a ‘bias’ in the vehicle velocity estimate during descent, since this error exists in the initial measured water currents. Thus, no matter how many subsequent measurements of the water currents are made while underwater without GPS, this initial velocity ‘bias’ in the water currents can never be overcome without another absolute velocity measurement.

Figures 4b show the velocity errors after DVL bottom-lock for the entire state history. The entire velocity history estimate uncertainty is \(\sim \)0.006 m/s (2\(\sigma \)), only slightly higher than the DVL accuracy, but for the entire dive. This slight increase is the result of the small information loss due to a finite number of uncertain measurements from the ADCP during the descent.

The absolute velocity measurement from the DVL allows the ‘bias’ in all of the water current measurements from the initial GPS velocity to be reduced in magnitude according to the uncertainty of the DVL. The errors and uncertainty bounds for the post-DVL bottom lock water current estimates are shown to be consistent in Fig. 5b. Applying this correction to all of the water currents reduces the previous uncertainty in the vehicle velocity. Figure 6 shows the estimated water currents from the filter post-DVL compared to the simulated ground truth, showing close overlap.

The 2DOF simulation has shown how the uncertainty evolves and illustrates that while the velocity uncertainty does increase in uncertainty during descent, the increase in uncertainty is very low relative to the initial velocity uncertainty. Once DVL bottom lock is acquired, the small increase in uncertainty of velocity applies backwards in time as well.

Fig. 5
figure 5

The error in the water current estimate from the 2DOF simulation a prior to DVL bottom-lock and b following DVL bottom lock

Fig. 6
figure 6

Current profile derived from the 2DOF simulation. Figure 5b shows the error plots

4.2 Six degrees-of-freedom simulation

This section extends the 2D simulation to a more complex and realistic six degrees-of-freedom (6DOF) AUV dive simulation with the following characteristics:

  1. (1)

    An initialization phase for the GPS/IMU is first simulated, using real output from a Novatel SPAN system for realism. This allows the heading of the inertial system to be resolved. In this phase, Time Differenced Carrier Phase (TDCP) GPS is also available.

  2. (2)

    A vertical dive phase, where no GPS fix or DVL bottom-lock is available. The AUV rotates due to hydrodynamic forces, providing higher observability and thus enabling sensor bias estimation.

  3. (3)

    After one hour, the AUV acquires DVL bottom-lock at 40 m and starts to measure velocity over ground.

  4. (4)

    Following DVL bottom-lock, 30 s of DVL measurements are undertaken to allow velocity over ground to be estimated in combination with the IMU.

  5. (5)

    The water current velocities are correlated with depth, with a maximum current of \(\sim \)15 cm/s—representative of typical ocean current profiles (Visbeck (2002)).

This simulates a hypothetical mission undertaken by the Sirius AUV (Williams et al. (2009)), where TDCP capable GPS is installed. Table 2 summarizes the parameter values used in the 6DOF simulation. In the subsequent simulation, the measurement cell bias magnitudes are constrained to zero within 1 cm/s (2\(\sigma \)), in alignment with the RDI specification (Gordon 1996) and the calibration report on the RDI ADCP (Shih et al. 2000), which contains maximum biases of \(\sim \)1 cm/s. The biases change with time in a correlated fashion (which accounts for changing depth during descent), simulating the bias effects described in Sect. 3.2.1. A value for \(\tau _{bias}\) in Eq. 13 of 500 s is used to simulate drifting biases over time scale, although controlled experiments of the ADCP sensor in real environments are required to identify a true value for this parameter. This bias estimation is unique to our work and is not performed in Stanway’s implementation.

Table 2 Parameter values used in the 6DOF simulation

A tactical-grade Honeywell HG1700A58 IMU was simulated, providing position, velocity and attitude constraints through the integration of the body rotation rates and accelerations (incorporating IMU constraints was not undertaken in Stanway’s implementation). The method used to incorporate the inertial measurements into the filter is based on Lupton and Sukkarieh (2009) and Lupton (2010). A global reference frame is used, and initial attitude is assumed accurate for linearization purposes. Compensation for Earth rotation (significant for heading estimation during long missions), as calculated in Titterton and Weston (2004), is achieved with the following equation, which is modified from Algorithm 1, Line 9 in Lupton and Sukkarieh (2009):

$$\begin{aligned} \mathbf {\Delta \phi _{t+1}} = \mathbf {\Delta \phi _{t}} + \mathbf {E_{t}^{t1}}(\mathbf {\omega _{t}^{b}} - \mathbf {bias_{gyro}} \mathbf {{- C_{n}^{k}\Omega _{e}^{n}}} )\Delta t \end{aligned}$$
(15)

where \({ \mathbf {- C_{n}^{k}\Omega _{e}^{n}}}\) is the apparent Earth rotation in the body frame. The gyro and accelerometer bias states are augmented into the filter. As illustrated in Sect. 4.1, the error growth in position before DVL bottom-lock is dependent on the initial velocity uncertainty while on the surface. A typical velocity uncertainty of 4–8 mm/s (2\(\sigma \)) in the horizontal directions is possible with standard GPS by exploiting the carrier phase on the GPS receiver (van Graas and Soloviev 2004). This means that during descent, position error growth can also be constrained to the 4–8 mm/s (2\(\sigma \)) range, which is similar to DVL velocity uncertainty.

TDCP (Soon et al. 2008) is a particular implementation of carrier phase processing. It can be approximately modeled as tracking the change in position of the vehicle (while on the surface).

$$\begin{aligned} h_{TDCP}(\hat{\mathbf {x}}(t_{k}))&= \mathbf p ^{n}(t_{k}) - \mathbf p ^{n}(t_{k-1}) \end{aligned}$$
(16)
$$\begin{aligned} R_{TDCP}&= \sigma _{TDCP}^2 \end{aligned}$$
(17)

The TDCP observation is dissimilar to the DVL observation, as it is a change-in-position measurement rather than an instantaneous velocity measurement. The delayed state structure of the EIF allows this observation between two poses to be correctly accounted for (Soon et al. 2008). The TDCP change-in-position measurement is assumed to have an uncertainty of 5 mm (2\(\sigma \)) occurring at 2 Hz. In Stanway’s implementation, TDCP GPS was not considered.

4.2.1 AUV dynamic vehicle modeling

For the simulation, we assume that the vehicle has differential thrust to control heading and forward velocity (Fossen 1994). This information is used to generate the simulated true motion of the vehicle given vertical thrust through the water column. Within the filter, a dynamic vehicle model is not used as it is beyond the scope of this paper. Pitch and roll are set to zero in the simulation, although the filter estimates these states. The vehicle model applies the following state equations:

$$\begin{aligned}&\mathbf {M}{\dot{\mathbf {v}}} + \mathbf {C}(\mathbf {v})\mathbf {v} + \mathbf {D}(\mathbf {v})\mathbf {v} + \mathbf {C}^b_n (m\mathbf {g}^n + \mathbf {b}^n) = {\varvec{\tau }} \end{aligned}$$
(18)
$$\begin{aligned}&\mathbf {v} = \left[ \begin{matrix} {\dot{x}}_{b}\\ {\dot{y}}_{b}\\ {\dot{z}}_{b}\\ {\dot{\psi }} \end{matrix} \right] \end{aligned}$$
(19)
$$\begin{aligned}&{\varvec{\tau }} = \left[ \begin{matrix} F_1 + F_2\\ 0\\ F_3\\ F_1r - F_2r \end{matrix} \right] \end{aligned}$$
(20)
$$\begin{aligned}&\mathbf {M} = diag\{M_{x}, M_{y}, M_{z}, I_{z}\} \end{aligned}$$
(21)
$$\begin{aligned}&\mathbf {C}(\mathbf {v}) = \begin{bmatrix} 0&0&0&-M_{y}{\dot{y}}_{b}\\ 0&0&0&M_{x}{\dot{x}}_{b}\\ 0&0&0&0\\ M_{y}{\dot{y}}_{b}&-M_{x}{\dot{x}}_{b}&0&0 \end{bmatrix} \end{aligned}$$
(22)
$$\begin{aligned}&\mathbf {D}(\mathbf {v}) = -diag\{D_{\dot{x}}|{\dot{x}}_{b}|, D_{\dot{y}}|{\dot{y}}_{b}|, D_{\dot{z}}|{\dot{z}}_{b}|, D_{\dot{\psi }}|\dot{\psi }|\} \end{aligned}$$
(23)

where

  • \(\dot{x_{b}}\), \(\dot{y_{b}}\) and \(\dot{z_{b}}\) are the water relative velocities of the vehicle in the body frame in the forward, starboard and down directions respectively.

  • \(\dot{\psi }\) is the yaw rotational velocity of the vehicle

  • \(\mathbf {M}\) is the inertia matrix (including added mass)

  • \(\mathbf {C}(\mathbf {v})\) is the matrix of Coriolis and centripetal terms (including added mass)

  • \(\mathbf {D}(\mathbf {v})\) is the damping matrix

  • \(\varvec{\tau }\) is the vector of control inputs

  • \(F_1\), \(F_2\) and \(F_3\) are the thrusts from the port, starboard and vertical thruster respectively

  • m is the true mass of the vehicle

  • \(\mathbf {g}^n\) is the gravity vector in the navigation frame

  • \(\mathbf {b}^n\) is the buoyancy force in the navigation frame

  • r is the distance from the thruster to the center of mass along the perpendicular direction of the applied force.

Vehicle parameters are estimated using Martin and Whitcomb (2008) as a baseline, and listed in Table 3.

Table 3 Vehicle model parameters used in the 6DOF simulation

Additionally, a thruster model according to Healey et al. (1995) and Fossen (1994) is utilized:

$$\begin{aligned} F = 0.4\rho d^4|n|n - \frac{1}{3}v_{T}\rho d^3|n| \end{aligned}$$
(24)

where

  • \(\rho \) is the density of water

  • d is the diameter of the propeller

  • n is the revolution speed of the thruster

  • \(v_T\) is the velocity of the water going into the propeller

4.2.2 Sirius simulation results for one hour descent

Fig. 7
figure 7

Sirius simulation a run-time filter velocity 2\(\sigma \) uncertainties with time. b An enlarged detail on the effect of the DVL bottom-lock on the velocity estimates at 3600 s

The increasing computational complexity with time necessary to perform smoothing and maintain the full pose history requires that we marginalize of all pose states in the filter except those for the present and previous time step. This was applied to provide run-time pose estimates and uncertainties, effectively creating a delayed-state EKF. For constant-time complexity in the filter, we marginalized water column states which will not be re-observed. Thus, this filter implementation has the potential to be implemented in real-time on a vehicle. This same strategy is applied in Sect. 6 for the real-world deep-water missions.

Figure 7 shows the run-time filter uncertainty estimate of velocity is constrained to \(\sim \)7 mm/s (2\(\sigma \)) in the north and east directions. This uncertainty in velocity during the dive phase is from the initial velocity uncertainty after GPS/IMU initialization and ADCP estimation on the surface, including TDCP. The initial velocity estimate in the north direction on the surface was near the boundary of the 2\(\sigma \) uncertainty estimate. Thus, it will continue to be on the boundary, with the noisy north velocity estimate error exceeding the upper 2\(\sigma \) bounds. This is normal behavior for the filter as a result of this initial velocity estimate. During descent prior to DVL bottom-lock, the velocity error is observed to have a Markov nature. The initial velocity error (from the surface) remains as a ‘bias’ in the vehicle velocity estimate during descent since this error exists in the initial measured water currents. This is similar to the behavior observed in Sect. 4.1. In this case, over the 3600s time span, the velocity uncertainty increases slightly, implying that some information loss occurs from the continual initialization of new water current depth cells.

Fig. 8
figure 8

Sirius simulation a run-time filter position 2\(\sigma \) uncertainty with time. A black line is drawn for a portion of the position uncertainty bounds to illustrate the slight non-linearity of the uncertainty growth. b An enlarged detail on the effect of the DVL bottom-lock on the position estimate at 3600 s

Fig. 9
figure 9

Underwater localization methods and their approximate accuracy for a 1 h descent. USBL and LBL solutions are shown in green. Blue is a IMU/vehicle model/DVL water-track navigation solution obtained by extrapolating available results. The reported algorithm performance is shown in red. The new localization method compares favorably in this case with acoustic localization methods, and outperforms existing self-contained techniques

As shown in Fig. 8a, just prior to DVL bottom-lock after 3600s, the position uncertainty estimate is \(\sim \)16 m (2\(\sigma \)) in the north and east directions, or 15 m uncertainty growth compared to the surface uncertainty. Figure 8b shows an enlarged detail of the effect of DVL bottom-lock on the position estimates, with the 2\(\sigma \) position estimate uncertainty reaching \(\sim \)7.5 m, or 6.5 m uncertainty growth from the surface uncertainty of 1 m. The position estimates show a correlated, but consistent, error with respect to the 2\(\sigma \) uncertainty bounds. This shows that the north velocity estimates, with errors exceeding their 2\(\sigma \) uncertainty bounds, once integrated through the IMU model produce the expected, consistent result for position uncertainty. The velocity uncertainty does not necessarily equal the position uncertainty growth rate, as a result of the non-linear IMU integration and the velocity estimate interacting with the ADCP bias estimation with rotation. This results in non-trivial correlation between the position and velocity estimates, captured through the information matrix.

Figure 9 shows the performance for USBL, LBL, IMU/vehicle model/DVL water-track, and our reported method for a one hour descent to the seafloor. (2\(\sigma \)) for USBL and LBL are relatively constant and are \(\sim \)10 m. The IMU/vehicle model/DVL water-track navigation solution (extrapolated from available results) increases with time and has an error of \(\sim \) 120 m after 1 h. In comparison, our method accumulates less than 20 m error during the descent and, after DVL bottom-lock, the error decreases to less than 10 m. This demonstrates the ability of our method to provide accuracy comparable to the acoustic localization methods but without external infrastructure and at a higher update rate.

5 Experiments with the Sirius AUV and View-based SLAM

Initial field experiments were obtained with the Sirius AUV, a modified version of the mid-sized SeaBED AUV (Singh et al. 2004b), owned and operated by the University of Sydney Australian Centre for Field Robotics (ACFR) (Williams et al. 2009). Designed for high-resolution imaging, the AUV is passively stable in roll and pitch. Navigation sensors include a 1200 kHz RDI DVL/ADCP, Tracklink 1500 HA USBL and a Lassen iQ GPS receiver. Additionally, a stereo imaging platform allows for six degree-of freedom view-based loop closures (Mahon et al. 2008; Williams et al. 2010) when near the seafloor (typically \(\sim \)2 m altitude). These experiments employ a constant velocity process model tuned for the most extreme dynamics of the vehicle. Attitude information is supplied by the in-built magnetic compass and roll/pitch tilt sensors in the RDI DVL/ADCP. These results were previously reported in Medagoda et al. (2011).

Experimental data is from a 2010 mission on coastal reefs near the Freycinet Peninsula in eastern Tasmania (Williams et al. 2012) in which Sirius completed a 3 h dive to 100 m depth. DVL bottom-lock was unavailable during descent and ascent. Ground truth measurements are provided by USBL; position estimates are shown in Fig. 10. Additional information and data from another site are reported in Medagoda et al. (2011).

Fig. 10
figure 10

a Oblique and b Bird’s eye view of the trajectory for the Sirius Freycinet mission, where DVL bottom-lock is only available at 40 m altitude

The full state history, or smoothed solution, of the filter is defined as the output of the EIF at the end of the mission. All of the poses are maintained by the estimator. The run-time filter is the maximum-likelihood estimate of pose of the vehicle at that instance in the mission. Results in Fig. 11a show how the ADCP method, without the USBL, results in georeferencing for the subsequent seafloor view-based SLAM-aided mission. Georeferencing uncertainty is within 20 m (2\(\sigma \)) position accuracy while the AUV is near the seafloor, and after post-ascent GPS acquisition, the accuracy of the seafloor portion is within 11 m (2\(\sigma \)). The ADCP was interleaved with the DVL at a ratio of 1:5, with the ADCP operating at approximately 0.5 Hz. Despite low ADCP update rates, it is possible to localize without an external acoustic source (e.g., USBL). The ascent and descent water current velocity states differ because of both temporal (i.e., a 3 h time interval between the descent and ascent) and spatial (i.e., \(\sim \)600 m horizontal distance) changes.

Fig. 11
figure 11

a Sirius Freycinet position uncertainty estimates for filter in-run and for the full state history, with and without loop closures b Differences between filter results and USBL measurements, along with 2 \(\sigma \) uncertainties of this difference, showing that the filter is consistent after DVL bottom-lock

Figure 11a also shows the ability of SLAM loop-closure to improve the ADCP-aided navigation. It shows that the method can be improved with imagery due to loop closures, but that the entire mission can be localized without them. Figure 11a shows the effect of loop closures at \(\sim \)3500 s into the mission—image feature matching identified that the AUV has revisited a previous site in the mission resulting in a realtime decrease in uncertainty for the filter. This and subsequent loop closure observations constrain the position uncertainty during the seafloor mapping portion of the dive, thus providing significantly improved localization for the seafloor portion of the mission. This occurs after the post-ascent GPS acquisition, due to the increased correlation of temporally distant poses, as seen in Fig. 11a.

Figure 11b compares the filter result with the independent USBL observations. During the descent, prior to DVL bottom-lock, the realtime filter is inconsistent. Once DVL bottom-lock is acquired, relinearization occurs with the EIF and the error is reduced, providing evidence that the previously observed inconsistency was due to linearization error. The relinearization was achieved by calculating Jacobians for previous measurements with the present estimate of that state, and then re-constructing the information vector and matrix and solving for the state. These equations are shared or modified from Eqs. 4, 9, 10 and 11.

$$\begin{aligned} {\hat{\mathbf {y}}^{+}}(t_{e})= & {} {\hat{\mathbf {y}}^{-}}(t_{0}) + \sum _{t_n=t_0}^{t_e} {\mathbf {i}(t_{n})} \end{aligned}$$
(25)
$$\begin{aligned} {\hat{\mathbf {Y}}^{+}}(t_{e})= & {} {\hat{\mathbf {Y}}^{-}}(t_{0}) + \sum _{t_n=t_0}^{t_e} {\mathbf {I}(t_{n})} \end{aligned}$$
(26)
$$\begin{aligned} {\hat{\mathbf {y}}^{+}}(t_{e})= & {} {\hat{\mathbf {Y}}^{+}}(t_{e})\hat{\mathbf {x}}^{+}(t_{e}) \end{aligned}$$
(27)

in which

$$\begin{aligned} \mathbf {i}(t_{n})= & {} \mathbf {\nabla }_x^{\mathsf {T}}\mathbf {h}(t_{e})\mathbf {R}^{-1}(t_{n})(\mathbf {z}(t_{n})\ldots \nonumber \\&-\mathbf {h}({\hat{\mathbf {x}}^{-}}(t_{e})) +\mathbf {\nabla }_x\mathbf {h}(t_{e}){\hat{\mathbf {x}}^{-}}(t_{e})) \end{aligned}$$
(28)
$$\begin{aligned} \mathbf {I}(t_{n})= & {} \mathbf {\nabla }_x^{\mathsf {T}}\mathbf {h}(t_{e})\mathbf {R}^{-1}(t_{n})\mathbf {\nabla }_x\mathbf {h}(t_{e}) \end{aligned}$$
(29)

where \(t_{n}\) is a measurement time between the beginning of the descent (\(t_0\)) to the end of the descent (\(t_e\)). This strategy is applied on ascent as well, substituting the beginning of the ascent for \(t_0\) and the end of the ascent for \(t_e\). We observe that the ADCP filter is consistent with the USBL observations, validating the performance of the ADCP-aiding method. The above results show how ADCP-aided navigation during the descent and ascent of a mission, coupled with view-based SLAM on the seafloor, allows georeferencing even with infrequent ADCP measurements.

6 Deep water experiments with the Sentry AUV

Our ADCP-aided localization algorithm was validated in deep water environments using data obtained with the Sentry AUV. Sentry is a 6000 m rated AUV designed and built by Woods Hole Oceanographic Institution (WHOI) for geophysical, geochemical, and biological surveys and is operated by WHOI for the U.S. scientific community (Kinsey et al. 2011). The ADCP sensor is a 300 kHz RDI Navigator with 120 m maximum range with default settings, although with reduced accuracy compared to the 1200 kHz sensor on the Sirius AUV. The process model used for the vehicle is a constant velocity model. The process noise is tuned to worst case vehicle dynamics and no thruster model is incorporated. Depth information is supplied by a Paroscientific depth sensor and USBL measurements by a Sonardyne USBL system. Attitude information is supplied by an Ixsea Phins INS gyrocompass; however raw IMU measurements of acceleration and rotation rates were not available. Our method is tested on three dives—Sentry dive 220 in December 2013 and Sentry dives 273 and 281 in July 2014.

The dive site for 220 was at the Dorado Outcrop, located west of Costa Rica in the Pacific Ocean. On this deployment, Sentry dives to \(\sim \)3 km in over 6000 s, with a descent rate of \(\sim \) 0.4 m/s. Initial velocity and position is estimated using the USBL for the first 500 s of the descent, as the vehicle was not equipped with GPS. During 5354 s of descent, the vehicle does not have DVL bottom lock and the USBL undergoes a simulated blackout to illustrate the ADCP-aided filter. The USBL serves as ground truth. The ADCP was run open-loop interleaving 1:1 with the DVL.

For computational efficiency, the marginalized EIF is used from the Sirius simulation. Imagery was not available; thus view-based SLAM is not incorporated. During this descent, a high amount of ADCP data errors were detected, as shown in Fig. 12, reducing the effective ADCP rate to 1.9 Hz. The error metrics used to reject measurements are an error velocity threshold, percent good reported from sensor, and \(\chi ^2\) test for normalized innovations. The cause of these data errors are unknown and resolving them remains as future work. The rejected measurements results in the correlations being reduced throughout the descent.

Fig. 12
figure 12

Data errors in the ADCP sensor for Sentry 220. The data in blue is good data prior to the \(\chi ^2\) test. The data in maroon has failed the percent good self-diagnostic of the sensor. The data in yellow exceeds the error velocity threshold

Fig. 13
figure 13

Sentry 220 position errors and uncertainty estimates for the filter. The filter is consistent as the errors are within the 2\(\sigma \) bounds for the uncertainty estimates. The error is the difference between the estimate and the USBL ground truth

Fig. 14
figure 14

Sentry 220 North and East velocity uncertainty of the filter. The red east velocity uncertainty mostly overlaps with the blue velocity uncertainty. Increases in the velocity uncertainty during decent are due to data errors which result in rejected measurements

Figure 13 shows the position error and uncertainty estimates during the descent. DVL bottom-lock results in a velocity and position correction once the altitude is below approximately 240 m. The position uncertainty growth is 328 m (2\(\sigma \)) prior to DVL bottom lock, giving an position error growth rate of approximately 6.1 cm/s (2\(\sigma \)). The velocity uncertainty during the descent is plotted in Fig. 14. The velocity uncertainty following the combined USBL/ADCP initialization is approximately 7.5 cm/s (2\(\sigma \)). Thus the position growth rate and velocity uncertainty are of similar magnitude, with differences due to the estimation of ADCP biases and the Markov nature of the estimation as discussed in Sect. 4.2.2. Once DVL bottom lock is acquired, the position uncertainty growth is \(\sim \)254 m (2\(\sigma \)), with a position uncertainty growth rate of 4.7 cm/s (2\(\sigma \)) while the velocity uncertainty is reduced to 1.1 cm/s (2\(\sigma \)) due to the DVL sensor. This uncertainty reduction once DVL bottom lock is acquired is less than what was possible in simulation in Sect. 4.2.2, due to the high amount of ADCP data errors resulting in reduced correlation during the descent and the lack of IMU data .

Fig. 15
figure 15

Sentry 220 a North and b East position estimates, comparing the filter output and the USBL output. Note the vertical scale is compressed compared to the exaggerated horizontal scale

The velocity uncertainty estimates in Fig. 14 also increase as ADCP measurements are rejected more often, corresponding to the errors identified in Fig. 12. Figure 15 shows the position estimates compared to the USBL position measurements. Over the 3 km descent a \(\sim \)350 m westerly drift is experienced because of water currents. The final error in the position estimation was 88 m, showing an advantage compared to a zero drift assumption.

Fig. 16
figure 16

Data errors in the ADCP sensor for Sentry 273. The data in blue is good data prior to the \(\chi ^2\) test. The data in maroon has failed the percent good self-diagnostic of the sensor. The data in yellow exceeds the error velocity threshold

Fig. 17
figure 17

Data errors in the ADCP sensor for Sentry 281. The data in blue is good data prior to the \(\chi _{2}\) test. The data in maroon has failed the percent good self-diagnostic of the sensor. The data in yellow exceeds the error velocity threshold

Fig. 18
figure 18

Sentry 273 position errors and uncertainty estimates for the filter. Filter is consistent as the errors are within the \(2\sigma \) bounds for the uncertainty estimates. The error is the difference between the estimate and the USBL ground truth. The unexpected jumps in error at approximately 1300, 1600 and 1950 s are due to USBL measurement errors

Sentry dives 273 and 281 were completed off the coast of Oregon at the ASHES vent site, where Sentry descends to approximately 1500 m. The descent rate is \(\sim \)0.6 m/s, higher than Sentry 220 mission due to different ballasting. Initial velocity and position is estimated using the USBL for the first portion of the descent until the uncertainty in velocity is 7.5 cm/s, allowing comparisons to the Sentry 220 mission. During the descent, the vehicle does not have DVL bottom lock and the USBL undergoes a simulated blackout to illustrate the ADCP-aided filter. Again, USBL serves as the ground truth.

The marginalized EIF is again utilized and view-based SLAM is not incorporated. Figures 16 and 17 show the data errors associated with the ADCP sensor during these missions, showing lower error rates than the Sentry 220 mission, although due to the reduced rate of ADCP measurements, the effective ADCP rate is lower. Sentry 273 has an effective ADCP rate of 1.6 Hz, while Sentry 281 has an effective rate of 1.8 Hz. In these missions, the ADCP runs on a timing trigger, and thus the effective rate of ADCP measurements is slightly less than Sentry 220 after including the effects of rejected measurements. Thus, difference in conditions between all the Sentry missions result in different effective ADCP rates.

Fig. 19
figure 19

Sentry 281 position errors and uncertainty estimates for the filter. Filter is consistent as the errors are within the 2\(\sigma \) bounds for the uncertainty estimates. The error is the difference between the estimate and the USBL ground truth

Table 4 A comparison of all results in this paper

Figure 18 plots the position error compared to the USBL and uncertainty estimates during the Sentry 273 descent. Unexpected jumps in error at approximately 1300, 1600 and 1950 s are due to USBL measurement errors—illustrating an additional redundancy benefit of the ADCP-aided method in the presence of noisy USBL. After \(\sim \)1700 s, the estimation possesses 130 m of position uncertainty growth, with a 7.7 cm/s position uncertainty growth rate prior to DVL bottom lock. Once DVL bottom lock is obtained, the position uncertainty is reduced to 74 m with a growth rate of 4.4 cm/s. This is comparable to Sentry 281 (Fig. 19) which has a similar descent rate but higher effective ADCP rate due to less ADCP data errors. Sentry 281 has a position uncertainty growth rate of 6.8 cm/s—lower than Sentry 273. This results in 138 m of position uncertainty growth over the \(\sim \)2000 s prior to DVL bottom lock. Once DVL bottom lock is obtained, the position uncertainty growth is reduced to 70 m with a rate of 3.5 cm/s. Thus the increased effective ADCP measurement rate has resulted in lower position uncertainty growth for these similar missions, illustrating the effect of increased information loss during the descent in a real-world scenario (Fig. 12).

These results show that the ADCP-aided filter provides localization during long descents to deep ocean depths, despite detectable errors (beyond biases and noise) in the ADCP measurements. The method works in two different environments, further verifying the utility of this technique. Further work could include an IMU to detect errors and uncertainty reduction by incorporating more sensors and water current modeling into the estimation, along with spatial correlation modeling of the water current profile.

7 Comparison of experimental results

Table 4 compares the experimental results presented in this paper. Following DVL bottom lock, the simulated Sirius mission performs within 1 % uncertainty per distance traveled, incorporating TDCP GPS for high accuracy initial velocity uncertainty, and ideal sampling conditions resulting in a 3Hz effective ADCP measurement rate. Sirius experiments at the Nuggets and Freycinet sites show higher uncertainty in the initial velocity, reduced rate ADCP measurements and no IMU, resulting in higher information loss during the descent, reflected in the close to 20 % uncertainty per distance traveled. Sentry 220 provides higher effective ADCP rates, during a longer mission, although the lack of IMU and information loss during the descent results in 12 % uncertainty per distance traveled following DVL bottom lock. Given faster descent rates of 60 cm/s for Sentry 273 and 281, the effects of information loss are reduced, resulting in 6 and 7 % uncertainty per distance traveled respectively. Various drivers for the uncertainty per distance traveled exist for our method including initial velocity uncertainty, effective ADCP measurement rates, descent rate, and incorporation of an IMU.

8 Conclusion

This paper reports an ADCP-aided localization algorithm as an alternative form of georeferencing for vertical dives during AUV deployments and presents experimental results showing its performance over a variety of missions. It has shown the ability to achieve constrained error growth in position estimates by incorporating ADCP measurements into the navigation solution of a vehicle transiting between the sea surface and the seafloor. This is achieved by incorporating water current velocities as states in the estimation. Simulations show ideal circumstances and the potential performance of the ADCP-aided method. The method outlined also allows the incorporation of view-based SLAM techniques within the formulation, and an entirely autonomously localized mission was presented in previous work. The method was also shown to operate on real world experimental data for multi-hour descents to depths up to 3 km. Thus, the reported method can provide accurate AUV navigation for missions requiring accurate underwater navigation close to the seafloor but that lack DVL bottom-lock during descent and ascent.

These results have short and long term implications for improved AUV autonomy. In the short term, this method allows more flexible and cost-effective AUV operations by reducing the dependency on expensive infrastructure (e.g., tending vessels, LBL transponders). Even if these infrastructure are employed, this method provides redundancy against acoustic position measurement errors. Longer term benefits include new capabilities for extended duration missions and improved navigation in polar regions. Long-range AUVs (Hobson et al. 2012; Furlong et al. 2012) are enabling the long-duration biogeochemical process studies necessary for understanding the effects of climate change on the ocean; however, many of these missions will occur in the mid-water column where our navigation capabilities are presently the weakest. The results herein provide a solution in the vertical degree of freedom and serve as a foundation for future work in horizontal ADCP-aided navigation (Medagoda et al. 2015). This method could also enable new polar AUV missions where the presence of ice precludes obtaining GPS measurements and there are increased demands on navigation and long duration autonomy (Crees et al. 2010; Nicholls et al. 2006). These future applications pose new research challenges. For example, in the case of untended long-term monitoring and exploration using AUVs or underwater gliders, tighter constraints on power consumption are imposed which will limit the frequency of ADCP measurements (Todd et al. 2011). As shown in Sect. 5, even infrequent ADCP measurements provide information which permits localization, and determining whether it is feasible for such platforms is an open problem. Additional future work will further validate this approach by obtaining real time raw IMU sensor acceleration and rotation rate data and verifying the potential performance of ADCP-aided navigation fused with IMU data.