Never reference the ground attitude -- a flight-built hull lies on its side

The attitude reference was captured at the first sensor read, on the ground,
where a ship built to fly typically lies over. That made every tilt reading
relative to a meaningless datum, and worse: the hull's natural righting swing
after liftoff was read both as tilt and as rate response, contaminating the
very measurement the test exists to make.

- Attitude reference is now taken in the air, after an explicit righting
  phase that waits for every axis rate to steady (5 s calm, 120 s cap).
  Until then maxTilt() reads 0, so nothing can trip on ground attitude.
- The settled airborne attitude is recorded and reported per axis, with a
  warning if the hull settles far from level even under balanced lift.
- Wizard now says outright that a ship lying over on the ground is fine.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-24 00:00:44 +02:00
parent 81e558d04e
commit a94eff9283
2 changed files with 71 additions and 21 deletions

View File

@@ -29,13 +29,18 @@ side drives which balloon, pitch sign, hover level) is measured on the ship by
the **setup wizard**, which the install flow takes you straight into:
1. **Wiring** — the wizard pulses each free side; you say which burner fired.
2. **Sign test** — the ship lifts off by itself, finds its own lift power, then
*rocks* between front and aft pushes. The sign comes from
`rate(+push) rate(push)`, which cancels any constant lean exactly, so a
ship hanging crooked measures fine — that lean **is** the thing being
measured. It then learns the differential trim that levels the ship, saves
it as a warm-start, and descends to hover. No config editing, no freefall.
Takes 24 minutes.
2. **Sign test** — the ship lifts off by itself, finds its own lift power,
waits until buoyancy has righted it and the rates have steadied, and only
*then* takes its attitude reference. It rocks between front and aft pushes;
the sign comes from `rate(+push) rate(push)`, which cancels any constant
lean exactly, so a ship hanging crooked measures fine — that lean **is**
what is being measured. It then learns the differential trim that levels
the ship, saves it as a warm-start, and descends to hover. No config
editing, no freefall. Takes 24 minutes.
A hull built to fly usually lies over on the ground; that is fine and
expected. The ground attitude is never used as a reference — nothing is
measured until the ship is airborne and steady.
After that the ship is ready: `FLY` from the menu or `ENGAGE` from the cockpit
console. Pitch and altitude keep self-learning in flight. The wizard can be