As my senior project, my friend and I created what is essentially an autonomous quadcopter/drone. It took around 7 months of experimenting, tuning, breaking and reordering parts to finally get it to fly. Only to have it spin out of control and smash into the ground. Another 2 weeks of building and we finally had a quadcopter which we could turn on, and leave to its own devices. The chassis, battery, motors, ESC's and propellers were all ordered separately from different sources and put together by the team. The main flight controller helps stabilize the craft, and an Arduino based AtMega382 microcontroller sends preprogrammed signals into the flight controller to direct the drone and fly it without us having to do anything. The program is written by the team, and can be changed dynamically. The one thing we did program in that used a remote controller was a safety kill switch, implemented by an interrupt service routine. Just in case.