...
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
2 FW2 Attitude manager handles the passthrough pass through of inputs to motors
3 FW3 Stick inputs map to angles
PID control algorithm to target pitch/roll angles
Comms with sensor fusion
PID gains input
4 Altitude hold control algorithm
- 5
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