2.1 LBL architecture
For AUV localization, an LBL system includes, for example, a GPS, a base station, and a ground working system (Fig. 1). Such a setup involves at least four floating base stations, where the least-squares solution can be applied to provide the required acoustic information for the location, with the distance to each baseline being 800 m. Each station is equipped with a wireless signal transmitter, hydrophone, and satellite for self-geolocation, whereas the AUV is equipped with an inertial navigation system, depth transducer, and sonar.
In an LBL setup, the AUV initially acquires its position through GPS when floating on the water surface. When underwater, the AUV continuously sends an acoustic signal to the hydrophones. Given that the floating base stations may move due to waves, a GPS geolocates the base stations in real time. Hence, each base station sends the received acoustic signals and positioning information to the ground working station. A positioning algorithm solves the AUV’s location at the ground working system, which is then sent to the primary base station H1 that relays it to the AUV.
2.2 LBL positioning algorithm
An LBL system provides the distance between each base stations and the AUV, as measured by the TDOA positioning system will be described in the next section. The latter comprises one main and N − 1 auxiliary base stations, as illustrated in Fig. 2. Let the location of each base station be \((x_{i } ,y _{i } ,z_{i } )^{{\text{T}}}\), \(i = 1,2, \ldots ,N\), where \(i = 1\) represents the main base station and \(i = 2,3, \ldots ,N\) the auxiliary ones. The target’s spatial position is \((x ,y ,z)^{{\text{T}}}\), \(R_{i }\) represents the distance between the target and the i-th station, \(t_{i}\) refers to the time when the signal reaches the i-th base station from the target, and \(R_{i,1}\) denotes the distance of the difference between the target to the i-th base station and the target to the main station, expressed as:
$$\left\{ {\begin{array}{*{20}l} {R_{i} = \sqrt {(x - x_{i} )^{2} + (y - y_{i } )^{2} + (z - z_{i} )^{2} } } \hfill \\ {R_{i,1} = R_{i} - R_{1} = c(t_{i } - t_{1} )} \hfill \\ \end{array} } \right.$$
(1)
where c denotes the sound velocity.
The TDOA measurement value obtained by solving the hyperbolic equation is used to solve the subsequent algorithm involving the Chan and Taylor algorithms. Chan’s algorithm is a non-recursive hyperbolic equation system with an analytical expression solution. When the TDOA measurement error is too large, the localization accuracy drops sharply [22]. The Taylor series expansion algorithm is a recursive algorithm that achieves high positioning accuracy if some initial estimated information is provided. Otherwise, accurate positioning cannot be achieved [23]. Hence, we propose the Chan–Taylor hybrid algorithm illustrated in Fig. 3, where the Chan algorithm provides the initialization values for the Taylor algorithm.
Once TDOA’s time delay is obtained, we utilize the weighted least squares (WLS) of Chan's algorithm to obtain the initial solution. Then, the first estimated coordinates and TDOA measurement value are re-employed in the WLS for the second time to obtain the improved estimated coordinates as follows:
$$R_{i,1}^{2} + 2R_{i,1} R_{1} = K_{i} - K_{1} - 2x_{i,1} x - 2y_{i,1} y - 2z_{i,1} z$$
(2)
where \(K_{i } = x_{i }^{2} + y_{i }^{2} + z_{i }^{2 } , \;x_{i,1 } = x_{i} - x_{1} ,\;y_{i,1} = y_{i } - y_{1} ,\;{\text{and}}\;z_{i,1} = z_{i} - z_{1}\). Let \({\mathbf{z}}_{{\mathbf{a}}} = \left( {x,y,z,R_{1} } \right)^{{\text{T}}}\) and \(x,y,z,R_{0}\) are linearly independent. Considering the existence of TDOA observation noise, the solution of the least weighted bivariate estimation is given by:
$${\hat{\mathbf{z}}}_{{\varvec{a}}} = ({\varvec{G}}_{{\varvec{a }}}^{{\varvec{T}}} \varvec{\varphi }^{{\varvec{ - 1}}} {\varvec{G}}_{{\varvec{a }}} )^{{\varvec{ - 1}}} {\varvec{G}}_{{\varvec{a }}}^{{\varvec{T}}} \varvec{\varphi }^{{\varvec{ - 1}}} {\varvec{h}}$$
(3)
where \({\varvec{h}} = \frac{1}{2}\left[ {\begin{array}{*{20}c} {K_{2} - K_{1} - R_{2,1}^{2} } \\ {K_{3} - K_{1} - R_{3,1}^{2} } \\ {\begin{array}{*{20}c} \vdots \\ {K_{N} - K_{1} - R_{N,1}^{2} } \\ \end{array} } \\ \end{array} } \right]\), \({\varvec{G}}_{{\varvec{a}}} = \left[ {\begin{array}{*{20}c} {x_{2,1} } & {y_{2,1} } & {\begin{array}{*{20}c} {z_{2,1} } & {R_{2,1} } \\ \end{array} } \\ {x_{3,1} } & {y_{3,1} } & {\begin{array}{*{20}c} {z_{3,1} } & {R_{3,1} } \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ {x_{N,1} } \\ \end{array} } & {\begin{array}{*{20}c} \vdots \\ {y_{N,1} } \\ \end{array} } & {\begin{array}{*{20}c} {\begin{array}{*{20}c} \vdots & \vdots \\ \end{array} } \\ {\begin{array}{*{20}c} {z_{N,1} } & {R_{N,1} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]^{ - 1}\), \(\varvec{\varphi } = c^{2} {\varvec{BQB}}\), Q is the covariance matrix of the TDOA measurement value, and \({\varvec{B}} = {\text{diag}}(R_{2}^{0} ,R_{3}^{0} , \ldots ,R_{N}^{0} )\) containing the unknown distance from the radiation source to each base station. When the distance is far, \(R_{i}^{0}\) is close to a constant, and thus, we employ the TDOA covariance matrix Q instead of \(\varvec{\varphi }\) and obtain:
$${\hat{\mathbf{z}}}_{{\varvec{a}}} = ({\varvec{G}}_{{\varvec{a}}}^{{\varvec{T}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{G}}_{{\varvec{a}}} ){\varvec{G}}_{{\varvec{a }}}^{{\varvec{T}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{h}}$$
(4)
The parameter \({\hat{\mathbf{z}}}_{{\varvec{a}}}\) is obtained from Eq. (4), which is then substituted to Eq. (3) to obtain the solution of \({\varvec{B}}\). The value of \({\hat{\mathbf{z}}}_{{\varvec{a}}}\) in Eq. (4) is obtained when each element of \({\mathbf{z}}_{{\varvec{a}}}\) is independent; in fact, \({\varvec{R}}_{{\mathbf{1}}}\) in \({\mathbf{z}}_{{\varvec{a}}}\) is related to \(x,y,z\). Therefore, to obtain a higher accuracy position estimation, we employ the initial WLS estimation and retain the linear perturbation term in Eq. (3) and then by ignoring the quadratic term error we obtain from the WLS the second estimation results:
$${\mathbf{z^{\prime}}}_{{\varvec{a }}} = \left( {{\varvec{G}}_{{\varvec{a}}}^{{\prime {\varvec{T}}}} {\varvec{B}}^{{\prime {\mathbf{ - }}{\varvec{1}}}} {\varvec{G}}_{{\varvec{a}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{G}}_{{\varvec{a}}} {\varvec{B}}^{{\prime {\mathbf{ - }}{\varvec{1}}}} \varvec{G^{\prime}}_{{\varvec{a}}} } \right)^{{ - {\mathbf{1}}}} \left( {{\varvec{G}}_{{\varvec{a}}}^{{\prime {\varvec{T}}}} {\varvec{B}}^{{\prime {\mathbf{ - }}{\varvec{1}}}} {\varvec{G}}_{{\varvec{a}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{G}}_{{\varvec{a}}} {\varvec{B}}^{{\prime {\mathbf{ - }}{\varvec{1}}}} } \right)\varvec{h^{\prime}}$$
(5)
where \({\varvec{h}}^{^{\prime}} = \left[ {\begin{array}{*{20}c} {(x^{0} + e_{1} - x_{1} )^{2} } \\ {(y^{0} + e_{2} - y_{1} )^{2} } \\ {\begin{array}{*{20}c} {(z^{0} + e_{3} - z_{1} )^{2} } \\ {(R_{1}^{0} + e_{4} )^{2} } \\ \end{array} } \\ \end{array} } \right]\), \({\varvec{G}}_{{\varvec{a}}}^{^{\prime}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 1 & 0 & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} 0 & 1 & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 0 & 0 & 1 \\ \end{array} } \\ {\begin{array}{*{20}c} 1 & 1 & 1 \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]\),\({\mathbf{z}}_{{\varvec{a}}}^{^{\prime}} = \left[ {\begin{array}{*{20}c} {(x - x_{1} )^{2} } \\ {(y - y_{1} )^{2} } \\ {(z - z_{1} )^{2} } \\ \end{array} } \right]\), and \(e_{1} ,e_{2} ,e_{3} ,e_{4}\) is the error estimate of \({\mathbf{z}}_{{\varvec{a }}}\). Finally, the estimated results of the two WLS are be expressed as:
$${\mathbf{z}}_{{\varvec{p}}} = \pm \sqrt {{\mathbf{z}}_{{\varvec{a }}}^{^{\prime}} } + \left( {\begin{array}{*{20}c} {x_{1} } \\ {y_{1} } \\ {z_{1} } \\ \end{array} } \right)$$
(6)
Then, the initial position \(\left( {x ^{(0)} ,y^{(0)} ,z ^{(0)} } \right)\) is determined based on the target’s prior information. Considering the positioning results of the Chan algorithm as the iterative initial value of the Taylor algorithm, fi function is defined according to Eq. (1):
$$\begin{aligned} f_{i } \left( {x,y,z,x_{i} ,y_{i} ,z_{i} } \right) & = \sqrt {\left( {x - x_{i} } \right)^{2} + \left( {y - y_{i} } \right)^{2} + \left( {z - z_{i} } \right)^{2} } \\ & \quad - \sqrt {(x - x_{1} ) ^{2} + (y - y_{1} )^{2} + (z - z_{1} )^{2} } \\ \end{aligned}$$
(7)
where \(i = 1,2, \ldots ,N\). We expand the objective of Eq. (7) for the \(\left( {x^{(0)} ,y^{(0)} ,z^{(0)} } \right)\) case and according to the Taylor series. Furthermore, we ignore the high-order terms above the quadratic term in the expansion section and define \(\hat{f}_{i} = f_{i} \left( {x^{\left( 0 \right)} ,y^{\left( 0 \right)} ,z^{\left( 0 \right)} ,x_{i} ,y_{i} ,z_{i} } \right)\) as:
$$f_{i} \left( {x^{\left( 0 \right)} ,y^{\left( 0 \right)} ,z^{\left( 0 \right)} ,x_{i} ,y_{i} ,z_{i} } \right) \approx \hat{R}_{i} - \hat{R}_{1} + a_{i,1} \Delta x + a_{i,2} \Delta y + a_{i,3} \Delta z$$
(8)
where\(\hat{R}_{i } = \sqrt {\left( {x^{(0)} - x_{i} } \right)^{2} + \left( {y^{(0)} - y_{i} } \right)^{2} + \left( {z^{(0)} - z_{i} } \right)^{2} }\), \(a_{i1} = \frac{{x^{(0)} - x_{i} }}{{\hat{R}_{i} }} - \frac{{x^{(0)} - x_{1} }}{{\hat{R}_{1} }}\), \(a_{i2} = \frac{{y^{(0)} - y_{i} }}{{\hat{R}_{i} }} - \frac{{y^{(0)} - y_{1} }}{{\hat{R}_{1} }}\), \(a_{i2} = \frac{{z^{(0)} - z_{i} }}{{\hat{R}_{i} }} - \frac{{z^{(0)} - z_{1} }}{{\hat{R}_{1} }}\). Then, Eq. (8) can be rewritten as:
$$\varvec{A\delta } = {\varvec{D}} + {\varvec{\varepsilon}}$$
(9)
where \({{\varvec{\upvarepsilon}}} = \left[ {\begin{array}{*{20}c} {e_{2} } \\ {\begin{array}{*{20}c} {e_{3} } \\ {\begin{array}{*{20}c} \vdots \\ {e_{n} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]\), \({\varvec{D}} = \left[ {\begin{array}{*{20}c} {m_{2} - \hat{f}_{2} } \\ {\begin{array}{*{20}c} {m_{3} - \hat{f}_{3} } \\ {\begin{array}{*{20}c} \vdots \\ {m_{n} - \hat{f}_{n} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]\), \({\varvec{A}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {a_{21} } \\ {\begin{array}{*{20}c} {a_{31} } \\ {\begin{array}{*{20}c} \vdots \\ {a_{n1} } \\ \end{array} } \\ \end{array} } \\ \end{array} } & {\begin{array}{*{20}c} {a_{22} } \\ {\begin{array}{*{20}c} {a_{32} } \\ {\begin{array}{*{20}c} \vdots \\ {a_{n2} } \\ \end{array} } \\ \end{array} } \\ \end{array} } & {\begin{array}{*{20}c} {a_{23} } \\ {\begin{array}{*{20}c} {a_{33} } \\ {\begin{array}{*{20}c} \vdots \\ {a_{n3} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]\), \({{\varvec{\updelta}}} = \left[ {\begin{array}{*{20}c} {\Delta x} \\ {\Delta y} \\ {\Delta z} \\ \end{array} } \right]\), \(m_{i} = c(t_{i } - t_{1} )\), and \(e_{i}\) is the measurement error. Considering \({\varvec{\delta}}\) as an unknown variable and supposing that Q is the covariance matrix of \({\varvec{\varepsilon}}\), we adopt the WLS estimation method, and Eq. (9) is rewritten as:
$${{\varvec{\updelta}}} = \left[ {{\varvec{A}}^{{\varvec{T}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{A}}} \right]^{{ - {\mathbf{1}}}} {\varvec{A}}^{{\varvec{T}}} {\varvec{Q}}^{{{\mathbf{ - }}{\varvec{1}}}} {\varvec{D}}$$
(10)
The calculated \({\varvec{\delta}}\) value is then compared against the estimated error value \(\eta\). If the condition is not met regarding the estimated error value η, the initial value will be updated, and iteration continues until the requirement is met.