Introduction

In the past decade GPS has established itself as the most popular technology for positioning. With a single GPS receiver positioning, accuracies of better than 10 m can be readily achieved. However, GPS signals are easily obstructed by buildings and trees, resulting in unreliable positioning in environments such as downtown city areas. One way to augment GPS is to integrate it with other systems, such as inertial sensors, or even pseudolites (Wang et al. 2001). For a multisensor system, time synchronization of measurements made by the independent sensors is an important task (Lee et al. 2002).

In principle there are three different methods to achieve integrated-sensor time synchronization, namely: (1) hardware approach, (2) software approach, and (3) a combination of the two. In the hardware approach the one pulse-per-second signal (1PPS) output from a GPS receiver can be used as input for other sensors in the multisensor system (Knight 1992). For example, the C-MIGITS inertial sensor can be synchronized with the MicroTracker GPS receiver by using both the 1PPS signal and the GPS position solution data messages (Boeing 1997). In this system the inertial measuring unit (IMU) sensor is embedded within a commercial product, and the synchronization process cannot be modified by the user. Therefore the system is inflexible for researchers, as it prevents modification of the system design. The second method (based on the software approach) can be further classified into two categories: the augmented Kalman filter method (Bar-Itzhack and Vitek 1985) and the controlled trajectory method (Lee et al. 2002). In the augmented Kalman filter method, GPS/strapdown inertial navigation system (SDINS) Kalman filters are augmented with a state representing the time synchronization error between GPS and SDINS. In the controlled trajectory method, vehicles follow an S-shaped trajectory and the time synchronization error effects are estimated externally to the GPS/SDINS Kalman filter. Since the identification and calibration of the time synchronization error are implicitly related to state observability (Lee et al. 2002; Goshen-Meskin and Bar-Itzhack 1992), the time calibration performance of both software methods depends strongly on the vehicle trajectory. The third and final approach is to utilize time tagging by both the hardware and software. The 1PPS signal from the GPS receiver can be used as the accurate time reference. This method is more suited for researchers as it allows for the construction of a low-cost, flexible, and reliable system. A flexible synchronized data acquisition system can be created using a multifunction DAQ (data acquisition) card, of which there are many suitable low-cost products on the market. In this paper a cost effective synchronization system (CESS) is proposed (Fig. 1).

Fig. 1
figure 1

Setup of the CESS

Overview of the CESS

The CESS is based on the combination of the hardware and software approaches. The 1PPS signal output by the GPS receiver is the key element of this system, as it is used as the time reference which triggers the whole system. The sensor to be sampled should output an analog signal, and the DAQ card is utilized to acquire that analog signal. Sampling occurs at the time specified by the CESS, using the 1PPS output. The CESS, therefore, consists of three primary components: GPS receiver, DAQ card, and support software.

As the GPS receiver’s 1PPS signal is used as a trigger, and in order to achieve synchronization the 1PPS signal must have a fixed relationship with the output message from the GPS receiver (so that each 1PPS signal is tied to a GPS second marker). Also crucial is a high frequency clock signal which can be used as an accurate time base to generate a scan signal that controls the start of each sampling epoch. Many GPS receivers can provide a 1PPS signal with an accuracy of 1 μs (Mumford 2003), and some specifically developed for timing applications can provide a more accurate 1PPS signal (at the nanosecond level). However, not many GPS receivers can output a high-frequency clock signal. The Jupiter receiver is one that can (Conexant Inc. 2001). The Jupiter is a 12 channel low-cost GPS receiver that can output 1PPS and 10 kHz clock signals. The 1PPS signal is aligned with the UTC (universal coordinated time) second. This signal is derived from the 10 kHz clock output, which is valid under the same conditions as the 1PPS time mark pulse. Additionally, the Jupiter receiver also outputs the UTC message—UTC time mark pulse output—via the serial port. This message provides the UTC seconds of the week associated with the UTC synchronized 1PPS pulse. This message is output approximately 400 ms before the 1PPS signal (Rockwell 1996).

A multifunction DAQ card consists of analog inputs, counter/timers, digital I/O lines, analog outputs, etc. In the CESS, the DAQ card is triggered by the 1PPS and driven by the high-frequency clock signal. The counter or timers is central to the synchronization process. The A/D (analog-to-digital) converter transforms the output signal to a digital signal. If the user has control of the sensor at the hardware level, then the counter/timer can generate a trigger signal to start a sampling of the sensor, and in this way very accurate synchronization can be achieved (Knight 1992). Unfortunately most sensors do not allow low-level modification by the user, and therefore the DAQ card is instead utilized for “stamping” the time tag of the data from the sensor. A low-cost E Series multifunction DAQ card from NI (National Instruments) is used in the system design of the CESS. This is a PCMCIA DAQ card which has 16 single-ended analog inputs and two 24-bit counter/timers (National Instruments 2000), which when used with a laptop computer is ideal for fieldwork.

There is a variety of support software that can be used with the DAQ card, developed using Visual C++, Matlab, or LabVIEW (amongst others). Since LabVIEW provides good support for the DAQ card, it was chosen as the basis for the software of the CESS.

The structure of the CESS is shown in Fig. 2. The GPS receiver (Jupiter model) outputs a precise 1PPS signal and a 10 kHz pulse signal, together with GPS raw measurement data. The analog data output from the sensor(s) is (are) connected to the interface box. 1PPS signal, 10 kHz clock signal, and all the analog data pass through the interface box, and input into the DAQ card. The sampling and A/D conversion is done by the DAQ card. The GPS receiver’s 1PPS signal is used as a trigger, while the 10 kHz signal is used as a very accurate time base to generate a scan signal. When the first 1PPS signal from the GPS receiver is detected, sampling of the analog input from the sensor(s) begins at a rate of 100 times a second (in the case of 100 Hz sample rate). The sample rate can be changed from 50 to 2,500 Hz (depending on the application and the specification of the multifunction DAQ card). LabVIEW-based software (LBS) logs the sensor data to a file, and can also display the data so that it can be monitored. At the same time GPS data from the receiver are read by the LBS, including the message containing UTC time. This is used to time tag the sensor data, by adding the message at the end of the sensor data every second. In the data file, there is therefore a time tag for every 100 records (100 Hz sample rate) of sensor’s data. The time tag appears approximately 40 records before the next 1PPS signal arrives. Therefore, the relationship between GPS time (or UTC time plus a number of leap seconds) and the sensor(s) is determined with the aid of the 1PPS signal. Figure 3 illustrates the relationship of the 1PPS signal, the 10 kHz signal, the scan signal, and the message 1108 (containing UTC time) from the Jupiter GPS receiver.

Fig. 2
figure 2

The structure of the CESS

Fig. 3
figure 3

The timing of 1PPS, 10 kHz signal, scan signal, and message type 1108

Figure 4 shows the timing of the scan signal when the CESS is working at 100 Hz. Ideally T L is zero, but the minimum delay the counter can provide is 2 pulses of the time base (10 kHz signal), so T L is 0.2 ms. T L is a constant value, however T H is a variable. T H changes from 19.8 ms (50 Hz sample rate) to 0.2 ms (2,500 Hz sample rate). In an approximate manner the sampling of the data from the sensor(s) aligns with the 1PPS signal, but when high accuracy is demanded, T L should be considered. All the signals referred to in this paper were monitored using an oscilloscope.

Fig. 4
figure 4

Scan signal timing

Most of the support software runs under the Windows 9x/2000 operating system (OS). However, Windows OS is not well suited to synchronize different sensors directly because it is not a real-time OS (Dekey 1998). But in the CESS, synchronization is achieved through the multifunction DAQ card, and the Windows OS is only responsible for interfacing to the multifunction DAQ card and saving data to the hard disk. Since the volume of data logged is large (from 4 to 200 Kb/s, depending on the sample rate), and not all computers are fast enough to perform the operations required, some optimization must be considered. First, unnecessary tasks should be disabled, including network drivers, anti-virus applications, screen savers etc. (Dekey 1998). Secondly, the multithreaded VIs (virtual instrument) created by LabVIEW improves the performance significantly (Dorst 2000; National Instruments 2003).

The structure of the software is indicated in Fig. 5. There are two threads. The first deals with data from the sensor(s), while the second thread is responsible for handling the GPS receiver messages. There is one junction at the two threads, where UTC time is transferred from Thread 2 to Thread 1. Thread 1 can then stamp the UTC time at the end of the data from the sensor(s). Figure 6 shows the panel of the VI in the LBS. From this panel parameters of the DAQ card and the serial port of the laptop computer can be configured, and the name of the logged files can be inputted. The output of the GPS receiver and one channel of the sensor’s output can also be monitored.

Fig. 5
figure 5

The structure of the CESS software

Fig. 6
figure 6

The VI panel in the LBS

Accuracy of the CESS

To confirm the design of the CESS, and to evaluate its synchronization accuracy, two experiments were conducted. The first one was to use a reference hardware-synchronized INS system (the C-MIGITS), and compare this with the CESS using a Crossbow IMU400CC as the test sensor. By moving the two units in the same manner, comparisons can be made between the data logged by the hardware-synchronized C-MIGITS and the CESS-synchronized IMU400CC. In the second experiment standard reference pulses were used to test the synchronization accuracy of the CESS.

The IMU400CC used in the first test is a six-axis measurement system designed to measure linear acceleration along three orthogonal axes, and rotation rates about three orthogonal axes (Crossbow Inc. 2002). The accelerometers and gyroscopes are of the micro-electro-mechanical systems (MEMS) variety. This IMU has both analog outputs and a RS-232 serial link. Data may be requested via the serial link as a single measurement, or streamed continuously. The analog outputs are fully signal conditioned and may be connected directly to a data acquisition device. These analog outputs can be acquired by the CESS. Some specifications of the IMU400CC are listed in Table 1. The C-MIGITS is a tightly coupled standard positioning service (SPS) system. It contains a five-channel, C/A code, L1-frequency GPS receiver, and a digital quartz IMU. The two subsystems are integrated together using a Kalman filter algorithm, and synchronization is achieved at the hardware level by the GPS receiver. This system outputs data via a RS232 port (Martin and Detterich 1997; Boeing 1997).

Table 1 Some specifications of the Crossbow IMU400CC

The C-MIGITS was used as the reference system in order to evaluate CESS’s performance. For the experiment both were mounted very close together on a rigid board. During the experiment, approximately every second a shock was introduced to the board. The IMU400CC’s data were acquired by the CESS, while the C-MIGITS’ data were logged using a laptop. The sample rate of both systems was 100 Hz. The IMU400CC provides acceleration outputs from the x-axis, y-axis, and z-axis, while the C-MIGITS outputs delta velocity from the x-axis, y-axis, and z-axis. As the data were requested at 100 Hz, the data represent 10 ms of delta velocity. Figure 7 shows the result in the case of the x-axis from the IMU400CC and the C-MIGITS. The graph on the left is raw data and normalized data from the IMU400CC, while the graph on the right shows delta velocities from the C-MIGITS. (The results from the y- and z-axis were similar.) In order to determine the difference in time between the data from the IMU400CC and the C-MIGITS, data from the IMU400CC are “fixed” and the data of the C-MIGITS are shifted in the range −0.4 to 0.4 s. The acceleration and delta velocity is multiplied at every epoch, and the result is accumulated. Correlation analysis can indicate the nature of the difference between these two systems (Fig. 8). One can see that the time difference between these two systems is very small. Since the resolution of the C-MIGITS is 0.01 s, in this test the best result cannot be claimed to be more accurate than 0.01 s. In addition there are many factors that affect the accuracy of the test, including the fact that the mounting board is not shockproof, the stimulation is not in the same position each time, and the axes of the two devices were not perfectly parallel or overlapped.

Fig. 7
figure 7

Samples of the raw data and normalized data of the IMU400CC and C-MIGITS in the x-axis direction

Fig. 8
figure 8

Correlation of the data between the IMU400CC and the C-MIGITS

Test 1 demonstrates the feasibility of the CESS system design, and indicates a synchronization accuracy of better than a few tens of milliseconds. However, this synchronization is not able to satisfy requirements for applications with high-vehicle dynamics. For example, a 10 ms timing error translates into a shift of 28 cm for a vehicle traveling at 100 km/h. In principle the system design of the CESS should ensure synchronization errors of less than 10 ms, and hence a second experiment was conducted to better study the potential synchronization accuracy. In this test a signal was generated as a standard reference, and the CESS was used to acquire the signal. If the synchronization accuracy of the CESS is at the appropriate level, then the standard signal can be acquired.

First, the quality of the generated standard signal was tested. Software was used to generate a reference signal, which was utilized as the standard input for the CESS with known features, such as when it appears. The reference signal was triggered by the 1PPS signal from the Jupiter receiver (the one used in the CESS) through the parallel port of a PC. An interruption would occur when the 1PPS signal arrives, and a pulse would be output to the parallel port (Peacock 2001; Lombardi 2000). The reaction time of the computer (with PIII 1 GHz CPU) is between 5 and 12 μs, and the duty cycle of the signal can be changed by the software. The peak of the pulse was approximately 3.4 V. The features of the reference signal were checked using oscilloscope.

The computer generates a reference signal, with a pulse duration of 0.4 ms, and a fixed delay of 0.2 ms. This delay was intentionally added since the first scan signal of the CESS for every second is at a 0.2 ms delay with respect to the 1PPS signal (this is dictated by the quality of the DAQ card’s counter). Figure 9 shows the relationship between the first 1PPS signal and the first reference signal. The standard pulses were also shifted every second. The sample rate was 100 Hz (the sample rate can be up to 2,500 Hz), with a reference signal width of 0.4 ms, and delayed by N×10 ms (N=0~99). This means that at the 1st second the reference signal was expected to appear at 0 (ignore the 0.2 ms delay for this discussion). At the 2nd second the reference signal should be acquired at 1.01. At the 3rd second the signal should be acquired at 2.02. ...At the100th second, the reference signal would appear at 99.99. At the101st second it would be acquired at 100.00, and so on. The timing of the reference signal is shown in Fig. 10. The reference signal and scan signal were all based on the same 1PPS signal. As mentioned previously, the scan signal was very accurately aligned with the 1PPS signal (verified using oscilloscope). The sampling is controlled by the scan signal; hence if the CESS is synchronized adequately, the reference signal can be acquired on a steady basis. Then the accuracy of the synchronization should be better than the width of the reference signal. This test was also used to assess the stability of the CESS.

Fig. 9
figure 9

Timing of the first reference signal in the second test

Fig. 10
figure 10

Timing of the reference signal in the second test

The top graph of Fig.  11 shows the position change of the signal obtained by the CESS every second, changing from 1 to 100 as expected. A Matlab program was used to generate a set of simulated (ideal) data. Then the logged data were normalized (only 0 or 1), and compared with the ideal data. The graph on the bottom of Fig. 11 has the ideal data along the x-axis, and the normalized logged data along the y-axis. The line from (0,0) to (1,1) shows x, y is identical. This is the case for all the logged data and demonstrates that the reference pulses were acquired.

Fig. 11
figure 11

Result of the second test

These two tests demonstrated that the CESS can acquire the standard pulses correctly. Since the standard reference signal is also triggered by the 1PPS signal, the time the signal was acquired is very accurate. Test 1 already showed that the synchronization error is small. In test 2 it can be seen that the CESS can obtain the pulse with a width of 0.4 ms at the expected position, indicating an accuracy of the system better than 0.4 ms.

Land trial

To verify that the CESS is good enough for most applications that do not require the use of an expensive INS (other sensors can also be used if the analog signal can be an output), a land trial was carried out at Clovelly Bay, Sydney, Australia. The Crossbow IMU400CC and a dual-frequency GPS antenna were placed on a wooden frame; and both were aligned with the center axis of the vehicle. The offset of the IMU and GPS antenna was 24 cm (from the center of the IMU to the center of the GPS antenna). The CESS and battery were set inside the vehicle. A Leica SR530 was used as a rover receiver to log the GPS measurements. An Ashtech MicroZ CGRS receiver was set up on the roof of the EE building at UNSW as a reference station. Figure 12 shows the setup of IMU and GPS (other antennas and the C-MIGITS INS were used for another experiment). The CESS was configured to log 6 channels of data simultaneously—acceleration in the x, y,and z directions, as well as roll, pitch, and yaw were recorded in a file. The sample rate was set at 100 Hz. During the trial, several anticlockwise trajectories follow by some clockwise trajectories (and vice versa) were driven. The whole trajectory (measured by GPS-RTK) is shown in Fig. 13.

Fig. 12
figure 12

Set up of IMU400CC and GPS antenna

Fig. 13
figure 13

Trajectory from GPS-RTK

When the vehicle’s trajectory changed from clockwise (or anticlockwise) turns to anticlockwise (or clockwise) turns, the change in the bias of the accelerometer can indicate the synchronization error (Lee et al. 2002). In the ideal case (no synchronization error), the bias should not change. When synchronization errors were artificially introduced, one can see that the larger the error, the more significant the “jump”. Figure 14 illustrates the results. The second circular turn (anticlockwise) begins at 40 s; and the accelerometer bias starts to change due to the synchronization error. It can be observed that the accelerometer bias changes more as the synchronization error increases.

Fig. 14
figure 14

Change of accelerometer bias

The result of differential GPS (DGPS) plus INS is compared with the result obtained from DGPS only. If the synchronization is good, those results should be almost the same. Figure 15 shows the trajectories of well-synchronized DGPS/INS and that of DGPS only. When there is a synchronization error, say a 0.1 s delay, the offset of the DGPS/INS and DGPS can be observed. Figure 16 depicts the trajectories with delays varying from 0.05 to 0.3 s. It is quite clear that when the delay increased, the trajectory obtained from the DGPS/INS is distorted more seriously. Using the GPS-RTK solution as reference, an average of 0.655 m positioning error from DGPS can be found. Table 2 shows the positioning offset of DGPS/INS and DGPS-only, and the DGPS/INS positioning error. The difference in positioning with no delay and 0.05 s delay cannot be discriminated, and the offset caused by synchronization error is less than 25 cm. In the DGPS case, this accuracy is enough for most applications. When single point positioning GPS (SPS) is used, the tolerance of the delay is larger. These result indicate when the Crossbow IMU (or similar low-cost IMUs, refer Table 1 for the specifications) is used, CESS can satisfy the synchronization requirement.

Fig. 15
figure 15

Trajectory of synchronized DGPS/INS

Fig. 16
figure 16

Trajectory of DGPS/INS with synchronization error

Table 2 Positioning offset of DGPS/INS and DGPS, and positioning error of DGPS/INS

Concluding remarks

A cost-effective synchronization system has been constructed for use in multisensor integration studies. Tests have shown that an accuracy of better than 0.4 ms can be achieved. At a vehicle speed of 100 km/h, a 0.4 ms timing error translates to a shift of 1.1 cm. This is sufficiently accurate for many land applications. The synchronization error is smaller than the error caused by the IMU, and several experiments have utilized the CESS to collect data in downtown or urban areas for research purposes. The system design of the CESS allows users to build their own multisensor system, and is therefore an ideal platform for low-cost university-based R&D.

One way to improve the accuracy of the CESS is to utilize a high-speed DAQ card and to use a higher frequency time base. Moreover, the CESS can also provide a trigger signal for sensors to start sampling. This is an option for hardware-level synchronization. When the synchronization error is smaller than a specified threshold, to improve the accuracy of the whole multisensor system other errors (such as the angular rate bias) need to be carefully considered.