Journal of Global Positioning Systems (2005)
Vol. 4, No. 1-2: 207-214
Ambiguity Resolution in GPS-based, Low-cost Attitude Determination
Shenglin Fan1,2
1School of Mathematical and Geospatial Sciences, RMIT University, Victoria, Australia
Email: shenglin.fan@rmit.edu.au, Tel: +61-3-99253278; Fax: +61-3-96632517
2Nanjing university of Aeronautics & Astronautics, Nanjing, Jiangsu Province, China
Email: slfan@nuaa.edu.cn, Tel: 61 +86-25-84892304; Fax: +86-25-84892184
Kefei Zhang, Falin Wu
School of Mathemat i ca l an d G eospatial Sciences, RMIT University, Victoria, Australia
Email: kefei.zhang@rmit.edu.au, Tel: +61-3-99253272; Fax: +61-3-96632517
Received: 22 April 2005 / Acc epted: 12 July 2005
Abstract. Reliable determination of integer ambiguities
is a critical issue in high-precision global positioning
system (GPS) applications such as kinematic positioning,
fast control surveying and attitude determination. This
paper discusses the integer ambiguity resolution
procedures in attitude determination using single
frequency carrier phase measurements. An optimised
ambiguity search algorithm is proposed. This method can
not only improve the computation efficiency and reduce
the time for resolving ambiguities, but also improve the
reliability of the ambiguity solution. The ambiguity
search space is determined using float solutions and their
variance and covariance matrices estimated by applying
Kalman filter algorithm. The integer Gaussian
transformation is then used to reduce the size of the
search space and Cholesky factorisation algorithm is used
to improve the efficiency of the integer ambiguity
searching process. Finally, an ambiguity validation
method by using the known baseline length and the
relationship between the primary and secondary
ambiguity groups is presented. The algorithms have been
implemented within two low-cost Allstar GPS OEM
boards. A number of field experiments have been
conducted and the results show that a valid integer
ambiguity solution in cold start mode can be identified
within 3 minutes.
Key words: Ambiguity resolution, attitude determination,
carrier phase, GPS
1 Introduction
GPS can usually provide two types of direct
measurements. One is the pseudorange and the other is
the carrier phase. The carrier phase measurements can be
used for various high precision applications including
kinematic positioning, static survey and attitude
determination due to their low noise level. However the
carrier phase measurements are ambiguous by an
unknown integer number of cycles. This is well-known
integer ambiguity resolution problem which requires a
time-consuming initialisation process for both attitude
determination and high-precision kinematic positioning.
There are several methods for resolving the integer
ambiguities. In general they can be divided into two
categories: search-based ambiguity resolution (Quinn,
1993; Sutton, 2002) and motion-based ambiguity
resolution (Crassidis et al. 1999). Motion-based methods
need to collect data for a period of time during which
obvious changes of the visible GPS constellation or an
apparent Rotation of the platform have occurred. The
search-based methods use only single epoch
measurements to identify the most likely ambiguity
combination although sometimes it may be not the
correct ambiguity due to the level of noise.
This paper mainly focuses on discussing the search-based
method. There are three steps in this integer ambiguity
resolution algorithm. First, a search space is determined
in the ambiguity space (Juang, 2003; Xu, 2002) or
solution space (Sutton, 1997; Sutton, 2002). The most
likely integer ambiguity is, then, identified from the
search space using some deterministic techniques such as
least squares. Finally, the resolved ambiguities are
208 Journal of Global Positioning Systems
K
ep
C
Fig.1 Interferometry principle
A B
validated and co nfirmed. This step is con sidered as a v ital
additional step for the GPS-based attitude system.
This paper will first outline the principle of attitude
determination by using GPS carrier phase measurements.
Then a fast and reliable algorithm for integer ambiguity
resolution by using the known baseline length and the
relationship between the primary and secondary
ambiguity groups will be presented in detail. A number of
experiments have been conducted to test the performance
of the method. Finally, some useful results and
conclusions are given.
2 GPS-based attitude determination us i ng two
antennae
The basic idea of attitude determination using GPS
carrier phase measurements is similar with the principle
used in interferometry. It is assumed that for a short
baseline the unit vectors from both receivers to a given
satellite are the same. This is based on the fact that the
baseline length is negligibly small compared to the
distance between GPS satellites and the user
(approximately 22, 000km). This is shown in Fig. 1.
The difference between the true ranges from satellite “p”
(p-th satellite) to antennae A and B can be expressed as:
p
B
p
A
p
T
neRAC
ρρ
−== K (1)
where, n
Ris the baseline vector determined by A and B,
p
e
K
is a unit directional vector from antenna A or B to
satellite “p”, p
A
ρ
and p
B
ρ
are the distances between the
antennae A and B and satellite “p” respectively.
The double-differenced observation equation can be
expressed as:
()
()
pq
AB
pq
AB
T
qp
pq
AB
pq
AB
q
T
np
T
n
pq
AB
vNRee
vNeReRDD
∆++−=
∆++−=
λλ
λλλ
0
0
)( KK
K
K
(2)
where, pq
AB
DD is the phase double-differenced
measurement,
λ
is the wavelength of the GPS signal
(~20cm),
(
)
pq
AB
N0 is the integer double-differenced
carrier phase ambiguity, and pq
AB
v is the measurement
noise.
If there are M Satellites in view, all the measurements can
be written in the following matrix form:
VNHRDDn++=
λ
(3)
[
]
T
M
ABABAB DDDDDDDD 13121 "
λ
=
[
]
T
M
ABABAB NNNN 1
0
31
0
21
0)()()( "=
Where, n
R is a baseline vector in the local level system
(North-East-Down coordinate system in this paper),
H
is
the vector matrix of line of sight from antennae to GPS
satellites in the local level system, Vis the carrier phase
difference-doubled measurement noise vector.
In equation (3), if the ambiguities have been fixed to
integers, there will be only 3 unknowns (three
components of the baseline vector n
R (n
x,n
y,n
z)).
Therefore, if there are 4 satellites in v iew, there will be 3
independent double-differenced observations, the
baseline vector (n
R) can be estimated by using a
weighted least-squares method as follows:
(
)
()
NDDWHWHHR TT
n
λ
−= 1
ˆ (4)
where, 1
)][cov(
=VW.
If the relative position of two antennae can be determined
with a sub-centimetre accuracy using the carrier phase
observables, two of the three attitude parameters, usually
heading and pitch angles of the platform can be estimated.
Suppose that the baseline is mounted along longitudinal
direction, then the baseline vector in body frame is:
[
]
T
bbR 00=, where b is the length of the baseline.
The estimated baseline vector in the local level system is:
[
]
T
nnnn zyxR =
Then the heading and pitch angles can be calculated using:
)/(tan 1nn xy
=
ψ
(5)
)/(tan 22
1nnn yxz+−=
θ
(6)
3 Carrier phase integer ambiguity resolution
algorithm
It can be seen from Section 2 that the fast resolution of
integer ambiguities is crucial to GPS-based attitude
determination algorithm. Only when the integer
Fan et al.: Ambiguity Resolution in GPS-based, low-cost attitude determination 209
ambiguities are resolved, the attitude angles can be
calculated. In this section an ambiguity resolution
algorithm for single frequency GPS receiver is proposed.
In this algorithm, before the integer ambiguities can be
determined, the ambiguities are treated as real values and
estimated along with baseline vector. The real-value
solution is often called the float solution. In this paper
Kalman filter method is used to estimate the float
solution of ambiguities, and the ambiguity search space is
determined by using the float solution and its variance-
covariance.
3.1 Float ambiguity estimation
The dynamic model of GPS-based attitude determination
system can be described by the following equation:
UX
I
X
mmmm
m
m
+
=
×××
×××
×××
000
0)(0
00
33
333
1
33
33333
τ
(7)
where,
[]
m
NNNzyxzyxX"
 21
= is
the state vector,
τ
is a time constant relative to dynamic
condition of the platform,Uis the measurement noise
vector,
x
,y,
z
are the components of baseline vector
(n
R), x
,y
,
are the variance of components of the
baseline vector n
R, 33×
Iis a 3
×
3 unit matrix.
By re-writing equation (3), the measurement model can
be expressed as:
VXHZ+= ' (8)
Where, DD
Z
=,
[]
mm
IHH ××
=
λ
33
0.
GPS-based attitude determination equations can be
written in a discrete form according to equations (7) and
(8) as follows:
11/11/−−−−Γ+= kkkkkkk UXX
φ
k
U~),0( k
QN (9)
kkkk VXHZ += ' k
V~),0(k
RN (10)
where N is a normal distribution operator, the two
variables in the bracket are mean value vector and
variance-covariance matrix, 1/ kk
φ
is the state transition
matrix, 1/
Γkk is the system disturbance matrix, k
His the
observation matrix, k
Xis the state vector at epoch k,
k
Zis the observation vector at epoch k.
Kalman filtering estimation can be expressed as:
1/11/1/ ˆˆ −−−− Φ= kkkkkkXX (11)
[]
1/
'
1// ˆˆˆ −−−+=kk
k
kkkkkk XHZKXX (12)
1
'
1/
''
1/
−−
+= k
T
k
kk
k
T
k
kkk RHPHHPK (13)
1/11/1/1/11/1/−−−−−−−− ΓΓ+ΦΦ= kkkkk
TkkkkkkkkQPP (14)
[
]
1/
'
/
−= kk
k
kkk PHKIP (15)
Where 1/
ˆkk
Xis the predicted state vector, kk
X/
ˆis the
estimation of filtering, k
Kis the system gain matrix,
1/ kk
Pis the variance matrix for 1/
ˆkk
X, kk
P/ is the
variance matrix for kk
X/
ˆ.
In theory, if a precise float solution can be obtained and
rounded to the nearest integers, this should in most cases
lead to the correct integer ambiguity set. Unfortunately,
the float estimate obtained by this method is not precise
enough, especially for a short observation period
(Mohamed et al, 1998). Therefore, the correct ambiguity
set usually need to be identified by a dedicate search
method.
3.2 Determination of the search space
In order to further reduce the number of possible
ambiguity candidates, all GPS satellites in view are
divided into two groups: primary and secondary groups.
The primary group which contains 5 satellites is used to
determine the search space. The secondary group which
includes remaining satellites is used to validate the
correctness of the identified ambiguity set. So the integer
ambiguity N, the float solution of integer ambiguity N
ˆ
and its variance-covariance N
P estimated by using
Kalman filter technique can be re-written respectively as:
[
]
21NNN
=
[
]
21 ˆˆˆ NNN=
=
2221
1211
PP
PP
P
N
where 1
N and 2
N are the integer ambiguities of the
primary group and secondary group respectively, 1
ˆ
N and
2
ˆ
N are the float solutions of the ambiguities of the
primary group and seco ndary group respectively, and 11
P
and 22
P are ambiguity variance matrices of the primary
group and secondary group respectively.
The integer ambiguities can be obtained by minimising
the following cost fun c tion:
mT ZNNNPNNJ ∈−−= 111
1
1111)
ˆ
()
ˆ
( (16)
Due to the integer constraints on the ambiguities and the
fact that the ambiguity variance matrix is non-diagonal,
the solution of Eq. (16) must be obtained by means of
statistical criteria and a search method. The search space
is described by the following inequality:
210 Journal of Global Positioning Systems
()()
2
11
1
1111 ˆˆ
χ
<−− NNPNN T (17)
This ellipsoidal region is centred at 1
ˆ
N, its shape and
orientation is governed by P11, and its size can be
controlled through the selection of positive constant
2
χ
. The size is assumed to be set such that the sought
integer ambiguities are indeed in the search space. The
solution is then obtained by searching through the entire
search space. The efficiency of the search is poor,
however, when the search space is highly elongated and
the principal axes do not coincide with the grid axes. In
order to reduce the correlation between ambiguities and
make searching process more efficiently, the integer
Gaussian transformation (Mohamed et al., 1998) is
applied. The Gaussian transformation procedure of P11 is
as follows:
[1] Factorise the matrix P11 using upper triangular
factorisation: T
UUDUP 11111=, where U1 is an
upper triangular matrix, and 1U
Dis a diagonal
matrix;
[2] Invert U1 and round all elements of 1
1
Uto their
nearest integers, get 1U
Z;
[3] Transform the matrix P11, and get:
T
UUZU ZPZP11111=;
[4] Factorise the matrix 1ZU
Pusing lower triangular
factorisation: T
LZU LDLP1111=, where 1
L is a
lower triangular matrix, and 1L
D is a diagonal
matrix;
[5] Invert 1
Land round all elements of 1
1
L to their
nearest integers, get 1L
Z;
[6] Transform the matrix 1ZU
P, and get:
T
LZULZL ZPZP1111=.
Repeat above steps until 1L
Zbecomes an identity, and
then the integer Gaussian transformation matrix is
calculated by:
=
=1
ki UiLiZZZ (18)
where k is the total iteration steps. The transformed
ambiguity vector is:
1
ˆˆ NZZN= (19)
and the transformed variance of N
ˆ is:
T
ZN ZZPP 11
= (20)
By substituting th e equ ation s (19) and (20) into inequ ality
(17), the transformed search space can be formulated as
(
)( )
21 ˆˆ
χ
<−− NNZN
T
NN ZZPZZ (21)
and the cost function becomes:
m
NNNZN
T
NN ZZZZPZZJ ∈−−= )
ˆ
()
ˆ
(1 (22)
Because the Gaussian transformation can decorrelate the
ambiguities as much as possible, the float estimates
become more precise and its variance becomes more
diagonal-like. The transformed search space becomes
more spherical.
Note that inequality (21) is a quadratic constraint, it is
difficult to perform the searching process directly.
Therefore the confidence interval of every ambiguity is
used to replace the constraint of inequality (21).
[
]
)
ˆ
()
ˆ
(iiiiiiiQkzroundQkzroundz +−∈ (23)
where ii
Q is the i-th row and i-th column element of
ZN
P, i
z is i-th element of N
Z, i
z
ˆ is i-th element of
N
Z
ˆ, k is the confidence coefficient. By using the
Gaussian transformation, the number in the search space
defined by inequality (23) can be reduced dramatically.
The integer ambiguity search space is determined by
equation (23) and all of the integer combinations in the
search space are candidate ambiguity combinations.
3.3 Ambiguity searching process
The aim of ambiguity searching is to find the ambiguity
combination which can minimise the cost function J in
the search space. It is usually a time-consuming process.
In order to improve the efficiency of the searching
process, Cholesky factorisation is applied in this paper.
By using Cholesky factorisation, 1
ZN
Pcan be expressed
as:
T
ZN CCP =
1 (24)
where,
=
44434241
333231
2221
11
0
00
000
cccc
ccc
cc
c
C
Substituting equation (24) into (22), we have:
(
)( )
NNZN
T
NN ZZPZZJ−−= ˆˆ 1
(
)( )
NN
T
T
NN ZZCCZZ −−= ˆˆ
2
4
2
3
2
2
2
1
= ffffffT+++= (25)
where,
(
)
[
]
4321
ˆffffZZCf NN
T=−=
Fan et al.: Ambiguity Resolution in GPS-based, low-cost attitude determination 211
()
ˆ44444 Czzf −=
()
(
)
ˆˆ 333343443 CzzCzzf −+−=
()()()
2222323342442 C
ˆˆˆ zzCzzCzzf −+−+−= (26)
()()()()
11112122313341441 C
ˆ
C
ˆˆˆzzzzCzzCzzf −+
+−+−=
Therefore, Jin equation (25) can be calculated by the
following iterative procedur e:
2
)()1(k
fkJkJ +=+ 0)0(=J JJ =)4( k=1,2,3,4 (27)
Because 0
2
i
f in equation (26), )(kJ keeps increasing
along with the increase of index number k. Therefore a
fast cutting-off search method is used to reduce the
calculation load. This method can be described as:
[1] Give an ambiguity combination from the ambiguity
search space;
[2] Calculate equation (27) step by step;
[3] If in the k-th step, )(kJ is larger than the threshold,
this ambiguity combination can be rejected and the
iteration calculation will stop and jump to step (1).
[4] If )4(Jis smaller than the threshold, then replacing
the threshold using )4(J.
Because the calculation load of k
f decreases along with
the increase of k, this method can reduce the calculation
load of J dramatically.
Once the ambiguity combination
Z
ˆ that minimises J in
equation (25) is found, the initial ambiguity combination
can be estimated using the inverse Gaussian
transformation:
N
ZZN ˆˆ 1
1
= (28)
3.4 Ambiguity validation
The ambiguity combination which produces the
minimum sum of the squared residuals does not
necessarily indicate that correct ambiguities are
identified. There are a number of factors contributing to
this, such as poor system geometry and high
measurement noise. Thus, ambiguity validation and
evaluation procedure has to be applied to further validate
and confirm its correctness. Although integer ambiguities
should be determined as early as possible, the reliability
of the ambiguity resolution is of paramount importance
for GPS-based attitude determination system.
Traditionally, ambiguity validation test procedures have
been based on the so-called F-ratio test (Erickson, 1992).
When the ratio of the second minimum and the minimum
of J in equation (25) is larger than a threshold, the best
ambiguity combination which produces the minimum of
J is considered as the correct ambiguity set. But in
practical application, sometimes the difference between
the second minimum and the minimum of J may not be
larger enough because of the high noise, therefore it will
need a long time to confirm the correct ambiguity
although the best ambiguity combination already has
been the correct ambiguity set.
In this paper a new validation method by using baseline
length and the relationship between primary and
secondary ambiguity groups is proposed to validate the
estimated ambiguity combination 1
ˆ
N. By using this
method, the correct ambiguity can be quickly and reliably
identified. This method includes two steps which can be
described as follows:
[1] Baseline length test: Substituting the estimated
ambiguities into equation (3) and calculating the
baseline length. For the correct ambiguity
combination, the estimated and the given known
baseline length should be consistent with a certain
tolerance.
δ
<− trueestimateLL (29)
The numerical value of the baseline length tolerance
δ
in equation (29) depends on the carrier phase
measurements noise, multipath and geometry
distribution of satellites in view. In this paper,
δ
is
empirically chosen as 0.02m.
[2] Primary and secondary ambiguity groups test:
calculating a coarse baseline vector using the
estimated primary ambiguity combination;
calculating all the float ambiguities by means of
substituting the coarse baseline vector into equation
(3); calculating the secondary integer ambiguities by
means of rounding the float ambiguities to the
nearest integer values. For the correct ambiguity
combination, the difference of integer and float
ambiguities in the secondary should be less than a
threshold value “
β
”, which can be empirically set to
0.02m (about tenth of L1 wavelength).
Only when the estimated ambiguity combination passes
the above tests, the correct ambiguity combination is
considered identified.
4 Experimental results
A low-cost GPS-based attitude determination system is
developed. The hardware of the system mainly includes:
PC/104 computer, two Allstar GPS OEM boards, two
antennae, battery and other auxiliary accessories. The
GPS OEM board can output raw measurements including
L1 carrier phase, pseudo range and nav igation info rmation
at a rate of 1HZ. The algorithms proposed in this paper
are implemented in its software which is designed using
C++ language. All the available satellites with elevation
212 Journal of Global Positioning Systems
angle more than 10 degrees are used in the data
processing. Considering that usually the ephemeris data
can be received whin 30 seconds in cold start mode, the
Kalman filtering procedure begins from 30-th second in
the software. The integer ambiguity search procedure
begins from 80-th second. After this epoch, the ambiguity
combination which minimizes cost function (16) can be
found at every epoch, but only when it passes the
validation test, correct ambiguity combination is
considered reliably identified. Once the ambiguities are
fixed, the attitude parameters can be estimated by using
the equations (5) and (6).
To evaluate the performance of the system, a number of
experiments have been conducted. There always more
than 7 satellites being tracked during these experiments.
The results of ambiguity resolution time test are sho wn in
Tab. 1. It is indicated from Tab. 1 that ambiguity can be
fixed whin 3 minutes in a cold start mode.
The attitude solution for a 3m baseline is shown on Fig.
2, 3 and 4, and the attitude solution for a 6m baseline is
shown on Fig. 5, 6 and 7. The average and standard
deviation of the attitude solution are listed in Tab. 2.
From Tab. 2, it can be concluded that the accuracy of the
GPS-based attitude determination system becomes higher
with the increase of the baseline length.
Tab. 1 List of ambiguity resolution time with different baseline lengths
NO. GPS date
(d/m/y) GPS time
(seconds) Number of
Satellites Ambiguity Resolution
Time (seconds) Length of
baseline (meters)
1 19/04/2002 529971 7 89 2.40
2 19/04/2002 530348 7 137 2.40
3 22/04/2002 203356 8 103 3.00
4 22/04/2002 203706 8 138 3.00
5 22/04/2002 204106 8 95 3.00
6 28/04/2002 128804 7 103 6.00
7 28/04/2002 129104 7 109 6.00
8 28/04/2002 129404 7 97 6.00
9 28/04/2002 129704 7 119 6.00
Fig. 2 Heading angle (3m baseline) Fig. 3 Pitch angle (3m baseline)
Fig. 4 Baseline length (3m baseline) Fig. 5 Heading angle(6m baseline)
Kutterer: Joint Treatment of Random Variability and Imprecision ??
Fig. 6 Pitch angle (6m baseline) Fig. 7 Baseline length (6m baseline)
Tab. 2 Average and standar d deviation of attitu de solutions with different baseline lengths
3m 6m
Average Standard
deviation Average Standard
deviation
Baseline (meters) 2.9989 0.0025 5.9935 0.0027
Heading angle (degrees) 10.21140.045 6.3519 0.0168
Pitch angle (degrees) -1.76840.0833 -0.6550 0.0314
5 Conclusion s
This paper presents an algorithm for fixing the integer
ambiguity in attitude determination. The method can not
only improve the computation efficiency and reduce the
time for ambiguity resolution, but also improve the
reliability of the ambiguity solution.
A number of experiments are carried out to evaluate the
effectiveness of the proposed algorithm, the results show
that correct ambiguities in cold start mode can be
identified within 3 minutes and there is no evident
relationship between the ambiguity resolution time and
the length of baseline. The results also show that heading
angle of the GPS-based attitude determination system can
achieve an accuracy of 0.045deg (RMS) for a 3m
baseline and a higher accuracy for longer baselines.
Acknowledgements
This research is partially supported by the Cooperative
Research Centre for microTechnology, Australia. A/Prof
Kefei Zhang is supported through an Australia Research
Council Project (L P0455170).
References
Crassidis JL, Markley FL, Lightsey EG (1999): Global
Positioning System Integer ambiguity Resolution without
attitude knowledge, J. Guidance Control and Dynamics
22(2): 212-218.
Gao Y., Mclellau J F. and Schleppe J B (1996): An optimised
GPS Carrier Phase Ambiguity Search Method Focusing
on Speed and Reliability, IEEE Aerospace and Electronic
System Magazine. 11(12): 22-26.
Erickson C. (1992): An analysis of Ambiguity Resolution
Techniques for Rapid Static GPS Surveys using Single
Frequency Data, Proceeding of ION GPS-92, 453-462.
Juang J. (2003): GPS Integer Ambiguity Resolution Based on
Eigen-Decomposition, Proceedings of ION GPS-2003,
775-782, Portland.
Kee C., Kim D, and Jang J. (2003): A New Approach for Fast
and Reliable Ambiguity Search Technique, Proceedings
of ION GPS-2003, 2112-2119, Portland.
Mohamed A H, Schwarz K P (1998): A Simple and
Economical Algorithm for GPS Ambiguity Resolution on
the Fly Using a Whitening Filter, Navigation, 45(3): 221-
231.
Quinn, P. G. (1993): Instantaneous GPS Attitude
Determination, Proceedings of ION GPS-93, 603-615,
Alexandria, VA: Institute of Navigation.
214 Journal of Global Positioning Systems
Sutton E. (1997): Optimal Search Space Identification for
Instantaneous Integer Cycle Ambiguity Resolution,
Proceedings of ION GPS-97, 313-322.
Sutton E. (2002): Integer Cycle Ambiguity Resolution under
Conditions of Low Satellites Visibility, ION GPS-2002,
91-98.
Xu G. (2002): A General Criterion of Integer Ambiguity
search, Journal of Global Positioning System, 1(2): 122-1.