Skip to content

Docs: ADR 0010 (proposed) – hover thrust model and online estimate - #34

Merged
andrea-cirillo merged 1 commit into
mainfrom
claude/adr-hover-thrust
Nov 7, 2026
Merged

andrea-cirillo merged 1 commit into
mainfrom
claude/adr-hover-thrust

Conversation

@andrea-cirillo

Copy link
Copy Markdown
Collaborator

Proposal only: a new decision record, no code changes yet.

ADR 0010 (Proposed): hover thrust.

Why. With the Mech A1 mass budget, hover needs about 0.71 duty for T400 on a full 1S pack. At the end of the pack it needs about 0.86, and T1200 needs about 0.96. Today the default is 0.45 and the learned value is clamped at 0.75. The learning is a low-pass of the command and the collective is in duty units, so the loop gain changes with the battery.

Proposal:

  1. Normalised-thrust collective. The mixer linearises the thrust curve (thrCurve, quadratic by default) and compensates the battery voltage (V_ref / V_bat). The vertical gains then hold over the whole pack.
  2. 1-state Kalman hover-thrust estimator from the bias-corrected vertical acceleration, the same idea as PX4's hover_thrust_estimator.
    • It runs only in valid conditions: in air, tilt < 30°, out of ground effect, not saturated.
    • It replaces learn_hover(). The alt_ctrl integrator limit goes down from 0.35 to 0.15.
  3. hoverThr parameter (id 80) seeded per tray: T400 0.51, T800 0.58, T1200 0.65.
  4. CHECKS "thrust margin": WARN when hover takes more than 80 % of the thrust available at the current voltage.
  5. Logging: hover estimate, its σ, NIS, battery compensation factor, motor duties.

The record also lists a minimal fix if phase 3 starts first: FC_HOVER_DEFAULT 0.70, FC_HOVER_MAX 0.95, thr_max 0.95. It ends with a validation plan: host test, thrust stand, tethered hover.


Generated by Claude Code

Normalised collective with a battery-compensated, linearised mixer; 1-state Kalman
estimate of the hover thrust from the vertical acceleration (replaces learn_hover);
hoverThr / thrCurve parameters; thrust-margin check; logging; validation plan.
Hover values from the Mech A1 mass budget (T400 / T800 / T1200).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Nr6Xnv8axshXV5pw79JDM
@github-project-automation github-project-automation Bot moved this to Backlog in @ACwing Nov 7, 2026
@andrea-cirillo
andrea-cirillo merged commit b78446a into main Nov 7, 2026
7 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in @ACwing Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant