Advanced Multi-Receiver Vector Tracking for Positioning a Land …gracegao/publications... · 2015....

8
Advanced Multi-Receiver Vector Tracking for Positioning a Land Vehicle Yuting Ng, and Grace Xingxin Gao University of Illinois at Urbana-Champaign BIOGRAPHIES Yuting Ng is a Master’s student in the Aerospace Engi- neering Department at the University of Illinois at Urbana- Champaign. She received her Bachelor’s degree, graduating with university honors, from the Electrical and Computer Engineering Department at the same university in 2014. Grace Xingxin Gao is an assistant professor in the Aerospace Engineering Department at the University of Illi- nois at Urbana-Champaign. She obtained her PhD from Stan- ford University in 2008. She was a research associate at Stanford University from 2008 to 2012. ABSTRACT The novel Multi-Receiver Vector Tracking (MRVT) archi- tecture for the joint tracking of multiple GPS receivers, pre- sented in our prior work [1], is improved upon in this followup paper. Improvements include an augmented software platform, Python Software Defined Radio (Python SDR), which has, among its many enhancements, a variable coherent integration interval with navigation bit wipe-off. Dynamic process noise covariance matrix, attitude aiding and additional sub-sample timing synchronization between individual receivers. The main concept behind MRVT is still the same. The reduction in the overall search space, from the state vector of each individual receiver to a single reference state vector and attitude of the rigid body comprising the multi-receiver network, offers in- creased information redundancy which brings about increased accuracy, reliability and robustness to signal attenuation and multipath. In this paper, we begin by detailing the MRVT con- cept and implementation, followed by demonstrating with our experiments the enhanced performance of Advanced MRVT by showing increased accuracy in positions, altitudes, base- lines and timing with respect to conventional vector tracking. I. I NTRODUCTION GPS receivers are commonly used for navigation purposes [2]–[4]. Examples are flying an unmanned aerial vehicle [5], [6] through skyscrapers for captivating aerial photography and operating a self-driving car in the city [7]. Such environments present challenges to the single conventional GPS receiver in the form of limited signal availability and multipath [8]–[10]. To overcome such challenges, we aim to leverage upon the inherent potential of combining results from more than one The authors are with the Department of Aerospace Engineering, Uni- versity of Illinois at Urbana-Champaign, Urbana, IL 61801, USA. E-mail: [email protected], [email protected]. GPS receiver for better performance in navigation solution estimation [1], [5], [11], [12] . The concept we proposed and preliminarily verified with experimental data is Multi-Receiver Vector Tracking (MRVT), which provides deep multi-receiver integration at the signal level [1]. MRVT can be thought of as an extension of Single-Receiver Vector Tracking (SRVT). In SRVT, the states of multiple Channels within a Receiver are jointly tracked through the states of one Receiver [13]–[20]. The Receiver states are: position, clock bias, velocity and clock drift. Likewise, in MRVT, the states of the multiple Receivers within a Receiver Network are jointly tracked through the states of one Receiver Network. In this case, the Receiver Network is a rigid body on which multiple GPS receiving antennas have been installed. Since the antennas are installed on a rigid body, the relative geometry and baselines of the antennas remains unchanged, can be estimated in advance, and used as prior information. As such, the number of states required to describe the Receiver Network can be reduced to: reference position, clock bias, velocity, clock drift and attitude. Once the Receiver Network states have been estimated and filtered, this information is then used to augment the SRVT within each Receiver in the Receiver Network. In this manner, the overall search space is reduced to the states of the Receiver Network. This reduction in overall search space offers increased robustness due to information redundancy. This paper continues the development of the MRVT plat- form and specifically focuses on the following improvements. 1) Enhanced software platform - Python Software Defined Radio (Python SDR). 2) Variable coherent integration interval with navigation bit wipe-off, 3) Dynamic process noise covari- ance matrix, 4) Attitude aiding, 5) Determination of reference velocity and clock drift and 6) Additional sub-sample time synchronization. The above improvements were proposed for better accuracy, reliability and robustness as compared to the results presented in our prior work [1]. We demonstrate with our experiments the enhanced performance of Advanced MRVT. This paper is organized as follows: Section II describes the background, theory and implementation of Single Receiver Vector Tracking (SRVT) within each individual receiver. Sec- tion III describes the theory and implementation of MRVT. Outputs from the Single Receiver Vector Tracking Loop (STVTL) within each individual receiver is used to estimate the state of the MRVT Loop (MRVTL). The output from the MRVTL is used to augment the SRVTL of each individual receiver. Section IV describes the improvements made to the

Transcript of Advanced Multi-Receiver Vector Tracking for Positioning a Land …gracegao/publications... · 2015....

  • Advanced Multi-Receiver Vector Trackingfor Positioning a Land Vehicle

    Yuting Ng, and Grace Xingxin GaoUniversity of Illinois at Urbana-Champaign

    BIOGRAPHIES

    Yuting Ng is a Master’s student in the Aerospace Engi-neering Department at the University of Illinois at Urbana-Champaign. She received her Bachelor’s degree, graduatingwith university honors, from the Electrical and ComputerEngineering Department at the same university in 2014.

    Grace Xingxin Gao is an assistant professor in theAerospace Engineering Department at the University of Illi-nois at Urbana-Champaign. She obtained her PhD from Stan-ford University in 2008. She was a research associate atStanford University from 2008 to 2012.

    ABSTRACT

    The novel Multi-Receiver Vector Tracking (MRVT) archi-tecture for the joint tracking of multiple GPS receivers, pre-sented in our prior work [1], is improved upon in this followuppaper. Improvements include an augmented software platform,Python Software Defined Radio (Python SDR), which has,among its many enhancements, a variable coherent integrationinterval with navigation bit wipe-off. Dynamic process noisecovariance matrix, attitude aiding and additional sub-sampletiming synchronization between individual receivers. The mainconcept behind MRVT is still the same. The reduction in theoverall search space, from the state vector of each individualreceiver to a single reference state vector and attitude of therigid body comprising the multi-receiver network, offers in-creased information redundancy which brings about increasedaccuracy, reliability and robustness to signal attenuation andmultipath. In this paper, we begin by detailing the MRVT con-cept and implementation, followed by demonstrating with ourexperiments the enhanced performance of Advanced MRVTby showing increased accuracy in positions, altitudes, base-lines and timing with respect to conventional vector tracking.

    I. INTRODUCTION

    GPS receivers are commonly used for navigation purposes[2]–[4]. Examples are flying an unmanned aerial vehicle [5],[6] through skyscrapers for captivating aerial photography andoperating a self-driving car in the city [7]. Such environmentspresent challenges to the single conventional GPS receiver inthe form of limited signal availability and multipath [8]–[10].To overcome such challenges, we aim to leverage upon theinherent potential of combining results from more than one

    The authors are with the Department of Aerospace Engineering, Uni-versity of Illinois at Urbana-Champaign, Urbana, IL 61801, USA. E-mail:[email protected], [email protected].

    GPS receiver for better performance in navigation solutionestimation [1], [5], [11], [12] . The concept we proposed andpreliminarily verified with experimental data is Multi-ReceiverVector Tracking (MRVT), which provides deep multi-receiverintegration at the signal level [1].

    MRVT can be thought of as an extension of Single-ReceiverVector Tracking (SRVT). In SRVT, the states of multipleChannels within a Receiver are jointly tracked through thestates of one Receiver [13]–[20]. The Receiver states are:position, clock bias, velocity and clock drift. Likewise, inMRVT, the states of the multiple Receivers within a ReceiverNetwork are jointly tracked through the states of one ReceiverNetwork. In this case, the Receiver Network is a rigid bodyon which multiple GPS receiving antennas have been installed.Since the antennas are installed on a rigid body, the relativegeometry and baselines of the antennas remains unchanged,can be estimated in advance, and used as prior information. Assuch, the number of states required to describe the ReceiverNetwork can be reduced to: reference position, clock bias,velocity, clock drift and attitude. Once the Receiver Networkstates have been estimated and filtered, this information isthen used to augment the SRVT within each Receiver in theReceiver Network. In this manner, the overall search space isreduced to the states of the Receiver Network. This reductionin overall search space offers increased robustness due toinformation redundancy.

    This paper continues the development of the MRVT plat-form and specifically focuses on the following improvements.1) Enhanced software platform - Python Software DefinedRadio (Python SDR). 2) Variable coherent integration intervalwith navigation bit wipe-off, 3) Dynamic process noise covari-ance matrix, 4) Attitude aiding, 5) Determination of referencevelocity and clock drift and 6) Additional sub-sample timesynchronization. The above improvements were proposed forbetter accuracy, reliability and robustness as compared tothe results presented in our prior work [1]. We demonstratewith our experiments the enhanced performance of AdvancedMRVT.

    This paper is organized as follows: Section II describes thebackground, theory and implementation of Single ReceiverVector Tracking (SRVT) within each individual receiver. Sec-tion III describes the theory and implementation of MRVT.Outputs from the Single Receiver Vector Tracking Loop(STVTL) within each individual receiver is used to estimatethe state of the MRVT Loop (MRVTL). The output from theMRVTL is used to augment the SRVTL of each individualreceiver. Section IV describes the improvements made to the

  • Fig. 1. Single Receiver Vector Tracking (SRVT) architecture implementedwithin each individual Receiver in this paper. The quantities above and belowthe timeline are calculated within the navigation filter of the receiver andtracking channels respectively. The navigation filter is an Extended KalmanFilter (EKF) with a two-step update process: measurement update producingstate corrections at epoch boundaries and time update predicting new statesfor the next epoch boundary.

    Python SDR. Section V describes the experiments that wereconducted on a road vehicle. Finally, Section VI concludes thepaper.

    II. BACKGROUND OF VECTOR TRACKING

    First proposed in 1996 as the Vector Delay Lock Loop(VDLL) by Spilker [13], there has been many variations to theconcept of vector tracking [16]–[20]. This paper implementsa variation of the non-coherent Vector Delay and FrequencyLock Loop (VD/FLL) [14], [15] shown in Fig.1, within eachindividual receiver.

    The state vector of each individual receiver is given as (1):

    X : state vector (1)

    =

    xyzcδtẋẏż

    cδ̇t

    x, y, z : position (m)ẋ, ẏ, ż : velocity (ms−1)c : speed of light, 299792458, (ms−1)cδt : clock bias (m)cδ̇t : clock drift (ms−1)

    The non-coherent vector tracking architecture is imple-mented in this paper. Thus, the error input vector e to the nav-igation filter is composed of the scaled discriminator outputs(∆ρ,∆ρ̇) from each channel [15]. The VDLL’s discriminatorfunction is the normalized early-minus-late amplitude (2)and the VFLL’s discriminator function is the four quadrantarc-tangent (3) [28]. The scaled discriminator output noisevariances (σ2∆ρ, σ

    2∆ρ̇) are estimated using 20 past discriminator

    outputs. The coherent integration period and measurementupdate interval, ∆T , are the same and set to ∆T = 0.020s.Channel and receiver updates are synchronous; the PythonSDR performs navigation bit wipe-off such that the coherentintegration period can straddle navigation bit boundaries.

    The discriminator functions:

    ∆Φcode : DLL discriminator (chips) (2)

    =E − L

    2(E + L)

    E =√iE2 + qE2

    L =√iL2 + qL2

    ∆fcarr : FLL discriminator (Hz) (3)

    =tan−1( crossdot )

    2π∆Tcross = iP0qP1 − iP1qP0dot = iP0iP1 + qP0qP1

    (iE, qE, iP, : coherent in-phase and quadrature-phaseqP, iL, qL) early, prompt, late correlations

    ∆T : coherent integration period andmeasurement update interval, 0.020(s)

    The discriminator outputs (∆Φcode(chips), ∆fcarr(Hz)),are scaled into pseudorange and pseudorangerate, (∆ρ(m),∆ρ̇(ms−1)) errors (6,7) before being concatenated into theerror input vector e (4). Similarly, the discriminator outputnoise variances are scaled before being concatenated into theerror noise covariance input matrix W (5).

    e : error input vector (4)= e(∆ρ1...∆ρN ,∆ρ̇1...∆ρ̇N )

    = [∆ρ1... ∆ρN ,∆ρ̇1... ∆ρ̇N ]T

    W : error noise covariance input matrix (5)= W (σ2∆ρ1 ...σ

    2∆ρN , σ

    2∆ρ̇1 ...σ

    2∆ρ̇N )

    =

    σ2∆ρ1 0 0 0 0 0

    0 ... 0 0 0 00 0 σ2∆ρN 0 0 0

    0 0 0 σ2∆ρ̇1 0 0

    0 0 0 0 ... 00 0 0 0 0 σ2∆ρ̇N

    ∆ρ : pseudorange error (m) (6)

    =−cfC/A

    ∆Φcode

    ∆ρ̇ : pseudorangerate error (ms−1) (7)

    =−cfL1

    ∆fcarr

    fC/A : frequency of C/A code, 1.023, (MHz)fL1 : frequency of L1 carrier, 1575.42, (MHz)

    The navigation filter within each individual receiver is anExtended Kalman Filter (EKF) and thus have a two-step up-date process: measurement update and time update, as shownin Fig.1. To begin with, the measurement update producesthe state error vector ∆Xk used to obtain the corrected statevector Xk at epoch k. ∆Xk is naturally determined in Earth-Centered-Inertial (ECI) coordinates ∆Xk,ECI as the range andrange-rate equations are most easily solved in ECI coordi-nates (9). The measurement update of Xk is then performedas such. The predicted state vector X̂k is first transformed

  • from Earth-Centered-Earth-Fixed (ECEF) X̂k,ECEF to ECIcoordinates X̂k,ECI . ∆Xk,ECI is then used to update X̂k,ECIas Xk,ECI = X̂k,ECI + ∆Xk,ECI (11). The updated statevector Xk is then transformed from ECI Xk,ECI back toECEF coordinates Xk,ECEF .

    The EKF measurement update equations at time k are givenas follows (8-12):

    K : Kalman gain matrix (8)= Σ̂kH

    T (HΣ̂kHT +W )−1

    ∆XECI : state error vector in ECI coordinates (9)= Ke

    Σ̂k : predicted state error covariance matrixH : geometry matrix in ECI coordinates (10)

    = H(X1x,y,z,ECI ...XNx,y,z,ECI , X̂x,y,z,ECI)

    =

    (−los1x,y,z, 1) (0, 0, 0, 0)

    ... ...(−losNx,y,z, 1) (0, 0, 0, 0)

    (0, 0, 0, 0) (−los1x,y,z, 1)... ...

    (0, 0, 0, 0) (−losNx,y,z, 1)

    losix,y,z : line of sight vector in ECI coordinates

    = Xix,y,z −Xx,y,zXk : corrected state vector (11)

    = X̂k + ∆X

    Σk : corrected state error covariance matrix (12)= (I −KH)Σ̂k

    The EKF time update equations at time k + 1 are given asfollows (13-18):

    X̂k+1 : predicted state vector (13)= FXk

    Σ̂k+1 : predicted state error covariance matrix (14)= FΣkF

    T +Qk

    F : state propagation matrix (15)= F (∆T )

    =

    1 0 0 0 ∆T 0 0 00 1 0 0 0 ∆T 0 00 0 1 0 0 0 ∆T 00 0 0 1 0 0 0 ∆T0 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 00 0 0 0 0 0 0 1

    The initial predicted state error covariance matrix Σ̂0 is

    estimated using 20 past state vectors XECEF . The stateprocess noise covariance matrix, Qk, is time-varying [21]. Itis set using the 20 sample running average amplitude of thereceiver’s velocity v = ||ẋ, ẏ, ż|| [22] and the specification ofthe external clock [23]. The steps to estimate Qk is as shownin (16-18).

    Qk : state process noise covariance matrix (16)

    = F

    [0 00 Qv,k

    ]FT

    Qv,k : velocity and clock drift component of Qk (17)

    =

    f(vk) 0 0 0

    0 f(vk) 0 00 0 f(vk) 00 0 0 (c× 2.5e−10)2

    f(vk) : saturation function for velocity vk (18)

    = 1 + 250/(min(max(v2k, 52), 252))

    While the navigation filter in the receiver performs theEKF measurement and time updates, the channels perform thefrequency and phase updates.

    The equations for the frequency update, after the EKFmeasurement update, at time k are given as follows (19-22):

    f icarr,k : corrected carrier frequency (19)

    of the ith satellite= fIF + f

    idcarr,k

    fIF : intermediate frequency (IF), 0(Hz)f idcarr,k : corrected carrier doppler frequency (20)

    of the ith satellite

    =−fL1c

    (−losix,y,z · (Xẋ,ẏ,ż,ECI

    −Xiẋ,ẏ,ż,ECI) + c(Xδ̇t −Xiδ̇t

    ))

    f icode,k : corrected code frequency of the ith satellite (21)

    = fC/A +1

    ∆T(Φicode,k − Φ̂icode,k)

    +fcaid ∗ f idcarr,kΦicode,k : corrected code phase of the i

    th satellite (22)

    = mod(−fC/Ac

    (∥∥Xx,y,z,ECI −Xix,y,z,ECI∥∥

    +c(Xδt −Xiδt)), 1023)

    The equations for the phase update, at the same time as theEKF time update, at time k + 1 are given as follows (23,24):

    Φ̂icode,k+1 : predicted code phase of the ith satellite (23)

    = Φicode,k + ficode,k∆T

    Φ̂icarr,k+1 : predicted carrier phase of the ith satellite (24)

    = Φicarr,k + ficarr,k∆T

    III. MULTI-RECEIVER VECTOR TRACKINGIn MRVT, the corrected state vector X of each receiver

    is used to determine the reference state vector Xref of therigid body. The reference state vector Xref of the rigid bodycontains the reference position, clock bias, velocity, clock driftand attitude of the rigid body. After the reference state vectoris determined, it is used to augment the VTL of the individualreceivers as shown in Fig.2.

    Within the navigation filter of the Receiver Network, thereference clock bias is first determined. The state vector of

  • Fig. 2. MRVT architecture implemented in this paper.

    Fig. 3. MRVTL update implemented in this paper.

    each Receiver X is then propagated in time to match the ref-erence clock bias, synchronizing the Receivers. The referenceposition, velocity and clock drift states of the reference statevector Xref is then determined. This can be done throughvarious methods, such as simple averaging or Kalman filtering.For the results shown in the next section, a simple averagingwas performed. Then, the attitude of the Receiver Network isdetermined. Similarly, the attitude may be determined throughvarious methods. For the results shown in the next section, theattitude was obtained from the reference velocity. After theattitude is determined, the updated positions of each Receiveris fed back to the Receiver, aiding their VTL. See Fig.3.

    A. Attitude determination using reference velocity

    Attitude determination using reference velocity is based onthe idea that the direction of the reference velocity is the frontdirection. When the vehicle is reversing, the front directionis taken as the opposite direction of the reference velocity.

    To obtain the attitude of the Receiver Network through thereference velocity, the reference velocity is first convertedfrom the global ECEF to the local East-North-Up (ENU)coordinates. Following that, the velocity in the Up directionis set to 0 since the experiment is performed using a groundvehicle. Next, the velocity vector is normalized to produce adirection vector in the East-North plane. The front and rightdirections are then determined and used to form the baselinevectors. Lastly, the baseline vectors are transformed from thelocal ENU to the global ECEF coordinates then used to updatethe state vectors Xs of the individual receivers.

    Fig. 4. Geometry of receiving antennas on the roof of a vehicle. East,North, Up (ENU) are local level coordinates. right, front, top are bodycoordinates. Each antenna is given a color label, referenced in the figures ofthe results, Fig.10.

    B. Coordinate transformations: body and local coordinates

    The body coordinates is an arbitrary coordinate system usedto describe the antenna geometry. In this paper, the origin ofthe body coordinates is set at the reference position of therigid body, which is defined to be the geometric center ofthe four receivers. The x-axis points to the right, the y-axispoints to the front and the z-axis points to the top of therigid body, Fig.4. The yaw angle is defined an as the anglein the East-North plane, increasing in the counter-clockwisedirection from the North axis to the front direction. Theequations to convert the yaw angle into a direction vector inthe East-North plane are given as follows (25,26):

    E : East component of front direction vector (25)

    = cos(yaw +π

    2)

    N : North component of front direction vector (26)

    = sin(yaw +π

    2)

    After the attitude is determined through either approach, theupdated state vector X of each Receiver is reverse propagatedin time, then fed back to the Receiver, aiding their VTL.The EKF time update step then follows in each Receiver.In this manner, the state vectors of the individual receiversare constrained, leading to a reduction in the overall searchspace, offering an increased robustness to signal attenuationand multipath.

    IV. IMPROVEMENTS TO PYTHON SDR

    To implement the MRVT architecture, we needed a researchplatform that allows for effective information sharing and deepintegration between multiple receivers. The research platformshould also be flexible, extensible, intuitive and free. As such,we developed Python SDR which is a Software Defined Radio(SDR), written using the Object-Oriented Programming (OOP)approach in the Python programming language. Python SDRheavily references [13], [26]–[32].

    Since Python SDR is an SDR, most of the receiver process-ing functions are performed in software, as shown in Fig.5. Inthe case of Python SDR, the frontend hardware componentsthat it requires are a GPS antenna and an Analog-to-Digital

  • Fig. 5. Python Software Defined Radio (Python SDR). After the digitizationof the received signal by the Analog-to-Digital Converter (ADC), the rest ofthe receiver processing functions are performed in software. Shown within thePython SDR box are some commonly used classes and their interconnections.

    converter (ADC), such as the SiGe sampler [37] or a UniversalSoftware Radio Peripheral (USRP) [38], both of which it hasbeen tested to work with. Python SDR also accepts simulateddata, such as that from the NI GPS Simulator [39]. After theADC, Python SDR takes in raw sampled voltages as input.

    Python SDR models real-world hardware receivers by hav-ing intuitive objects such as Channel, Correlator, Discriminatorand LoopFilter, defined as classes and organized into modules.Since the previous iteration of Python SDR used in our priorwork [1], we have revised the organization of the modules. Therevised organization increases the ease of use, intuitiveness andeffectiveness of the Python SDR. Fig.IV shows the revisedorganization of modules within Python SDR.

    We have also revised the interconnections between classesto enable new functionality. Classes are objects with thecapacity to store relevant information, known as attributes orfields, and the ability to perform object-specific functions,also known as methods. For example, an instance of theChannel class would include the following attributes: a defin-ing pseudorandom noise (PRN) code, Settings, Correlator,DLL Discriminator, F/PLL Discriminator, DLL LoopFilter,F/PLL LoopFilter, code and carrier frequency and phase,etc. It would also include the following methods: init (),cold start(), ... and update(), where init () is the construc-tor that creates an instance of the Channel object. See Fig.6.

    The Python SDR is able to perform varying coherentintegration periods in multiples of 1ms. Increased coherentintegration periods allow for more robustness to SNR degra-dation Fig.7(c-e). The maximum coherent integration durationis limited by platform dynamics.

    Each iteration of Python SDR has been checked for ac-curacy, see Fig.7. For example, the parsed ephemerides, rawpseudorange and carrier phase measurements have been com-pared against the RINEX file of the Trimble NetR9 Receiver[33] located on the roof of Talbot Laboratory, Universityof Illinois at Urbana-Champaign. The calculated satellitepositions and clock biases have been checked against IGSephemerides [34]. The calculated satellite velocities and clockdrifts have been checked against the time difference of thesatellite positions and clock biases. The estimated positions

    Fig. 6. (a) Revised organization of the modules available within Python SDR,increasing the ease of use and intuitiveness. (b) scalar.channel.Channel classshowing its attributes, functions and interconnections with related classes. TheChannel object is able to access essential information stored within relatedobjects such as the Correlator object through having the Correlator objectas one of its attributes. Similarly, the DLL Discriminator object is able toaccess information of the past correlations saved within the Channel object,enabling it to perform discriminations over longer coherent integration periods.

    (a) (b)

    (c) (d) (e)

    Fig. 7. Python SDR tracking accuracy. (a,b) Plots of in-phase promptcorrelations against time. Navigation bits of 20ms duration are clearly visible.Ephemerides are also successfully decoded. (c,d,e) Code phase versus carrierdoppler plot across various coherent integration periods: 5ms, 10ms, 15ms.

  • Fig. 8. Geometry of receiving antennas on the roof of the vehicle. Eachantenna is given a distinguishing color label, referenced in the figures of theresults Fig.10.

    Fig. 9. Data collection equipment in the backseat of the vehicle.

    and velocities have been compared against prior information.In addition, to ensure that the receiver maintains track of thereceived signal, the plots of SNR, in-phase prompt and quad-phase prompt correlations have been checked.

    V. EXPERIMENTS ON A ROAD VEHICLE

    Experiments on road vehicles were conducted to evaluatethe performance of the MRVT architecture.

    As a comparison against our prior results [1], the sameexperimental data was processed. In that experiment, fourAntCom 3GNSSA4-XT-1 GNSS antennas [36] were installedat the four corners of a vehicles roof, as shown in Fig.4 andFig.8. Each antenna was connected to an Ettus Research USRPN210, equipped with a DBSRX2 daughterboard [38], [40]. Thecomplex GPS L1 raw signals were modulated to 0-IF, digitizedat a sampling frequency of 2MHz and output as interleavedcomplex shorts. The output data were sent through an Ethernetswitch and written directly onto the internal hard disk of alaptop running Ubuntu 12.04. The Universal Software RadioPeripherals (USRPs) were triggered by the same MicrosemiQuantum SA.45s Chip Scale Atomic Clock (CSAC) [41]. Apower regulating circuit was built to power the equipment froma 12V sealed lead acid battery. The equipment were placed

    (SRVT) (MRVT)

    (SRVT: altitude) (MRVT: altitude)

    (SRVT: baseline residual) (MRVT: baseline residual)

    (SRVT: cδt residual) (MRVT: cδt residual)

    Fig. 10. Comparison of tracking results from SRVT and MRVT. Plots ofaltitude, baseline residual and clock bias cδt residual obtained immediatelyafter EKF measurement update. SRVT on the left. MRVT on the right, withattitude aiding when the reference velocity is above a set threshold value of0.5ms−1 (1.12mph).

    in the backseat of the vehicle, as shown in Fig.9. Duringdata collection, the vehicle was initially parked head-in at thesecond parking lot from the bottom right corner. The vehiclethen backed-out, turned onto the road and drove north.

    A comparison of the results from SRVT and MRVT isshown in Fig.10. Fig.10 shows the tracks traced by theantennas on My Maps - Google [35] and the altitudes, residualbaseline distances and residual clock biases of the receivers.

  • The time taken to post-process the received signals from allfour receivers, on an Intel Core i7-4700MQ CPU @ 2.40GHzx 8 running Ubuntu 14.04LTS, was approximately 15 minutesfor each tracking scheme.

    As shown in Fig.10, MRVT provides more accurate re-sults as compared to SRVT. It shows the individual MRVTpositions tracing out smooth tracks in the expected directionwhile maintaining an expected distance apart, without cross-overs, for a sustained period of time. On the other hand,the individual SRVT positions did not maintain the expecteddistance apart and had frequent cross-overs. It also shows moreaccurate altitudes and baseline distances when using MRVT.All tracking algorithms stabilized to a constant, non-driftingrelative difference in clock bias, as expected of being triggeredby the same external clock even though the clock bias statesare not constrained in MRVT, unlike the position states.

    The experimental results demonstrated the vastly enhancedquality of Advanced MRVT over our prior work [1]. AdvancedMRVT produced smooth tracks, more reliable antenna baselinedistances and receiver clock timings. The key modificationsthat we have implemented since our prior work include (1)updating of code and carrier phase as appropriate, (2) variableincreased coherent integration interval with navigation bitwipe-off, (3) dynamic process noise covariance matrix Q basedon velocity information, (4) attitude aiding, (5) determinationof reference velocity and clock drift and (6) additional sub-sample time synchronization through time propagation of thestate vectors. Modification (1) smoothed out the code andcarrier phase accumulator; modification (2) reduced the dis-criminator and EKF noise. Thus, modifications (1) and (2) aidin reducing the noise present in the results of our prior work.Modification (3) automatically tunes the bandwidth of theEKFs; modifications (4) and (5) introduced more constraintsinto the MRVT architecture. Thus, modifications (3), (4) and(5) aid in increasing stability, accuracy and robustness.

    VI. CONCLUSIONIn conclusion, we have proposed the MRVT architecture

    as an extension of SRVT. By reducing the search space fromeach individual Receiver to the Receiver Network, we haveincreased information redundancy which offers more accurate,reliable and robust results, especially under signal attenuationand multipath. Since our prior work [1], we have madesignificant improvements to our software platform - PythonSDR; we have also proposed and implemented a few keyimprovements to the MRVT architecture. Finally, we haveshown results of vast improvement compared to our priorwork and validated the Advanced MRVT algorithm and PythonSDR.

    ACKNOWLEDGMENTThe authors would like to thank Ganshun Lim for encour-

    agement. Mr. Phil Ward for guidance and advice.

    REFERENCES[1] Y. Ng, and G.X. Gao, “Multi-Receiver Vector Tracking Based on a

    Python Platform,” Proceedings of the 2015 International TechnicalMeeting of The Institute of Navigation, Dana Point, California, January2015, pp. 633-639.

    [2] G. Mintsis, S. Basbas, P. Papaioannou, C. Taxiltaris, and I. Tziavos,“Applications of GPS technology in the land transportation system,”European Journal of Operational Research, vol. 152, no. 2, pp. 399-409, 2004

    [3] C. R. Drane, and C. Rizos, Positioning Systems in Intelligent Trans-portation Systems. Norwood, MA, USA: Artech House, Inc., 1998.

    [4] S.T.S. Thong, C.T. Han, and T.A. Rahman, “Intelligent fleet managementsystem with concurrent GPS & GSM real-time positioning technology,”Proceedings of the 7th International Conference on ITS Telecommuni-cations (ITST 07), June 2007, pp. 1-6

    [5] A. Shetty, and G.X. Gao, “Measurement Level Integration of MultipleLow-Cost GPS Receivers for UAVs,” Proceedings of the 2015 Inter-national Technical Meeting of The Institute of Navigation, Dana Point,California, January 2015, pp. 842-848.

    [6] D. Chen, and G.X. Gao, “Simultaneous State Estimation of UAVTrajectory Using Probabilistic Graph Models,” Proceedings of the 2015International Technical Meeting of The Institute of Navigation, DanaPoint, California, January 2015, pp. 804-810.

    [7] C. Urmson, J. Anhalt, D. Bagnell, C. Baker, R. Bittner, M.N. Clark,J. Dolan, D. Duggins, T. Galatali, C. Geyer, and others, “Autonomousdriving in urban environments: Boss and the urban challenge,” Journalof Field Robotics, vol. 25, no.8, pp. 425-466, 2008

    [8] M. S. Braasch, “Multipath effects,” in Global Positioning System: Theoryand Applications, B. Parkinson, J. Spilker, P. Axelrad, and P. Enge, Eds.Washington, DC: American Institute of Aeronautics and Astronautics,1996, vol. I, pp. 547-568

    [9] B. Eissfeller, and J.O. Winkel, “GPS Dynamic Multipath Analysis inUrban Areas,” Proceedings of the 9th International Technical Meetingof the Satellite Division of The Institute of Navigation (ION GPS 1996),Kansas City, MO, September 1996, pp. 719-727.

    [10] A. Soloviev, F. van Graas, “Utilizing Multipath Reflections in Deeply In-tegrated GPS/INS Architecture for Navigation in Urban Environments,”Proceedings of IEEE/ION PLANS 2008, Monterey, CA, May 2008, pp.383-393.

    [11] E. Wycoff, and G.X. Gao, “A Python Software Platform for Coop-eratively Tracking Multiple GPS Receivers”, Proceedings of the 26thInternational Technical Meeting of the Satellite Division of the Instituteof Navigation (ION GNSS+ 2014), Tampa FL, Sep 2014.

    [12] D. Chou, Y. Ng, and G.X. Gao, “Robust GPS-Based Timing for PMUsBased on Multi-Receiver Position-Information-Aided Vector Tracking,”ION International Technical Meeting 2015, Dana Point, California,January 2015.

    [13] Spilker Jr, J., “Vector Delay Locked Loop” in Global Positioning System:Theory and Applications, B. Parkinson, J. Spilker, P. Axelrad, andP. Enge, Eds. Washington, DC: American Institute of Aeronautics andAstronautics, 1996, vol. I, pp. 291-327

    [14] S. Zhao, D. Akos, “An Open Source GPS/GNSS Vector Tracking Loop- Implementation, Filter Tuning, and Results,” Proceedings of the 2011International Technical Meeting of The Institute of Navigation, SanDiego, CA, January 2011, pp. 1293-1305.

    [15] S. Bhattacharyya, Performance and Integrity Analysis of the VectorTracking Architecture of GNSS Receivers. PhD Dissertation, 39-114,2012. Retrieved August 1, 2014, from http://www.aem.umn.edu/info/spotlight/bhattacharyya thesis final.pdf

    [16] M. Zhodzishsky, S. Yudanov, V. Veitsel, J. Ashjaee, “Co-OP Tracking forCarrier Phase,” Proceedings of the 11th International Technical Meetingof the Satellite Division of The Institute of Navigation (ION GPS 1998),Nashville, TN, September 1998, pp. 653-664.

    [17] J. Liu, X. Cui, Q. Chen, M. Lu, “Joint Vector Tracking Loop in a GNSSReceiver,” Proceedings of the 2011 International Technical Meeting ofThe Institute of Navigation, San Diego, CA, January 2011, pp. 1025-1032.

    [18] J. Brewer, The Differential Vector Phase-Locked Loop for Global Navi-gation Satellite System Signal Tracking. PhD Dissertation, 22-40, 2014.Retrieved August 1, 2014, from http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA603126

    [19] P. Henkel, K. Giger, and C. Gunther, “Multifrequency, MultisatelliteVector Phase-Locked Loop for Robust Carrier Tracking,” IEEE Journalof Selected Topics in Signal Processing, 3(4), 674-681, 2004

    [20] P. Henkel, G.X. Gao, T. Walter, and C. Gunther, “Robust Multi-Carrier,Multi-Satellite Vector Phase Locked Loop with Wideband IonosphericCorrection and Integrated Weighted RAIM”, Journal of Italian Instituteof Navigation, issue 190, December 2009

    [21] F.D. Busse, J.P. How, J. Simpson, “Demonstration of Adaptive Ex-tended Kalman Filter for Low-Earth-Orbit Formation Estimation UsingCDGPS,” Navigation, vol. 50, no. 2, Blackwell Publishing Ltd, 2161-4296, pp. 79-93, 2003.

  • [22] MathWorks, “State Estimation Using Time-Varying Kalman Filter,”Retrieved June 3, 2015, from http://www.mathworks.com/help/control/getstart/estimating-states-of-time-varying-systems-using-kalman-filters.html

    [23] Microsemi, “QUANTUM Chip Scale Atomic Clock Product Info,” Re-trieved June 3, 2015, from http://www.microsemi.com/products/timing-synchronization-systems/csac#product-info

    [24] Z. Dai, S. Knedlik, and O. Loffeld, “Toolbox for GPS-based AttitudeDetermination: An Implementation Aspect” INTECH Open AccessPublisher, pp. 391-395, 2010.

    [25] G. Lu, G. Lachapelle, M.E. Cannon, P. Kielland, “Attitude Determi-nation in a Survey Launch Using Multi-Antenna GPS Technology,”Proceedings of the 1993 National Technical Meeting of The Instituteof Navigation, San Francisco, CA, January 1993, pp. 251-259.

    [26] P. Misra and P. Enge, Global Positioning System: Signals, Measurements,and Performance, 2nd ed. Lincoln, MA: Ganga-Jamuna Press, 2006

    [27] Y.-H. Chen, J.-C. Juang, J. Seo, S. Lo, D. M. Akos, D. De Lorenzo,and P. Enge, “Design and implementation of real-time software radio foranti-interference GPS/WAAS sensors,” Sensors, vol. 12, no. 10, pp.13417-13 440, 2012

    [28] E. Kaplan, C. Hegarty, P. Ward, and J. Betz, “Chapter 5: Satellite SignalAcquisition, Tracking, and Data Demodulation,” Understanding GPS:Principles and applications 2nd ed., pp. 153-240, Boston: Artech House,2006.

    [29] P.W. Ward, “The Natural Measurements of a GPS Receiver,” Proceed-ings of the 51st Annual Meeting of The Institute of Navigation, ColoradoSprings, CO, June 1995, pp. 67-85.

    [30] P.W. Ward, “Performance Comparisons Between FLL, PLL and aNovel FLL-Assisted-PLL Carrier Tracking Loop Under RF InterferenceConditions,” Proceedings of the 11th International Technical Meeting ofthe Satellite Division of The Institute of Navigation (ION GPS 1998),Nashville, TN, September 1998, pp. 783-795.

    [31] P.W. Ward, T.D. Fuchser, “Stability Criteria for GNSS Receiver TrackingLoops”, NAVIGATION, Journal of The Institute of Navigation, Vol. 61,No. 4, Winter 2014, pp. 293-309.

    [32] N. Ashby, and M. Weiss, “Global Position System Receivers and Rel-ativity,” NIST Technical Note (Vol. 7385), Boulder, Colorado: NationalInstitute of Standards and Technology, 1999

    [33] Trimble, “Trimble NetR9 Geospatial,” Retrieved July 19, 2015 fromhttp://www.trimble.com/Survey/Trimble-Net-R9.aspx

    [34] Internation GPS Service (IGS), “IGS Product Availability,” RetrievedJuly 19, 2015 from https://igscb.jpl.nasa.gov/components/prods cb.html

    [35] Google, “My Maps,” Retrieved June 3, 2015 from https://www.google.com/mymaps

    [36] Antcom, “P/N: 3GNSSA4-XT-1,” Retrieved June 20, 2015 fromhttp://www.antcom.com/documents/catalogs/Page/3GNSSA4-XT-1 GNSSAntennas1.pdf

    [37] GNSS SDR, “SiGe GN3S Sampler v2 USB front-end,” Retrieved July20, 2015 from http://gnss-sdr.org/node/51

    [38] Ettus Research, “USRP N210,” Retrieved June 20, 2015 from http://www.ettus.com/product/details/UN210-KIT

    [39] National Instruments, “NI GPS Simulator,” Retrieved July 20, 2015 fromhttp://sine.ni.com/nips/cds/view/p/lang/en/nid/206805

    [40] Ettus Research, “DBSRX2 800-2300 MHz Rx,” Retrieved June 20, 2015from http://www.ettus.com/product/details/DBSRX2

    [41] Microsemi, “QUANTUM Chip Scale Atomic Clock,” Retrieved June 20,2015 from http://www.microsemi.com/products/timing-synchronization-systems/csac#overview