Skip to content

Control Stack

The control stack is the core of VisionFlow-PX4, responsible for converting state estimation into actuator commands.

Controller Architecture

PreGME Controllers

PreGME (Prescribed Performance Guidance and Management Estimator) is the primary research contribution of this project.

Prescribed Performance Control (PPC)

PPC maps constrained errors to an unconstrained space through transformation functions, ensuring that system responses always remain within prescribed performance bounds:

  • Convergence Rate — Controls the error convergence rate through prescribed functions
  • Overshoot — Strictly limits maximum overshoot
  • Steady-State Accuracy — Guarantees final error is less than a predetermined threshold

Composite Error State Observer (CESO)

CESO estimates and compensates for system uncertainties and external disturbances:

EstimateDescription
Inertia MatrixOnline estimation of aircraft inertia parameter variations
Disturbance ObservationEstimates wind disturbances, arm reaction forces, etc.
Trajectory PrescriptionSupports multiple prescribed trajectory modes

Parameter Files

  • English parameter reference: src/modules/pregme_att_control/pregme_att_control_params_en.yaml
  • Chinese parameter reference: src/modules/pregme_att_control/pregme_att_control_params_zh.yaml

Standard Controllers

Standard PX4 controllers (MPC) are retained for comparative testing and fallback operation:

ModuleDescription
mc_att_controlMulticopter attitude control (MPC)
mc_pos_controlMulticopter position control (MPC)
mc_rate_controlMulticopter rate control
mc_autotune_attitude_controlAutotune attitude control

Switching Mechanism

The active controller is selected via the airframe configuration file:

bash
# Use PreGME controllers (default)
4004_gz_q940_ti_gripper3  # Uses pregme_att_control + pregme_pos_control

# Use standard controllers
4001_gz_x500              # Uses mc_att_control + mc_pos_control