6
INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT Cameron ELLUM Mobile Multi-sensor Systems Research Group Department of Geomatics Engineering, University of Calgary, Calgary, AB, Canada [email protected] KEY WORDS: Photogrammetry, Mapping, Bundle Adjustment, GPS Integration, Software ABSTRACT GPS data is typically included in photogrammetric adjustments as externally processed position observations. This im- plementation has obvious benefits in its simplicity; however, a more fundamental fusion of the GPS data into the bundle adjustment is possible. In this paper, an investigation is made into the inclusion of GPS pseudoranges directly into a photo- grammetric bundle adjustment. The advantages of the technique include improved accuracy and reliability, and the ability to use GPS data when less than four satellites are available. Notes are made regarding pseudorange errors and their miti- gation using atmospheric models, linear-combinations, and precise orbits and clock corrections. Using the new technique, tests are performed with aerial GPS/photogrammetric data that demonstrate that the method provides accuracies that are superior to those obtained when exposure station position observations are used in the adjustment. The paper concludes with some notes regarding the design and implementation of the combined GPS/photogrammetric adjustment, with an eye towards maintainability, extensibility, and performance. The hierarchical structure of the program is described, and the benefits of an object-oriented design using inheritance and polymorphism are outlined. 1 INTRODUCTION Kinematic GPS controlled aerial photogrammetry has be- come an omnipresent technology in both the scientific and commercial mapping communities. Virtually all airborne mapping systems now integrate a GPS receiver with their camera. This integration is done at the hardware level, as the GPS receiver and camera must communicate, ei- ther for the GPS to trigger the camera or for the camera to record the exposure time. Unfortunately, on the software side, the integration of GPS and photogrammetry is not as close. Typically, the GPS data is included in the photo- grammetric bundle adjustment only as processed positions (Ackermann, 1992; Greening et al., 1994; Mikhail et al., 2001). In effect, the GPS and photogrammetric processing engines operate largely in isolation. This implementation has obvious benefits in its simplicity; however, a more fun- damental fusion of the GPS data into the bundle adjustment may provide improvements in both accuracy and reliabil- ity. This paper outlines a tighter coupling of the GPS and photo- grammetric processing engines where the GPS code pseu- doranges are directly included in the bundle adjustment. The goal of this integration is to improve the accuracy and reliability when compared to the na¨ ıve inclusion of GPS positions. 2 THEORETICAL FOUNDATIONS In the following section, a brief theoretical background is given on both the current technique for including GPS data in a photogrammetric bundle adjustment, and on the al- tered technique being pursued as part of this project. 2.1 Existing Technique for Including GPS Data With some rare exceptions (for example, Kruck et al., 1996) GPS data is almost always included in photogrammetric ad- justments as processed positions. In other words, the raw GPS measurements are first processed using an external processing program that provides position and covariance estimates. These positions are then included in the adjust- ment using parameter observation equations. The nominal form of these equations is (Mikhail et al., 2001) r M GP S (t)= r M c (t)+ R M c (t)r c GP S + b M GP S + d M GP S (t - t 0 ) , (1) where r M GP S (t) is the position of the GPS antenna, r M c (t) is the position of the camera perspective centre, R M c (t) is the rotation matrix that aligns the camera axes to the map- ping space axes, and r c GP S is the offset between the GPS antenna and camera perspective centre. The bias and drift terms – b M GP S and d M GP S respectively – are included as un- known parameters in the adjustment and are intended to account for the errors caused by incorrect GPS ambiguity resolution. These terms can also account for datum incon- sistencies. 2.2 Modification of the Collinearity Equations In Ellum (2001), an alternative technique was investigated for including exposure station position observations in the photogrammetric adjustment. Derivation of the relevant equations begins with the forward conformal transforma- tion that relates the GPS positions with the image co-ordi- nates, r M P = r M GP S (t) - R M c (t)r c GP S + μR M c r c p . (2)

INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

Embed Size (px)

Citation preview

Page 1: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT

Cameron ELLUMMobile Multi-sensor Systems Research Group

Department of Geomatics Engineering, University of Calgary, Calgary, AB, [email protected]

KEY WORDS: Photogrammetry, Mapping, Bundle Adjustment,GPS Integration, Software

ABSTRACT

GPS data is typically included in photogrammetric adjustments as externally processed position observations. This im-plementation has obvious benefits in its simplicity; however, a more fundamental fusion of theGPSdata into the bundleadjustment is possible. In this paper, an investigation is made into the inclusion ofGPSpseudoranges directly into a photo-grammetric bundle adjustment. The advantages of the technique include improved accuracy and reliability, and the abilityto useGPSdata when less than four satellites are available. Notes are made regarding pseudorange errors and their miti-gation using atmospheric models, linear-combinations, and precise orbits and clock corrections. Using the new technique,tests are performed with aerialGPS/photogrammetric data that demonstrate that the method provides accuracies that aresuperior to those obtained when exposure station position observations are used in the adjustment. The paper concludeswith some notes regarding the design and implementation of the combinedGPS/photogrammetric adjustment, with an eyetowards maintainability, extensibility, and performance. The hierarchical structure of the program is described, and thebenefits of an object-oriented design using inheritance and polymorphism are outlined.

1 INTRODUCTION

Kinematic GPS controlled aerial photogrammetry has be-come an omnipresent technology in both the scientific andcommercial mapping communities. Virtually all airbornemapping systems now integrate aGPS receiver with theircamera. This integration is done at the hardware level,as theGPS receiver and camera must communicate, ei-ther for theGPSto trigger the camera or for the camera torecord the exposure time. Unfortunately, on the softwareside, the integration ofGPSand photogrammetry is not asclose. Typically, theGPS data is included in the photo-grammetric bundle adjustment only as processed positions(Ackermann, 1992; Greening et al., 1994; Mikhail et al.,2001). In effect, theGPSand photogrammetric processingengines operate largely in isolation. This implementationhas obvious benefits in its simplicity; however, a more fun-damental fusion of theGPSdata into the bundle adjustmentmay provide improvements in both accuracy and reliabil-ity.

This paper outlines a tighter coupling of theGPSand photo-grammetric processing engines where theGPScode pseu-doranges are directly included in the bundle adjustment.The goal of this integration is to improve the accuracy andreliability when compared to the naıve inclusion ofGPS

positions.

2 THEORETICAL FOUNDATIONS

In the following section, a brief theoretical background isgiven on both the current technique for includingGPSdatain a photogrammetric bundle adjustment, and on the al-tered technique being pursued as part of this project.

2.1 Existing Technique for Including GPS Data

With some rare exceptions (for example,Kruck et al., 1996)GPSdata is almost always included in photogrammetric ad-justments as processed positions. In other words, the rawGPS measurements are first processed using an externalprocessing program that provides position and covarianceestimates. These positions are then included in the adjust-ment using parameter observation equations. The nominalform of these equations is (Mikhail et al., 2001)

rMGPS(t) = rM

c (t) + RMc (t)rc

GPS

+(bM

GPS + dMGPS(t− t0)

),

(1)

whererMGPS(t) is the position of theGPSantenna,rM

c (t)is the position of the camera perspective centre,RM

c (t) isthe rotation matrix that aligns the camera axes to the map-ping space axes, andrc

GPS is the offset between theGPS

antenna and camera perspective centre. The bias and driftterms –bM

GPS anddMGPS respectively – are included as un-

known parameters in the adjustment and are intended toaccount for the errors caused by incorrectGPSambiguityresolution. These terms can also account for datum incon-sistencies.

2.2 Modification of the Collinearity Equations

In Ellum (2001), an alternative technique was investigatedfor including exposure station position observations in thephotogrammetric adjustment. Derivation of the relevantequations begins with the forward conformal transforma-tion that relates theGPSpositions with the image co-ordi-nates,

rMP = rM

GPS(t)−RMc (t)rc

GPS + µRMc rc

p. (2)

Page 2: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

As in equation (1), this transformation requires theRMc (t)

rotation matrix that aligns the camera axes to the mappingspace axes and therc

GPS offset vector between theGPS

antenna and camera perspective centre.

By rearranging Equation (2), the reverse transformation isfound to be

rcp = µ−1

[Rc

M

(rM

P − rMGPS

)+ rc

GPS

]. (3)

Elimination of the third equation yields a pair of modifiedcollinearity equations,

xp = − c

r11(XP −XGPS) + r12(YP − YGPS)+r13(ZP − ZGPS) + xGPS

r31(XP −XGPS) + r32(YP − YGPS)+r33(ZP − ZGPS) + zGPS

(4a)

yp = − c

r21(XP −XGPS) + r22(YP − YGPS)+r23(ZP − ZGPS) + yGPS

r31(XP −XGPS) + r32(YP − YGPS)+r33(ZP − ZGPS) + zGPS

. (4b)

By examining Equation (4), it can be seen that the expo-sure station positions are no longer explicitly present in thecollinearity equations, and that essentially, theGPS posi-tions form the ‘base’ of the equations. This has a number ofadvantages. First, theGPSpositions can be directly used asthe initial approximates in the linearised collinearity equa-tions. Second, because theGPS positions are one of thequantities being adjusted, the position measurements canbe directly used as parameter observations. In this case,the parameter observation equation is

0 = rMGPS − rM

GPS , (5)

where rMGPS represents the current estimate of the posi-

tion during the adjustment. Adjusting theGPSpositions di-rectly also means that they are one of the quantities outputby the adjustment. This allows for easy comparison withthe input positions, which in turn simplifies the analysis ofthe results. Finally, expressing the collinearity equations asa function of theGPSpositions means that the inclusion ofthe rawGPSpseudorange and phase measurements in theadjustment can be done with greater ease than would other-wise be possible, as such measurements are also functionsof the GPSpositions. This last point provides the motiva-tion for the project under investigation in this paper.

2.3 Inclusion of the Pseudorange Measurementsin the Photogrammetric Adjustment

With the collinearity equations expressed by Equation (4),inclusion of theGPSpseudorange measurements in the pho-togrammatric adjustment is straightforward. Essentially,simple observation equations with the form

p =∣∣rGPS/SV

∣∣ + c∆trx (6)

are added to the adjustment, wherep is theGPSpseudor-ange measurement,c is the speed of light, and∆trx is thereceiver clock bias. This last term is added to the adjust-ment as an unknown parameter.

Including the pseudorange measurement in the adjustmentshould improve the mapping accuracy and, more impor-tantly, reliability. Furthermore, it enablesGPS data to beused when less than four satellites are visible. While thisis not generally an issue for aerial mapping platforms, itcould be beneficial for terrestrial mobile mapping systems.

3 GPS ERRORS

Equation (6) assumes that the only error in the code pseu-dorange measurement is random noise. In reality, of course,this is not the case. There are a number of systematic er-rors present in the observations, and when the largest ofthese are accounted for the pseudorange observation equa-tion more completely resembles

p =∣∣rGPS/SV + δrSV

∣∣ (7)

− c(∆tsv −∆trx) + diono + dtropo. (8)

In the above equation,δrSV is the error in the satellite co-ordinates,∆tsv is the satellite clock bias,diono is the iono-spheric delay, anddtropo is the tropospheric (or neutral at-mosphere) delay. These error sources and the techniquesto mitigate them are well documented – see, for example,Hofmann-Wellenhof et al.(1994). However, for complete-ness these errors and the specific steps taken in this projectto mitigate them are detailed below.

3.1 Satellite Position Errors

The GPS satellite position errors are commonly dividedinto along-track, across-track, and radial components. Dueto the great distance to the satellites, the former two errorcomponents do not significantly project onto the measuredranges. Thus, they can, effectively, be disregarded. The ra-dial error, however, directly impacts ranges observed fromthe satellites and must therefore be examined. Figure1shows the radial satellite position errors for the entireGPS

constellation during a one-week period in May of 2003.For this period, the root-mean-square (RMS) radial error isjust over 1.1m and the maximum error is close to 5m.

The satellite position error, radial or otherwise, is easilycorrected for using precise ephemerides. Precise ephem-erides are observed or predicted orbits that are freely avail-able from a number of organisations that include the UnitedStates’ National Imagery and Mapping Agency (NIMA ) andthe InternationalGPSService (IGS). In the case of the lat-ter, several products are available, with accuracies rangingfrom 25cm for predicted orbits to better than 5 cm for ob-served orbits with a two-week latency. Either accuracy iswell below the expected accuracy of the pseudorange mea-surements. Precise ephemerides typically have a sampleinterval of 15 minutes. To determine satellite positions be-tween samples, polynomial interpolation is normally used(Hofmann-Wellenhof et al., 1994). A seventh-order inter-polator is typically sufficient.

It should be noted that it is also possible to view theGPS

satellite position errors as errors in the control points defin-ing the photogrammetric network datum, instead of group-ing them with the other range errors as was done here. This

Page 3: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

0 172800 345600 518400−10

−5

0

5

10

GPS time (seconds)

Radia

l err

or

(m)

(a) Radial error

0 172800 345600 518400−10

−5

0

5

10

GPS time (seconds)

Clo

ck e

rror

(m)

(b) Clock error

Figure 1: Satellite radial position and clock errors(Entire constellation,GPSweek 1217)

implies that the satellite positions could be weighted in theadjustment instead of being fixed, just as theGPSexposurestation position observations are weighted in contemporaryGPScontrolled aerial photogrammetry.

3.2 Satellite Clock Biases

A satellite clock bias will manifest itself entirely as a rangeerror. Most of the satellite clock biases can be removed us-ing correction coefficients broadcast as part of the satelliteephemeris. The residual error that remains, however, canstill be significant. Figure1(b) shows the difference be-tween the broadcast and precise satellite clock corrections.When compared with Figure1(a), it can be seen that theresidual satellite clock error is larger than the radial satel-lite orbit errors. For the one week period shown in thefigure, theRMS clock error for the entire constellation wasjust under 2m, and the maximum error was close to 10m.

To correct for the residual satellite clock errors, preciseclock corrections can be used. Such corrections are nor-mally included with precise ephemerides, and, just as withprecise ephemerides, polynomial interpolation can be usedto determine the correction between sample epochs. Be-cause the satellite clocks are very stable, a lower-order in-terpolator can be used than that for the positions. However,regardless of the interpolator order, with 15-minute clockcorrections maximum errors of close to a metre may stilloccur. Fortunately, clock corrections at a 5-minute sampleinterval are also available from theIGS, and when thesehigher-rate corrections are used with a third-order interpo-lator, the maximum errors can be reduced to under half ametre.

3.3 Ionospheric Delays

Essentially, the only option for dealing with the ionosphe-ric delays is to use the ionospheric-free linear combination

to eliminate the first-order effects. The only other conve-nient option is to use the broadcast ionospheric predictionmodel to estimate its effect. However, the broadcast modelonly removes 50%-60% of the error, and can leave maxi-mum errors of some tens of meters.

Figure2shows the noise in the ionospheric-free linear com-bination, as determined by differencing the code and phasemeasured ionospheric error and removing the mean dif-ference. When such a difference is performed, all com-mon errors are eliminated, and what remains is predomi-nantly code multipath and receiver noise. For the satellitedepicted, the noise for the near-zenith measurement wasabout 0.3m. As the elevation of the satellite decreases, thenoise increases, following a relationship that – until about15◦ elevation – can roughly be described by

ε(e) =ε(90◦)sin(e)

, (9)

whereε(90◦) is noise at the zenith angle, ande is the satel-lite’s elevation angle. This simple cosecant relationshipwas used in this project to estimate the variances of theionospheric-free pseudorange observations.

10 20 30 40 50 60 70 800

2.5

5

Elevation (degrees)

Ion

osp

he

ric D

ela

y (

m)

Measured delay δ d

iono(90

°)/sin(e)

RMS delay

Figure 2: Measured code ionospheric delay noise(SV 1, day 2 ofGPSWeek 1217)

3.4 Tropospheric Delays

The errors due to the tropospheric delay are typically miti-gated using a combination of zenith-delay models and map-ping functions. The tropospheric models may use surfacemeasurements of temperature, pressure, etc., or they mayuse standard empirical values. In this project, theUNB2tropospheric model was used in conjunction with the Niellmapping function (Collins et al., 1996; Niell, 1996). Whenthe tropospheric delay is corrected for using a model, aresidual tropospheric delay (which is generally elevation-dependant) will still remain. Any residual delay commonto all satellites will, however, be compensated for in theestimate of the receiver clock offset.

4 TESTING AND RESULTS

The direct inclusion of theGPSpseudoranges in the bundleadjustment was tested using a block of imagery capturedusing a medium resolution digital camera with an imagesize of 4096×4096 pixels. The block consisted of 42 im-ages collected from 7 parallel flight lines at a flying heightof roughly 900m. Fifty-three well-distributed check points

Page 4: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

were available for comparing with the adjustment output.Dual-frequencyGPS observations at 2Hz were collectedalong with the imagery. Additionally, a dual-frequencybase station in the centre of the block collectedGPS ob-servations at 1Hz.

There were several problems with the data set that com-plicated the generation and analysis of results. Foremostamong these was that only orthometric heights were avail-able for the check points. Because an accurate geoid modelfor the test region was unavailable, these heights couldnot be converted into ellipsoidal heights compatible withthe GPS heights determined in the adjustment. In an ad-mittedly imperfect solution, the vertical datum shift wassolved for in an adjustment that treated all the check pointsas control points and used exposure station position ob-servations generated from the best possible dual-frequencycarrier-phaseGPSsolution (to solve for the datum shift itis necessary to constrain both datums). In addition to thelarge vertical datum shift, it was felt that there may alsohave been small horizontal datum shifts. These were notsolved for, and, if present, contribute to the mean errorsseen in the results presented below. An additional problemwith the data set was that the lens distortion available forthe camera was not in a format compatible with the adjust-ment software used. Consequently, the lens distortion wascalibrated for using the same adjustment that solved for thevertical datum shift. This may mean that the standard devi-ations in the results are somewhat optimistic as the cameramay ‘fit’ the data better than it should.

Before looking at the results available when theGPSmea-surements are included in the adjustment, it is worthwhileto get some idea of the noise within the network. Table1shows the results from a conventionally controlled adjust-ment where approximately one-third of the check pointswere used as control points. The remaining check pointswere used to calculate the statistics in the table. These re-sults should be an indication of the best possible accuracyavailable from the network.

Table 1: Check Point Error Statistics (m): Control Points

Horizontal Vertical

Mean 0.18 -0.19Std. dev. 0.09 0.45RMSE 0.20 0.49Absolute maximum(mean removed) 0.27 1.00

The comparison of results will primarily be done using thestandard deviations of the check point errors. This in ac-knowledgement of the fact that a mean error – primarilydue to unmodelled tropospheric delays – will almost cer-tainly be present in the networks determined using the un-differencedGPSpseudoranges. It may be tempting to be-lieve that theGPSerrors would ‘average out’ over the entireblock. Unfortunately, because of the relatively short time-span in which the imagery was captured, the errors at theindividual GPS stations will be highly correlated (duringthis time period, the troposphere and satellite positions do

not change significantly). The common errors amongGPS

stations will cause the entire network to translate.

Finally, it should be emphasised that in the tests that fol-low, no ground control points are used. The networks arecontrolled entirely by theGPSmeasurements.

4.1 Broadcast Orbits and Clocks

The first tests were performed using the broadcast satelliteorbits. Table2 contains the results for when the pseudo-ranges are included directly in the adjustment. Notably,the standard deviations of the check point errors are onlyslightly worse that those in Table1. In other words, di-rectly including theGPS pseudoranges in the adjustmentyields object space accuracies that are comparable to thoseobtained from the same network controlled via well-distri-buted ground control points. This is a promising first re-sult; however, it must be restated that the efforts made toovercome difficulties with the data may mean that this re-sult is somewhat optimistic.

Table 2: Check Point Error Statistics (m): Pseudorangeobservations, Broadcast Orbits

Horizontal Vertical

Mean 0.98 3.06Std. dev. 0.21 0.47RMSE 1.00 3.09Absolute maximum(mean removed) 0.46 1.25

Of course, rather than being directly integrated into thebundle adjustment, the pseudorange measurements can alsobe used to generate single-point exposure station positions.These positions could then be added to the adjustment asposition observations in the typical fashion (see2.1). Ta-ble 3 shows the results for when the network is controlledusing such positions. By comparing the results in this tablewith those in Table2, it can be seen that directly includingthe pseudoranges in the adjustment yields object space ac-curacies that are about 30% better than when single-pointposition observations are used. Both approaches use ex-actly the same data, but the closer integration that comesfrom directly including the pseudoranges in the adjustmentleads to a significant improvement in accuracy.

Table 3: Check Point Error Statistics (m): Single-point positionobservations, Broadcast Orbits

Horizontal Vertical

Mean 1.09 3.07Std. dev. 0.35 0.69RMSE 1.15 3.14Absolute maximum(mean removed) 0.63 1.61

In spite of the favourable standard deviations, it should benoted that, as predicted, large mean errors exist in bothtests shown above. In these tests, the mean error also re-flects the residual satellite clock error (and, to a lesser ex-tent, satellite position error) in addition to the unmodelledtropospheric delay spoke of above.

Page 5: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

4.2 Precise Orbits and Clock

The second set of tests were performed using the precisesatellite orbits and clocks. As alluded to above, this shouldreduce the mean errors in addition to improving overall ac-curacy. Both trends are visible in Table4, where both thestandard deviations and mean errors are substantially lessthan those in Table2. In the case of the standard deviations,an improvement of approximately 25% was observed. Sur-prisingly, the standard deviations are even better than thosefrom the ground-controlled network in Table1. This is anauspicious result; however in light of the problems with thedata, it is also one that needs further study.

Table 4: Check Point Error Statistics (m): Pseudorangeobservations, Precise Orbits

Horizontal Vertical

Mean 0.37 2.88Std. dev. 0.16 0.35RMSE 0.40 2.90Absolute maximum(mean removed) 0.47 0.97

As shows in Table5, the use of precise ephemeris alsoimproves results when single-point exposure station posi-tion observations are used to control the network. As withthe broadcast orbits, however, the position observations ap-proach is not as accurate as when the pseudoranges are di-rectly included in the adjustment.

Table 5: Check Point Error Statistics (m): Single-pointpositions observations, Precise Orbits

Horizontal Vertical

Mean 0.54 2.67Std. dev. 0.15 0.52RMSE 0.56 2.72Absolute maximum(mean removed) 0.61 1.34

5 ADJUSTMENT SOFTWARE

To perform the combined adjustment of photogrammetricandGPSdata, the original plan was to use an existing bun-dle adjustment software package developed as part of aprior research project (seeEllum, 2001, for details). Allthat was required was the addition of the equations devel-oped in section2.3. Most of the GPS-specific calculations,such as orbit calculation and application of atmosphericcorrections, could have been done in stand-alone programsprior to commencement of the bundle adjustment. How-ever, rather than follow this path, it was decided that thestart of a new research project presented a good oppor-tunity to rework the current software, making it easier tomaintain and extend.

To satisfy the two goals of maintainability and extensi-bility, the adjustment program has been divided into in-dividual adjustment modules as shown in Figure3. Inthis scheme, the overall adjustment is divided into sub-adjustments that are connected in a hierarchical fashion.

Each sub-adjustment need only make a few generic rou-tines available to the parent adjustment. The parent adjust-ment then only has to call the routines in the appropriateorder. The strategy is further simplified through inheri-tance and polymorphism – all the adjustments can inherita generic behaviour from a common base, or, when neces-sary, implement their own custom behaviour. A programfollowing this design is more maintainable than a singlemonolithic design because the individual adjustments (andadjustment quantities) can be tested and debugged in iso-lation. Also, the inheritance and polymorphism results inless code, further improving maintainability.

���������

�����������

���� ���

�������� ������

���� ���

����

���� ���

���� ����� ������������

���������

������������

� ����

������ ����

���������

�����������

�����������������

����������� ����� �����

������������

��������

������������

�����

�������

������������

!��������

"�����

�����

#���$�����

�����

$� ����

%���������

�&&�������

���� ����

��������

�������

�������������������

���������

� ���������

���

�����������������

���������

!����&��'����(

����������

�����������

���

)������

&�������

����

������ ����

*�+��,��������%�������������

)��+��� ��

����

������������

Figure 3: Design of combined adjustment program

A disadvantage of organising the adjustment in the man-ner described above is that it makes it more difficult to usethe reduced normal equations when solving the system ofequations. This is because the primary adjustment module,which is responsible for solving the system of equations,has no knowledge of the structure of the normal matrix.For it to maintain such knowledge would be contrary tothe goal of genericity. As a consequence, no special tech-niques – such as the method of reduced normals – are usedwhen solving the system of equations, and the system issolved using Cholesky decomposition only. Naturally, thisresults in degraded performance. At first, this was a con-cern; however, at the same time as the adjustment was be-ing re-implemented a move was also being made towardsthe use of machine-specific tunedBLAS (Basic Linear Al-gebra Subprograms) andLAPACK (Linear Algebra PACK-age) libraries (Anderson et al., 1999). These libraries con-tain high-performance routines for performing matrix op-erations and for solving linear systems, and these routinesreplaced the naıve (but optimised) ‘C’ and ‘C++’ routinesthat had been previously been responsible for such opera-tions. BLAS andLAPACK libraries are freely available formost computing platforms – in this case, theATLAS (Au-tomatically Tuned Linear Algebra Software) library wasused (ATLAS, 2003). As it turned out, the improvementfrom using these libraries far outweighed the costs of notusing the reduced normal equations. As shown in Table6, the time required for a moderately sized adjustment us-ing Cholesky decomposition and the tuned libraries wasless than one-third the time required when the reduced nor-mal equations were used with the existing naive routines.

Page 6: INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT · INTEGRATION OF RAW GPS MEASUREMENTS INTO A BUNDLE ADJUSTMENT ... GPS measurements are first processed using an external

It should be emphasised that naıve does not mean non-optimised, as the existing routines had been compared witha number of other implementations and had been found tobe superior.

Table 6: Timings (Pentium IV 1.7GHz, 58 Photos, 1207Redundancy)

Solution Solution Implementation

Technique Naıve ‘C’ BLAS/LAPACK

Choleskydecomposition 92.3s 10.9sReducednormals 33.3s 5.2s

6 CONCLUSIONS AND OUTLOOK

Difficulties with the data used during testing mean that it isnot possible to state any conclusions definitively. However,the results appear to indicate the following:

Directly includingGPSpseudoranges in a photogram-metric bundle adjustment yields relative mapping ac-curacies close to those available from a network con-trolled using ground control points.Despite using exactly the same data, directly includ-ing GPSpseudoranges in a photogrammetric bundleadjustment provides better results than when single-point exposure station position observations are used.Regardless of whether the pseudoranges are directlyincluded in the adjustment or single-point exposurestation position observations are used, precise orbitsand clocks can substantially improve mapping accu-racy.

With regards to the software implementation of the com-binedGPS/photogrammetric adjustment, an object-orient-ed program design can improve both maintainability andextensibility of the software. Also, use of tuned linear al-gebra libraries can dramatically improve performance ofnumerically intensive adjustment computations. Their useis advised even for moderately sized adjustment problems.

To the best of the author’s knowledge, neither the tech-nique of including theGPS pseudoranges in a bundle ad-justment, nor a hierarchical combined photogrammetric/GPS/network adjustment have been discussed in the litera-ture before. Both are, however, straightforward extensionsof existing practices.

A number of investigations closely related to this paperhave been performed but could not be included here be-cause of length restrictions. Foremost among these aretests with fewer than three satellites. Also, the techniqueof including rawGPSmeasurements has been extended toinclude double-difference code ranges. Both of these in-vestigations will be discussed in a forthcoming paper.

Finally, it should be noted that the ultimate goal of this re-search is the creation of an integratedGPS/photogrammet-ric processing package. In such an arrangement, the photo-grammetric adjustment would feed position updates into

a GPSKalman filter, aiding theGPSambiguity resolution.TheGPSfilter would, in turn, feed highly accurate ambigu-ity resolved carrier-phase ranges into the photogrammetricadjustment.

ACKNOWLEDGEMENTS

As the author’s supervisor, Dr. Naser El-Sheimy is thankedfor his ongoing personal and financial support. Joe Huttonand Dr. Mohammed Mostafa at Applanix, Inc. are thankedfor providing the data used in this study. Funding for thisresearch was provided by the Killam Trusts and the Natu-ral Sciences and Engineering Research Council of Canada(NSERC).

References

Ackermann, F., 1992. Kinematic GPS control forphotogrammetry. Photogrammetric Record 14(80),pp. 261–276.

Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel,J., Dongarra, J., Croz, J. D., Greenbaum, A., Hammar-ling, S., McKenney, A. and Sorensen, D., 1999. LA-PACK Users’ Guide. 3rd edn, Society for Industrial andApplied Mathematics (SIAM), Philadelphia.

ATLAS, 2003. Automatically tuned linear algebra software(ATLAS). URL http://math-atlas.sourceforge.net, accessed 28 May, 2003.

Collins, P., Langley, R. and LaMance., J., 1996. Limit-ing factors in tropospheric propagation delay error mod-elling for GPS airborne navigation. In: The Institute ofNavigation 52nd Annual Meeting, The Institute of Nav-igation (ION), Cambridge, MA, U.S.A., pp. 519–528.

Ellum, C., 2001. The development of a backpack mobilemapping system. Master’s thesis, University of Calgary,Calgary, Canada.

Greening, W., Chaplin, B., Sutherland, D. and DesRoche,D., 1994. Commercial applications of GPS-assistedphotogrammetry. In: GIS/LIS 1994, pp. 390–401.

Hofmann-Wellenhof, B., Lichtenegger, H. and Collins, J.,1994. GPS: Theory and Practice. 3rd edn, Springer-Verlag, New York.

Kruck, E., Wubbena, G. and Bagge, A., 1996. Advancedcombined bundle block adjustment with kinematic GPSdata. In: Proceedings of the 18th ISPRS Congress,International Archives of Photogrammetry and RemoteSensing, Volume 31, PartB3, International Society ofPhotogrammetry and Remote Sensing (ISPRS), Vienna,pp. 394–398.

Mikhail, E. M., Bethel, J. S. and McGlone, J. C., 2001.Introduction to Modern Photogrammetry. John Wileyand Sons, Inc., New York.

Niell, A., 1996. Global mapping functions for the atmo-sphere delay at radio wavelengths. Journal of Geophys-ical Research 11(B2), pp. 3227–3246.