ABSTRACT
This paper addresses the question: "Why aren’t tightly-coupled GPS/INS systems everywhere, on aircraft, ships and
land vehicles?" Two barriers to the widespread use are cited. One is the high cost of the INS, and the other is the cost
and complexity of tightly-coupled GPS/INS integration. One of those two barriers has recently been diminished
drastically with the development of a standardized software package for tightly-coupled integration. In the past, only
the largest corporations have been able to pay the initial development cost for tightly-coupled GPS/INS integration.
Using the new software package, integration and van test can be accomplished in a matter of days, and this has been
demonstrated with field trials. The package is intended primarily for small companies that otherwise would not be able
to build tightly-coupled GPS/INS systems at all. What would have been a prohibitive 3- or 4-man year development
effort is reduced to a few man weeks. To accomplish an integration, the system integrator has to find a way, through
serial interfaces or by some other means, to get the INS measurements of acceleration (accumulated velocity change
DV) and attitude rate (accumulated angle change Dq ) into a processor, along with the raw data of a GPS receiver. He
or she also has to find a way to time tag the INS DV, Dq with GPS time. The rest of tightly-coupled GPS/INS
integration is predominately accomplished in the standardized software package. That leaves the cost of the INS as
the only remaining barrier to the very widespread use of GPS/INS, and invites new development of low cost inertial
sensors. The focus of this paper is on the software package, and how it achieves standardization and ease of use
while retaining the flexibility to produce optimal results with a variety of INS and GPS receiver types.
INTRODUCTION
It has been recognized for decades [1] that tightly-coupled GPS/INS (TCGI) performance is superior to
loosely-coupled, but for years the challenge of integrating components was found to be so difficult that, today, most
GPS/INS systems are loosely-coupled simply because they are easier to build. The tightly-coupled systems combine
the disparate raw data of GPS and INS sensors in a single, optimum Kalman filter, rather than cascading two filters,
one for each sensor. Also, in some TCGI systems the inertial information is fed back into the receiver so that the
receiver can track through increased noise and dynamics. Owing to greater synergism of elements, the tightly-coupled
systems are significantly more accurate, robust, jam-resistant, and less costly, [2] but tend to be complex, inflexible,
and hard to build. That difficulty, combined with the high cost of an inertial navigation system (INS) or inertial
measurement unit (IMU), has dampened the widespread use of TCGI systems.
To address that problem the author worked out an approach to speeding up and simplifying the integration, [3] and
presented the approach at the IEEE Position Location and Navigation Symposium in 1992. The following year a TCGI
prototype was built using the idea, and then van tested. The resulting proof of concept was reported [4,5] at the
Institute of Navigation and the Central Inertial Guidance Test Facility in 1993. In September 1995, a software package
called GINI was introduced that implements the approach, and makes it easy for systems integrators to build TCGI
systems. GINI consists of an object library of C-language functions that can be built into GPS/INS products and
data-processing utilities. The library offers standardization of the TCGI integration process, ease of use, rapid
turnaround, flexibility, and optimal performance. Several applications using GINI have been developed, although, a
demonstration involving receiver aiding has not been done yet, and none is in progress as of this writing. The rest of
this paper describes the GINI approach to integration, reviews the proof-of-concept demonstration, describes the GINI
library, and explains what a system integrator has to do to use it. The essence of the approach is finding practical
ways to introduce modularity into systems that seemed either hopelessly interwoven or else impossible to integrate at
all.
PURPOSE AND APPROACH
The reasons for modularity are compelling. If it were possible to develop a TCGI system by mixing and matching
modules, as if choosing receivers, inertial systems, and navigation algorithms from a menu, the task of integration
would be drastically simplified. Once a system was built it could be changed by substituting other modules. The
system integration would be simplified by dividing technical challenges into smaller pieces that are easier to manage,
by hiding information within modules so that the way a module does its job is transparent to the rest of the system,
and by localizing the effects of mode transitions so that a state change in one subsystem does not cause a transient
in another. Finally, it would reduce the cost of integration both directly by shortening the time required to get a product
to market, and indirectly by allowing an evolutionary approach to system development.
The goals of modularity and tight coupling are in conflict. Modularity is generally facilitated if the exchanges between
subsystems can be boiled down to a few simple connections, where a low data rate can be used, where round-off
errors and small timing errors are acceptable, and where the data are allowed to be half a second stale going across
an interface. Those are the advantages of loose coupling. Tight coupling requires precise, high-rate data exchanges,
and exacting synchronization of subsystems.
Nevertheless, it was concluded [3] in 1992 that modularity was possible within families of products that adhere to a
shared interface protocol. Since that time, the concept has been broadened and generalized. Instead of "families of
products," the concept is more nearly described by a set of requirements placed on the sensors to be compatible.
Those requirements are:
GPS receiver
Able to navigate autonomously.
Measure the ranges and carrier phase simultaneously at regular epochs, typically 1 Hz.
Output ranges, carrier phase, raw ephemeris, position, velocity, accuracy statistics, and status.
Time tag the receiver’s data, and support time tagging of INS data, with GPS time.
Allow the receiver clock to float.
If the receiver will be INS-aided, then make provision for applying GINI-computed signal Doppler, and for adjusting
receiver bandwidth to accommodate INS error.
INS or IMU
Self-moding and control after application of power.
Generate and output conventional DV, Dq . (delta-Velocity, delta-Angle)
Sample DV, Dq simultaneously at regular epochs, typically 100 Hz or higher.
Compensate DV, Dq as necessary to achieve the advertised accuracy.
Support time tagging of DV, Dq accumulation intervals with GPS time, generally to within a small fraction of a
millisecond.
Additionally, if a navigation-grade INS is used:
Provide attitude output.
Navigate autonomously.
As originally conceived, the INS DV, Dq accumulation intervals were to be controlled from the GPS receiver’s clock, so
that the INS divides a receiver one-second interval into a hundred 10 msec intervals. That remains a preferred option,
but the concept has been generalized to allow the two sensors to be asynchronous, as long as INS DV, Dq
accumulation intervals can be accurately tagged with GPS time.
The figure (below) shows a functional block diagram of the TCGI system, with inertial, GPS, and software elements.
Notice that the figure is a functional diagram, meaning that nothing constrains where or how the functions are
implemented. The GPS receiver might be embedded in the INS physical housing, and GINI might very well be hosted
in either the receiver or INS processor.
The approach is not a panacea. Drawbacks of the approach are: reduced fault tolerance, requirements placed on
sensors to be compatible, and adaptation.
Fault tolerance
Tightly-coupled systems are inherently less fault tolerant than loosely coupled, because the tight coupling means that
a failure in one element is more likely to affect other elements. To address that concern, the receiver and INS are
required to function as autonomous navigators, and then their raw data are optimally combined in a third navigation
solution by GINI. There is then no single-point failure that can hobble all three navigation solutions, although, an INS
failure would leave the receiver unaided. The requirement to navigate autonomously also means that the sensor
manufacturers can apply a great deal of testing independently of any integration, and can release a product that is well
understood within their own realm of expertise. A receiver that can navigate autonomously is obviously working and
doing most of the things needed to support a TCGI integration.
Requirements placed on sensors
The toughest requirements involve timing and making the sensors’ raw data available for output. Clearly, it is not
possible to connect just any INS with just any receiver, especially among older sensors that were only intended to
operate as stand-alone elements of federated systems, or present-day inexpensive sensors that simply lack the
outputs. If the GPS receiver’s raw data are decrypted and can’t be allowed outside the receiver’s processor, then GINI
moves into the receiver’s processor, (where it remains functionally distinct from receiver software.) Memory and
throughput requirements are described below.
The requirement for the receiver’s clock to float, rather than be driven toward GPS time, enables the navigation Kalman
filter to predict the clock’s behavior. That predictability is key to a major TCGI performance advantage; It is possible [6]
for the TCGI to operate in a poor signal environment where GPS signals are only momentarily and infrequently
available, and yet perform almost as well as in an environment where the signals are fully and continuously available.
As for adaptation, the aspects of TCGI that are most resistant to modularity are: achieving optimal performance with
varying INS and IMU types, and adjusting the finite state logic.
Optimal performance
There can be a wide diversity among receiver types, but to GINI the differences all boil down to data volume and
statistics of performance. That makes it easy to achieve commonality among receiver types. Achieving commonality
among INS and IMU types, though, is not as easy. One approach would be to dump enough (modeled) process noise
into the navigation filter that the distinction between sensor types would be blurred. That would achieve commonality at
the expense of performance. The optimal approach used by GINI is to take the same INS or IMU error model that
would be used in a Monte Carlo simulation, and then probe that model so that GINI designs its own Kalman Q
algorithm during a startup procedure. It is much easier for a user to supply an error model than to tune a Kalman filter.
Historically, the biggest problem that has been encountered in maintaining filter software has been that the filter has to
be re-tuned for each new application. With GINI’s approach, it is only necessary to provide a new sensor error model,
and the filter tunes itself.
Finite state logic
If one system requires transfer alignment and another doesn’t, then something has to be different between those two
systems, and there is no point around which to form commonality. The GINI solution is to provide a library of functions,
and allow users to build systems by plugging functions together according to need. That means that the face put on
the system is primarily up to the system integrator. For example, the integrator may develop some special
augmentation techniques, work out a way to resolve carrier cycle ambiguities in real-time, and blend that with an
integrity monitoring algorithm, resulting in an overall system that exhibits a new level of synergism and unique,
distinguishing characteristics. But as far as GINI is concerned, the range measurements simply became more
accurate. GINI doesn’t need to know how that improvement was achieved. In keeping with modularity, GINI is itself a
module.
PROOF OF CONCEPT
Van testing of an early GINI prototype was accomplished in a collaboration with Allen Osborne Associates in
Westlake Village, Calif., and Inertial Science, Inc., in Newbury Park, Calif. An INS and a receiver were placed inside a
van, and then driven onto rural highways. A single wire was all that was necessary to connect the receiver and INS,
demonstrating the simplicity of the GINI integration approach. Contributors to the proof of concept each spent a few
days on the effort, demonstrating the reduction in TCGI development time. GPS and INS data were recorded on floppy
disks, and then post processed. It was determined [4,5] that the equipment and integration software worked perfectly
through tests of functionality, open-loop tests, tests of measurement residuals, tests of filter corrections to the INS,
and tests of convergence of the GPS data on the TCGI solution. All the tests passed as expected.
GINI DESCRIPTION
Major GINI functions are: strapdown navigation, satellite orbital calculations, Kalman filtering, and receiver aiding. GINI
will interface with a strapdown inertial system, but not a gimbaled. Gyro quality can be anything from 0.001° /hr to 30°
/hr; GINI forms the optimal solution with whatever sensors it has to work with.
High speed navigation
The TCGI solution for position, velocity, and attitude can be accessed at rates up to the INS DV, Dq rate. Output
formats include latitude/longitude, earth-centered coordinates, range XYZ, speed/track/climb, east/north/up velocity,
roll/pitch/heading, and attitude direction cosines. All output data can be made available at the last data capture event,
receiver measurement, or INS DV, Dq. The navigation solution can be referenced to any point on the vehicle. The
equations of motion use the exact, ellipsoidal, rotating earth model of the World Geodetic System, 1984. A
wander-azimuth mechanization is used for numerical accuracy. Sculling compensation is applied if not already done in
the INS, and an 8th-order Bortz attitude formulation is used.
Kalman filter
Nominally, the filter tracks 20 states, (or elements of error,) in position, velocity, attitude, gyro drift, accelerometer
bias, clock effects, and lever arm. The filter can process the pseudorange and carrier phase data of up to 12 satellites
at once, using a Bierman factorization for numerical stability. The filter adapts to processor load, meaning that if the
processor hasn’t finished with the previous filter cycle by the time a new cycle would normally begin, then the filter can
hold off for another second or two. A full state transition model is used to describe the evolution of navigation effects,
including the Schuler 84-minute loop, Coriolis terms, earth 24-hour loop, and higher-order effects. GINI is tolerant of
non-linearities and poor a-priori assumptions, and will converge under dynamics with initial roll, pitch, and azimuth
errors of up to 60° . Additional sensors, such as barometric altimeters and Doppler radars are not present in GINI, as
of this writing, but the hooks are present for quickly adding them.
Satellite orbital calculations
GINI computes satellite positions and ranges. The range computations include satellite clock error, equipment group
delay, relativistic effects, and tropospheric delay. GINI maintains a library of packed ephemeris, both the current and
preceding issue, for all 24 satellites. Unpacked ephemeris is maintained for up to 12 satellites at once. Satellite
ephemeris is provided to GINI in the form of packed data obtained directly from receiver demodulation of satellite
broadcasts, with parity and checksum bits removed. GINI will accept the information in binary or ASCII, with 8 or 10
words per subframe, and in natural or permuted byte order. In van testing, (accomplished just before SA/AS was
turned on,) the differences between calculated and measured ranges were 23 cm RMS for (augmented P-code)
pseudoranges, and 1.5 mm for differenced carrier phase, [4] with a base-station separation of 10 miles, validating the
satellite orbital software.
Receiver aiding
One of the primary goals of modularity is to isolate the effect of mode transitions, so that a state change in one
subsystem does not cause a hiccup in another. The GINI approach to receiver aiding achieves that goal by mapping
INS DV, Dq to receiver frequency increments, DD (delta-Doppler). All the receiver then has to do is add up a long
string of DD to have GPS signal Doppler at any given time. The mapping is insensitive to system events, so in keeping
with modularity, the receiver doesn’t even notice the cutover to a new issue of ephemeris. The computed range, range
rate, and DD, for up to 12 satellites at once and with multiple GPS antennas, are all provided to the receiver, typically
at 100 Hz. When required, the receiver can use the aiding information to continue tracking the GPS code signal under
conditions that are too noisy to track the GPS carrier signal, or to know exactly where to look in phase and frequency
for a signal that has temporarily vanished.
Written in C
GINI is a number cruncher without complicated system requirements. It is written in a subset of plain C. When
configured as a static library, the GINI executable requires about 130 Kb of computer memory. Throughput varies, but
a typical configuration with a 20-state Kalman filter requires less than 1% of computing capacity of a current IBM-style
PC.
WHAT THE USER HAS TO DO
Briefly, the user has to bring GPS and INS data into a processor where GINI will reside, assemble the information into
data structures defined in GINI header files, and then call GINI functions in a time-ordered sequence. A 100-page users
manual is provided. [7] The user then calls other GINI functions to access the TCGI navigation results, and to monitor
performance. Receiver measurements of range and carrier phase have to be edited to remove erroneous information,
and GINI functions are provided to support the user’s editing policy.
Probably the toughest single challenge the system integrator will face is time tagging INS DV, Dq accumulation
intervals with GPS time, accurate to a small fraction of a millisecond. The receiver can easily time tag its own data to
microsecond accuracy. If a camera or geographic data collection system is involved, then the data capture events
have to be tagged with GPS time and flagged in GINI input buffers. If a full real-time system is envisioned, then a
real-time executive is required that allocates up to two simultaneous task levels to GINI, typically 100 Hz and 0.5 Hz.
The inertial information, and data capture times and flags, have to be moved to GINI input buffers within milliseconds,
although, half-second delays are acceptable in getting receiver data to GINI. If a near-real-time or post-processing
mode will be used instead, then a real-time executive is not required, GINI functions all merge into a single task level,
and latency requirements are relaxed.
Most users will not need receiver aiding, but if it is needed, then the receiver has to be modified to apply the aiding
information. The system integrator will be involved with the data transport, receiver moding, receiver bandwidth
selection, and system stability issues.
CONCLUSION
The significance of this work is that tightly-coupled GPS/INS systems are becoming much easier to design,
assemble, test, and modify. An approach that speeds up the integration has been worked through, published, proved
in field trials, and made generally available to systems integrators in the form of a software library.
REFERENCES
[1] D. B. Cox, Jr., "Integration of GPS with Inertial Navigation Systems," Navigation, Journal of the Institute of
Navigation, 1978.
[2] Z. H. Lewantowicz, "Architectures and GPS/INS Integration: Impact on Mission Accomplishment," Proceedings of
IEEE PLANS, Position Location and Navigation Symposium, 1992, pp. 284-289.
[3] D. T. Knight, "Achieving Modularity with Tightly-Coupled GPS/INS", Proceedings of IEEE PLANS, Position
Location and Navigation Symposium, 1992, pp. 426-432.
[4] D. T. Knight, A. W. Osborne, R. W. Snow, and D. G. Kim, "Demonstration of a New Tightly-Coupled GPS/INS,"
Proceedings of the Sixth International Technical Meeting, Institute of Navigation, Salt Lake City, Utah, September
22-24, 1993, pp. 205-214.
[5] D. T. Knight, A. W. Osborne, R. W. Snow, and D. G. Kim, "Test and Evaluation of a New Tightly-Coupled
GPS/INS," AFDTC-TR-93-06 Vol. I, Sixteenth Biennial Guidance Test Symposium, Central Inertial Guidance Test
Facility, Guidance Test Division, Holloman AFB, New Mexico, Oct. 5-7, 1993 pp. 159-166.
[6] Z. H. Lewantowicz, and D. W. Keen, "Graceful Degradation of GPS/INS Performance With Fewer than Four
Satellites," Proceedings, Institute of Navigation, National Technical Meeting, January 1991.
[7] D. T. Knight, GINI Version 2.1User Manual, September 8, 1998.
[ Home | GPS/INS Integration | Products & Services | Contents | Contact ]
Rapid Development
of
Tightly-Coupled GPS/INS Systems
Donald T. Knight, Knight Systems
Adapted from an article in the February 1997 issue of Aerospace and Electronic Systems Magazine
Copyright © 1997 IEEE