A returning booster must null three numbers at once by the moment it reaches the catch arms: vertical speed, lateral offset from the tower centerline, and lateral speed. The engines only give you two real controls to do it with — how hard they push, and which way they point.
Thrust: F = throttle × F_max (F_max = 3 sea-level engines)
Mass flow: ṁ = F / v_e v_e = I_sp·g₀ ≈ 3236 m/s
Vertical: m·(dv_y/dt) = F·cos(θ) − m·g
Lateral: m·(dv_x/dt) = F·sin(θ) + wind
Catch test (at h = arm height):
|v_y| ≤ 3 m/s AND |v_x| ≤ 1.5 m/s AND |x| ≤ gap/2
- Throttle sets thrust magnitude, which also sets propellant burn rate via the rocket equation ṁ = F/v_e — mass drops as you burn, so the same throttle gives more deceleration late in the burn than early.
- Gimbal angle tilts the whole thrust vector: part of it still fights gravity (F·cosθ), part of it steers sideways (F·sinθ). Steering hard costs vertical deceleration — you cannot max out both at once.
- Crosswind is a constant lateral force you have to counter continuously with a small opposing gimbal bias, exactly as flight computers trim against real wind shear on ascent and descent.
- Catch-arm gap is the difficulty knob: a narrower gap (as SpaceX's real "Mechazilla" arms use) demands tighter lateral control at touchdown than simply landing on legs.
This is the control problem behind SpaceX's Super Heavy booster catch, first flown successfully in October 2024: instead of legs, the booster's own grid-fin support pins are caught by two arms on the launch tower, saving the mass and complexity of a landing-leg structure — but only if the vehicle arrives dead-centered and nearly motionless.