Due to time constraints, we opted to modify the open source quadcopter flight control system provided by Aeroquad rather than writing software from scratch. We choose Aeroquad due to its flexibility to accomodate many different hardware configurations, and its pre-existing libraries supporting our 9 Degrees of Freedom sensor connected via I squared C (I2C).
Because we custom built our Quadcopter with different electronics than the pre-built Aeroquad shields, a variety of modification were made to the software:
- Radio Integration & Controller – Our quadcopter needed to communicate to a base station computer using a Logitech Dual Action gamepad (PS2 controller).
- Remote PID Tuning – We added a feature to remotely tune the PID without having to physically re-connect the quadcopter to a computer after each test flight.
- Motor Control – Due to limited pin configurations, we were required to implement a different motor controller library.
To develop the quadcopter software, we used an Eclipse environment as explained in Project 1. However, due to a complex set of dependencies on multiple libraries not easily importable into Eclipse, the Arduino IDE compiled and uploaded the AeroQuad software to the copter board.
Version control was accomplished using GitHub, where our full source code is freely available.