Hostname: page-component-745bb68f8f-lrblm Total loading time: 0 Render date: 2025-02-06T04:36:11.986Z Has data issue: false hasContentIssue false

Verification of a Real-Time Attitude Determination Algorithm through Development of 48-Channel GPS Attitude Receiver Hardware

Published online by Cambridge University Press:  15 June 2009

Jaegyu Jang*
Affiliation:
(School of Mechanical and Aerospace Engineering, Seoul National University)
Changdon Kee
Affiliation:
(School of Mechanical and Aerospace Engineering, Seoul National University)
*
Rights & Permissions [Opens in a new window]

Abstract

This paper describes the verification of a real-time attitude determination algorithm during GPS attitude receiver hardware development. The GPS attitude receiver of 24 channels had been already developed in Surrey University. However 24 channels were not enough for practical usage. For this reason, a 48-channel attitude receiver with 12 channels for each antenna has been developed. To estimate attitude in real time, precise relative positions of the GPS antenna array have to be determined as rapidly as possible. However, the calculation load based on the conventional algorithm is too burdensome to perform using the RISC microprocessor. Therefore, in this paper, the cycle ambiguities of each base vector are resolved using SNUGLAD (Seoul Nat Univ GNSS Lab Attitude Determination), the design focus of which is to allow the receiver to estimate the 10 Hz onboard solutions. To keep precise solutions continuously, after ambiguity removal, cycle slip must be detected or isolated. Otherwise, the receiver would output erroneous solutions after a short signal blockage or fading of the GPS signal. To prevent this, we defined the cycle slip detection and repair scheme using a standard extended Kalman filter, which can detect and repair cycle slip within one cycle. As a result, this paper shows that time synchronized measurement with good quality and a reliable solution can be provided by the hardware developed with inexpensive chipsets and that this may be a possible cost efficient sensor for UAV or microsatellites.

Type
Research Article
Copyright
Copyright © The Royal Institute of Navigation 2009

1. INTRODUCTION

Currently, instead of expensive dedicated attitude receivers, GPS OEM boards or single-board attitude receivers using inexpensive GPS chipsets (e.g. Mitel GP2000 series) are being developed as attitude determination system hardware for cost efficiency (Wang, Reference Wang2003, Reference Wang, Lachapelle and Cannon2004; Purivigraipong, Reference Purivigraipong, Unwin and Hashida2000; Urhan, Reference Urhan, Hodgart, Gleason and Unwin2003). Test results using these types of receiver show their potential as low-cost GPS attitude sensors, and they have shown that time synchronized carrier phase measurements of good quality can be generated from the hardware.

However, although it is important to output onboard solutions with high sampling rates as an independent real-time attitude sensor, it is difficult to find investigations showing such results, except for commercial dedicated receivers. The reason is that it is too difficult to search cycle ambiguities rapidly within a given hardware capability. This means that it is important to reduce the computational load. We have developed a real-time algorithm, focused on computational efficiency, on a multibase vector system (Kee, Reference Kee, Jang and Sohn2005, Reference Kee, Kim and Jang2007; Jang, Reference Jang and Kee2006), for which the number of floating point calculations is approximately 15–20% of the Least Squares Ambiguity Search Technique (Hatch, Reference Hatch1990), for the two base vector simulation test.

This paper presents experimental verification of a GPS attitude receiver, the firmware of which is implemented using the new algorithm (Kee, Reference Kee, Jang and Sohn2005), and includes a short introduction to the hardware development. The receiver developed comprises four GP2000 series down converters and correlators (Zarlink, 2001, 2002), which enable us to use enough channels in real-time applications. Consequently, 48 channels, which support four antennae, can be used to estimate the 3-degree-of-freedom (3DOF) attitude of the vehicle. Experimental results show that the receiver could output onboard solutions in real time at 10 Hz with time-synchronized measurements. During the experiment, cycle ambiguities are determined as solutions of the stochastic test (the F-distribution test) at a rate of 99–99·7% and attitude errors were approximately 0·2–0·8 deg in one sigma.

Although an epoch-by-epoch solution is theoretically possible, as can be seen in references (Kee Reference Kee, Jang and Sohn2005; Jang Reference Jang and Kee2006), it is better for the receiver to keep the cycle ambiguities resolved and cycle slip must be detected and repaired to avoid reacquisition. This reliability issue is important because it is difficult, in real-time applications, for the attitude determination to approach 100% success rate using single epoch data (Park, Reference Park1996; Jang, Reference Jang, Lee and Kee2004). We defined an extended Kalman filter (Brown, Reference Brown and Hwang1997) for cycle slip detection in the multiple antennae. For the measurement update, we used the carrier phase measurements of each channels. Minimum Detectable Error (MDE) values are calculated for a specified probability (Teunissen, Reference Teunissen and Kleusberg1998; Leick, Reference Leick1995), the values of which were approximately 0·11 m during the real-time static and dynamic experiments. Post-processing tests showed that the filter can detect and repair slip with a size of one cycle (0·19 cm).

2. 48-CHANNEL GPS ATTITUDE RECEIVER

In this paper, attitude determination GPS receiver hardware is described based on the Mitel Orion GPS receiver structure (GEC, 1997). The GP2000 chipset series (GP2015 and GP2021) from Zarlink Semiconductors are used for the RF front ends and correlators (Zarlink, 2001, 2002). The GP2015 RF front-end chip and the GP2021 correlator each support 12 channels. Therefore, we used four pairs of GP2000 series to support the four antennae fully, which means a total of 48 channels are available. It is sufficient to use only three GPS antennae for 3DOF attitude estimation. However, it is preferable to use an array of four antennae to provide redundancy and better accuracy.

Figure 1 shows the architecture of the GPS attitude receiver developed. Reference clocks for each down converter (RF front-end) are synchronized using a 10 MHz TCXO. However, interrupt signals from each GP2021 are asynchronous although the reference clocks are common; therefore they had to be synchronized using a hardware initialization process. As a result, carrier phase measurements and accumulation interrupt signals from the GP2021 correlators can be synchronized within a few nanoseconds. Remaining time synchronization errors are due to line bias, which varies slowly with temperature. To estimate a real-time attitude solution, the S3C2410 (with an ARM920T core) microprocessor for mobile applications is used as CPU for the GPS board (Samsung, 2003). The receiver outputs onboard solutions, or raw measurements, through an RS232C port of the microprocessor at 115,200 bps.

Figure 1. Architecture of the developed receiver.

Figure 2 shows an assembled board, which supports four GPS active antennae. Each RF front-end section is separated electronically to prevent EMI failure i.e. the sections are shielded using an aluminium box and copper tape to reduce radiation interference from neighbouring RF sections. The size of the receiver is 180 mm by 90 mm, and the max current is approximately 380 mA for 12 V input. Each antenna connector is supplied with 5 V for the active antenna with Low Noise Amplifier (LNA). To command each correlator separately, or simultaneously, a CPLD from Xilinx is used as an address decoder. Firmware can be loaded into flash ROM through the RS232C port of the microprocessor at any time. To receive an RTCM message for Differential GPS (DGPS), or to send debug information, an additional three RS232C ports and USB port are available.

Figure 2. 48-channel GPS attitude receiver board.

3. AMBIGUITY RESOLUTION

We resolved cycle ambiguities using the SNUGLAD algorithm, which was developed to increase performance with respect to calculation load in previous research (Kee, Reference Kee, Jang and Sohn2005; Jang, Reference Jang and Kee2006). The focus of this paper is not to explain the attitude determination algorithm in detail; therefore, we introduce the performance of the algorithm and its basic concept briefly.

(1)
\left[ \openup3{\matrix{ {\rmDelta {\bf e}_{\setnum{1}}^{\rm T} } \cr {\rmDelta {\bf e}_{\setnum{2}}^{\rm T} } \cr {{\bf X}_{a}^{\bf T} } \cr} } \right]{\bf X}_{a} \equals \left[ \openup3{\matrix{ {\nabla \rmDelta \phi _{a\comma \setnum{1}} \minus \lambda \nabla \rmDelta N_{a\comma \setnum{1}} } \cr {\nabla \rmDelta \phi _{a\comma \setnum{2}} \minus \lambda \nabla \rmDelta N_{a\comma \setnum{3}} } \cr {l_{a}^{\setnum{2}} } \cr} } \right]
(2)
\left[ \openup2{\matrix{ {{\bf X}_{a}^{\bf T} } \cr {\rmDelta {\bf e}_{\setnum{2}}^{\rm T} } \cr {{\bf X}_{b}^{\bf T} } \cr} } \right]{\bf X}_{b} \equals \left[\openup2{\matrix{ {l_{a} l_{b} \cos \theta } \cr {\nabla \rmDelta \phi _{b\comma \setnum{1}} \minus \lambda \nabla \rmDelta N_{b\comma \setnum{1}} } \cr {l_{b}^{\setnum{2}} } \cr} } \right]

where Δei is the single differential line-of-sight vector, Xj and l j are the relative vector and length of baseline j, ∇Δφj,i is the double differential carrier phase, ∇ΔN j,i is the double differential cycle ambiguity integer, λ is the wave length of L-band and θ is the angle between two base vectors as a given constant. Conceptually we can calculate potential solutions of the first base vector by Equation (1) and second vectors by Equation (2) for given cycle integers within searching space. The former processes two-dimensional searching and the latter performs only one-dimensional searching. In general, the double differenced form is used due to the asynchronous clock between antennae.

The secondary group ambiguity noise, defined as the difference between estimated float ambiguity and integer ambiguity, must satisfy Equation 3. Candidate integers which cannot satisfy the equation should be rejected from the searching space. Note that the primary group is the first three satellites used to estimate the initial vector of Equation (1) or (2).

(3)
\nabla \rmDelta \tilde{N}_{i} \minus \lsqb \nabla \rmDelta \tilde{N}_{i} \rsqb \lt \kappa \sqrt {E\lcub \lpar \nabla \rmDelta \tilde{N}_{i} \minus \lsqb \nabla \rmDelta \tilde{N}_{i} \rsqb \rpar ^{\setnum{2}} \rcub } \comma \quad i \equals 4 \ldots \lpar n \minus 1\rpar

where ∇ΔÑ i is the double differential float ambiguity calculated from primary satellite group, κ is the confidence level as constant and [.] is the round off operator finding the nearest integer. The variance term in the right side of Equation (3) is defined by Equation (4) (Kee, Reference Kee, Jang and Sohn2005, Reference Kee, Kim and Jang2007).

(4)
E\lcub \lpar \nabla \rmDelta \tilde{N}_{i} \minus \lsqb \nabla \rmDelta \tilde{N}_{i} \rsqb \rpar ^{\setnum{2}} \rcub \equiv {{\sigma _{\phi }^{\setnum{2}} } \over {\lambda ^{\setnum{2}} }}\left\{ {4 \plus \rmDelta {\bf e}_{i}^{\rm T} \lpar {\bf H}_{p}^{\rm T} {\bf Q}_{p}^{ \minus \setnum{1}} {\bf H}_{p} \rpar ^{ \minus \setnum{1}} \rmDelta {\bf e}_{i} \minus 4\rmDelta {\bf e}_{i}^{\rm T} {\bf H}_{p}^{\rm T} \left[ {\matrix{ 1 \cr 1 \cr 1 \cr} } \right]} \right\}

where Q is the normalized covariance matrix of measurement error, σφ is the standard deviation of carrier and Hp=[Δe1 … Δen−1]T is the single differential line-of-sight matrix of primary satellite group. From above equations, we can reject incorrect cycle ambiguities before calculating the objective function.

Figure 3 shows the mean calculation load required for a full search, which is the result of simulation with 7200 epochs. The number of visible satellites varied from six to eight. Blue bars are the results of the new algorithm, SNUGLAD used for receiver. The red bars are conventional algorithm results based on Least Squares Ambiguity Search Technique (LSAST). From Figure 3, we can see that the overall computational loads can be reduced by 80–85% by the algorithm used for the experiment. This means that if the conventional algorithm (LSAST) can output attitude solutions at 1 Hz or 2 Hz, the new algorithm can estimate at 5–10 Hz in real time.

Figure 3. Comparison result of mean calculation load (two base vectors).

4. CYCLE SLIP DETECTION AND REPAIR WITH EKF

Because it is difficult to achieve a 100% success rate using an epoch-by-epoch algorithm, we implemented the firmware to use resolved cycle ambiguity (determined with a conservative probability) as constant during real applications, which means that we must consider cycle slip.

If the GPS signal experiences a momentary signal blockage, a low SNR caused by signal fading, a severe multipath or a rapid movement that overwhelms the phase locked loop (PLL) capability cycle slip can occur, which requires re-initialization of the uncertainty (or cycle ambiguity) of the carrier phase. If we do not use a cycle slip detection process, the receiver outputs an incorrect solution until the incorrect estimates are rejected by a threshold test; this can be disastrous in real-time applications. Therefore, to provide reliable solutions to the user a detection process is essential.

4.1. Definition of Extended Kalman Filter

We defined an extended Kalman filter for attitude estimation to detect and to repair cycle slip with quality control technique. We used carrier phase measurements of each channel of vectors as the measurement input of the filter to detect and to repair the cycle slips directly. The state vector and measurement equations are:

(5)
{\bf X} \equals \left[ {\matrix{ {\matrix{ \phi \tab \theta \tab \psi \cr} } \tab {\dot{\phi }} \tab {\dot{\theta }} \tab {\dot{\psi }} \cr} } \right]^{T}
(6)
{\bf Z}_{k} \equals \left[\openup2 {\matrix{ {\nabla \rmDelta {\ssf {n}}_{\setnum{1}} \minus \lambda \nabla \rmDelta {\bf N}_{\setnum{1}} } \cr {\nabla \rmDelta {\ssf {n}}_{\setnum{2}} \minus \lambda \nabla \rmDelta {\bf N}_{\setnum{2}} } \cr {\nabla \rmDelta {\ssf {n}}_{\setnum{3}} \minus \lambda \nabla \rmDelta {\bf N}_{\setnum{3}} } \cr} } \right] \equals f\lpar {\bf X}_{k} \rpar \equiv \left[\openup2 {\matrix{ {{\bf H}_{ned} {\bf C}_{b}^{n} {\bf x}_{b\comma \setnum{1}} } \cr {{\bf H}_{ned} {\bf C}_{b}^{n} {\bf x}_{b\comma \setnum{2}} } \cr {{\bf H}_{ned} {\bf C}_{b}^{n} {\bf x}_{b\comma \setnum{3}} } \cr} } \right]

where ∇Δni is the double differential carrier phase measurement vector of i-th baseline, ∇ΔNi is the double differential cycle ambiguity vector of i-th baseline, Hned is the line-of-sight vector in NED frame, xb,i is the i-th base vector with reference to the body frame as fixed vectors and Cbn is the rotational matrix from the body frame to the navigation frame, which can be calculated from the propagation of the state vector.

The design matrix for the filter can be derived from the Jacobean of the right side term in Equation 6 as:

(7)
{\bf A}_{k} \equiv \left[\openup2 {\matrix{ {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \phi }}x_{b\comma \setnum{1}} } \tab {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \theta }}x_{b\comma \setnum{1}} } \tab {\matrix{ {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \psi }}x_{b\comma \setnum{1}} } \tab {{\bf O}_{n \minus \setnum{1} \times \setnum{3}} } \cr} } \cr {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \phi }}x_{b\comma \setnum{2}} } \tab {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \theta }}x_{b\comma \setnum{2}} } \tab {\matrix{ {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \psi }}x_{b\comma \setnum{2}} } \tab {{\bf O}_{n \minus \setnum{1} \times \setnum{3}} } \cr} } \cr {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \phi }}x_{b\comma \setnum{3}} } \tab {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \theta }}x_{b\comma \setnum{3}} } \tab {\matrix{ {{\bf H}_{ned} \displaystyle{{\delta {\bf C}_{b}^{n} } \over {\delta \psi }}x_{b\comma \setnum{3}} } \tab {{\bf O}_{n \minus \setnum{1} \times \setnum{3}} } \cr} } \cr} } \right].

The filter was defined as a random walk, as can be estimated from the state vector. Therefore, the transition matrix and the process noise covariance can be defined as:

(8)
{\bf F}_{\rm k} \equals \left[ {\matrix{ {{\bf I}_{{\rm \setnum{3}} \times {\rm \setnum{3}}} } \tab {\rmDelta t \cdot {\bf I}_{{\rm \setnum{3}} \times {\rm \setnum{3}}} } \cr {{\bf O}_{{\rm \setnum{3}} \times {\rm \setnum{3}}} } \tab {{\bf I}_{{\rm \setnum{3}} \times {\rm \setnum{3}}} } \cr} } \right]\comma \;{\bf Q}_{k} \equals \left[ \openup2{\matrix{ {\displaystyle{{\sigma ^{\setnum{2}} } \over 3}\rmDelta t^{\setnum{3}} {\bf I}_{\setnum{3} \times \setnum{3}} } \tab {{\displaystyle{\sigma ^{\setnum{2}} } \over 2}\rmDelta t^{\setnum{2}} {\bf I}_{\setnum{3} \times \setnum{3}} } \cr {\displaystyle{{\sigma ^{\setnum{2}} } \over 2}\rmDelta t^{\setnum{2}} {\bf I}_{\setnum{3} \times \setnum{3}} } \tab {\sigma ^{\setnum{2}} \rmDelta t{\bf I}_{\setnum{3} \times \setnum{3}} } \cr} } \right]

where \sigma \equiv \sigma _{\skew3\dot{\phi }} \equals \sigma _{\skew5\dot{\theta }} \equals \sigma _{\skew3\dot{\psi }} is the standard deviation of angular velocity as noise input and Δt is the sampling period.

4.2. Cycle Slip Detection and Repair

The innovation vector of EKF is defined by Equation 6 as Equation 9 and its covariance matrix is formulated by Equation 10.

(9)
{\bf v}_{\bf k} \equals {\bf Z}_{\bf k} \minus f\lpar {\bf X}_{\bf k}^{ \minus } \rpar
(10)
{\bf Q}_{{\bf v}_{{\rm k}} } \equals {\bf A}_{k} {\bf P}_{k}^{ \minus } {\bf A}_{k}^{T} \plus {\bf R}

where R is the measurement covariance matrix and P is the error covariance matrix of EKF. If we define the local hypothesis as Equation 11 assuming ∇ as an outlier such as a cycle slip, we can apply the innovation vector from EKF for the cycle slip detection.

(11)
H_{\setnum{0}}^{k} \colon\, E\lcub {\bf v}_{k} \rcub \equals 0{\rm \ \ \ and\ \ \ \ }H_{\setnum{1}}^{k} \colon\, E\lcub {\bf v}_{k} \rcub \equals {\bf c}_{k} \nabla

where ck is the vector filled with zero except one component. If Equation 9 cannot satisfy the Local Overall Model (LOM) formulated by Equation 12, there is a cycle slip in the measurement of the current epoch. The channel with cycle slip can be identified with the w-test given in Equation 13. The equation is calculated for every channel and a specific channel above a threshold is decided as corrupt.

(12)
T_{LOM}^{\hskip1pt k} \equals {\bf v}_{k}^{T} {\bf Q}_{{\bf v}_{k} }^{ \minus \setnum{1}} {\bf v}_{k} {\rm \sim}\chi _{}^{\rm \setnum{2}}
(13)
t^{k} \equals {{{\bf c}_{k}^{T} {\bf Q}_{{\bf v}_{k} }^{ \minus \setnum{1}} {\bf v}_{k} } \over {\sqrt {{\bf c}_{k}^{T} {\bf Q}_{{\bf v}_{k} }^{ \minus \setnum{1}} {\bf c}_{k} } }}{\rm \sim}N{\rm \lpar 0\comma 1\rpar }

We set the significance levels for Type I and Type II errors based on Leick's table, which agreed well with each of the probability values and the non-centrality parameter (Leick, Reference Leick1995). Substituting the denominator of Equation 13 as the square root of non-central parameter, it is called the Minimum Detectable Bias or Error (MDB or MDE) which can be expressed as follows,

(14)
\vert \nabla ^{k} \vert \equals \sqrt {{{\lambda _{\setnum{0}} } \over {{\bf c}_{k}^{T} {\bf Q}_{{\bf v}_{k} }^{ \minus \setnum{1}} {\bf c}_{k} }}}

The performance of the cycle slip detection and repair filter for a given probability is shown in the following experimental results section. Note that the software used in this section was not used for the epoch-by-epoch ambiguity resolution experiment evaluating the calculation burden.

5. EXPERIMENTAL RESULTS

If the interrupt signals and TIC time are synchronized successfully during initialization, the remaining error will ideally be a line bias term and measurement noise. The line bias has the form of a random value that varies slowly. In Figure 4, we show the zero baseline test result to see the line bias. We turned on the power to the GPS attitude receiver each time we performed these experiments. From the figure, it can be seen that each bias has a different random value. However, for each trial, every channel has a common bias term. Therefore, we can remove the bias using the double difference of the carrier phase measurements. We show the double differential phase for the first trial data in Figure 5. The standard deviation was approximately 0·72 mm and the mean value was 7·65e-5 m. That means the bias was removed successfully and measurements were synchronized well; the PLL bandwidth was 10 Hz in the experiment. However, this can be a limitation for our hardware. To remove this problem we must design the hardware with a common local oscillator for each antenna section. However, if there are sufficient visible satellites to use a single differential phase measurement, we can allow the bias term to be an unknown value that can be estimated.

Figure 4. Line biases of single differential carrier phase; for each trial we turned on the receiver's power.

Figure 5. Double differential carrier phase for trial #1.

We performed an epoch-by-epoch experiment with the developed GPS receiver hardware to check the real-time capability for ambiguity fixing. For the static test, low-cost HAG130 (with 32 dB LNA) GPS patch antennae, which have similar specifications to the CMC AT575-70, were used. An AT575-36 from Aeroantenna was used for the dynamic test. Figure 6 shows a multiple GPS antenna array and a tripod used as the antenna mount. A laptop computer was used to receive and to collect the estimated attitude solutions from the receiver.

Figure 6. GPS antenna array.

The navigation process was performed in the period of 1 Hz because the line of sight (LOS) vector of the GPS satellites changes relatively slowly. The LOS vectors were estimated using stand-alone positioning without an RTCM message. In attitude determination, it is known that the estimated accuracy of stand-alone positioning is adequate to estimate the LOS vectors. The attitude determination algorithm was implemented as a new task with a 0·1 sec period. Of the various tasks, the Interrupt Service Routine (ISR) and Attitude Determination (AD) are major time-consuming processes. The ISR and AD tasks required approximately 400 μs and 40 ms each.

The interrupt routine required approximately 45% of the CPU load to track the 48 channels, and the ambiguity resolution task required approximately 4% at 1 Hz and 40% at a 10 Hz sampling rate. Therefore the maximum sampling rate can be 10 Hz and the total calculation time is less than approximately 90 ms for the entire task, including ISR, Attitude Task, and Take-measurement Task etc. Although the original ARM920T core does support a coprocessor for floating point mathematics, the S3C2410X processor does not support a coprocessor in the same chip; it uses software emulation to execute the floating point operations. Because it supports a small Instruction/Data cache, the average operating speed does not reach its maximum capability when the size of code and its data field are large. This must be considered in future work for a more efficient implementation.

Figure 7 shows estimated Euler angles by cycle ambiguity resolution experiments as epoch-by-epoch. We used the stochastic test using F-distribution with a confidence level of 99%. When there were six or seven satellites visible, 99% and 99·7% of epochs passed the ratio test and the resolved cycle ambiguities were all correct. However, epochs with five visible satellites rarely passed the ratio test. This meant we had to fix ambiguities after the initial fixing to consider a low visibility situation during flight and thus should apply the cycle slip detection scheme discussed in Section 4.

Figure 7. Euler angles estimated (10 Hz, static).

Table 1 shows the standard deviations of the estimated attitudes in Figure 7. One sigma is approximately 0·25–0·79 deg, which is larger than the theoretical optimal errors (0·1–0·3 deg) with similar base vectors. The reasons for this may be; first, multipath error, which can be seen in the fluctuations of the estimates in Figure 7. Second, our antenna configuration was not optimal, such as the orthogonal or tetrahedron configurations. We believe that errors from phase centre variation were reduced sufficiently by the double difference because the directions of all antennae were identical. However, the accuracy was similar to the result using a commercial ADU2 GPS attitude receiver (Kee, Reference Kee, Jang and Sohn2005).

Table 1. Means and standard deviations of the estimates.

Finally, we performed a cycle slip detection experiment. After the cycle ambiguities satisfied the stochastic test, we fixed the cycle ambiguities as a constant and reused them for following epochs. Figure 8 shows a minimum detectable error (MDE) for each channel of each base vector. The significance levels α (Type I error) and β (Type II error) are 0·001 and 0·1 respectively. The sizes of MDE are nearly half a cycle (0·09–0·11 m) of the L1 GPS carrier signal, which means that cycle slip of one wavelength can be detected and repaired for the specified probability (α, β) using the extended Kalman filter.

Figure 8. MDE of each channel (S# means number of vector).

To verify that the extended Kalman filter's performance is equivalent to the internal reliability measure, MDE, we intentionally caused a slip of one cycle size and tested if it could successfully detect the outlier. The test was post-processed using a laptop with carrier phase measurements received from the developed receiver to make the outlier of the intended size. Cycle slip occurred after 10 seconds of cycle ambiguity fixing. In Figure 9, the green coloured line denotes the attitude estimates without the cycle slip detection algorithm. The blue line denotes the estimates with the detection algorithm, defined by the extended Kalman filter. Attitude errors increased by approximately 15 deg and 2 deg in roll and yaw respectively, when there was no cycle slip detection filter. It took approximately five minutes to detect the slip using the threshold test with the chi-square distribution and to resolve the new cycle ambiguities. However, in the blue line, it can be seen that the cycle slip detection algorithm successfully keeps precise attitude estimates. The attitude differences between the two lines after the cycle ambiguities are recovered (after approximately 3100 epochs) are due to the Kalman filter defined in cycle slip detection algorithm.

Figure 9. Cycle slip detection test result (static, 10 Hz).

We performed a real-time dynamic test, as shown in Figure 10, to check the effect of rotational motion of the vehicle. The fourth row of the figure shows angular velocities of each Euler component ([red green blue]=[roll pitch yaw]) with units of deg/s. The standard deviations of the estimated angular velocities were approximately [44 10 45] deg/s, with roll and yaw larger than the standard deviation of 20 deg/s defined for the process noise covariance.

Figure 10. Dynamic attitude determination test (real-time onboard solution, 10 Hz).

For angular velocities less than 45 deg/sec, the filter worked without failure. However, the receiver performed a full search 11 times, and the filter adapted once at true cycle ambiguities; these occurred when the residuals of measurements exceeded the threshold due to severe multipath errors, signal degradation or when the rapid rotation of the antenna platform caused delayed estimates. Of these, 11 epochs showed relatively high angular velocity, for which the maximum component exceeded 80 deg per second (max 120 deg/s). In Figure 10, the circles in the fourth subplot indicate the angular velocities at these epochs. Many channels can have bias caused by delayed states although the estimated cycle ambiguities are resolved well. To avoid this kind of failure, we must increase the process noise level and tune the significance level for type I errors so that the minimum detectable cycle slip size can be increased.

6. CONCLUSIONS

We have previously developed a real-time ambiguity resolution algorithm for attitude determination focused on reducing computational load. This paper aimed to verify that this algorithm can successfully resolve cycle ambiguities of three base vectors at 10 Hz with the developed hardware. A 48-channel attitude GPS receiver was developed using commercial L1 GPS chipsets. The suggested algorithms for ambiguity resolution and cycle slip detection were implemented as firmware and verified by the experiments.

Static experimental results shows that it takes approximately 40 ms to resolve the cycle ambiguities using the S3C2410 microprocessor and that the onboard real-time solutions were resolved with an accuracy of 99–99·7% with single epoch data when there were six or seven visible satellites. The resolved cycle ambiguities were all true and the attitude errors were approximately 0·25–0·79 deg.

In this paper, the extended Kalman filter is defined to detect precisely the cycle slip for multiple antennae. To detect and repair the outlier of a specific channel directly, the carrier phases were used as measurements for the filter. In the static experiment, the MDE was approximately 0·11 m for the specified probability. The filter could detect a cycle slip of one cycle length of L1 signal successfully. However, in the dynamic test, the cycle ambiguity reacquisition process was performed 11 times for a full cycle slip. The reason is that the measurement error increases due to bank motion and the occurrence of Type I errors due to the time delay of the filter. However, this can be calibrated using the process noise level and significance level change of the MDE.

From the experimental results, we can conclude, first, that a 48-channel GPS receiver for attitude determination can be effectively developed with a commercial, inexpensive GPS chipset. Second, the receiver can successfully estimate a real-time onboard solution at 10 Hz using the suggested ambiguity resolution algorithm. Third, in static mode, a cycle slip with the size of one wavelength can be detected by the quality control scheme. However, more work on parameter tuning is needed for the system to be used in rapid rotating motion. From these results, the proposed real-time algorithm was verified successfully with the 48-channel attitude determination GPS hardware and the developed receiver has the possibility of being used in real-time applications that require an inexpensive system.

ACKNOWLEDGMENTS

This research was supported in part by the Institute of Advanced Machinery and Design at Seoul National University, BK-21, and the Institute of Advanced Aerospace Technology.

References

REFERENCES

Brown, R. G. and Hwang, P. Y. C. (1997). Introduction to Random Signals and Applied Kalman Filtering, third edition, John Wiley & Sons, New York.Google Scholar
GEC Plessey Semiconductors. (1997). GPS Architect Software Design Manual, DM000066. Issue 1, GPS Architect V6.12, December.Google Scholar
Hatch, R. (1990). Instantaneous Ambiguity Resolution. Proceedings of KIS Symposium, Banff, Canada, September.Google Scholar
Jang, J., Lee, S. and Kee, C. (2004). Performance Enhancement of Attitude Determination System by Combining Single and Multiple Antennas. Proceedings of ION GNSS2004, Long Beach, CA.Google Scholar
Jang, J. and Kee, C. (2006). Flight Test of Attitude Determination System using Multiple GPS Antennae. The Journal of Navigation, 59, 119133.CrossRefGoogle Scholar
Kee, C., Jang, J. and Sohn, Y. (2005). Efficient Attitude Determination Using GPS Multiple Antennas; Geometrical Concept. Transactions of the Japan Society for Aeronautical and Space Sciences, 47, No. 158, February.CrossRefGoogle Scholar
Kee, C., Kim, D. and Jang, J. (2007). Efficient Ambiguity Search Technique Using Separated Gaussian Variable. The Journal of Navigation, 60, No. 1, Jan., 147157.CrossRefGoogle Scholar
Leick, A. (1995). GPS Satellite Surveying, second edition, Wiley-Interscience.Google Scholar
Park, C. (1996). Attitude Determination from GPS Carrier Phase Measurements. PhD thesis, Seoul National University, Feb.Google Scholar
Purivigraipong, S., Unwin, M. J. and Hashida, Y. (2000). Demonstrating GPS attitude determination from UoSat-12 Flight Data, ION GPS 2000, Salt Lake City, UT, 19–22 September.Google Scholar
Samsung Electronics. (2003). User's Manual, S3C2410X 32-Bit RISC Microprocessor, Rev. 1.2.Google Scholar
Teunissen, P. J. G. and Kleusberg, A. (1998). GPS for Geodesy, Springer, Germany.CrossRefGoogle Scholar
Urhan, H., Hodgart, M. S., Gleason, S. and Unwin, M. J. (2003). Instantaneous Attitude Determination of a LEO Satellite by GPS Using Direct Orthogonalisation. ION GPS/GNSS 2003, Portland, OR, 9–12 September.Google Scholar
Wang, C. (2003). Development of a Low-cost GPS-based Attitude Determination System. MSc thesis.Google Scholar
Wang, C., Lachapelle, G. and Cannon, M. E. (2004). Development of an Integrated Low-Cost GPS/Rate Gyro System for Attitude Determination. The Journal of Navigation, 57, 85101.CrossRefGoogle Scholar
University of Calgary, June.Google Scholar
Zarlink Semiconductor. (2001). GP2021 Datasheet, DS4077. Issue 3.2, April.Google Scholar
Zarlink Semiconductor. (2002). GP2015 Datasheet, DS4374. Issue 3.1, Feb.Google Scholar
Figure 0

Figure 1. Architecture of the developed receiver.

Figure 1

Figure 2. 48-channel GPS attitude receiver board.

Figure 2

Figure 3. Comparison result of mean calculation load (two base vectors).

Figure 3

Figure 4. Line biases of single differential carrier phase; for each trial we turned on the receiver's power.

Figure 4

Figure 5. Double differential carrier phase for trial #1.

Figure 5

Figure 6. GPS antenna array.

Figure 6

Figure 7. Euler angles estimated (10 Hz, static).

Figure 7

Table 1. Means and standard deviations of the estimates.

Figure 8

Figure 8. MDE of each channel (S# means number of vector).

Figure 9

Figure 9. Cycle slip detection test result (static, 10 Hz).

Figure 10

Figure 10. Dynamic attitude determination test (real-time onboard solution, 10 Hz).