Gautam, D., Watson, C., Lucieer, A., & Malenovský, Z. (2018). Error Budget for Geolocation of Spectroradiometer Point Observations from an Unmanned Aircraft System.Sensors, 18(10), 3465.
這篇是本文的骨架。它把 GNSS 與 IMU 的誤差逐項傳播過整個空中定位模型,並逐一分析視場角、積分時間、飛行速度、離地高度與 IMU 等級的影響。結論裡最重要的一句是:飛行高度與姿態量測精度的影響最大。它的實驗條件(10 m 離地、3 m/s)跟一般吊艙差很遠,所以下面第三節我用自己的參數重算,但方法直接沿用它。
Hosseinpoor & Samadzadegan (2016). Precise Target Geolocation and Tracking Based on UAV Video Imagery.ISPRS Archives, XLI-B6, 243–249.
Gautam, D., Watson, C., Lucieer, A., & Malenovský, Z. (2018). Error Budget for Geolocation of Spectroradiometer Point Observations from an Unmanned Aircraft System. Sensors, 18(10), 3465. DOI: 10.3390/s18103465
Hosseinpoor & Samadzadegan (2016). Precise Target Geolocation and Tracking Based on UAV Video Imagery. ISPRS Archives, XLI-B6, 243–249. Link
Improving Target Geolocation Accuracy with Multi-View Aerial Images in Long-Range Oblique Photography (2024). Drones, 8(5), 177. DOI: 10.3390/drones8050177
Vision-Based Geolocation of Moving Ground Targets Using Kalman Filtering with a Gimbal Camera on Board a UAV (2025). Aerospace, 12(12), 1065. Link
Ekstrand, B. (2001). Equations of Motion for a Two-Axes Gimbal System. IEEE Transactions on Aerospace and Electronic Systems, 37(3), 1083–1091. Link
Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.
This is the twenty-sixth post in the LocalPapa Notes dev-log series, and the ninth on gimbals.
The previous eight share a boundary: all of them stop at holding the line of sight steady. Posts 21 through 24 size the motor; post 25 covers the three loops that hold it. But the actual mission is usually not "hold steady" — it is "where is that thing". Once the LOS is stable, you have to turn it into a latitude and longitude and hand that over.
That step leaves the gimbal proper and runs through a whole chain of coordinate frames. It has been a gap in this series; this post fills it.
The literature
Target geolocation from UAVs is a mature topic. These four each contribute a different piece:
Built on a UAV electro-optical stabilized imaging system, computing geodetic coordinates for multiple targets by homogeneous coordinate transformation. Its contributions are the two refinements: real-time zoom lens distortion correction, and recursive least squares filtering based on dead reckoning. The first cuts single-image circular error probable (CEP) by 7%, the second by a further 25% over single-image localization. What matters here is that it writes the whole chain as a sequence of homogeneous transforms — that structure is exactly figure 1 below.
Gautam, D., Watson, C., Lucieer, A., & Malenovský, Z. (2018). Error Budget for Geolocation of Spectroradiometer Point Observations from an Unmanned Aircraft System.Sensors, 18(10), 3465.
This is the skeleton of this post. It propagates GNSS and IMU errors term by term through an aerial georeferencing model, analyzing field of view, integration time, flight speed, above-ground height and IMU grade. The key sentence in its conclusions: flying height and orientation measurement accuracy have the largest influence. Its experimental conditions (10 m AGL, 3 m/s) are far from a typical pod, so section three below recomputes with my own parameters — but the method comes straight from this paper.
Hosseinpoor & Samadzadegan (2016). Precise Target Geolocation and Tracking Based on UAV Video Imagery.ISPRS Archives, XLI-B6, 243–249.
RTK GPS plus thermal video through classical photogrammetric bundle adjustment, then an extended Kalman filter to smooth target position and velocity. It states plainly that the C/A-code GPS and low-cost IMU on typical commercial UAVs give only 5–10 m, and measures RTK improving geolocation accuracy by more than tenfold. That is the most direct evidence available for "the geolocation error is mostly not in the gimbal."
Improving Target Geolocation Accuracy with Multi-View Aerial Images in Long-Range Oblique Photography (2024).Drones, 8(5), 177.
Specifically about long-range oblique photography: as shooting distance grows, measurement errors become far more evident. Its approach uses multiple images taken from different positions to optimize the camera, escaping heavy dependence on GNSS/INS accuracy. This overlaps completely with sections two and three below — long-range oblique is the low-grazing-angle case.
Vision-Based Geolocation of Moving Ground Targets Using Kalman Filtering with a Gimbal Camera on Board a UAV (2025).Aerospace, 12(12), 1065.
A full gimbal-camera geolocation pipeline with a tracking module and a UKF. Its relevance here is that it puts gimbal geometry explicitly inside the geolocation model, rather than treating the gimbal as an ideal direction sensor.
These papers answer "how to compute it more accurately." They assume you already know what the chain looks like. Section one draws it out, because when you lack hands-on experience the thing you miss is never the formula — it is one of the hops in the middle.
Scope of citation in this post
The method and contribution descriptions above come from abstracts and public paper pages. Access limits meant I could not verify every full text, so no unverified experimental values are quoted. Author lists are given only as far as I could verify them; where I could not, the paper is cited by title alone. Every number in section three is computed from parameters I set myself; none of them are copied from a paper.
1. The chain: from one pixel to a latitude
Figure 1: Eight frames and seven transforms. The colored brackets split the chain in two — the first six hops only rotate, never move the origin, so their errors are angular; only the last two add length errors. The right-hand columns list what each hop injects and how big it is.
Starting from the pixel you clicked on:
Image pixel → camera frame — the intrinsic matrix turns (u, v) into a line-of-sight direction. Error comes from intrinsics and distortion-correction residual, about 0.1 mrad.
Camera → elevation frame — this hop is the boresight: the camera's optical axis never coincides exactly with the elevation frame's mechanical axis.
Elevation → azimuth frame — rotate by the elevation encoder reading. Error is encoder zero and eccentricity.
Azimuth frame → gimbal base — rotate by the azimuth encoder reading. Error is zero offset and the orthogonality of the two axes.
Gimbal base → body — mounting-face alignment, plus the lever arm: the offset between the gimbal's center of rotation and the GNSS antenna phase center.
Body → local NED — rotate by the attitude estimate (roll/pitch/yaw). This hop is usually the largest angular term in the whole chain.
NED → ECEF → WGS84 — add the vehicle's position. This is the first hop that introduces a length error.
Intersect the ray with terrain — cast the ray onto the DEM; the intersection is the target. This is where elevation error enters.
One thing to hold onto: the first six hops are pure rotations. They never move the ray's origin, only its direction, so their errors are all angular — and angular errors get multiplied by slant range. The seventh hop introduces position error for the first time, the eighth introduces elevation error. Those two are lengths; slant range does not amplify them.
That boundary is the whole content of the next two sections.
2. Two error types, two geometries
Figure 2: The geometry of each error type. Panel (a) is angular error, sliding the intercept along the ground; panel (b) is elevation error, where the ray hits early or late. Both panels use the same grazing angle, so the two displacements can be compared by eye.
Let the vehicle be at height h, with the line of sight meeting the ground at grazing angleγ (γ = 90° is straight down; small γ is a distant oblique look).
The horizontal distance to the ground intercept is:
`` d = h · cot γ ``
Angular error. Differentiate with respect to γ:
`` ∂d/∂γ = − h / sin²γ ⇒ Δd = h · δθ / sin²γ ``
Note that is sin², not sin. There are two amplifications stacked: slant range itself is h/sin γ, and the intercept sliding along the ground divides by sin γ a second time (the flatter the ray, the more horizontal distance a given vertical displacement buys).
Elevation error. If the assumed DEM surface sits δh below the real terrain, the ray hits later:
`` Δd = δh / tan γ ``
This is the third time the series has hit the secant family.Post 24's yaw gain is 1/cos(el), post 25's track loop is cos(el), and here it is 1/sin²γ. All three are the same thing: geometry has squashed the resolution along one direction, and the price shows up as a trig function.
3. The error budget, with numbers in it
A set of parameters typical of a pod:
Height above ground h = 300 m
Attitude measurement 1σ = 0.5 mrad (body → NED)
Encoders plus alignment 1σ = 0.5 mrad (the camera → base hops combined)
Terrain elevation 1σ δh = 5 m (the order of magnitude of a public DEM)
Vehicle horizontal position 1σ = 1.5 m
Figure 3: The three error terms and their combination against grazing angle (log vertical axis). The terrain curve and the combined curve sit almost on top of each other — that is the point of the figure.
First, the angular term grows 132× from 90° to 5°. That is exactly 1/sin²(5°) = 131.6. The formula is not being dramatic; that is simply its shape.
Second, the terrain term beats the angular term at almost every grazing angle. Setting them equal gives sin 2γ = 2h·δθ/δh, i.e. 87.5° (the other root, 2.5°, is outside the usable range). In other words, pointing accuracy dominates only in the narrow band almost directly below you; the moment you look obliquely, what dominates is your ignorance of the terrain.
Third, the combined error goes from 1.5 m to 63.8 m — a factor of 42. And nothing about your gimbal got worse along the way.
4. So where should the money go
The practical conclusion is blunt, and it runs against intuition:
Doubling the gimbal's pointing accuracy barely helps on an oblique look. At 10° grazing, angular is 7.11 m, terrain 28.36 m, combined 29.27 m. Halving the angular error to 3.56 m moves the combined figure from 29.27 to 28.62 — a 2.2% improvement. Buying a more expensive IMU or a higher-grade encoder for that 2% is throwing money away.
Three things that actually work:
One: a laser rangefinder. A range measurement bypasses terrain error entirely — you no longer have to guess where the ray meets the ground, you measure the slant range directly. It is the single most effective move, and it is why any pod of consequence carries one.
Two: a better DEM. Going from 5 m to 1 m drops the terrain term at 10° from 28.36 to 5.67 and the combined figure from 29.27 to 9.21. A 68.5% improvement — an order of magnitude better than the 2% above.
Three: boresight calibration. This is the only item that costs no hardware. If the mounting error between the camera's optical axis and the mechanical axis is not calibrated out, it biases systematically, and it does so at the very front of the chain where the full slant range multiplies it. More than one of the papers above stresses that an uncalibrated mounting error between a high-accuracy navigation module and the electro-optical device seriously degrades localization. The procedure: shoot several sets of ground control points of known coordinates at various azimuths and elevations, and solve the residuals into a fixed rotation offset. Do it once and every subsequent fix benefits.
5. Looking back at the earlier posts
This post changes some of the trade-offs made earlier, so it is worth being explicit:
Where the pointing-accuracy spec should come from. The θ_max = 0.1 mrad used in earlier posts comes from image quality — LOS jitter smears the picture. But what geolocation demands of pointing accuracy is, from the table above, far looser. These are two different specs from two different requirements; do not let one hold the other hostage. Stabilization needs 0.1 mrad for the image; geolocation on an oblique look would find even 1 mrad over-specified, because it never gets to be the dominant term.
How good the encoder needs to be. Same logic. Past about 0.2 mrad, encoder accuracy has very little marginal value for geolocation. Its real value is elsewhere — post 25's position-loop feedback quality, and repeatability during boresight calibration.
The nadir keep-out is back.Post 24 showed a two-axis gimbal cannot slew fast enough near straight down. The interesting part is that straight down is exactly where geolocation is most accurate (1.5 m combined). The two pull in opposite directions: the mechanism says stay away from nadir, geolocation says get as close as you can. There is no purely mechanical fix — it is an inherent cost of the two-axis architecture. Accept it, or go to three axes.
The limits of this analysis
Flat terrain and a single-point intersection only. Real terrain has slope, and slope amplifies the δh/tan γ term further (a ray hitting a slope facing you behaves differently from one hitting a slope facing away). Not handled here.
Errors are RSS'd as independent 1σ terms. In reality attitude error and lever-arm effects are correlated, and boresight is a systematic bias rather than a random error — RSS underestimates systematic terms. This post treats boresight as "calibrate it out" rather than "budget for it."
Every magnitude is a typical value I chose, not a measurement. Different hardware moves all the numbers; but the direction of the three conclusions (1/sin² amplification, terrain dominance, calibrate the boresight) does not change.
No dynamics. A moving target, a moving vehicle, image latency — all contribute further error, and all belong to the Kalman filtering layer. See Hosseinpoor 2016 and the 2025 Aerospace paper above.
How to work through this with me
To apply this to your pod, have these ready:
Your typical operating height and grazing-angle range (these two decide everything)
The grade of your attitude source (MEMS AHRS? tactical-grade IMU? RTK-aided?)
Encoder specs and the orthogonality of the two axes
Whether there is a laser rangefinder, and if so its range and accuracy
Which DEM you have and its nominal elevation accuracy
Whether the boresight has been calibrated, and by what method
If something's missing, say it's missing — I won't guess a value and fill it in for you.
Gautam, D., Watson, C., Lucieer, A., & Malenovský, Z. (2018). Error Budget for Geolocation of Spectroradiometer Point Observations from an Unmanned Aircraft System. Sensors, 18(10), 3465. DOI: 10.3390/s18103465
Hosseinpoor & Samadzadegan (2016). Precise Target Geolocation and Tracking Based on UAV Video Imagery. ISPRS Archives, XLI-B6, 243–249. Link
Improving Target Geolocation Accuracy with Multi-View Aerial Images in Long-Range Oblique Photography (2024). Drones, 8(5), 177. DOI: 10.3390/drones8050177
Vision-Based Geolocation of Moving Ground Targets Using Kalman Filtering with a Gimbal Camera on Board a UAV (2025). Aerospace, 12(12), 1065. Link
Ekstrand, B. (2001). Equations of Motion for a Two-Axes Gimbal System. IEEE Transactions on Aerospace and Electronic Systems, 37(3), 1083–1091. Link
Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.