Off-world Power Generation Air-Bearing Testbed
The air-bearing testbed is the ground analogue for the project's in-space self-assembly work: identical robotic modules float on a near-frictionless planar surface (3 degrees of freedom — x, y, yaw) and rehearse relative navigation, docking, and growth logic at hobby cost. It does not reproduce orbital relative dynamics; it validates the planar kinematics, docking, and autonomy. The shared apparatus below underlies Lab 3 (propulsive navigation), Lab 4 (moment control), and Lab 5 (robotic self-assembly).
The running surface
Modules float on a sheet of float glass (flat to tens of microns by manufacture) — the smooth running surface. The glass is supported continuously by a stiff, flat bed; the bed is leveled on 3 adjustable points. Full stack:
stock 4-leg table (rough-leveled, no drilling)
-> 3 leveling adjusters (top-side, at working height)
-> torsion-box bed (stiff + flat)
-> float glass (continuously supported)
-> air-bearing puck (the module)
Glass: 6 mm (¼″) clear annealed float, cut to 508 × 889 mm (20″×35″) to sit just inside the 520.7 × 914.4 mm table (no overhang — a cantilevered annealed sheet cracks). Ask for seamed edges (safe to handle); don't pay for polished — the bearing never runs on the edge. Specify annealed, NOT tempered (tempering's roller-wave distortion ruins the ~10 µm fly height). Source locally and pick up — don't ship glass. Get ≥2 quotes; small custom cuts vary widely on shop minimum + edgework.
Registration on the bed: the glass lifts off for every re-level, and the bed below is only ~3.5 mm wider per long side — a long edge slid past the bed is a 910 mm cantilevered crack line. Stick glue-back felt pads on the bed as edge bumpers: two per long side at the ¼ and ¾ points (optionally one on a short edge as a home stop), mounted kissing the centered glass — touching, not compressing. They sit below the glass top, so the floating puck never meets them.
Leveling — the #1 build variable
Residual tilt projects gravity into the plane as phantom gravity: a = g·sin θ. At 0.10° that is 17 mm/s² of drift; the target is < 0.05° (8.6 mm/s²), ideally 0.01°. Use kinematic 3-point support — three points define the plane exactly (no rock, both tilt axes trimmable); 4 supports over-constrain and rock.
Level the surface, not the table. The table has fat 4×4 legs; drilling and turning feet under a heavy table is awkward, and table-leg leveling only fixes overall tilt — not the wood top's local waviness. Instead, stand 3 adjustable bolts on top of the table, under the bed — M10×1.5×60 socket-head bolts in threaded inserts in the bed's underside — and trim there at working height beside the digital level. Coarse 1.5 mm/turn pitch is plenty: over the ~520 mm baseline, 1/20 of a turn ≈ 0.008°. A stiff bed on 3 points also bridges over the table top's waviness. Rough-level the table once (~1°; shim only if needed), then trim < 0.05° on the 3 bolts, and re-check loaded (glass + module shifts it). The air bearing exerts negligible horizontal force, so gravity holds the bed; optional cone / V-groove / flat (Kelvin) seats under the 3 bolt tips make the mount non-sliding and repeatable.
Torsion-box bed — build recipe (as built)
A torsion box is two thin skins glued to an internal rib grid: stiff and dead flat for low weight and cost. A plain ¾″ panel on 3 points would sag at the overhangs (0.3 mm over 250 mm ≈ 0.07° slope — over budget); the box stays flat. It is only as flat as the surface you glue it on — so assemble it on the float glass itself (a micron-flat reference) under a plastic release layer. Finished box 515 × 910 × ~63 mm, ~6.3 kg — light enough to hand-turn the leveling bolts (avoid heavy ready-flat plates like granite or cast aluminum here).
The kit
- Laser-cut 6.35 mm (¼″) MDF (cut-to-size online, e.g. SendCutSend): skin ×2 (515 × 910), long rib ×5 (910 × 50, 6 slots), cross rib ×6 (515 × 50, 5 slots) — 6.35 mm half-lap slots interlock into an egg-crate grid with ~170 × 119 mm cells.
- Insert pad ×9 (60 × 60) — glued into three 3-layer stacks for the leveling inserts: a thin rib can't take an insert edge-on, and the M10 insert needs ~19 mm of material.
- Titebond III (long open time, water-resistant), a polyethylene sheet as the glue release — a cut-open PE trash bag beats wax paper (cured PVA doesn't bond PE at all); never paper towels (glue wicks through and bonds both sides).
- 3× M10×1.5×20 hex-drive threaded inserts + 3× M10×60 socket-head bolts (the feet).
Build
- Dry-fit the egg-crate; sand any tight slot until it seats by hand (loose is fine — glue + skins lock it). Check the grid sits flush. Scuff the laser char off the skin-facing rib edges (120 grit — PVA bonds burned dust poorly).
- Jig stack on the table: flat cardboard (fills the rough table top's gaps, spreads the cure weight, guards the annealed sheet against grit point-loads) → float glass → PE sheet, taut, taped outside the footprint → work.
- Glue dabs in the slot interlocks (anti-rack shear only), seat the grid. Then the structural lines: continuous ~3 mm bead on every rib-to-skin edge (~7.6 m total ≈ 2–3 min — fits the glue's ~10 min open time).
- Stage 1: grid onto the bottom skin on the jig, edges flush. Caul on top (plastic layer + the dry top skin), 27–45 kg (60–100 lb) spread evenly — dead weight works by contact, not pressure; more buys nothing. ≥2 h. If the grid slid during placement: flashlight every cell and fillet any junction run with zero squeeze-out (low in the corner, OFF the rib top edges — a blob there holds the top skin off); fillets set ~1 h.
- Stage 2: bead the top edges, top skin on flush, secure the skin's edges (tape wraps / clamps) — mid-flip the wet joint is vertical and the skin skates — then flip the sandwich top-face-down onto the jig and weight overnight. The flip presses the service face (where the glass rides) against the flat reference, so that face gets the jig's flatness.
- Glue the three 3-layer pad stacks to the outside of the bottom skin, each centered under a rib line (the rib is on the opposite face of the skin — it backs the load): stations (194, 30), (716, 30), (455, 485) mm ⇒ a ~520 × 460 mm leveling triangle (symmetric base pair + centerline apex ≈ decoupled pitch/roll trim). Every interface full-coverage, clamped thin — thick glue lines are weaker than the MDF. Cure 24 h before drilling (drilling a half-cured laminate can shear a glue line).
- 13 mm pilot × ~22 mm deep at each station (stack + skin = 25.4 mm — tape-flag the bit; ~3 mm of skin stays intact, and the rib behind it is never touched). Drive the M10 inserts flush, seal the MDF edges including inside the pilot holes (thinned PVA), thread in the feet.
- Box on its 3 bolts on the rough-leveled table, glass on top (continuous support), trim < 0.05° against the digital level; re-check loaded.
Key gotchas: assemble on the flat reference (step 2 is the whole game); the pad stacks and inserts must be backed by a rib line (step 6); never drill or drive inserts into a half-cured glue-up (Titebond III wants ~24 h); rough-level the table first so the bolts only do the fine trim.
Alternatives: the same box can be built from store lumber (¾″ rib strips + ¼″ skins, inserts landed directly over ribs — no pad stacks needed); a solid-core flush door cut to size is a ready-made torsion box (seal the cut edge, verify flatness). Lazy fallback: doubled ¾″ MDF (1.5″) on the 3 adjusters — marginal vs the 0.05° budget at this span; build the box if you can.