 Research
 Open Access
A scalable global positioning systemfree localization scheme for underwater wireless sensor networks
 Mohammed Aquil Mirza^{1}Email author,
 Muhammad Zeeshan Shakir^{2} and
 MohamedSlim Alouini^{3}
https://doi.org/10.1186/168714992013122
© Mirza et al.; licensee Springer. 2013
 Received: 24 April 2012
 Accepted: 4 January 2013
 Published: 7 May 2013
Abstract
Seaweb is an acoustic communication technology that enables communication between sensor nodes. Seaweb technology utilizes the commercially available telesonar modems that has developed link and network layer firmware to provide a robust undersea communication capability. Seaweb interconnects the underwater nodes through digital signal processingbased modem by using acoustic links between the neighboring sensors. In this paper, we design and investigate a global positioning systemfree passive localization protocol by integrating the innovations of levelling and localization with the Seaweb technology. This protocol uses the range data and planar trigonometry principles to estimate the positions of the underwater sensor nodes. Moreover, for precise localization, we consider more realistic conditions namely, (a) small displacement of sensor nodes due to watch circles and (b) deployment of sensor nodes over nonuniform water surface. Once the nodes are localized, we divide the whole network field into circular levels and sectors to minimize the traffic complexity and thereby increases the lifetime of the sensor nodes in the network field. We then form the mesh network inside each of the sectors that increases the reliability. The algorithm is designed in such a way that it overcomes the ambiguous nodes errata and reflected paths and therefore makes the algorithm more robust. The synthetic network geometries are so designed which can evaluate the algorithm in the presence of perfect or imperfect ranges or in case of incomplete data. A comparative study is made with the existing algorithms which proves the efficiency of our newly proposed algorithm.
Keywords
 Sensor Node
 Cluster Head
 Parent Node
 Sleep Mode
 Unknown Node
1 Introduction
Seaweb network is a wide area network that interconnects the static (sensor nodes, buoys, etc.) and mobile wireless nodes (unmanned underwater vehicles submarines), by employing digital signal processingequipped telesonar modems and through acoustic links, in the undersea applications [1, 2]. Seaweb network basically consists of three main components namely, (a) Seaweb server, (b) gateway buoy (GB), and (c) repeater/sensor nodes [1]. The Seaweb server is located either on the ship or ashore which is in turn controlled by the operator to monitor and control the undersea deployed network. The GB acts as a centralized node which communicates with all the sensor nodes and thereby improves the lifetime of the network. The GB is the only mode of direct communication from the sensor nodes to the server. If there is no direct radio communication between the GB and the nodes, then satellite link acts as an alternative way of communication. The GB is fixed at a suitable position and anchored at the sea/ocean floor such that it has a direct line of sight (LoS) with the Seaweb server. The buoy is attached to the radio/satellite communication equipment and solar panels at the surface. Underwater sensor nodes that are usually anchored/moored at the seabed consist of a clamp weight, acoustic release, telesonar modem, and subsurface float [1, 3].
In [1, 2, 4], inter and intradistances between parent (gateway buoy) and child nodes are obtained as a byproduct of telesonar signalling and navigation of mobile nodes such as submarines. Linklayer methods like handshaking, selective repeat request (SRQ), and forward error correction provide the network reliability. A network layer mechanism such as maintaining the routing table, feedback packets, and packet serialization enhances the quality of service. This paper uses nodetonode ranges, compiled at parent node, to solve the problem of localization. Synthetic data analysis with different network geometries helps in evaluating the protocol with imperfect ranges, or insufficient data.
In [5, 6], a technique incorporating the time synchronization between the two nodes has been proposed. The existing algorithms does not consider the effect of realistic condition namely, (a) reflected paths, (b) watch circles, and (c) node displacement, which increases the localization error exponentially. However, the complexity of this scheme is exceptionally high, which may result in poor energy efficiency and reduces the lifetime of the sensor nodes. Moreover, this scheme is very difficult to extend to larger networks. In particular, the number of beacon nodes is fixed and set to three only in the paper. However, an exceptional increase in computational complexity is expected with the addition of even one more beacon node to the network. Moreover, the addition of beacon node change/update in program for both beacon and ordinary nodes is a must. However, we overcome the problem of reflected paths and watch circles in our scheme, and the proposed scheme does not require time synchronization in the network. In [5], the network calculations are implemented by using the ordinary sensor nodes, and we reduce this complexity by incorporating Seaweb/GB communication between sensor nodes and Seaweb server.
In a recent work [6], the authors introduce a localization scheme designed for large network of underwater wireless sensor networks. The proposed localization scheme depends on timedifference of arrival measurements calculated locally at a sensor to measure the range differences from the sensor to three anchors that can overhear each other. However, it suffers from two disadvantages. One of these is the computational overhead; in their proposed scheme, all of the calculations are implemented by ordinary nodes, and since the complexity of this scheme is not low, it may result in poor energy efficiency. Second, this scheme is very difficult to be extended to larger networks and hence is not scalable.
In [7], an application of sensor deployment in the Unet’08 Seatrial is studied. A variable speed of sound profile is considered which increases the localization error. This scheme does not take into consideration the displacement of the nodes over the sea surface. We overcome this problem by using MunkŠs canonical formula [8] and the finite difference linearization and law of cosines. The paper is organized as follows. In Section 2, we give a brief overview of the Seaweb network. We provide more suitable solution and a reliable algorithm by taking into consideration these environmental factors.This section explains the network layout and the type of protocols being used. Section 3 describes our proposed localization algorithm and discusses the types of constraints being imposed and its implementation. Section 4 describes the simulations and comparisons of the proposed scheme with the traditional algorithms and finally, Section 5 concludes our paper.
2 Seaweb network description
2.1 Network layout
Seaweb network consists of number of sensor/repeater nodes and GBs. The sensor nodes are interconnected through each other, thereby forming a mesh grid. The paths between each of the sensor node are reconfigurable, if there is a route failure due to the death of the particular sensor. The GB is positioned to maximize the lifetime of a particular node, i.e., away from the traffic lanes, out of ship. This GB acts as a parent node and also as a relay between the nodes and the server. The term parent is often used to describe the GB as it is localized at the desirable position or it can be used as point of reference (say (0, 0)). Once the GB is deployed, we deploy the first sensor node such that it acts as a second point of reference for the localization purposes. This reference node is referred to as ref _{ x }, which is deployed along the line of bearing from the parent node. This allows fixing the location of these two nodes in order to start localization process. The remaining interested nodes in the network are deployed randomly or uniformly as per interest of the operator. The ranged data are stored into a timestamped matrix, where these matrices are complied into time sequenced stacks. This matrix is then statistically analyzed for all the measured ranges between each of the neighboring nodes, thereby eliminating all the ranges that fall outside a confidence interval of 5% from the mean. These filtered ranges are then used to localize each of the nodes into xy position. We then form levelling and a mesh network inside levelling, which allows nodes to have multiple communication paths and in turn increases the reliability. The distance between each of the node is varied from 1 to 5 km depending upon the deployment and the density of the network.
2.2 Network protocol
where d_{ x y } = (T_{ y }  T_{0}  τ)/2 and T_{0} is the initial time the localization process starts, T_{ y } is the end time of localization between nodes x and y, C is the speed of sound, and d_{ x y } is the distance between node x and node y.
As the depth of sea/water increases the speed of sound varies [11]. Since we use the repeater nodes which are anchored at the sea level we consider the speed of sound to be constant at 1,520 m/s. However, we consider the cases where the speed of sound varies due to uneven surfaces at the sea bed.
2.3 Ad hoc discovery process
Once the network is deployed, the first task is to perform the nodetonode ranges (using PING and ECHO) starting from the parent node and whereby these ranges are maintained at the Seaweb server. Then the parent node initiates a PING and commands each of its discovered nodes to conduct the broadcast PING in order to discover the remaining nodes. These nodes thereby maintain the mesh or a route to which they can communicate in a single hop.
3 Seaweb network passive localization
Localization in Seaweb server of repeater/sensor nodes is done by using rangebased intersecting circles of the known nodes. When an unknown node (nonlocalized) comes in contact with two known nodes (localized nodes), it is localized in its xy plane by using the rangebased algorithm. In [12, 13], the weighted averages and center of mass method have been introduced which does not eliminate range errors fully. The finite difference linearization method is proved to be more efficient compared to other approaches [6]. The acoustic localization/communication is affected by many environmental factors like reflected paths, transmission losses and speed of sound. These factors have been studied in much detail in [1, 2, 4]. Based upon the range measurements between the known and unknown sensor nodes, there are some constraints which we describe in the following section.
3.1 Acoustic localization constraints
The localization depends upon the topology of the deployed network and the acoustic nature of the environment. Depending on these scenarios, we can have the possible three cases namely; nosolution, which occurs when there is only one known node range is available for localization; secondly, many solutions, where one unknown node has two ranges to know known nodes, i.e., there are two ambiguous outcomes that exist when two range circles intersect. However, this can be resolved by using AoA [5] and law of cosines [14]; finally, finite difference linearization is applied, where one unknown node has three ranges from known nodes, such that a single, unambiguous solution exists [14].
 1.Speed of sound. It usually varies from 1,480 to 1,520 m/s, i.e., +1.3% or  1.3%. We presumed the speed of sound as 1,520 m/s. We also assume that sound travels in a straight line and hence is linearly related to range. However, the temperature, pressure, and salinity in the water cause some deviation to the speed of sound which results in refraction. Hence, we use a variable sound speed profile by employing Munk’s canonical profile [8] which is defined as$M\left(z\right)=C[1+\epsilon ({e}^{\vartheta}+\vartheta 1\left)\right]\mathrm{m}/s$(2)
where ϑ = [2(z  z_{axis})]/S, C is the speed of light, ε is the perturbation coefficient, z_{axis} is the depth of sound channel, z is the depth of water in meters, and S is the scale depth and ϑ is the dimensionless distance beneath the sound channel axis. The values are as defined, z_{axis} = 1,000 m, S = 1,000 m, ε = 0.0057 and C = 1,520 m/s.
 2.
Transmitted/reflected paths. Reflected paths result into absorption and scattering of the transmitted signal that reduces the intensity of sound energy. For the surface, the reduction depends on the roughness of sea surface and the spectral frequency of the transmitted signal [2]. Losses at the bottom of sea are of the order 8 dB per interaction [2, 4]. However, our algorithm takes into consideration these losses when determining the nodetonode ranges by using peak detector filter which allows selecting the highest peak multipath arrival.
 3.
Node position or depth variance. It is possible that two nodes are located at uneven surfaces and both of them have a horizontal and a slant range. The horizontal and slant range differences are considered in our algorithm whereby we presume that all nodes cannot be located in same horizontal plane.
 4.
Current/waves circles. It is possible that tides replace the fixed/stationary transducers and thereby causing deviations in the measured ranges and positions of the nodes. These rotations or replacements are called watch circles. Since the transducers are 3 m off the bottom there is a slight variation in the range difference of two nodes [2].
 5.
Dilution of precision. The large uncertainty between the distance of two nodes is referred to as geometric dilution of precision (DOP) or GDOP. It occurs when the distance between the two referenced nodes is very close. However, we tackle this problem by using finite difference linearization.
3.2 Localization algorithm
Localization using the Seaweb server consists of basically five steps namely, server input, data input, error correction, levelling of the network, mesh grids and finally, determination of location of nodes. The pseudocode of our localization algorithm is shown as Algorithm 1.

Step 1. In the first step, the Seaweb server initiates the request to parent node positioned at (0,0) or gateway buoy to collect all the measure range data with respect to the ref _{ x } node at position (500,0). The ref _{ x } node is placed such that it is in the range of gateway buoy so that the server may have the true bearing between these two nodes. The operator (at Seaweb) then maintains a table which specifies all the measured ranges from repeater nodes. This step is carried out only at the initial stage and during the second stage (say after watch circles), the localization is carried out based on nodetonode ranges. This resolves the problem of symmetrical ambiguities.

Step 2. Once the table is ready the data is sorted into a 3D matrix which contains all the measured ranges. This matrix consists of number of layers equal to the number of range files uploaded by the operator. Each of these layers is a square matrix, where the nodes addresses are placed in the first row and first column of the matrix. Once all the nodes are stacked into the matrix, it is processed for the range errors.

Step 3. In the third step, we analyze the normalized mean error ranges between each pair of nodes. Here each pair of nodes is statistically evaluated which is explained in Appendix, and the results are stored into a 2D array. We try to put all the ranges of a particular node pair into a single vector, which is obtained from the stacked matrix. Simultaneously, the reciprocal combination (say from node y to node x) is obtained by looking ‘up the stack.’

Step 4. The obtained vector is statistically analyzed between the selective nodes thereby eliminating the error ranges that fall outside 5% confidence interval (CI) of the data ranges. Initially, the data that fall outside the 5% CI is noted and its mean is calculated. The datum falling farthest from the mean is eliminated. The mean and CI are then recalculated and the process is repeated until the datum does not fall outside the CI. This final estimate is then stored in a 2D array. This output array is a 2Dsquare array which is diagonally symmetrical and with node pairs that lack range estimate which is denoted as norange or NR.

Step 5. This step divides the entire network into circular levels. This is initiated by the parent node. The parent node sends a packet to all its neighboring nodes which are one hop distance away. The nodes receiving the packet from the parent node set their level ID as L_{1}. The ref _{ x } node also has an ID of L_{1}. The L_{1} nodes, in turn, increment the packet ID (say L_{2}) and transmits it to its one hop neighbors and these neighbors set their level as L_{2}. The process is continued until all the nodes are levelled in the network. The detailing of the process is defined in [15]. After levelling of the network, the nodes try to form the mesh grids/routes from their one hop neighbors. This leads to proactive path formation and thereby decreases the congestion. The Figure 2 shows the whole process of fivestep implementation in the simulation setup.
Now, once the data has been filtered, averaged, and organized into a 2D array, we now estimate the location of the nodes. As explained earlier, the parent node is set to be the origin of a horizontal Cartesian grid. The ref _{ x } is placed such that its xaxis is intersecting parent node, coordinates assigned to (ref _{ x }, 0). Once this node is localized, it is considered to be a known node and with the two known nodes the process of localization can be initiated. If there is only one range to the node, it is left isolated unless it has two or more ranges. If there are two known ranges to an unknown node, there exist two solutions. These two solutions are stacked and compared when a previously unknown node becomes known.
where $\left[{r}_{i}^{2}\right]=[{(x{x}_{i})}^{2}+{(y{y}_{i})}^{2}]$.
If the node is evaluated for the first time then, we store solution in the stack and loop through all nodes calculation to determine if it is involved in any possible ambiguous solution sets. If the node is not localized for the first time, then it check with the previous solution. If their x and y coordinates are greater than some threshold difference, then the new solution is taken into consideration. This process is continued until all the nodes are perfectly localized into the network.
3.3 Routing protocol

Step 1: levelling. As per our assumptions, we consider a densely deployed sensor field. Initially, the base station (BS) sends signals with a minimum power level and all those sensor nodes that receive this information will set their level to 1. Then the base station will increase its power level and transmit the signal. This time those nodes which receive the signal for the first time set their level to 2. This procedure continues till all the nodes in the network have their level IDs determined. To counter the effects of fading in wireless channels, hop countbased leveling can also be done [3].

Step 2 : sectorization. Using the directional antenna, the BS will send signals with maximum power and divide the sensor field in to equiangular sectors with an angle of θ (consider θ as 45°). Now, every node in the network is aware of its level and sector [8].

Step 3 : clustering or forming mesh. Clusters of sensor nodes are formed based on the signal strength and use these local cluster heads as routers to sink. The optimal number of cluster heads is estimated to be 5% of the total number of nodes. The decision is made by choosing a random numbers between 0 and 1. The node becomes a cluster head for the current round if the random number is less than the threshold value T(n) which is defined as$T\left(n\right)=\left\{\begin{array}{l}\frac{p}{1p\left(r\text{mod}\frac{1}{p}\right)},\text{if}\phantom{\rule{1em}{0ex}}\mathrm{n\ud716G}\phantom{\rule{1em}{0ex}}\\ 0,\text{otherwise}\phantom{\rule{1em}{0ex}}\end{array}\right.$(4)
where p is the desired percentage of cluster heads (e.g., 0.05), r is the current round, and G is the set of nodes that have not been cluster heads in last 1/p rounds [1].

Step 4 : mode setup. The part of a sector which is in a particular level is called sector ID. If an event occurs in the level (L), these nodes flood very small metadata packets that contain the level ID and sector ID of the node where the event has occurred source node). Each node that receives this packet will read the location of source level ID (L), if the level of this level ID is L or L 2 or L 4 …. Then these nodes will go to SLEEP mode. The level IDs with level L_{1} or L_{3}, etc. and level L go to into SLEEP mode (if and only if there is no transmission in that particular level ID).
On completion of this setup, the source node floods the data packets in the direction of BS. The node that receives the packet checks for two conditions: one is for the level ID and the other is for the sector ID. If the data is from higher level, it only checks for sector ID. If the packet is from neighboring sector of higher levels, then the packet is forwarded, and in the other case the packet is discarded.
 1.
When an event occurs at a node, the node floods the data packets to every neighbor.
 2.
Only the nodes which are in WAKE mode will receive the packet, and nodes in SLEEP mode do not receive the packets.
 3.
Then the nodes that receive data packets check the level ID and sector ID of the packet.
 4.
If the level ID from the source is lesser than its level ID, the packet is dropped.
 5.
If the level ID from a source is larger, then the node checks whether the sector ID is from neighboring sectors; i.e., which are at one hop distance. If not, the packet is dropped.
4 Simulation results
Node locations and range estimates
Node  Locations (in meters)  Nodetonode range (meters)  

xposition  yposition  1  25  30  50  70  
1  4,089  4,538  NR  3,578  9,879  3,114  8,117  
25  9,877  9,874  3,402  NR  987  7,664  6,774  
30  1,393  2,375  5,590  5,687  NR  6,677  9,198  
50  7,077  5,550  2,265  2,278  7,311  NR  8,765  
70  634  4,567  2,451  886  4,412  3,386  NR 
For realism, ranges exceeding range of 9,000 m are neglected which, in turn, are calculated through finite linearization method to delimit the limitations of acoustic communications and to maximize the number of ranges evaluated in each pass. The analysis is carried out for ten realizations of the 70 node networks, resulting in 91,466 ranges being evaluated. The percentage errors between the actual ranges and ranges with offset are recorded. The percentage error between the output and actual ranges is then compared.
The mean percentage error for the range that is not run through stacks is 5.6%, and the largest percent error is 5.96%. After the ranges are stacked, the mean error is reduced to 3.5% and the largest percent error is 4.1%. In absolute sense, the accuracy of 10,000 m range estimate is improved by 96.7 m.
It is observed that using 70node network gives a localization error of 4 m (with errorfree ranges) and an error of 3.5 m with errorinduced ranges. It is unclear at this point why rangeinduced errors improves the error at 70 nodes when the errorfree ranges predict a higher error. It is presumed that the maximum number of allowed iterations and acceptance criteria for the algorithm to not flag an ambiguous solution for another iteration play major roles.
As the network size increases, the numbers of events detected gets reduced. This is due to the fact that as the number of nodes increases, the nodes in the network (or a sector) increases. This leads to transmitting a message packet from one level to another through a number of nodes, thereby depleting energy quickly. In this figure, we make a vivid comparison of our scheme with various techniques and methods. Our scheme proves out to overcome the defect of traditional methods and detects the events more efficiently. We proved that considering the range and location estimates at regular intervals gives a precise localization.
5 Conclusions
In this paper, we have presented a simple acoustic underwater protocol and implement the same for the existing network. To employ the depth information of the sea level and to overcome the problems of watch circles, we employ Munk’s formula by averaging the signal. When we applied the criterion of levelling,
it is observed that the performance evaluation has been increased, and mesh networks typically for the proactive routes avoid the traffic control paths. The comparison of our proposed scheme with that of the traditional approaches proves that our scheme is energyefficient and improves the localization capabilities. The localized scheme proves out to be robust and has less storage overhead and complexity. Future works include improving the algorithm by overcoming the error uncertainties caused by ambiguous solutions. We also plan to incorporate a partition strategy that reduces the total number of iterations and the accumulative errors.
Appendix
where we multiply normally distributed random variable (rv) by errorfree range and then adding 2% of the errorfree range multiplied by Chisquared distributed random variable. The normal distribution accounts for speed of sound errors which are proportional to range of the nodes. The mean, μ, and the variance, σ, of the normally distributed rv is set to 1 and 0.01, respectively, to ensure that the reported ranges are near actual range. Moreover, the Chisquared distribution, χ^{2}(θ), is used to account for the reflected transmission paths and depth variance errors which are also proportional to range of the nodes where θ is the degree of freedom and the mean and variance are set to 1 and 4, respectively. When Chisquared distribution is multiplied with 10% of the errorfree range, it results in 10% overestimation of the range. Watch circles are addressed by typically averaging out five to seven measurements over a frequency of 9–14 KHz for the course of network operation.
For analysis of the algorithm performance, we incorporate 70 nodes in a network field placed in 4×4km region, since this is an approximate area of a testing field. For each simulation, the nodetonode range calculations are performed 15 times with different realizations of the range errors. For consistency across all simulation, parent node and ref _{ x } are used for point of reference. During the simulation testing, the program rejects the ranges that fall outside the 5% confidence interval and estimates a good range between them. For analysis, we assumed a 70node network with 2m node range. We also performed ten realizations of the 70node network, resulting in over 5,560 ranges being evaluated. The percentage error is thus calculated between actual ranges and ranges with the offsets. The mean percent range error is found to be 4.7%, and the largest percent error is 4.97%. In absolute terms, the accuracy of 70node network is improved by 2m range.
Declarations
Acknowledgments
MAM and MZS have carried out this research while they were affiliated with KAUST.
Authors’ Affiliations
References
 Roberts GN, Sutton R: Advances in Unmanned Marine Vehicles. Institution of Electrical Engineers, Cornwall; 2006.View ArticleGoogle Scholar
 Rice J: Seaweb acoustic communication and navigation networks,Heraklion, Crete. Proceedings of the International Conference Underwater Acoustic Measurements: Technologies and Results 28 June to 1 July 2005.Google Scholar
 Scussel K: Acoustic Modems for Underwater Communication (Wiley, Hoboken, 2003). 10.1002/0471219282.eot161Google Scholar
 Kilfoyle D, Baggeroer A: The state of the art in underwater acoustic telemetry Oceanic Eng. IEEE J. 2000, 25: 427.Google Scholar
 Cheng W, Thaeler A, Cheng X, Liu F, Lu X, Lu Z: Timesynchronization free localization in large scale underwater acoustic sensor networks. In 29th IEEE International Conference on Distributed Computing Systems Workshops,2009 ICDCS Workshops ’09. IEE Press, Piscataway; 2009:8087.View ArticleGoogle Scholar
 Steinar T, Schei A: finitedifference method for linearization in nonlinear estimation algorithms. Automatica (1997), 33(11):20532058. http://www.sciencedirect.com/science/article/pii/S0005109897001271 10.1016/S00051098(97)001271View ArticleGoogle Scholar
 Grimmett D: Undersea communication network selflocalization during the Unet 08 seatrial,Biloxi. OCEANS 2009, MTS/IEEE Biloxi  Marine Technology for Our Future: Global and Local Challenges 26 October to 29 October 2009, 17.Google Scholar
 WH Munk: Sound channel in an exponentially stratified ocean, with application to. SOFAR. J. Acoust Soc. Am 1974, 55(2):220226. http://link.aip.org/link/?JAS/55/220/1 10.1121/1.1914492View ArticleGoogle Scholar
 Ausavapattanakun K, Nosratinia A: Analysis of selectiverepeat ARQ via matrix signalflow graphs. Commun, IEEE Trans 2007, 55: 198204.View ArticleGoogle Scholar
 Yang J, Sarkar T: Accelerationinvariance of hyperbolic frequency modulated pulse compression. Digital Signal Process 2008, 18(2):228235. http://www.sciencedirect.com/science/article/pii/S1051200407000218 10.1016/j.dsp.2007.01.005View ArticleGoogle Scholar
 Rice J, Creber B, Fletcher C, Baxley P, Rogers K, McDonald K, Rees D, Wolf M, Merriam S, Mehio R, Proakis J, Scussel K, Porta D, Baker J, Hardiman J, Green D: Evolution of Seaweb underwater acoustic networking. In OCEANS 2000 MTS/IEEE Conference and Exhibition, Volume 3,(2000). IEEE Press, Piscataway,(2000); 2007201.View ArticleGoogle Scholar
 Kilfoyle D, Baggeroer A: The state of the art in underwater acoustic telemetry. Oceanic Eng. IEEE J 2000, 25: 427.Google Scholar
 Ouimet SP: Undersea navigation of a glider UUV using an acoustic communications network, M.S. Naval Postgraduate School, Thesis; 2005.Google Scholar
 TM Page, Proof of law of cosines http://www.themathpage.com/aTrig/lawofcosines.htm
 Mirza A, Garimella R: PASCAL: power aware sectoring based clustering algorithm for wireless sensor networks. In International Conference on Information Networking, 2009. ICOIN 2009. IEEE, Piscataway, 2009; 16.Google Scholar
 Krause L: A direct solution to GPStype navigation equations. Aerosp. Electron. Syst. IEEE Trans. AES23(2) 1987, 225232.Google Scholar
Copyright
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.