Control

All control occurs within the ControlledAircraft and is broken down into low-level loop-closure based PID controllers and high-level control. Each allowing for increasing level of abstraction in the action space. –>

Low-level control

Low-level controllers are used to hold and maintain the Kinematic aircraft in a fixed attitude and speed. Each follow a PID type controller.

stateDiagram-v2 direction LR [*] --> ErrorSum: r(t) ErrorSum --> Proportional: e(t) ErrorSum --> Integral: e(t) ErrorSum --> Derivative: e(t) Proportional --> ControlSum Integral --> ControlSum Derivative --> ControlSum ControlSum --> Aircraft: u(t) Aircraft --> [*]: y(t)

Controllers include:

  • Pitch pitch_controller

  • Roll roll_controller

  • Speed speed_controller

High-level control

High-level controllers are used to control higher order functions allowing offloading the problem of decision-making to be a higher-order task. These build on the low level controllers to include:

  • Altitude alt_controller

  • Heading heading_controller

  • Pursuit pursuit_controller

API