Flight Controller - Pitt-RAS/iarc7_common GitHub Wiki
Philosophy of the Flight Controller
The flight controller provides automatic stabilization and motor arming management. Flight controllers have a range of complexity but in essence, a flight controller takes in commands and data from sensors (Accelerometer, Gyro, Barometer, etc.) and adjusts the motors to accomplish the command. I found this source to be a good explanation of why they are necessary. Due to the fact that the flight controller just takes commands, it can take input put from a RC drone controller and allow us to control it manually.
Two popular flight modes are Acro and Angle. The mode we use is Angle Mode. In angle mode, an orientation command is passed to the flight controller and the flight controller will attempt to maintain this orientation. In acro mode, you will pass the flight controller a rate of rotation for the quadcopter. This is useful for acrobatics because you can't specify a single angle when you want to flip a quadcopter. Instead you want it to rotate at a specified rate.
For the specific flight controllers on the drone, see