This is the twenty-third post in the LocalPapa Notes dev-log series. Layer 3 of the handbook in post twenty-one worked through a complete eight-step example whose numbers match the motor sizing calculator's defaults digit for digit. But those defaults describe one particular form factor: a payload with a 50mm moment arm and 0.025 m² frontal area, hanging exposed in the airstream, some distance from the rotation axis.
Most gimbals in actual use don't look like that. EO/IR pods are almost always built as balls, and the entire point of that shape is to put the rotation axes near the center of pressure so the moment arm shrinks by an order of magnitude. So does the conclusion change if you rerun the numbers for a ball gimbal?
This post is that rerun. Along the way it turns up something the handbook doesn't mention, and that I only noticed after doing the arithmetic: the "13.0% friction" in that breakdown table isn't a property of that design at all — it's an identity of the model.
Figure 1: the moment arm in both form factors, drawn 1:1 to actual size. Drag acts at the center of pressure, and torque is that force times its distance to the rotation axis — going to a ball shape cuts that distance from 50mm to 12mm.
What this is
The subject is a mid-size tri-sensor ball gimbal — EO zoom, thermal, and laser rangefinder in a single ball, slung under a multirotor or unmanned helicopter. A very common class on the market.
Important: every input value below is my estimate for this class of device, not a published specification from any manufacturer. The value of this post is in the derivation and the sensitivities, not in these particular numbers. If you have real specs, substitute them and rerun — the method is identical.
Where each estimate comes from
Worth being explicit up front, because every conclusion in the second half rests on these.
Ball diameter 150 mm — the minimum that fits a 30x zoom lens group plus thermal plus LRF.
Total mass 1.8 kg, inner assembly about 1.0 kg — typical for the class.
Frontal area A = 0.0177 m² — ball projection, π × 0.075² = 0.01767. Shared across all three axes.
Drag coefficient Cd = 0.60 — a smooth sphere runs about 0.47 at this Reynolds number, but the AIAA SciTech 2021 paper covered in post twenty-two found realistic turrets with protruding windows and rotational-mechanism seams exceed a clean hemisphere-cylinder by 40%+, so it's raised to 0.60.
Moment arm L_arm: Roll 5mm / Pitch 12mm / Yaw 8mm — this is the big difference from an exposed payload. The ball layout puts all three axes near the sphere's center, leaving only the center-of-pressure offset, which I put at roughly 15% of the radius. The three differ because the force direction does: drag acts along the flight direction, so it produces almost no moment about the Roll (longitudinal) axis, while about the Pitch (lateral horizontal) axis it multiplies by the vertical offset — the largest of the three.
Inertia J: Roll 0.0012 / Pitch 0.0020 / Yaw 0.0038 kg·m² — from J = m·k² with radii of gyration of 35 / 45 / 50 mm. Yaw is outermost, carrying both inner stages plus the shell, so it's the largest.
Bandwidth f_bw: 12 Hz roll/pitch, 10 Hz yaw — typical for the class; yaw is usually lower.
Target angular deviation θ_max = 0.1 mrad — what 30x zoom demands of residual LOS.
Torque constant Kt = 0.10 N·m/A — a frameless direct-drive motor of this size.
Speed v = 20 m/s, gust factor 1.4 — cruise ceiling for a multirotor or unmanned helicopter.
First, the model: what this axis is working against
The formula looks the way it does because it describes a very specific physical situation. Draw that situation once and you no longer have to memorise where each term comes from.
Figure 2: free-body diagram of the pitch axis. The three torques differ in kind — wind is steady resistance from airflow acting at the center of pressure, friction is mechanical resistance from bearings and cabling (independent of airspeed), and inertia is not resistance at all but the demand to actively counter-accelerate when the airframe moves. The motor has to cover all three, then a safety factor on top.
Note that the dashed term is different in kind: wind and friction are imposed on you from outside, while the inertia term is something you have to actively produce. That is why the first two are about holding position and the third is about reserving acceleration.
The full three-axis calculation
Shared steps. Design speed and drag are identical across axes (same external shape):
v_design = 20 × 1.4 = 28 m/s
F_drag = ½ × 1.225 × 28² × 0.60 × 0.0177 = 5.0997 N
Those seven steps read more clearly as a picture — which input feeds which step, and where the three paths merge:
Figure 3: the full formula chain with the pitch axis's actual numbers. Three paths (wind, inertia, friction) each produce their own torque; only after they merge does the safety factor apply, and only then the conversion to current. Heavy borders mark the chain's three outputs.
All three axes (N·m):
Roll: T_wind 0.02550, T_inertia 0.00068, T_friction 0.00393, T_required 0.07527, I_cont 0.255 A, I_peak 0.753 A
Pitch: T_wind 0.06120, T_inertia 0.00114, T_friction 0.00935, T_required 0.17921, I_cont 0.612 A, I_peak 1.792 A
Yaw: T_wind 0.04080, T_inertia 0.00150, T_friction 0.00634, T_required 0.12161, I_cont 0.408 A, I_peak 1.216 A
ΣI_peak = 3.761 A with all three at peak simultaneously. Pitch is the bottleneck, because its moment arm is the largest.
Finding 1: the "13.0% friction" in the breakdown table is an identity
The handbook's Layer 3 example reports the three shares as "wind 85.1%, friction 13.0%, inertia 1.8%." My ball gimbal has a completely different form factor — a quarter of the moment arm, smaller area, higher speed — and it comes out as:
Figure 4: the three shares across four form factors. The dashed line marks the left edge of the friction segment — all four align exactly, because that segment's width doesn't depend on the design at all.
All three axes land on 13.04%, to the digit. So does the handbook's example. That's not a coincidence:
T_wind and T_inertia cancel between numerator and denominator. As long as the friction ratio is set to 15%, that cell reads 13.04% forever — regardless of what your gimbal looks like, how fast it flies, or what it weighs.
What this means: the breakdown table has two degrees of freedom, not three. The only information you're actually reading is the ratio of wind to inertia; the friction column carries no design information at all. If you've ever looked at that table and thought "fine, friction is only 13%" — that 13% wasn't measured, it's the 15% you typed in, divided by 1.15.
Finding 2: so the proportional friction model underestimates on a ball gimbal
The proportional model puts Pitch axis friction at 0.00935 N·m. But a ball gimbal runs precision bearings plus a slip ring, and static friction torque for that kind of mechanism is realistically around 0.02 N·m — friction is an absolute quantity set by the mechanism, and has nothing to do with whether there's wind today or how fast you're flying.
Rerunning with an absolute 0.02 N·m:
Roll: T_required goes from 0.07527 to 0.11545 (×1.5), I_peak 1.155 A
Pitch: from 0.17921 to 0.20583 (×1.1), I_peak 2.058 A
Yaw: from 0.12161 to 0.15574 (×1.3), I_peak 1.557 A
ΣI_peak rises from 3.761 A to 4.770 A.
Roll shifts the most, for a direct reason: it has the smallest T_wind (only a 5mm arm), so the proportional model shrinks along with it and returns 0.00393 N·m — a fivefold underestimate.
The rule fits in one sentence: the smaller T_wind is, the less that 15% can be trusted. Aerodynamics-dominated designs (long arm, high speed) can live with the proportional model; ball-shaped, low-speed, or indoor designs need friction estimated or measured as an absolute quantity.
Finding 3: L_arm dominates everything, and it's the hardest to estimate
Sweeping the Pitch axis moment arm from 0 to 50mm (friction held at the absolute 0.02):
L_arm = 50mm: T_wind 0.2550, T_required 0.6903, I_peak 6.90 A, wind share 92.3% (the handbook's exposed payload)
Figure 5: the moment-arm sweep. The orange line (wind) crosses the dashed green line (absolute friction) at 3.9mm — to the left of that, friction is the dominant term. This post's 12mm baseline already sits well inside the wind-dominated region.
From 0 to 30mm, T_required spans 8.2×. The entire mechanical value of a ball gimbal is in driving that number down — get it under 3.9mm and friction takes over from aerodynamics as the dominant term.
The awkward part: L_arm physically means the distance from the center of pressure to the rotation axis, and on a bluff body with separated flow, the center of pressure moves with angle of attack. A ruler can't measure it. It is simultaneously the most uncertain and the most influential term in the chain — which is exactly the conclusion of cluster 4 in post twenty-two: once you have CFD, take the hinge moment directly and replace the whole Cd × A × L_arm decomposition rather than calibrating Cd.
Sensitivity ranking for everything else
Baseline is the Pitch axis at L_arm = 12mm with absolute friction, varying one term at a time:
v 20 → 25 m/s: T_required+41.8%
friction 0.02 → 0.04 N·m: +24.3%
Cd 0.60 → 0.75: +18.6%
v 20 → 15 m/s: −32.5%
Cd 0.60 → 0.45: −18.6%
θ_max relaxed 10× (0.1 → 1 mrad): +12.4%
f_bw 12 → 20 Hz: +2.5%
J doubled (0.0020 → 0.0040): +1.4%
Figure 6: the same list as a tornado, one row per parameter spanning its low and high end. Row length is exactly "how much is this term worth measuring precisely" — descending from the top.
Doubling J moves the answer 1.4% — the same conclusion the handbook example reached (2.1% there). Don't spend effort computing J precisely. That time is far better spent nailing down the airframe's speed ceiling and measuring friction.
Sizing: what motor these axes need
Pitch requires T_required 0.206 N·m (absolute-friction version) and T_cont 0.061 N·m. Note T_requiredalready includes SF 2.5, so the "headroom" below is what's left on top of that 2.5×, not the total safety factor.
Comparing the three catalog entries with complete motor constants in the calculator:
All three pass, but GL30 has only ×1.4 left, which is too tight for estimated inputs — if my L_arm is low by a factor of two, it no longer fits. And L_arm is precisely the term shown above to be the most uncertain. Until you have CFD or a measured hinge moment, that headroom shouldn't be spent.
GL60 II is the more defensible pick, at a weight cost. That's the essence of sizing: headroom buys you "still works when the estimate was wrong," and whichever term you're least sure of is what sets how much you need.
One methodological caveat
The calculator defines θ_max as "the maximum residual deviation allowed," yet the formula α = (2π·f_bw)² × θ_max behaves such that a tighter spec demands less torque — which is what produces the "relaxing θ_max 10× costs +12.4%" line in the sensitivity table above.
That's counterintuitive because it isn't a disturbance-rejection derivation; it's a heuristic for how much angular acceleration authority to reserve at the bandwidth edge. Drawing the expression makes clear what it actually computes:
Figure 7: where α comes from. Assume the gimbal performs a simple-harmonic correction of amplitude θ_max at the bandwidth edge; differentiate twice with respect to time and you get the peak angular acceleration. The two α traces have identical θ_max and differ only by a factor of two in frequency — yet their amplitudes differ by four. That is the square in the formula.
The handbook already flags that the calculator uses a simplified simple-harmonic estimate rather than a full dynamic model. For real design work, T_inertia should be driven by the amplitude of the disturbance you must cancel (how much attitude disturbance the airframe produces near f_bw), not by the residual target.
This post follows the tool's formula so the numbers match when you open the calculator alongside it. But pushing this term further requires a different derivation.
The limits of these estimates
Worth restating, because it governs how you can use this:
Every input is an estimate, derived from "this class of pod is roughly like this" engineering reasoning — not from any manufacturer's published specification.
What's durable is the sensitivities and relative relationships (L_arm spanning 8.2×, J moving only 1.4%, friction pinned at 13.04% by identity). Those don't change when the inputs do.
Do not take the absolute numbers into a sizing decision. Substitute your own dimensions, mass, and speed and rerun — the process is exactly the same.
How to work through this with me
To apply this to your own gimbal, having these ready makes it much faster:
Outer diameter and frontal projected area of the ball (or payload)
The offset from the rotation axis to the center of pressure — or better, a hinge moment from CFD or a wind tunnel
Per-axis inertia, or the mass and rough dimensions of the inner and outer frames
The airframe's maximum flight speed
Bearing arrangement, preload, and whether cables route through a slip ring or cross the axis directly (this decides whether the proportional friction model still applies)
If something's missing, say it's missing — I won't guess a value and fill it in for you.