2023-06-01 Attitude Manager Meeting Notes

 Date

Jun 1, 2023

 Participants

  • @Aidan Bowers (Deactivated)

  • @lekang wang

  • @Roni Kant

  • @Anthony Bertnyk

  • @Christopher Chung

 Goals

  • What is Attitude Manager?

    • What does it need to do?

      • Accept some form of input (autonomous or human)

      • Control the attitude of the aircraft

      • Control systems that are effective for multiple air frames

      • Run a control system to achieve our desired state in space

      • Output to the control surfaces and motors

      • Awareness of current state, retrieved fro ma separate system

    • What does the current implementation look like?

    • How does it communicate with the rest of the system?

      • Exact inputs and outputs

      • Outputs (there will be multiple for each type of motor, dependent on frame type)

        • Servo motors

          • 50Hz pwm

        • BLDC Motors (ESCs)

          • 50Hz pwm or DSHOT(150, 300)

            • Attitude manager shouldn’t need to choose the protocol

        • Logging

          • Outputs for each motor

          • Desired attitude

          • We expose a method to query the outputs from AM

            • Need to ensure this is what the rest of the team does as well

      • Inputs

        • What flight mode we are in

        • configuration data

          • What motors on what pins & their protocol

          • PID gians input

        • Input channels

          • Assuming only Roll, pitch, yaw, throttle channels for now, as that is all we need for milestones

          • Input as a percentage -100 to 100 (float)

        • AHRS data

  • Review the EFS milestones

    • Identify what attitude manager needs to do for each milestone

      • FW2 Attitude manager handles the pass through of inputs to motors

      • FW3 Stick inputs map to angles

        • PID control algorithm to target pitch/roll angles

        • Comms with sensor fusion

        • PID gains input

        • Configurable max angles for each axis

      • FW4 Altitude hold control algorithm combined with stick inputs to angles

        • rate of climb/decent maps pitch input

        • airspeed maps to throttle input

        • configurable max climb rate & max/min airspeed

      • FW5 wind compensating ground track following algorithm

        • combines all of the above algorithms plus will try to keep aircraft on ground track

      • FW6 Auto takeoff sequence

        • Cruise mode + path manager coordination

        • Flight mode switching?

      • Q1 quadcopter acro

        • control algorithm to control rate of rotation on each axis + throttle

        • configurable frame type

      • Q2 Quadcopter Stabilize

        • Stick inputs (pitch/roll) to angles of the aircraft

      • Q3 Altitude hold

        • Throttle now targets climb/decent rate, zero throttle should not change altitude

      • Q4 Loiter

        • Position hold control algorithm

        • Stick (pitch/roll) inputs map to speed

      • Q5 Auto takeoff

        • Coordination with path manager

    • Break down how we get to each milestone and meet the feature requirements for that milestone

  • Create rough architecture for attitude manager

  • Using the feature requirements scope out tasks and effort estimations (keep them as small and as self-contained as possible

  • Review Development workflow