Using Evolutionary Computation on GPS Position Correction

More and more devices are equipped with global positioning system (GPS). However, those handheld devices with consumer-grade GPS receivers usually have low accuracy in positioning. A position correction algorithm is therefore useful in this case. In this paper, we proposed an evolutionary computation based technique to generate a correction function by two GPS receivers and a known reference location. Locating one GPS receiver on the known location and combining its longitude and latitude information and exact poisoning information, the proposed technique is capable of evolving a correction function by such. The proposed technique can be implemented and executed on handheld devices without hardware reconfiguration. Experiments are conducted to demonstrate performance of the proposed technique. Positioning error could be significantly reduced from the order of 10 m to the order of 1 m.


Introduction
Global positioning System, GPS, has been successfully applied in various areas such as navigation, meteorology, military tasks, mapping, tour design, path tracking tools, and more [1]. Recently many mobile devices have been equipped with embedded GPS [2] such as tablet PCs and smart phones. They provide maps to help users not to lose their way or search the shortest route to their destination.
GPS receiver receives satellite signal from some of constellation 24 GPS satellites. Those satellites are controlled by the United States Department of Defense [2]. The position of a GPS receiver, u, can be derived by the pseudorange of a satellite. Let be a satellite located at ( , , ); is located at ( , , ); can be evaluated by where is the speed of light; is the offset of the receiver clock; and V stands for a random noise that is expected to be zero. Theoretically, the exact position of u ( , , ) can be determined with given four error-free satellite coordinates.
Unfortunately, GPS positional accuracy is affected by many factors [3,4] such as radio signal corruption, ephemeris error, satellite and receiver clock offset, multipath error, receiver measurement noise, satellite geometry measures, tropospheric delay, and ionospheric delay [5]. In general, due to those noises, GPS position accuracy is degraded to the order of 10 m [6].
Many techniques are proposed to improve GPS position accuracy. A commonly used technique is to use relative positioning [7]. Relative positioning methods, including static, rapid static, pseudokinematic, kinematic, and real-time kinematic [7][8][9], have proved their ability of improving GPS accuracy. In [7], Berber et al. claimed that pseudokinematic technique produces closest results, which could significantly reduce the error to 2 centimeters. Differential correction is an effective method to improve GPS positional accuracy. A GPS receiver with such technique is called dGPS. A typical differential correction requires a reference stationary receiver at a known location [10,11]. Figure 1 shows a typical scenario of the dGPS environment. The exact location information of reference stationary receiver is known. It receives GPS signals and calculates its position. Under the assumption that close GPS receivers suffer similar noises and after evaluating the difference between the exact known position information and the 2 The Scientific World Journal A reference stationery A GPS receiver needs receiver to be corrected Figure 1: An illustration of dGPS scenario. The precise location of the reference stationary receiver is known. A GPS receiver which requires correction accepts both signals from satellites and the stationary receiver.
GPS receiver G 2 at L 2 GPS receiver G 1 at a known location L 1 Figure 2: A consumer-grade GPS receiver at a location which has exact known location. calculated position information, the reference stationary receiver communicates with roving GPS receivers to correct their position information. dGPS can be used to eliminate affections of ionospheric and tropospheric delay, ephemeris error, and satellite clock error. However, when the error is due to multipath error, or poor satellite measurement geometry, the improvement effectiveness of dGPS technique is relatively low.
The main drawback of using dGPS technique is that reference stationary receivers are not common in many countries. Fortunately, many accessible places have been precisely measured for their geometry location. If a consumer-grade GPS receiver could be a reference stationary receiver, it is possible to simulate a dGPS environment. Given two GPS receivers, 1 and 2 , where 1 is placed on a known location, 1 , the location information obtained by 1 could be used to correct 2 . Such scenario is shown in Figure 2. In this paper, we will use two consumer-grade GPS receivers to construct the scenario. Instead of using survey-grade GPS receivers, which have high accuracy and have been applied correction techniques, consumer-grade GPS receivers could be more common for most of users.
A navel position correction technique is proposed in this paper. This technique is based on differential correction and genetic programming (GP) [12]. GP will be used to generate a correction function from NMEA information [13] derived from the GPS receiver at the known location and the GPS receiver which needs to be corrected. The receiver which requires to be corrected will apply the function to obtain its corrected location information.

Layered Architecture Genetic Programming
Genetic programming [12,14] is a research area of evolutionary computation. It has been proved that GP is capable of finding a solution efficiently. GP, like other techniques in evolutionary computation, generates possible solutionsin this case, correction functions-randomly for the given problem under given constrains. These solutions are called individuals. In this paper, individuals are represented as functional expressions. The fitness value which of an individual is used to measure the degree of the individual fitting with the given problem is determined by a predefined fitness function. The set with fixed size of individuals is named a population. In order to produce new solutions, genetic operators such as crossover and mutation are applied on selected individuals, called parents, to create offspring and mutant. Comparing the fitness degree of those offspring and mutant with parents, which have higher fitness value, will be kept as survived individuals. All survived individuals will replace the original population. A generation is finished once the original population is fully replaced. After a number of generations, evolutionary process completes and the individual with highest fitness is regarded as the result [14].
In this paper, we use the improved version of genetic programming called layered architecture genetic programming, LAGEP [14]. LAGEP is only usable with functional expression individuals. It utilizes the layer architecture to arrange populations. Populations in the same layer evolve independently. Once every population finishes evolutionary progress, the best individual of each population evaluates with its training instances, T, to generate a series of numerical results. The number of results is equal to |T|. Combining those values, a new training set T having |T| instances could be produced. Supporting that the number of populations in the layer is n, T will be an n-dimensional training set. The final layer of LAGEP contains one population only. The individual produced by this population is the evolutionary result [14]. The flowchart of LAGEP is shown in Figure 3.
Training instances are constructed by raw information obtained from two GPS receivers and the known location. GPS receivers are capable of transferring different types of NMEA interpreted sentences [13]. In this work, we used GPGGA to represent position information, as shown in Table 1. The third, fifth, tenth, and twelfth field are symbols that can be harmlessly eliminated. The value of sixth field indicates GPS quality which is fixed. The thirteenth and fourteenth are usable when dGPS is available. The fifteenth is the checksum used to identify correctness of received data. In conclusion, 8   training instance, as shown in Table 2. The target value is either known latitude or known longitude to which we intent to correct GPS receiver as close as possible.

Number Meaning
Target value Known latitude/known longitude 1-7 $GPGGA from GPS receiver 1 as shown in Table 1 8-13 $GPGGA from GPS receiver 2 as shown in Table 1 without the UTC of position 14 Known latitude (where GPS receiver 1 is located) 15 Known longitude (where GPS receiver 1 is located) An individual, idv, is defined as a functional expression composed of variables, operators, and constants: An individual is a function mapping 17 real value features with constants into single real value, that is, idv: (R |17| ∪ ) → R, which is supposed to be as close as the target value. The target value is the value what an individual is evolving for. When we attempt to acquire a correction function for latitude, the latitude information will be the target value during this run of the evolutionary process and is the only thing concerned by an individual.
A training instance, t, and the training set, T, are defined as follows: the target value is either known latitude or known longitude. The fitness of an individual is defined by where idv ( ) stands for the calculated valued of training instance by the individual. Overfitting is a situation that a trained individual highly fits the training set but obtains relatively poor performance for the test set. To avoid the occurrence of such phenomenon, the validation process is applied. An individual having highest score is the output of the population: where |V| is the number of instances in the validation set. University as shown in Figure 4. Satellite image extracted from Google Earth is shown in Figure 3. Two consumergrade GPS, HOLUX GPSport 245 [15], are precisely placed on UCH01 and UCH02 for 24 hours to collect position information.

Experiments
In this paper, we conduct two experiments that use UCH01 and UCH02 to be the reference point and the target position in turns. We performed 5-fold cross-validation for 10 times to demonstrate the average performance. Settings used for GP are shown in Table 3.
Average distance errors between position information obtained by GPS receivers and the two fixed positions are considerable. Average error is in order of 10 meter, as summarized in Table 4. We also show the image of UCH01 and UCH02 and obtained position information by averaging 59209 instances in Figure 5. Obviously, position information obtained by GPS receivers is unstable and inaccurate.
The training phase of GP is time consuming. Training time records of experiments are summarized in Table 5. It requires about one hour completing one experiment. It seems that the training time is not acceptable in real scenario. However, it is difficult to have that much position information to be training instances in real scenario as well. The training time is affected by the number of training instances. Fewer training instances would greatly cost less training time.   Before showing the experimental results of LAGEP, we demonstrate a simple correction method based on location information obtained by both GPS receivers. Since 1 is placed right on UCH01, longitude and latitude of 2 minus the difference between 1 and UCH01 should be close to UCH02. Denote longitude and latitude information reported by GPS 1 and 2 as G 1long , G 1la , G 2long , and G 2la . The correct longitude and latitude of UCH01 and UCH02 are denoted as UCH01 long and UCH01 la and UCH02 long and UCH02 la .  Location information of 2 , denoted as 2long and 2la , is corrected by 1 using 1 is corrected by 2 using The average error is shown in Tables 6 and 7. The corrected positions are shown in Figure 6. The corrected method seems reasonable but is inaccurate.
Experiment results of LAGEP on test sets are shown in Table 6. The average corrected position is close to target position with less than 1 meter. It demonstrated that the proposed method achieved significant result in both latitude and longitude. The degree of correction is significant. Standard deviation of those experiments shows that the experimental  results are stable. We illustrate the corrected positions in Figure 7. The corrected positions are almost overlapping with UCH01 and UCH02.

Conclusion
In this paper, we proposed a new GPS position correction technique based on layered genetic programming and the concept of dGPS. Experiments have shown that even when two GPS receivers have high error and noise, the proposed technique is capable of finding correction function to help find accurate position information. The proposed technique 6 The Scientific World Journal could be easily implemented on mobile devices because it does not need to modify or install any hardware component.
Our future work will focus on training correction function with time limitation constraints. The training phase stops when given time limitation is reached. Such would be closer to real world.