Skip to content

Sequential Desaturation with Airmode Priority

Scanner output reproduced for this case study. Source code omitted for clarity.

Summary

An iterative actuator saturation elimination algorithm that prioritizes roll/pitch control over yaw and thrust by sequentially adjusting control axes using desaturation vectors.

Key insight

The algorithm establishes a three-tier priority hierarchy (roll/pitch, yaw, thrust) for actuator desaturation by treating thrust as an adjustable margin rather than a fixed setpoint, using iterative gain-halving refinement to bring saturated actuators back into bounds while preserving higher-priority control axes. The airmode variants encode domain-specific tradeoffs between attitude authority and thrust tracking fidelity.

Interface

Saturated actuator commands + mixing matrix + airmode policy
→ desaturated actuator commands with priority-preserving adjustments

Technical approach

The algorithm computes a desaturation gain by finding how much a desaturation vector (e.g., the thrust-z column of the mixing matrix) must be scaled to bring the most-saturated actuator back into bounds. It applies this gain, then repeats with half the gain for refinement. Airmode variants (disabled, roll-pitch only, full RPY) determine which axes are allowed to increase thrust: airmode-disabled only reduces thrust; airmode-RP allows thrust increase for roll/pitch but not yaw; airmode-RPY allows thrust increase for all axes with roll/pitch priority.

Components

  • Saturation detector
  • Desaturation gain calculator
  • Airmode priority selector
  • Iterative gain-halving refiner
  • Mixing matrix column projector

Component interaction

The saturation detector identifies which actuators exceed bounds and by how much. The airmode priority selector determines which desaturation vectors (thrust-z, yaw, or both) are allowed based on the current mode. For each allowed vector, the desaturation gain calculator computes the scalar needed to bring the most-saturated actuator back into range by projecting the mixing matrix column onto the saturation space. The gain-halving refiner applies the full gain, then repeats with half the gain to reduce overshoot. The mixing matrix column projector translates each desaturation vector into actuator-space adjustments, with roll/pitch corrections applied first, then yaw, then thrust reduction as a fallback.

Engineering characterization

Engineering observation, not a legal grade. Technical axes are on a 0..1 scale; paradigm shift is 0..3. A dash means the axis wasn't scored on this scan.

Technical

DimensionResult
Technical distinctiveness72%
Implementation depth68%
Problem specificity78%
Generality35%
Estimated commonness (lower means less common in comparable systems)25%
Paradigm shift1 / 3

Strategic

DimensionResult
Product centrality82%
Defensibility64%

Distinctiveness mechanism

What makes this engineering approach unusual, named in the model's own words. An engineering observation only.

Thrust-as-adjustable-margin desaturation

tradeoff_break

Achieves both attitude tracking (roll/pitch/yaw) and actuator feasibility by treating thrust as a continuously adjustable degree of freedom rather than a fixed setpoint, avoiding the typical tradeoff between command tracking and saturation handling that fixed-thrust allocators face.

Three-tier axis priority encoding via selective desaturation vector enabling

cross_domain_transfer

Applies a priority-queue-like discipline (common in scheduling and resource allocation) to continuous control allocation by selectively enabling desaturation vectors (thrust-z only, yaw+thrust, or all axes) based on airmode policy, rather than using weighted cost functions typical in optimal allocation.

Observability

Of the shipped product

DimensionResult
Detectability75%
Reverse-engineerability55%

Observability reasoning

The mechanism runs on the flight controller on the aircraft and its effects are visible in motor command telemetry and flight behavior (e.g., thrust dips during aggressive maneuvers when airmode is disabled, sustained attitude authority when enabled). The priority ordering is detectable from logged actuator commands and IMU data during saturation events. However, the specific iterative gain-halving refinement and the mixing matrix column projection are internal computations; an observer would see the result (desaturated commands) but reconstructing the exact algorithm from telemetry alone would require reverse-engineering the desaturation vector selection logic and gain calculation, which is partially obscured by the iterative refinement.

Substrate discrimination

DimensionResult
Substrate specificity70%

Noun-swap reasoning

Substituting “roll/pitch” → “primary axes,” “yaw” → “secondary axis,” “thrust” → “desaturation axis” preserves the core iterative desaturation logic, but the airmode priority hierarchy (roll/pitch > yaw, thrust as adjustable margin) is specific to multicopter flight dynamics. The mechanism binds to the axis semantics, not just generic saturation handling.

Reviewer summary

An iterative actuator saturation elimination algorithm for multicopter control allocation that enforces a three-tier priority hierarchy: roll/pitch control authority is preserved first, yaw second, and thrust is adjusted as the desaturation margin. The algorithm computes desaturation gains by scaling mixing matrix columns (thrust-z for airmode-disabled, yaw and thrust for airmode-RP, all axes for airmode-RPY) to bring saturated actuators back into bounds, then refines with half-gain iterations. The airmode variants encode domain-specific tradeoffs between attitude stability and thrust tracking.

Comparable techniques

Model-generated technical analogies that may help a qualified reviewer form search directions. These are not prior-art references, search results, or statements that any listed technique discloses this finding.

  • Quadratic programming control allocation (e.g., CVXGEN, qpOASES)
  • Pseudo-inverse mixing with post-saturation clipping
  • Cascaded saturation with fixed priority (ArduPilot motor mixing)
  • Linear programming allocation with weighted objectives
  • Daisy-chaining allocation (NASA AirSTAR)
  • Incremental nonlinear dynamic inversion with control hedging

Source

Location: src/lib/control_allocation/control_allocation/ControlAllocationSequentialDesaturation.cpp

Source code omitted for clarity.

Depends on

  • mixAirmodeDisabled()
  • mixAirmodeRP()
  • mixAirmodeRPY()
  • mixYaw()
  • desaturateActuators()
  • computeDesaturationGain()

Confidence trace

Iterative desaturation with airmode priority (roll/pitch over yaw, thrust as adjustable margin) using desaturation vectors and gain scaling is a distinct, grounded saturation elimination algorithm.

  • Characterization confidence: high
  • Filter confidence: 85%

Back to the PX4 scan case study

Obviously Not is a technical analysis tool, not a law firm. Obviously Not does not provide legal advice, represent scan users or repository owners, determine patentability, or create an attorney-client relationship by analyzing code or generating a report. Strategic concepts are technical findings for further review, not legal conclusions or filing recommendations. Consult your own qualified patent attorney about your specific facts, potential rights, deadlines, jurisdictions, and any patent application.