← Design notebook

BUILT BY AUTONOMOUS SYSTEMS · WORK IN PROGRESS

Wheel change plan: air-tyre hub motors (issue #18)

Study: research/air-tyre-hub-wheels.md (the evidence). Primary wheel: a 10 in single-shaft hoverboard-class hub motor, 10 x 2.125 pneumatic, 36 V 350 W, halls, D-shaft Ø16 / 13.5 flat x 76 mm, about 3.5 kg. Backup: the 8.5 in of the same family. Drivers stay the Flipsky 75100s. No mechanical brake. Stairs are out of v1; 35-40 mm lips by rolling.

Proposed decision D69 (for the main session to record)

Tasks

# Task Files Acceptance
W1 Buy two 10 in motors and measure them. Confirm a live listing (Robokits RKI-9013 + a 10 x 2.125 tyre and tube; or an eBay/Amazon 10 in 36 V 350 W pneumatic unit shipping from the US), order two. Weigh; measure the shaft (Ø, flat, length, hardness by file or Rockwell), the hub width and cover diameter, run-out with a dial gauge; Kv by the drill test, R and L in VESC Tool; count magnets; tear one down for the hall board, a stator NTC and the seal plan. Catalog entry with the measured numbers; interfaces.json entry with the shaft as the mount. catalog/wheel_motors.json (hoverboard-10in-36v), catalog/interfaces.json, references/vendor/hoverboard-10in/ (photos, a sketch), sim/wheel_candidates.json the catalog row has a price, two sellers, measured mass, shaft, Kv, R, L, pole pairs, hall order and an IP note; price_checked dated; the interface has the shaft's dimensions and the hub's envelope from measurement, not a listing
W2 The wheel link's foot: a D-shaft clamp. cad/fivebar.py wheel_link() and botwheel() read the new interface: a Ø16 D-bore 45 mm long with the flat on the load axis, split on the outer face, 4 x M5 x 30 in heat-set inserts (McMaster part numbers in catalog/hardware.json), the cable through the shaft's end into the existing Ø22 channel, the hub's cover 8 mm clear of the foot; a steel clamp-block option (SendCutSend 4130 or 1018, instant price) if the print's clamp slips in W6. Re-run the clash sweep and the cable check. cad/fivebar.py, cad/build_leg.py, cad/wheel_fit.py, exports/leg/leg.json, catalog/hardware.json fivebar.clashes() and cable_check() empty at every stance and stop pose; the foot's clamp torque at M5 preload holds 2 x the rig's peak axle moment (section 2.4 of the study) with mu 0.2 on the shaft; leg.json's mass updated
W3 Loads and strength at 17.75 kg a leg. sim/leg_rig.py's WHEEL from the catalog (mass, radius, the pneumatic solref from the measured stiffness or 67 N/mm); rig-results.json and rig/run.py --predict at the new design mass; cad/leg_studies.py adds the shaft as a steel cantilever at the axle spike and the foot's clamp as a bolted joint; the body's mount-plane loads (cad/body_legloads.py) and cad/body_studies.py at 17.75 kg. sim/leg_rig.py, exports/leg/rig-results.json, exports/rig/predictions.json, cad/leg_studies.py, exports/leg/fea/summary.json, exports/body/leg-loads.json, exports/body/fea/* every rig case under 120 N m; every leg and body study passes its target (D39, D56) or carries a dated note; the shaft at SF >= 1.5 on yield in the capped jump's landing with the measured hardness; wheel_link R1w >= 1.2
W4 The full robot with the new wheel. sim/robot_v2.py: the wheel from the catalog, H_RANGE for the new skid contact (119 mm leg) and a standing height choice (259 mm leg for today's hip height, or 300 mm: pick, record); the designer's wheel; tools/simulate.py --v2 all scenarios plus kerb 35 mm at 0.6 m/s; the push and slope scenarios with the taller stance. Mass ledger at the measured wheel mass against the 35.0 kg gate. sim/robot_v2.py, cad/body_layout.py, exports/body/mass.json, exports/body/sim-v2.json, designer/ every scenario passes at the ledger's mass (or a dated note each); kerb 35 mm passes; the ledger <= 35.0 kg with the levers' status listed; mass_reconciles true
W5 Hall-only wheel speed in the balance loop. sim/controller_v2.py reads a wheel speed quantised to 4 deg mechanical (90 edges a turn) with a 2 ms tick and a first-order blend with the commanded torque; stand, push, drive, slope re-run. If a scenario fails: the AS5047P bracket (W7) moves into v1. sim/controller_v2.py, firmware/balance/ (the estimator), exports/body/sim-v2.json stand and push pass with the quantised speed; the estimator's design in firmware/balance/README with the blend's time constant
W6 Bench: one wheel on a 75100. VESC Tool set-up (FOC, halls, 15 pp, 30 A, regen -15 A, ERPM 15,000), hall detection, the drill-test Kv against VESC Tool's; torque against current at stall (a bar and a scale: Kt); phase-short brake torque at 1 m/s; the handbrake hold; clamp slip test at 2 x the peak axle moment; the stator temperature at 10 A for 20 min; the tyre's stiffness at 25/30/35/40 psi (the leg plan's bench test); a 40 mm puddle run after sealing (W8). docs/wheel-bench-tests.md, exports/wheels/bench.json each test's number recorded against the study's estimate (Kt 0.52, R 0.18, k 67 N/mm at 35 psi, 5.2 N m continuous) with a pass/fail and the sim re-run where it differs by more than 20 %
W7 Encoder upgrade (only if W5 or P1 asks). AS5047P on the 75100's ENC port, a 6 x 2.5 mm diametric magnet on the rotor's outer cover, a printed arm and shroud from the foot; or an off-axis ring on the inner cover. cad/fivebar.py (the arm), catalog/electronics.json, firmware the VESC reads 14-bit position at standstill; the balance sim's quantisation step removed
W8 Sealing and connectors. The hub's seal procedure (grease, silicone, lead exit, vent plug) written and done on both wheels; Deutsch DTP (phases) and DT (halls, NTC) at the wheel link's exit; the belly box's gasket, glands and vent; harness lengths in exports/leg/cables. docs/wheel-change-plan.md (this file's section), docs/body-plan.md (belly box), catalog/connectors.json, exports/leg/cables a 40 mm puddle run of 10 min with no water in the hub or the belly box; the connectors' part numbers and prices in the catalog
W9 Docs. docs/body-plan.md (wheels, drivers' set-up, the belly box IP), docs/handoff.md, the build page (designer/build.html) with the new wheel, tyre, tube, clamp hardware and connectors; the user manual's envelope: 35-40 mm lips, 10 deg slopes, 40 mm puddles, no stairs. docs/*, designer/build.html the build page lists the wheel at its live price with two sellers; the envelope stated

Order: W1 first (nothing is cut before the motor is measured); W2, W3 and W5 in parallel once W1's numbers are in; W4 after W2; W6 as soon as a motor and a 75100 are on the bench; W7 only on demand; W8 with W6; W9 last.

Open choices made here (change them in D69 if the main session disagrees)