Can SpaceX land a rocket with 1/2 cm accuracy?

No. But they don’t need to.

In preparation for the 5th test flight of Starship, SpaceX announced that they would try to catch the booster using “Mechazilla’s chopsticks.” Later during pre-launch discussions, SpaceX VP Bill Gerstenmaier claimed that they were confident of success since they had landed the booster in the ocean during Flight 4 with “half a centimeter accuracy.” And then last Sunday they went for the landing and nailed it!

But did they really nail it to within half a centimeter? That number sounds too good to be true, and it sparked quite a bit of skepticism from industry observers. What can SpaceX really expect for their landing accuracy?

My background: I am an aerospace engineer who has designed guidance, navigation, & control (GNC) systems for successful orbital launch vehicles, worked with RTK precision GPS systems on the ground, and implemented GNSS systems on satellite constellations. Standard disclaimer that I am only speaking for myself, and am only using public non-ITAR information. I don’t know what SpaceX is using to estimate the position and orientation on their rockets or their exact control schemes, and I might be missing some information that they’ve made public, but I am well versed in what goes into the design space and can make some good guesses. Please comment if I’m missing anything. Also this post isn’t really meant as a “gotcha” – Bill’s half a centimeter quote is really just a hook for the post. It makes for a good excuse to dive into some cool engineering!

So buckle in for a deep dive and let’s look at what goes into catching a rocket!

Main Points:
  • Half a centimeter landing accuracy is not possible to even measure in real time, and Bill likely misspoke or was talking about control error.
  • SpaceX Super Heavy booster landing margins are so wide that you could land one with your smartphone’s navigation sensors.
  • Falcon 9 is harder to land.
  • The Super Heavy booster might still be able to land in an engine-out scenario.
  • Catching the booster is an absolutely tremendous achievement that the team should be incredibly proud of!

Controlling Position

How Accurately Can SpaceX Measure Position?

The position of a rocket can be measured two primary ways. First, using GNSS (GPS) to get an absolute position. Second, by using an inertial measurement unit (IMU) that includes an accelerometer to estimate the distance from a known reference position (the launch pad). These sensors are both necessary and sufficient for rocket flight, so I’ll focus on them.

The Super Heavy booster lands back in the chopsticks 7 minutes after launch. If we use a nice expensive IMU that has around 0.01 milli-g’s of accelerometer bias, that double integrates up to 8.6 meters of error. So flying by dead reckoning isn’t going to cut it. (This is a very quick-n’-dirty calculation – a real error propagation analysis would find a larger number due to velocity and attitude errors, so think of this as a lower bound).

We need to bring in GPS to get a better absolute position. Let’s look at the datasheet for high-end GNSS chips to get a sense of what’s feasible. Civilian GPS is the L1 band at 250 cm accuracy (looking at the 95% confidence sphere), and military GPS adds the L2 band to 240 cm accuracy, so note that even if SpaceX is using the military band that doesn’t do much on its own in an open-air environment. You could use SBAS (Satellite based augmentation systems, over the US it’s the WAAS system which airplanes use for landing at airports) which improves accuracy to 120 cm and is available through just the GPS satellite link. Going further than that requires communication between the booster and the ground. At the most precise, an RTK positioning system could lower position accuracy all the way down to 2.5 cm (+1cm per km of distance). If SpaceX put a receiver on the launch tower or the ocean buoys, then the landing position could be incredibly accurate. But even the most advance positioning tech won’t guarantee it down to 0.5 cm. And RTK does rely on being able to acquire and maintain a link between the booster and ground for this precision.

Sensor fusion with the accelerometer (aka Kalman filtering) will help fill any gaps in GNSS signals, provide higher rate estimates, and allow for identification & rejection of GNSS errors, but it won’t appreciably improve the absolute position error.

Furthermore, this is just the position of the GPS receiver on the rocket. How does that translate to the position of the landing pins? If there is angular pitch/yaw motion of the rocket, there will be a dynamic offset between the GPS antenna and the landing pins (though this can be calculated and compensated for). There will be manufacturing tolerances which may stack up to less than 5mm, but that would be incredibly tight for something this size. The booster itself will also change dimensions as it is cooled by propellant and heated by reentry. The coefficient of thermal expansion of steel is about 12 μm/m-degC, so for a 71 m booster with liquid oxygen at -183 degC and reentry temperature of (let’s say) 50 degC, that’s a 20 cm change in length. Cut that in half since the LOX tank is half the booster, and you still get 10 cm of elongation. It’s not clear to me whether the booster avionics are near the pins (in which case the local thermal deformation would be minimal) or the engines (in which case it definitely matters), but this shows that thermal effects alone could dwarf half a centimeter accuracy. Additionally, for the Flight 4 landing at sea which quoted the 0.5 cm number, movement of the buoys was visually much more than this.

Flight 4 booster landing at sea

SpaceX has said that they use radar altimeters to measure distance to the ground on Falcon 9 landings, which helps constrain the vertical axis error. That would help here as well, though the Super Heavy booster is coming down on an irregular pad rather than a flat landing zone, so a radar return signal would be harder to interpret reliably.

Could you use other real-time distance measurements like laser rangefinding or visual processing? I don’t think so – the surface of the vehicle is too irregular to get a reliable fix point, especially while it is moving, and these are vulnerable to smoke/fog/gas/ambient lighting. Technologies like Ultra Wideband ranging are vulnerable to multipath reflections and attenuation/wave guiding from the booster’s steel walls, and aren’t more accurate than RTK anyway. Millimeter-level localization is bordering on impossible to solve in a robust way at the scale, speed, and dynamism of a landing. Core to the SpaceX design philosophy is deleting parts that aren’t needed – “the best part is no part” – and I expect SpaceX would avoid the effort if that extra accuracy isn’t needed. As we’ll see below, it’s not.

So landing with 0.5 cm position accuracy is not possible. I think the most likely scenario is that Bill misspoke and meant to say “half a meter” or “centimeters level accuracy” and conflated the two.

Just how small half a centimeter is compared to the landing pins, from twitter
How Accurately Can SpaceX Control Position?

The algorithms here can get arbitrarily precise. I think < 10 cm accuracy is achievable, and 0.5 cm is impressive but not unbelievable. But this is only control of the vehicle relative to where it thinks it is. I think it’s also possible that this metric is what Bill was talking about, though it’s not the ultimate number that matters for landing.

In preparation for this landing attempt, SpaceX undoubtedly performed extensive Monte Carlo analyses, simulating the flight of the booster millions of times with different variations in vehicle properties, engine performance, environmental effects such as wind, contingency and off-nominal scenarios such as engine failures, timing errors and signal lag, etc. This would result in realistic landing accuracy numbers. Any estimate of how accurately SpaceX can position the rocket must be downstream of a full analysis like this that incorporates the dynamics of the landing event with all sources of uncertainty and error, and is well outside the scope of this post.

But we can bound the estimates by looking at Falcon 9 landings. Reddit user FortisVeritas collected the locations of Falcon 9 landings and made the plot below. Looking at just the green landing locations on land (in order to remove the extra error from landing on a moving droneship), they tend to land in approximately a 5-10 meter wide area (the large yellow circle on the landing zone is ~20 meters wide).

However, Falcon 9 has several disadvantages relative to the Super Heavy booster:

  • It does not have separate landing propellant tanks, so propellant slosh will disturb its trajectory. The Super Heavy booster has dedicated central header tanks for landing propellant, so there should be minimal propellant slosh to disturb the vehicle attitude.
  • It lands with a single engine which cannot throttle low enough to hover the vehicle, and as such must perform a “hoverslam” maneuver to bring the vehicle to a stop right on the ground. While the Super Heavy booster must perform most of a hoverslam maneuver to slow down just before coming in to the tower, it can hover for the final fine positioning.
  • Because it lands with a single engine, roll control is minimal close to touchdown when the airspeed is low and the grid fins can impart minimal torque, and is limited to its weaker cold-gas thrusters. The Super Heavy booster can control roll with its 3 engines all the way to the ground.
  • Falcon 9 has no engine-out capability for landing. SpaceX has not confirmed it for the Super Heavy booster, but I believe one engine out is likely possible (more on this later).
  • It is smaller with a lower moment of inertia. Rockets get more stable and easier to control the larger they are, much like it’s easier to balance a broom on your finger than a pencil.
  • It is smaller, and so thanks to the cubed-square law has a higher area:mass ratio. This means that it will be more affected by wind gusts that might blow it off course.

All this to say that the Super Heavy booster will be easier to control precisely than Falcon 9, and its landings likely more accurate than a ±2.5 meter range.

How Accurate Does SpaceX Need Position To Be?

Pulling from Ryan Hansen’s excellent video where he modeled and simulated the Super Heavy catch system, the below arc is the feasible catch zone for the booster. This area is 22 m at its narrowest point, and needs to fit a 9 m booster in it, so this allows for ± 6.5m of side-to-side error. The catch arm area is 18 m long, so call that ± 9 m of front-to-back accuracy required.

This side-to-side error range does assume that the catch arms can still close around the booster if it is off-center – can the tower can adjust the arm positions in real time so it doesn’t knock into one side of the rocket first and push it over? In the video below it certainly looks like this is the case. The left arm moves first and we see them come in at different speeds to keep centered around the booster in real time. The dead giveaway that real-time centering is happening is that the left one moves backwards for a moment to adjust its position. This could be based off a data link between the booster and tower, or the tower might have radar sensing where the incoming booster is. Something like that would be necessary for the timing of the close as well.

Vertical distance is likely to be the most constrained. If the engines shut off several meters above the arms, the booster would hit with quite a bit of force and in the worst case may bounce back off. There are pistons on the catch rails that could allow for damping out the impact from a dropped booster, but you still want to avoid this. The way to mitigate this is to center the booster in the right spot and then drop down slowly at a constant speed which you know is manageable for a successful catch. This is what we see SpaceX do. The limiter here becomes fuel – dropping at a steady speed burns as much as hovering. If you are dropping at 1 m/s, can you do that for 5 seconds? It’s not clear how much fuel margin SpaceX has. The engines turned off immediately after contact, but that may have been because contact was detected, and SpaceX had more fuel margin to go. With a lot of uncertainty here, let’s ballpark a 5 meter tall box for a range of ±2.5m.

Position Summary

With standard consumer grade GPS, SpaceX can localize its rocket to within 2.5 meters. Using SBAS which would require no extra complexity, that shrinks to 1.2 meters. To get more accurate than that, they would need to have a communications link between the rocket and a base station on the pad. Using RTK for this they could get as accurate as 2.5 cm, but this adds complexity to the system. On top of this will be several centimeters of hardware offsets due to manufacturing tolerances and thermal effect. On the other hand, the allowable error box is roughly ± 6.5, 9 and 2.5 (?) meters large, for safety margins of 2-8x. This is a little low for a test flight – if I were SpaceX I would try to use RTK or DGPS to make the margins larger, but would also feel good that the simpler system could work as backup. This may also suggest that radar is still being used for vertical accuracy.

Going off of Falcon 9 landing history, that rocket consistently lands within a ±2.5 – 5 meter area. However I would expect the Super Heavy booster to be easier to control for a number of reasons. If RTK is not being used, that would imply that a full half of Super Heavy booster’s landing error is the result of measurement accuracy, and only half the error (~1 meter) is coming from control error and environmental disturbances. This is extremely good for such a large scale dynamic event.

One reason that the landing looks so precise is simply that everything is so big, and GPS accuracy doesn’t change with scale. We aren’t surprised when a consumer drone flies back to us autonomously using GPS and lands on the grass at our feet, and this rocket is using the same underlying technology. It’s just that 1 meter error looks really small when your booster is 71 meters tall.

Controlling Orientation / Attitude

How Accurately Can SpaceX Measure Attitude?

Without a device that measures absolute attitude such as a star tracker, the angular orientation of a rocket will be reliant on measuring angular velocity with its onboard gryoscopes, which is then integrated up into angular position relative to the launch orientation.

The Super Heavy booster landing back in the chopsticks 7 minutes after launch is short enough that you don’t need a very good gyro at all to stay pointed well. Without digging too deep into the details of Allan Deviance, the MEMS gryo in an iPhone XR has an angular bias of 27 deg/hr, and s Pixel 7 Pro is 10x more accurate at 1.9 deg/hr. Over 7 minutes, that is an error of 3.2 deg and 0.2 deg respectively. And that’s just using the cheap gyro in your phone! SpaceX is probably using a nicer “tactical grade” MEMS gyro with 10x more stability at ~0.25 deg/hr (0.03 deg over 7 minutes), or all the way to “navigation grade” ring laser gyros, which can be 100x more accurate that that. This analysis is very rough, and linear error accumulation ignores other sources of error such as scale factors, bias instability, temperature sensitivity, and G-loading sensitivity. But it also ignores fancier sensor fusion techniques you can use by combining multiple sensors, as well as calibration techniques. So it’s a good order-of-magnitude look.

Perhaps surprisingly, I expect that this error will be dominated by the measurement error of the initial orientation. Ensuring that the rocket is perfectly vertical can be a surprisingly tricky problem. You can measure exterior markers using laser range finding, and you can measure the local gravity vector using accelerometer measurements. But how do you account for mechanical strain under propellant load and thermal contraction which might change the orientation of the IMU during fill operations, and throughout flight? How do you account for mechanical machining tolerances where surfaces are not manufactured perfectly flat and change the static mounting orientation of the IMU relative to other components? Will that thermal deformation be symmetric, or tend to tilt your IMU one way or another? These effects and more can be measured and analyzed, but never perfectly compensated for, especially with very little flight history. I do still expect that the error here will be well under 1 deg.

How Accurately Can SpaceX Control Attitude?

This can also get arbitrarily precise. Based on eyeballing their Falcon 9 landings, I would guess that SpaceX can definitely control landing attitude to well under 1 degree of error in each of its pitch/yaw/roll axes. The Super Heavy trajectory divert just before landing from a safe impact location to the chopsticks is a much more dynamic maneuver than Falcon 9’s landing, but for much the same reasons as its better position accuracy I would expect better attitude control on the Super Heavy booster.

But again, a full accounting here must be downstream of flight simulations which take into account dynamics and uncertainties.

How Accurate Does SpaceX Need Attitude To Be?

Roll: Pulling from Ryan Hansen’s video again, he estimates that there is ±9 deg of baseline roll tolerance to safely catch the pins on the catch rails, and this expands to ±15 deg with moderate compression of the foam padding that hugs the booster core.

Pitch: The head of the pin has a ball joint that connects it to its support structure, and allows it to pivot a bit to accommodate angular error in pitch and yaw. Pitch is the direction of travel as the booster flies in towards the launch mounts and the most dynamic. But it appears that the booster flies to a point a bit above the launch pins, and then lowers itself vertically down. So the dynamic movements should largely be done prior to catch. Any error in the pitch direction would potentially cause the booster to “swing” back and forth towards the tower once it landed, but I don’t see anything inherently wrong with this from a structural perspective. From measuring the booster on the chopsticks, there is likely at least 15 degrees of swing towards the tower that could be accommodated without hitting it.

Yaw: I think this is likely the angle with the tightest tolerance. Over a roughly 10 meter pin-to-pin distance, every 1 degree of yaw error will result in a 17 cm vertical offset with one pin hitting a catch arm before the other. The catch rails are mounted on pistons which can move vertically by about 85 cm. These could be meant for shock absorption, or they could be meant to differentially lower during a landing event with high yaw. With 85 cm of travel distance, these could offset exactly 5 deg of yaw error – a suspiciously nice number if I put my design requirements hat on!

During the first catch attempt the booster was almost perfectly vertical, and we saw hardly any compression of these rails on first touch. They lowered evenly about half a second after the booster had landed and settled on the rail. So there doesn’t seem to be any “baseline” shock absorption happening. Either this is because this was a clean landing and the shock absorption was not needed, or these are primarily for yaw error compensation. If you didn’t compensate for yaw, then you would impart large twisting forces on the catch arm structure with one pin hitting before the other. This can certainly be designed for, but this adds a lot of further mass needed for structural rigidity and my guess is that the SpaceX engineers would much prefer that the arms be evenly loaded.

The other factor helping SpaceX mitigate yaw errors is that the two arms squeezing the booster will tend to push it towards vertical in that axis. You can somewhat see this in the landing video.

Attitude / Orientation Summary

I expect that the Super Heavy booster has attitude knowledge and attitude control both well under 1 degree in all axes. I believe the catch requirements are roughly ± 10 deg in roll, ± 15 deg in pitch, and ± 5 deg in yaw. So under a nominal landing without any hardware failures, SpaceX will have a factor of at least 10x performance margin to requirements.

Controlling Velocity & Angular Rate

Velocity Accuracy

GPS is much more accurate at measuring velocity than position. Consumer GPS can be accurate to within 1-2 cm/s by measuring the doppler shift of the GPS signal frequency. Perhaps surprisingly, this is about as good as it gets – even going to RTK doesn’t appreciably improve the accuracy of velocity measurements. During a rocket landing, the vibrations and heavy accelerations will likely degrade this a bit. Using the same IMU as above with 0.01 milli-g acceleration drift over 420 seconds, the dead reckoning integrates up to an error of 4.1 cm/s. The numbers here are close enough that likely neither sensor dominates, and a fused approach is used. For example, if the booster can get a GPS reading of velocity at 1 cm/s just before landing burn ignition, the IMU alone could keep the error at about that level for the final 20 seconds of flight.

Angular Rate Accuracy

If we dig into the spec sheet for a cheap consumer IMU like the ICM-42688-P, we see ±15.625 deg/s gyro accuracy at 16 bits of precision, for a resolution of 0.0005 deg/s. Scale factors, gryo bias, and temperature effects will worsen the true accuracy, but these can be largely corrected for. Vehicle modes and heavy vibrations will also inject error into the signal, but this can be filtered out. The point is that this is already 100x the accuracy you might need. Since the gyro measures angular rate directly, the error here is bounded and does not integrate up higher. SpaceX will also undoubtedly be using a nicer gyroscope than this.

Capability & Requirements

It’s unclear how accurately SpaceX needs to control velocity and angular rate. This will be driven by the strength of the tower and catch arms to accommodate the force of stopping a moving rocket flying into it. True capability here is also hard to estimate since it is such an incredibly dynamic event. Falcon 9 shows us that SpaceX is very good at performing the hoverslam maneuver for a soft touchdown on a hard surface, and for the same reasons as before the Super Heavy booster should be easier to control. But simulations are again needed to answer this question rigorously, and no one outside SpaceX has all the data needed to do those.

Is an Engine-Out Landing Possible?

The attitude margins are large enough that I expect orientation on landing is robust to failure of 1 of the 3 landing engines. With one engine out, the other two would only need to gimbal (very roughly) 2 deg to point through the center of mass, and the booster would come in tilted by that angle in pitch / yaw. But there is still a factor of 2-3x margin here.

Would only two engines have enough thrust to set the rocket down softly? Pulling from Wikipedia, a Raptor 2 engine has 2.26 MN of thrust at sea level, and the booster dry mass of 275,000 kg equates to a gravitational force of 2.70 MN. This means that 3x engines would be operating at 40% thrust to hover the booster, and 2x engines would be operating at 60% thrust. So two engines would still provide a 1.67x thrust-to-weight ratio on a dry booster. (Assuming a flow rate of 650 kg/s at full thrust, the final 10 seconds of flight uses 19,500 kg of propellant, only a 7% difference from the dry mass). This might not be enough to decelerate the booster fast enough to land safely. But depending on the exact scenario, it might still be survivable. I would expect that as SpaceX pushes to reuse the boosters regularly, they will ensure they have the landing propellant necessary to survive this contingency.

So What’s the Hard Part?

SpaceX isn’t using magic to control their rockets. While the size of the booster gives the impression of impossible GNC precision needed to land back in the chopstick arms, it should not come as a surprise that SpaceX actually developed a system with large safety margins using sound engineering principles. They would not have attempted a catch landing without confidence that it could work.

But there’s a large difference between something that could work in theory, and actually work in reality. Spaceflight is such a difficult field of engineering because there is such low margin for failure – a rocket is made up of millions of individual parts, most of which have zero redundancy. The margins in landing position and orientation I look at here only matter if you can get back to the launch pad in the first place. Countless little things could go wrong, and any one of them will end with your rocket blowing up. Gravity is a relentless opponent to fight.

So what do I personally find most impressive about this launch?

  • The real-time solver that generates new reference trajectories to land the booster under hard fuel constraints (SpaceX has a lot of experience with this for Falcon 9, but they are still the only ones who can do this and I remain impressed every time – shoutout to Lars Blackmore).
  • Hot staging remains very impressive.
  • The real-time link that seems to exist between the tower and the vehicle during the catch event, which is a new system and would be hard to test.
  • The speed at which SpaceX is iterating, building, and testing Starship, which blows the rest of the industry out of the water.
  • The sheer guts it took to risk blowing up the pad during a catch attempt after only one booster touchdown test, in a maneuver that no one has ever done before.
  • The fact that everything worked first try! There were no unknown unknowns that derailed the catch, no mismatches in configuration tracking with the upgrades rolling into every single vehicle, no engineering assumptions that were too loose, no tricky differences between test and flight, no machining/build errors that would break parts.

SpaceX has demonstrated once again that they are performing at the pinnacle of engineering and operational excellence. It seems to me that the question is no longer if Starship will be successful in revolutionizing access to space by slashing launch costs, but when. Hats off to the team for reaching this milestone in such a spectacular fashion, and for sharing the journey so publicly. The videos never get old.

  • Post author:
  • Post comments:6 Comments

This Post Has 6 Comments

  1. Marcin

    Thank you for such fantastic piece of engineering analysis. It was a pleasure to read it. Kudos!

  2. Zalupa

    Bravo!

  3. Rod Bowler

    Excellent, detailed analysis. Thanks.

  4. IBTheseus

    Thanks for spending so much time to explain many of the aspects of the landing that are extraordinary, yet perplexing in how the engineering works

  5. Sergiu Iliev

    That was a great and fun analysis to read – thanks!

  6. FTL

    Superheavy wouldn’t use traditional GNSS as positioning, instead it would use Starlink, wouldn’t it? The position of Starlink satellites has much lower error than other GNSS satellites because of the lower orbit, and because they can measure positions against each other, and against many ground points with which they communicate (unlike other GNSS sats).
    Additionally, superheavy sees many more Starlink sats compared to GNSS sats, so this further improves accuracy.

    In the end, laser rangefinding or otherwise triangulation from the ground can make it arbitrarily precise, although it is doubtful they use this for two reasons: They claimed half a cm accuracy in the ocean, and they want accurate landing on Mars, both of which are incompatible with ground-based triangulation.

    I suppose a combination of absolute positioning from Starlink and relative positioning from accelerometers (especially when moving very slowly) does the trick.

Leave a Reply