Abstract: | The GPS Toolkit (GPSTk) [1], developed to support GPS applications, has now reached its ninth birthday as an open source project. In the intervening years the GPSTk has seen application in a variety of areas [2,3]. However, since its first release there have been tremendous changes in the GNSS world: GLONASS has been revived, Galileo is evolving into a reality, the Chinese have launched Beidou, the Japanese QZSS, and GPS has slowly been adding the L2C and L5 signals to the existing constellation. None of these new systems or signals was operational at the time of the GPSTk’s first release, when it was aimed at handling only GPS L1 and L2 signals. Only over the last four years have we begun to confront the difficulty and challenges of incorporating the new systems and signals into the GPSTk. This talk will describe our efforts to meet these challenges and plan for the future, as well as some of the limitations of the GPSTk that we have encountered along the way. The GPSTk has an object-oriented design and a C++ implementation, both of which have been described elsewhere [4]. We found the original design, while sufficient to handle the world of GPS RINEX V2.x, needed to be extended and expanded to address the multi-GNSS complexities of RINEX 3.0 [5]. As a result, many changes required to support multi-GNSS processing have been incorporated into the GPSTk. For example, the GLONASS broadcast ephemeris is of tabular form rather than the pseudo-Keplerian elements of GPS. Yet another example is the internal handling of time, which shifted from a monolithic design, to one in which internal time representations are separate and distinct from other representations of time that might be used. The GPSTk has also been expanded to include the notion of that each GNSS may have a unique reference frame, and a Helmert transformation to assist in transforming between reference systems has been included. The extension of the overall GPSTk design required rethinking a significant number of the original design features, and we will describe the important changes and new features of the GPSTk release, the potential impact of these changes on user code bases, and areas where the design continues to evolve. We will also provide examples of how some of the new features can be used. We will also discuss some of the lessons we have learned as the GPSTk has evolved. For example, the representation of GNSS observations requires a tuple to identify it, and in the GPSTk this is usually the carrier frequency, modulation code, and observation type. While the GPSTk now uses this type of tuple, our experience is that this information needs to be available at any point observation data is present – which pushes the tuple deep into the design. A separate example comes from our experience developing bindings for interactive scripting languages, e.g. Perl, Python, Octave, or MatLab. Such languages lower the entry bar for productive analysis by providing many convenience functions, such as array handling and Fourier transforms. Our need for such bindings has led us to explore the potential of using the Software Wrapper Interface Generator (SWIG) to produce bindings for the GPSTk. We will describe the approach we have taken to producing these bindings and why the results have not been completely successful, and why the situation may improve. We will close by discussing our vision for the direction in which the GPSTk should evolve. This includes continuing to broaden the overall design to more flexibly handle other GNSSs, simplifying the interfaces to permit binding to Python, MatLab, or other scripting languages, and simplifying the overall structure of the GPSTk. References [1] http://www.gpstk.org [2] C-O. Andrei, D. Salazar, R. Chen. "Performance Analysis of the Precise Point Positioning Technique at BUCU IGS Station". RevCAD - Journal of Geodesy and Cadastre, Volume 10, page 9-20. 2010. [3] Brian Tolman. "GPS Precise Absolute Positioning via Kalman Filtering." Proceedings of the 21st International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS 2008). Savannah, Georgia. September 2008. [4] B. Tolman and R. Harris “The GPS Toolkit”, Linux Journal, September 2004, pg 72-76 [5] Werner Gurtner and Lou Estey, “The Receiver Independent Exchange Format V3.01”, 22 June 2009 |
Published in: |
Proceedings of the 26th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2013) September 16 - 20, 2013 Nashville Convention Center, Nashville, Tennessee Nashville, TN |
Pages: | 2032 - 2043 |
Cite this article: | Parsons, B., Little, J., Tolman, B., Renfro, B., Nelsen, S., Munton, D., Harris, B., "Climbing the GNSS Hill: Lessons from the Evolution of the GPSTk," Proceedings of the 26th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2013), Nashville, TN, September 2013, pp. 2032-2043. |
Full Paper: |
ION Members/Non-Members: 1 Download Credit
Sign In |