The Open Source GPS Toolkit: A Review of the First Year

Brent Renfro, R. Benjamin Harris, Brian W. Tolman, Tom Gaussiran, David Munton, Jon Little, Richard Mach and Scot Nelsen

Abstract: The open source GPS Toolkit (GPSTk) project, first presented at the ION-GNSS-2004, provides a software suite that supports general GNSS research, analysis and development. This paper will summarize improvements in the GPSTk since that first initial release. A growing community of users has adopted the GPSTk. Examples of how the GPSTk has benefited research, commercial, and military groups will be described. The goal of the GPSTk project is to free the research community from the burden of implementing standard satellite navigation algorithms. The project provides a software suite that consists of a set of applications built upon a central library. The GPSTk distribution is available for download at http://www.gpstk.org/. The software is organized into a core library, and a set of applications built upon the library. The GPSTk library provides functions that are common to many applications. The functions include: time conversion; matrix and statistical analyses; reading and writing of standard formats, such as RINEX and SP3; position determination using gradient and algebraic techniques; troposphere delay models; ionosphere delay models; and P-code generation. The library functionality can be accessed by users through custom-built software applications or through the applications distributed with the GPSTk. The GPSTk library and most of its applications are written in highly object oriented ANSI standard C++. Functionality in the library is accessed through functions associated with classes. Classes are an object oriented construct that binds data and functions into one module. One advantage of this approach is that the user can interchange equivalent classes. For example, the user can trivially switch from the use of broadcast to precise ephemerides. By providing these standard models in a production quality and modular form, the library empowers the user to concentrate on new applications rather than on base-level capabilities. The GPSTk software suite is available to the public under the Lesser GNU Public License, or LGPL. The LGPL grants the user a number of rights; notably, the ability to choose whether to modify and redistribute the source code. A number of new applications and library capabilities have been added the GPSTk since the ION-GNSS-2004. Many of these modifications have been introduced in order to broaden the audience that can benefit from the GPSTk. The software suite now builds under more operating systems, including AIX 5.2 and OS X. GPSTk users have contributed patches to enable support for more compilers. In order to support users of standard GNU software development tools, a makefile generation process has been added, supplementing the original build process based on the Jam utility. In addition to making the GPSTk compatible with more compilers and operating system, the functionality of the GPSTk has also been enhanced. The latest stable version of the GPSTk, version 1.1, addresses a number of feature requests and bug reports. New RINEX applications have been added, along with new ephemeris routines to support receivers like the Novatel Superstar. In addition, a RINEX conversion utility for Novatel receivers has been added. A test system has been added to the GPSTk. The purpose of the test system is to provide a consistent, reproducible architecture for ensuring the correctness of library functionality. The test system will run on any system that supports the programming language Perl. By design, the GPSTk software is portable across platforms. However, applications in languages such as Perl, Python, or MATLAB cannot directly call GPSTk library functions. To address this, an interface package has been added to the GPSTk that can generate interfaces,or bindings from the GPSTk core library to a number of other languages. The bindings are created using another open source project called the Simplified Wrapper and Interface Generator (SWIG). SWIG supports the creation of bindings from C++ to over a dozen languages. In version 1.2 of the GPSTk, SWIG has been used to create bindings to the Python language. Over the last year, a number of research groups, private companies, and individuals have adopted the GPSTk. The groups span all sectors of GNSS users, from the private sector to the research and military sectors. At Worcester Polytechnic Institute, a student group has adapted the GPSTk to provide onboard programming for their space bound formation flight experiment, the Power metallurgy And Navigation SATellite (PANSAT). In the private sector, Fusion Numerics uses the GPSTk to power its numerical ionospheric forecasting system. Finally, in the military sector, the U.S. Air Force 17th Test Squadron has adopted the GPSTk as the standard toolset for the evaluation of GPS's performance.
Published in: Proceedings of the 18th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS 2005)
September 13 - 16, 2005
Long Beach Convention Center
Long Beach, CA
Pages: 543 - 552
Cite this article: Renfro, Brent, Harris, R. Benjamin, Tolman, Brian W., Gaussiran, Tom, Munton, David, Little, Jon, Mach, Richard, Nelsen, Scot, "The Open Source GPS Toolkit: A Review of the First Year," Proceedings of the 18th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS 2005), Long Beach, CA, September 2005, pp. 543-552.
Full Paper: ION Members/Non-Members: 1 Download Credit
Sign In