Mars rover wheel: with the A axis tilted 0.005°, the 0.75 mm skin runs from 0.733 mm at the faceplate end to 0.767 mm at the tailstock end, and a calibrated controller changes nothing (4-axis)

Original sources
Numbers only, no model: A. Rankin et al. (Jet Propulsion Laboratory), Assessing Mars Curiosity Rover Wheel Damage, IEEE Aerospace Conference 2022 (PDF on JPL's site); E. Lakdawalla, Curiosity wheel damage: The problem and solutions, The Planetary Society, 2014 (planetary.org); photographs of the real wheels on NASA's page Curiosity's and Perseverance's Wheels.
Search keywords
Curiosity's and Perseverance's Wheels, Rankin 2022 Mars rover wheel wear, Curiosity wheel damage Planetary Society
Licence
Only facts (dimensions and counts) are taken from the sources; the IEEE paper is © 2022 IEEE, and only its numbers are used. The wheel shown here is a model Tech Coordinate's agent built from those numbers; NASA's illustration is not reproduced, since NASA imagery is not in the public domain and may be used only editorially outside promotion. Every picture here is a HiNC capture, a chart drawn from HiNC's results or a schematic the agent drew. The machine, the programs and the error are the agent's own, and the error's size and sign are not a measurement of any machine.
Attribution
As the base case's source record gives it: Wheel numbers and reference image: NASA/JPL-Caltech. Rebuilt for machining simulation by Tech Coordinate's agent; not a NASA or JPL design file and not endorsed by NASA.
The reference image, NASA's comparison illustration, served only inside the case, to estimate the chevron shape; it is not shown here. Tech Coordinate's agent added one error-term branch to the simulated machine and chose its kind, its size, its sign and its pivot; EB0A is the ISO 230-7 name for this kind of error, and its value is not a measurement of any machine.
About the case
The accepted programs of the Mars rover wheel: one grouser pitch of Curiosity's wheel, rebuilt from published numbers and a photograph, clamped across its full 400 mm width between the faceplate of a generic four-axis machine's A table and a tailstock centre, and milled down to its 0.75 mm skin by two Fanuc four-axis programs. Here that machine gets one constant geometric error: its A axis is tilted 0.005° about Y against the X travel (EB0A in ISO 230-7), so the tailstock end of the line through the two centres sits 46 µm low over 531 mm. That is a typical size the agent chose; nobody measured this generic machine.

The story

In the base case an AI agent rebuilt Curiosity's wheel from published numbers and a photograph, clamped one grouser pitch, the full 400 mm wide, between the faceplate and the tailstock centre of a generic four-axis machine, and wrote two positional Fanuc programs with G43 H tool lengths: T1, a Ø12 end mill, roughs the chevron groove, and T2, a Ø10 end mill, finishes its floor and walls down to the 0.75 mm skin. The case was accepted at a 0.125 mm grid. The programs have no RTCP: the tool axis always points at the wheel's centre, the A axis turns the wheel, and X runs along its width.

Here the agent gave that machine one common geometric error. Its A axis, the line through the faceplate centre and the tailstock centre, is tilted 0.005° about Y against the X travel: EB0A in ISO 230-7, the A axis's orientation error about Y. On the shop floor that reads as the tailstock end sitting 46 µm lower than the faceplate end over the 531 mm between centres. The error sits on a branch of the machine marked as an error term, directly upstream of the A axis, with its pivot on the floor at mid-width at A 0, where the case assumes a shop touches off. The controller solves its axes as if the branch were not there, while the simulated machine moves and cuts with it whenever the project's Enable Error Terms switch is on. The agent changed no line of the programs and kept the case's own G54: the touch-off it assumes would find a value within 2.25 µm of it.

Before the first play, the agent committed a plan with the tool-tip offset it expected, the deviation of every feature and seven pass criteria. A trimmed case, the outboard 150 mm with the first chevron bend and the part above the stiffening ring, played first at 0.25 mm, to check the build and the step formula. Then the whole groove played at 0.125 mm, geometry only, three times:

The trimmed case played these three and a fourth with the mark cleared, as a controller with calibrated kinematics would know the tilt. The programs are positional four-axis work: the controller turns them into machine coordinates from the program words, the work offset and the tool length alone, and never reads the machine's chain. So the plan said that run must match the marked run bit for bit.

HiNC: the cut part of the run with the error put back on the canvas with its Diff; the spindle nose, a shrink-fit holder and a Ø10 end mill above the outboard end of the groove, the faceplate and its stator ring at the left, the wheel with its chevron grousers below, the mandrel and the tailstock centre at lower right; the strips of Diff in view are green; the Df colour bar at lower right
With the error on and the controller unaware of it: the cut part that run recorded, put back on HiNC's canvas with its Diff, and a parking program bringing T2, the Ø10 three-flute end mill in its shrink-fit holder, to the floor at the groove's outboard end, X −201. The faceplate and its stator ring are at the left, the Ø80 mandrel and the tailstock centre at lower right. This camera looks along the groove mouth, so the floor beside the cutter, where the skin is 17 µm thinner, hides behind the near grouser; the Diff faces in view are green.
Diff of the whole chevron groove seen from straight above at ±0.02 mm, alternating in place: in the frame labelled Error terms on, the floor runs from orange-red at the left end through yellow and green to blue at the right end, the walls green; in the frame labelled Error terms off, all green
The comparison: the whole groove from straight above, the wheel's 400 mm width across the picture (left = faceplate end, x −200; right = tailstock end, x +200), alternating between error terms on (marked) and off (the control run). With the error on, the floor runs from orange-red at the faceplate end (cut too deep, about −17 µm) through green at mid-width to blue at the tailstock end (material left, about +17 µm), in bands square to the wheel's axis; the walls and the grouser tops stay green. With the error off, the whole groove is green. The whitish spots on the floor are the canvas's lighting, in both frames.
Side-view schematic: the faceplate at the left, the tailstock centre at the right, the actual A axis dipping below the dashed nominal axis toward the tailstock; above, the wheel tilted with it, three end mills in their holders at the programmed height, a red wedge of cut too deep at the faceplate end and a blue wedge of material left at the tailstock end, meeting at the touch-off point at mid-width
What the error does, as a side-view schematic, not to scale: the tilt and the change in thickness are exaggerated many times. The A axis, the line through the faceplate and tailstock centres, dips 0.005° toward the tailstock, 46 µm over 531 mm, and the wheel tilts with it, while the tool follows the program along X at a fixed height. At the touch-off point, the floor at mid-width, nothing changes. Toward the faceplate end the tool reaches deeper into the skin (red: 17.45 µm too deep at x −200, skin 0.7325 mm), toward the tailstock end less deep (blue: 17.45 µm left at x +200, skin 0.7675 mm).
Chart of the groove-floor deviation against the position across the wheel, x from −200 to +200 mm: 40 blue dots on the dashed line x·sin α from about −17 µm at the faceplate end through 0 at the touch-off point to +17 µm at the tailstock end, the orange control line at 0, a right-hand scale of skin thickness from 0.730 to 0.770 mm; below, measured minus predicted within ±0.02 µm
The main result: the floor of the groove, which is the skin's outer surface, against the position across the wheel. Blue dots: the run with the error, the median of every 10 mm (40 bins, 1,505,688 vertices), on the predicted x·sin α (dashed); orange: the control run, at 0. The right-hand scale reads the skin's thickness, 0.75 mm plus the deviation: 0.7326 mm at the faceplate end (x −200…−199, −17.40 µm) and 0.7674 mm at the tailstock end (+17.41 µm). Below, measured minus predicted, at most 0.0183 µm. Symmetric axis, ±20 µm.
HiNC's topology graph of the machine, the GeneralMechanism cluster: the table chain O, base, Y, X, Aerr, A, w and the head chain base, Z, S, t; the branch EB0A (StaticRotation) from X to Aerr drawn bold with an orange Error term badge, A (DynamicRotation) on Aerr to A labelled Machine Tool · Axis A; below, the X to A stretch enlarged
Where the error sits, in the Topology column of HiNC's Equipment page: a new anchor, Aerr, between X and A. The branch X → Aerr, named EB0A, is a static rotation of 0.005° about (0, 1, 0) with its pivot at (0, 0, 572.5) mm in the X anchor's frame, the touch-off point; it is drawn bold with the orange Error term badge. The A axis's rotation moved unchanged to Aerr → A. Below, the X → Aerr → A stretch of the same capture, enlarged.
The whole wheel seen at a slant from its outboard end at ±0.02 mm, alternating in place: in the frame labelled Error terms on, the floor of the cut pitch runs from red-orange near the camera through green to blue-green at the far end; in the frame labelled Error terms off, all green; the mandrel and the hub plate in front, the other grooves grey
The whole wheel at a slant, looking in from the outboard end x −200, with the hub plate and the Ø80 mandrel in front, alternating. With the error on, the floor of the one pitch cut runs from red-orange at the near, faceplate end through green to blue-green at the far, tailstock end; with it off, all green. The other 26 grooves are the fixture, grey.

HiNC rendered these pictures from the wheel model Tech Coordinate's agent built from published numbers and a photograph, on the agent's simulated machine with the error-term branch it built in; none is a NASA or JPL design file. The cut parts were put back on the canvas with their Diff, not replayed; for the first picture, a parking program brought the tool into view. The colours are HiNC's geometry difference (Df in the colour bar) against the part the nominal run cut, on a symmetric scale of ±0.02 mm: red = cut too deep, blue = material left, green = 0. The grid is 0.125 mm. The charts are drawn from HiNC's step results and the exported cuts; the side view is a schematic.

Key numberWhat it is
0.005° · 46 µmthe error: the A axis, the line through the faceplate and tailstock centres, tilted 0.005° about Y against the X travel (EB0A in ISO 230-7), so the tailstock end sits 46 µm low over the 531 mm between centres. A typical value the agent chose, not a measurement; every deviation here is proportional to it
4.07×10⁻¹³ mmhow far, at most, the measured tool-tip offset of any of the 71,562 steps lies from the formula written before the first play. The machine coordinates X, Y, Z and A are bit for bit those of the nominal run
17.98 µmthe largest tip offset on a cutting step, 17.98 µm predicted: T1 entering at x −206, the end of the cutting range. At the touch-off point the offset is 0
0.7326 → 0.7674 mmthe skin at the faceplate end (x −200…−199) and at the tailstock end (x 199…200), designed 0.75 mm: 34.8 µm end to end, against 0.7325 and 0.7675 mm predicted at x = ∓200
0.0183 µmhow far, at most, the medians of the floor's 40 bins of 10 mm, over 1,505,688 vertices, lie from x·sin α at each bin's centre; a straight line fitted through the floor has the slope 1.00001·sin α. Around the wheel nothing changes: 2.9×10⁻⁶ µm per degree
±0.26 · ±0.49 µmthe walls in their top 0.5 mm: +0.265 and +0.494 µm on walls facing the faceplate (material left), −0.264 and −0.494 µm on walls facing the tailstock (cut too deep), on the long 24° and the short 51° segments; predicted +0.266, +0.496, −0.266 and −0.496 µm
bit for bitthe trimmed run with the mark cleared, as a calibrated controller would know the tilt, against the marked run: its 11 step series, HiNC's Diff statistics and the 3,139,116 vertices of its cut are identical. Without RTCP the controller has nothing to change
±4.8×10⁻¹⁰ mmthe control run against the nominal cut, from the 1st to the 99th percentile over 4,316,019 vertices: the noise floor, more than seven orders of magnitude below the error's ±17 µm
about 40 minserver time for the seven plays, 2,427.7 s. On the shared 32-thread server, each whole-groove play at 0.125 mm took 9.6–12.6 min and at most 17.06 GB of memory

Four of its nine dilemmas

An error the touch-off would swallow

The first proposal was a location error of the A axis, to make the skin vary around the wheel. But program zero sits on the A axis, and on such a job a shop finds G54's Y and Z on the A axis anyway, so a shift of the axis goes into the work offset and leaves nothing on the part. Even without a touch-off, the skin would only be thinner all round, the same at every angle. A skin that varies around the wheel needs a part clamped off-centre, which is runout of the fixture or the mandrel, not an error of the machine; HiNC gives a fixture no error terms, and a fixture is placed where it really sits. What a touch-off cannot absorb is the direction of the axis, so the agent put in EB0A. On the part, the deviation depends on x only: the term around the wheel is 2.9×10⁻⁶ µm per degree. That a location error vanishes into G54 is the design's derivation; no run played it.

A pivot where the touch-off is

A static rotation needs a pivot, and the pivot decides how far the whole part moves. At the faceplate centre, where the axis stays put while the tailstock end sinks, the same tilt would bring a constant shift of (+21.2, 0, −24.4) µm as well: the amount a touch-off at mid-width takes into G54. So the pivot sits at the touch-off point itself, the floor R242.5 at mid-width at A 0, where the deviation is 0 at every A. The touch-off the case assumes, Z on the stock top at mid-width and X on the outboard end face, then finds the case's G54 within 2.25 µm, so all seven runs kept it, (0, 0, −670). The 20 floor-finish steps within 0.5 mm of mid-width lie 0.0016–0.0374 µm off: |x|·sin α. A shop that finds the A axis at the faceplate end gets only a constant shift more; the taper stays.

17 µm on a 0.125 mm grid

The largest deviation, 17.5 µm, is 14 % of a 0.125 mm grid cell, and the walls' half micrometre is 0.4 %. The designer agent kept a ten-times value ready, 0.05° and ±174.5 µm at the ends, in case the grid could not read the real one; from an earlier trial of the batch, where an X–Y squareness of 0.003° held ±2.7 µm at 0.25 mm, it judged that the real value would show. This case had no trial before its plan: the trimmed case and the whole groove both played the real 0.005°. The nominal and the on runs step at the same machine coordinates, so the tool leaves the same marks in both cuts and their difference keeps only the offset: the 40 floor medians read within 0.0183 µm of x·sin α, the walls within 0.003 µm. Every number and picture here is the real 0.005°; the ten-times run was never played.

A corner band that reads −84 µm

Every vertex the distance search read more than 0.02 mm off, beyond the largest predicted 17.45 µm, was recomputed against every nearby triangle of the nominal cut: 284 of 4,313,736. 19 are 0: the search looks only at the 12 nearest triangle centres, and beside a large flat triangle it misses the right one. The other 265 are real differences between the two exported meshes, −83.74 to +20.10 µm, all in the strip where the floor meets the walls, 264 of them on the faceplate half, where the floor was cut deeper. The error cannot move a cut face that far: each step puts the same tool at most 17.98 µm off and turned by 0.005°, which bounds the difference at 18.82 µm. Measurement and reasoning disagree, and the record keeps it as a finding. The likely cause, not verified, is that the two runs extract this concave corner differently within one 0.125 mm cell, whose half-diagonal is 88 µm. The floor's statistics keep 1.5 mm off the walls, as the base case's skin measurement does.

The full record has the other five: the tailstock's body, which the model leaves where it was while the axis it centres tilts; why the run with the mark cleared was played on the trimmed case only; a skin criterion whose filter, written too wide, took in the uncut bore, rims and ring and failed as written; vertices on the stock's side faces that the distance search read up to 0.179 mm off in the control run, all 0 against every triangle; and the 35 grazing steps that the two runs count as cutting differently, among them the step with the largest offset.

The result

All seven plays ran every program to its last line with no collision: 71,562 steps each for the whole groove, 29,525 for the trimmed case.

With the error on and the controller unaware of it, the tool tip of every step sat where the formula written before the first play put it, within 4.07×10⁻¹³ mm. Relative to the wheel, the tip moves almost only radially, by x·sin α: deeper toward the wheel's centre at the faceplate end, less deep at the tailstock end, up to 17.98 µm on a cutting step. Its axial part, −(ρ − 242.5)·sin α, with ρ the tip's distance from the A axis and 242.5 mm the floor's radius, is at most 0.35 µm on the cutting steps and 28.6 µm on a move at tool-change height. Every step's machine coordinates are bit for bit those of the nominal run, and the control run repeats the nominal run bit for bit.

On the part, a face keeps only the part of that offset along its normal, so the floor takes all of it. The floor is the skin's outer surface and the bore under it is never cut, so the skin's thickness changes by the floor's deviation: 0.7326 mm at the faceplate end, 0.7500 mm at the touch-off point and 0.7674 mm at the tailstock end, 34.8 µm end to end, in a straight line. The medians of the floor's 40 bins lie within 0.0183 µm of x·sin α, and the deviation does not change around the wheel.

The walls of the chevron grousers move by tenths of a micrometre only. Relative to the wheel, a point of the tool h above the floor moves h·sin α toward the faceplate, and a wall keeps that shift times the axial part of its normal: walls facing the faceplate are left thick and walls facing the tailstock are cut deeper, more on the short 51° segments than on the long 24° ones, growing from 0 at the floor to about ±0.26 and ±0.49 µm in the top 0.5 mm. All four kinds of wall lie within 0.003 µm of the prediction at every height. The grouser tops, the bore, the rims and the stiffening ring were never cut and read 0, within 5.1×10⁻¹⁰ mm.

With the mark cleared on the trimmed case, as a controller with calibrated kinematics would know the tilt, the run moved the machine exactly as the marked run did and cut the same part: its 11 step series, HiNC's Diff statistics and the 3,139,116 vertices of its cut are bit for bit those of the marked run. Positional G43 H programs never ask the controller to solve the machine's chain, so knowing the tilt gives it nothing to change. On the 17-inch forged wheel and the NIST cone frustum, whose programs run under RTCP (G43.4), clearing the mark cut the nominal part. Here a calibrated controller helps only with programs rewritten for RTCP; otherwise the cure is mechanical: a test bar between the centres, an indicator along X, and shims under the tailstock.

Two charts: left, the difference of the machine axes X, Z and A from the nominal run over 29,525 steps, a flat line at exactly 0; right, the radial tip offset against x from −206 to −50 mm, the marked and the unmarked runs on top of each other on the dashed line x·sin α, from about −18 to −4.4 µm
The trimmed case, the outboard 150 mm at 0.25 mm, with the mark cleared, as a controller with calibrated kinematics would know the tilt. Left: what that controller changed in the machine axes against the nominal run, X, Z and A (as arc length on R242.5): exactly 0 at all 29,525 steps, as in the marked run. Right: the radial tip offset of the marked (blue) and the unmarked (orange) run, one on the other, on x·sin α. Symmetric axes, ±20 µm.

The control run cut the nominal part again: its 4,316,019 vertices lie within ±4.8×10⁻¹⁰ mm of the nominal cut from the 1st to the 99th percentile. The 15 vertices the distance search read more than 10⁻⁶ mm off, up to 0.179 mm, all lie on the stock's uncut side faces and are 0 against every triangle; with their exact values, every vertex is within 9.31×10⁻⁷ mm.

Five of the seven criteria written before the first play passed as written, and the cost was recorded. The skin criterion failed as written: its filter, a radius under 242.6 mm, also took in the uncut bore, rims and ring, so its bin medians read up to 17.02 µm off; on the floor alone, as the plan meant, it passes with 0.0183 µm. The record keeps the verdict as written and the filter as a finding about the plan.

The study models this one constant error only. A real A axis also carries a location error, which a touch-off absorbs on this set-up, a tilt in the horizontal plane (EC0A), which twists the groove's direction, and runout and wobble that change with the angle; errors that vary along the travel, backlash, servo mismatch and heat do not fit a constant error term. The size and the sign were chosen: with the tailstock end high, every deviation changes sign. The touch-off is assumed at mid-width. In the model the faceplate, the fixture and the wheel tilt while the tailstock's body stays where it was, which for the cut is the same as the line through the two centres tilting. The plays are geometry only, with no cutting force or deflection, and one pitch was cut; the other 26 grooves are the fixture. Everything is simulated; no wheel was cut.

What it brought

Read the full case record: the Mars rover wheel with its A axis tilted 0.005°

How the wheel, its toolpaths and these programs were made: Mars rover wheel.

All Showcase cases