Table of Contents Author Guidelines Submit a Manuscript
The Scientific World Journal
Volume 2014 (2014), Article ID 723736, 6 pages
Research Article

Using Evolutionary Computation on GPS Position Correction

Department of Computer Science and Information Engineering, Chien Hsin University of Science and Technology, Jhongli, Taiwan

Received 5 August 2013; Accepted 12 November 2013; Published 20 January 2014

Academic Editors: J. H. Sossa and H. Xu

Copyright © 2014 Jung Yi Lin. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


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.

1. 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 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 [79], 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 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.

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.

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, and , where is placed on a known location, , the location information obtained by could be used to correct . 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.

Figure 2: A consumer-grade GPS receiver at a location which has exact known location.

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.

2. 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 solutions—in 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.

Figure 3: The flowchart of LAGEP.

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 out of 15 fields can be removed. Two GPS receivers construct a 13-feature training instance after eliminating a redundant UTC time feature since those GPS receivers would have identical UTC time. Those features with longitude and latitude of the known location form a 15-feature 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.

Table 1: Fifteen fields of GPGGA sentence.
Table 2: Features of a training instance.

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: , 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.

3. Experiments

Two public reference positions, UCH01 (24.94728, 121.22916) and UCH02 (24.94719, 121.22951), are provided by Chien Hsin University as shown in Figure 4. Satellite image extracted from Google Earth is shown in Figure 3. Two consumer-grade GPS, HOLUX GPSport 245 [15], are precisely placed on UCH01 and UCH02 for 24 hours to collect position information. After eliminating noisy data, the dataset contains 59,209 instances. We used 19737, 19736, and 19736 instances as training set, validation set, and test set, respectively. To reduce the conversion error in calculating longitude/latitude format, UCH01 and UCH02 are transformed into NMEA format (2456.8368, 12113.7496) and (2456.8314, 12113.7706), respectively:

Figure 4: The image of UCH01 and UCH02 (image from Google with a proportional scale of 30 m).

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.

Table 3: Genetic programming parameters.

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.

Table 4: Average error between GPS receivers and reference positions.
Figure 5: The image of UCH01, UCH02 and the position obtained by GPS receivers (image from Google with a proportional scale of 20 m).

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.

Table 5: Training time (in second).

Before showing the experimental results of LAGEP, we demonstrate a simple correction method based on location information obtained by both GPS receivers. Since is placed right on UCH01, longitude and latitude of minus the difference between and UCH01 should be close to UCH02. Denote longitude and latitude information reported by GPS and as G1long, G1la, G2long, and G2la. The correct longitude and latitude of UCH01 and UCH02 are denoted as UCH01long and UCH01la and UCH02long and UCH02la. Location information of , denoted as and , is corrected by using is corrected by 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.

Table 6: Average error on correct 1.
Table 7: Average error of test set.
Figure 6: The image of UCH01, UCH02 and the corrected positions using simple correction method (image from Google with a proportional scale of 30 m).

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.

Figure 7: The image of UCH01, UCH02 and the corrected positions using proposed method in black squares (image from Google with a proportional scale of 20 m).

4. 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 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.

Conflict of Interests

The author declares that there is no conflict of interests regarding the publication of this paper.


The author would like to acknowledge the assistance of Dr. Ming Chih Tung, Chia Hui Chang, Chao Chung Liu, and Ju Fu Peng for providing experiment equipments and collecting GPS information. The author also would like to thank anonymous reviewers who gave valuable suggestion that has helped to improve the quality of this paper.


  1. L. E. Frenzel, “GPS takes a global position in the portable market,” Electronic Design, vol. 55, no. 10, pp. 47–54, 2007. View at Google Scholar · View at Scopus
  2. A. EI-Rabbany, Introduction to GPS: the Global Positioning System, Artech House, Boston, Mass, USA, 2002.
  3. T. K. Yeh, C. S. Wang, C. W. Lee, and Y. A. Liou, “Construction and uncertainty evaluation of a calibration system for GPS receivers,” Metrologia, vol. 43, no. 5, pp. 451–460, 2006. View at Publisher · View at Google Scholar · View at Scopus
  4. J. Zhang, K. Zhang, R. Grenfell, and R. Deakin, “GPS satellite velocity and acceleration determination using the broadcast ephemeris,” Journal of Navigation, vol. 59, no. 2, pp. 293–305, 2006. View at Publisher · View at Google Scholar · View at Scopus
  5. J. A. Klobuchar, “Ionospheric effects on GPS,” in Global PositionIng System: Theory and Applications, vol. 2, pp. 485–516, American Institute of Aeronautics and Astronautics, Washington, DC, USA, 1996. View at Google Scholar
  6. L. L. Arnold and P. A. Zandbergen, “Positional accuracy of the Wide Area Augmentation System in consumer-grade GPS units,” Computers and Geosciences, vol. 37, no. 7, pp. 883–892, 2011. View at Publisher · View at Google Scholar · View at Scopus
  7. M. Berber, A. Ustun, and M. Yetkin, “Comparison of accuracy of GPS techniques,” Measurement, vol. 45, no. 7, pp. 1742–1746, 2012. View at Publisher · View at Google Scholar
  8. C. D. Ghilani and P. R. Wolf, Elementary Surveying—An Introduction to Geomatics, Prentice Hall, Upper Saddle River, NJ, USA, 12th edition, 2007.
  9. J. Van Sickle, GPS For Land Surveyors, CRC Press, New York, NY, USA, 3rd edition, 2008.
  10. M. Chivers, Differential GPS Explained. ArcUser, 2003.
  11. P. Bolstad, A. Jenks, J. Berkin, K. Horne, and W. H. Reading, “A comparison of autonomous, WAAS, real-time, and post-processed global positioning systems (GPS) accuracies in northern forests,” Northern Journal of Applied Forestry, vol. 22, no. 1, pp. 5–11, 2005. View at Google Scholar · View at Scopus
  12. J. R. Koza, Genetic Programming: on the Programming of Computers by Means of Natural Selection, MIT Press, Cambridge, Mass, USA, 1992.
  13. National Marine Electronics Association (NMEA),
  14. J.-Y. Lin, H.-R. Ke, B.-C. Chien, and W.-P. Yang, “Designing a classifier by a layered multi-population genetic programming approach,” Pattern Recognition, vol. 40, no. 8, pp. 2211–2225, 2007. View at Publisher · View at Google Scholar · View at Scopus
  15. HOLUX Technology Inc, GPSport 245,