{'fraction_non_alphanumeric': 0.024076232956561406, 'fraction_numerical': 0.007248213290080592, 'mean_word_length': 4.7438136826783115, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
LPS Auto-Calibration Algorithm with Predetermination of Optimal Zones

Accurate coordinates for active beacons placed in the environment are required in Local Positioning Systems (LPS). These coordinates and the distances (or differences of distances) measured between the beacons and the mobile node to be localized are inputs to most trilateration algorithms. As a first approximation, such coordinates are obtained by means of manual measurements (a time-consuming and non-flexible method), or by using a calibration algorithm (i.e., automatic determination of beacon coordinates from ad hoc measurements). This paper presents a method to calibrate the beacons’ positions in a LPS using a mobile receiver. The method has been developed for both, spherical and hyperbolic trilateration. The location of only three test points must be known a priori, while the position of the other test points can be unknown. Furthermore, the paper describes a procedure to estimate the optimal positions, or approximate areas in the coverage zone, where the test-points necessary to calibrate the ultrasonic LPS should be placed. Simulation and experimental results show the improvement achieved when these optimal test-points are used instead of randomly selected ones.


Introduction
Research in Local Positioning Systems (LPS) is an area of great interest due to the large number of applications supported by this kind of system. Outdoor localization is often carried out using GPS, but, indoors, it is difficult to use because GPS signals become weak. To solve the indoor localization problem, several methods have been proposed [1]. One of the most used solutions uses several beacons placed in the environment in order to emulate the GPS satellites [2,3]. In these systems, in order to locate an object it is necessary to know the positions of the beacons. Usually the position of the beacons with respect to a reference coordinate system is measured by hand. This results in low portability and adaptability since the calibration process requires time and effort.
Thanks to auto-calibration techniques, a system can automatically compute the position of beacons by taking measurements from specific known positions. Several previous works have addressed this problem. In [4] a spherical auto-calibration system based on inverse positioning is proposed. The positions of beacons are obtained by taking measurements from several known locations and by applying the positioning algorithm in an inverse way. In that work all the beacon signals must be detected from the known measurement locations. In order to improve the previous system, without the need for detecting all the beacons at the same time, in [5] several reference systems are used to unify them afterwards, by using those beacons common to measurements carried out from different reference systems. In [6] a recurrent spherical auto-calibration algorithm is proposed by using a non-linear square minimization and a fitness function to find the most accurate solution. In this method the measured distance data is divided in several subsets and in each group the algorithm calculates one hundred of low precision solutions, using after a fitness function to select the best six solutions. Finally, it uses a refinement process to obtain the best solution. In [7] a similar algorithm for hyperbolic trilateration is proposed. These methods are developed for a great amount of data (high redundancy) and a high uncertainty in the measurements, so they have problems of convergence and need sophisticated refinement techniques. This paper describes a new algorithm for the calibration of a LPS, allowing the system to calculate the positions of beacons. In this case it is assumed that the set of measurements has less uncertainty [8] than the aforementioned ones, and so the proposed process is easier to implement and guarantees the convergence in most practical situations. This method only requires knowing the location of three measurement points to find the beacons, whereas the other test points can be placed at unknown positions. Additionally, taking advantage of this fact, a method is proposed to obtain the optimal zones to make the measurements during the auto-calibration process, as an additional contribution of this work not found in the previous algorithms. The optimal placement of the beacons to cover a determined positioning area has been previously considered in the literature [9]; the approach here is in the inverse way: a coarse estimation of the positions of the beacons is known and the goal is to determine the optimal zones to place the test points in the calibration process.
This document is divided as follows: in Section 2 the proposed algorithms to perform the auto-calibration are detailed; the localization of the best areas to place the test points at is analyzed in Section 3; simulation and experimental results are shown in Sections 4 and 5, respectively; and finally the conclusions are discussed in Section 6.

Proposed Auto-Calibration Algorithm
Two methods are proposed in this section. The first algorithm is suitable for systems based on spherical trilateration, whereas the second one is for hyperbolic trilateration. Furthermore, this last case does not require synchronization between beacons and the mobile node.
As has been mentioned before, to calculate the coordinates of beacons, it is necessary to measure the distances to beacons from several test points. The location of these test points is also unknown to the algorithm except for the position of three that fix the coordinate system. Thus, the initial information in both algorithms is (see Figure 1): • A vector that contains the "initial approximate position" iap for every unknown of the system: The height (z-component) of the test points is known (i.e., z = 0).
• The distances between the test points and the beacons: in the case of spherical positioning it refers to the absolute distances to the beacons; whereas, in the case of hyperbolic positioning, it refers to the differences between the distances to each beacon and the distance to one of the beacons considered the reference. • The locations of the three known test points to avoid ambiguities in the solution: , , .

Figure 1.
Representation of the LPS to be calibrated.

Auto-Calibration with Spherical Trilateration
The absolute distance between the beacon i with coordinates The proposed method uses the Gauss-Newton algorithm to minimize the sum of the quadratic errors that exist between the measured distances and the distances obtained from the estimated points according to the following expression: where: Differentiating with respect to all the unknowns of the system and reorganizing the terms of the form Δ : where: Solving the system by Least Mean Squares, the following expression is obtained: After obtaining the increment of the position vector Δ , the estimated position vector is updated: This process is repeated until the increment of the position is lower than a pre-determined threshold.

Auto-Calibration with Hyperbolic Trilateration
In this case, instead of the distance between the test point and the beacon, the difference in distance Δr between the test-point and the beacon is measured and the test-point and a beacon considered as reference.
Defining the increment of distance between the beacon i ≠ 1 and the test-point m with respect to the reference beacon (i = 1) for the test-point m of the form: Also, the increment of distance with the estimated points is: Using the same strategy as in the spherical case, the mean quadratic error between the increments of measured and estimated distances are iteratively minimized with the following expression: where: Differentiating with respect to all the unknowns and regrouping the terms, as in the spherical case, it is obtained: Solving the system by Least Mean Squares: The vector of the estimated positions is updated as in the spherical case and the algorithm is repeated until Δ is lower than a pre-determined threshold.

Initialization
The initial estimated test points and the estimated beacons' positions are randomly selected inside the coverage area. If the selection of the initial estimated variables is very bad, the algorithm cannot converge, so after every update of the solution the feasibility of the new estimated positions is checked; that means that the new positions are inside the coverage area of the beacons.

Optimal Zones for Test Points
As has been mentioned before, the test points can be located at any place inside the coverage area, but, depending on where they are placed, the measurement errors can affect the final solution. Here a method for determining the best positions inside the coverage area to locate the unknown tests points is developed.
As has been already explained, in order to find the beacons' location, it is necessary to solve the expression Δ , where ∆ is a vector that contains all the system unknowns, the study of the covariance of ∆ allows the error in the beacons localization to be minimized: It is assumed that the covariance of B can be expressed as cov I N σ , where is the error standard deviation in the measurements between the beacons and the test points, and is the identity matrix: So the function to be minimized to decrease the error in the beacon location and to find the optimal areas of test points is: Equation (18) allows the determination of the positions where the unknown test points should be placed in order to minimize the PDOP (Position Dilution Of Precision) at the points where the actual beacons are placed-notice that in the calibration process the positions of the beacons are the points to be calculated. Although the function returns the exact positions for the unknown test points, if they are located around these obtained positions, the aforementioned PDOP is near the minimum, so it is not necessary to pose the unknown test points in exactly the right position to obtain good results in the calibration process (an area close to the location is sufficient). As an example of that, the distribution of beacons considered after in the real result is analyzed. Table 1 shows the variation of the PDOP in the location of the beacons, when the test points are moved around of their optimal positions. It can be observed that the differences are less than the 1%. The distribution of the test points used in the test can be observed in Figure 2 where the blue circles are the projection of the beacons in the measurement plane (they are at 3.5 m of height), the red circumference represents a distance of 0.25 m around the optimal test points and the crosses are the positions of the test points for the different configurations for which the PDOP has been calculated.  2. Distribution of the unknown test points around the location of the optimal test points.
Notice that to obtain the optimal areas the criterion of minimizing the PDOP in the beacons' location given a test point configuration is used. Other criteria such as the condition number or the Cramer-Rao limit could have been used, but as has been proven in [9], in that case to pose the beacons in the best areas, the final location of these areas is similar with the three methods. And, regarding the computational load, the calculation of a matrix trace is a best option (only the diagonal elements must be obtained).
In order to find the optimal areas for the simulation and experimental test the function in Equation (18) is minimized using the methods proposed in [10] and [11], which use a non-linear minimization with constraints. The constraints here considered correspond to the limits of the coverage zone of the LPS system. The number of analyzed test-points should be also included in the initialization of the algorithm, It is also necessary to include an initial estimation of the beacons' positions that is performed using an inverse positioning algorithm with only the three known test points or making a coarse hand-made calibration.

Simulation Results
The results of tests run under simulation are here presented. The tests are carried out for both, the spherical and the hyperbolic versions of the algorithm.

Spherical Trilateration
In the first simulation, the results obtained for calibrating the beacons by using four random test points, four optimal test points, and eight optimal test points are compared. In this simulation the auto-calibration algorithm is repeated 100 times for different noise situations.   Figure 4 shows the standard deviation in the (x, y, z) components for different noise levels. Notice that the z component is the least affected by the noise level; that is because the z coordinates of the test points are taken as zero. Also, the results obtained with four optimal test points are similar to those from four random test points, but, when eight optimal test points are used, the results significantly improve.
From Figures 3 and 4 it can be concluded that, in the spherical case, the obtained results are quite similar for optimal and random test points when the noise level in measurements is less than 1 cm. Nevertheless, for higher noise levels it is advisable to use optimal test points. Table 2 contains the average error (in cm) for every component in the localization of beacons after 100 simulations. In this case the results obtained with the optimal test points are better, but very similar to those with random test points.

Hyperbolic Trilateration
In this case the algorithm based on random test points does not converge for a standard noise deviation in measurements of 4 cm, so a standard noise deviation of 1.5 cm is considered.
For this simulation the four unknown test points are placed at (z = 0):  Figure 5 shows how the dispersion in results when using random test points is higher than that based on 4 or 8 optimal test points. In fact, for a noise standard deviation higher than 1.5 cm, the algorithm based on random test points does not converge, whereas, when optimal test points are considered, the algorithm still performs.
In this case, the standard deviation in the localization of beacons is much lower for optimal test points than for random test points (see Figure 6). As an example, for a standard noise deviation of 1 cm, the standard deviation in results is reduced by half when using four optimal test points, and reduced to a 25% for eight optimal test points. Table 3 shows the average error (in cm) for every component in the localization of beacons. In this case the results with optimal test points are better, so, if the system uses hyperbolic trilateration for calibration, the test points should be in optimal areas.
By analyzing the results, it can be stated that by increasing the number of test points it is possible to reduce the error in the localization of the beacons. Figure 7 shows the average error in the beacons' localization ( ∑ ) for different numbers of test points. Notice that, for a certain value (80 in the case analyzed here), the average error improvement is very low and with the increment of the unknown test points the computational load increase dramatically (in this case it has been tested up to 160 test points).  5. Representation of 100 auto-calibrations for different noise levels in measurements 1 mm, 1 cm, 4 cm , using four random unknown test points; four optimal unknown test points and eight optimal unknown test points (hyperbolic case).

Experimental Results
Experimental tests have been carried out with the LPS developed by GEINTRA Research Group at the University of Alcalá (see Figure 8). This LPS consists of five ultrasonic beacons placed in the ceiling with a coverage area of 10 m 2 . Descriptions of all the features of this LPS can be found in [12] and [13]. Table 4 shows the position of the beacons for the mentioned GEINTRA LPS (considered in meters). The steps followed to perform the manual calibration were: first a grid of points with a separation of 0.5 m was performed inside the coverage area on the floor using a line laser projector, then the projection of the beacons on the floor was determined using a plumb line and, finally, the height of the beacons was obtained using a ranging laser. For the rest of the paper it is assumed that the manual calibration is the ground truth and serves as reference to compare with the autocalibration.

Spherical Trilateration
Two three-dimensional calibrations have been carried out in the LPS. In the first one, four unknown test points have been used, whereas, in the second one, eight unknown test points are considered. The height for all the test points is 3 cm: In Table 5 the positions of beacons obtained after calibration are shown (in meters).  Figure 9 represents the average absolute error (for 20 measurements) in cm for every component (x, y, z) after calibration; it can be observed that, apart from the beacon 3, this error is below 2 cm. Also the least error is provided by the component z. In order to compare the results between localization using a manual calibration of beacons and the beacon auto-calibration, a circular path inside the coverage area has been performed. In Figure 10 the comparison results are shown. Although the handmade calibration has been made carefully, it is not completely error free. The goal of this representation is to show that similar performances can be obtained in both cases. The positions obtained in the three routes are very similar. In the case of the beacons calibrated with four test points, the mean error in distance is 4.41 cm, whereas, for beacons obtained with eight test points, the error is 3.20 cm.

Hyperbolic Trilateration
The distribution of beacons in the environment is not the most suitable, since they are very close for hyperbolic positioning. This provides a high PDOP in the LPS, so the algorithm does not converge for a calibration in three dimensions. For that reason, only a 2-dimensional calibration is performed and the height of beacons is fixed at 3.5 m. The localizations of the unknown test points for the test are (2,−1.5);(−1.5,0) m. In Table 6 the position of beacons after calibration are shown (in meters). 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 Figure 11 shows the average absolute error (for 20 measurements) in cm for every component (x, y) after calibration: these errors are higher than those for the spherical case. In order to compare the results for localization using the real position of beacons and the beacon auto-calibration, the same path for the mobile robot, as the one commented in the spherical case, is considered. The results can be seen in Figure 12. Notice that the results are worse than those for spherical trilateration. In fact, the average absolute error in distance using the beacon calibrated with four test points 10.33 cm; and in case of the beacons obtained with eight test points, the error is 7.27 cm

Conclusions
An algorithm for LPS auto-calibration in two cases, spherical and hyperbolic, has been developed. This algorithm only requires the location of three test points to be known, whereas the position of the other test points can be unknown. The proposed method achieves better performance for spherical trilateration, since this positioning algorithm is more accurate than the hyperbolic one. But, in case of low measurement error (standard deviation less than 5 mm), it is also possible to carry out a satisfactory hyperbolic auto-calibration.
Moreover, how to compute the optimal areas to place the test points in order to achieve improvements in auto-calibration has been described. The use of these areas is important for hyperbolic trilateration. Increasing the number of test points improves the calibration results up to a limit.