What's a Quadra Copter anyway?
A QC could best be described as a four bladed helicopter that flies and hovers by producing vertical thrust with each of it's 4 rotors.
The device maneuvers by varying the thrust ratio between pairs of rotors. While a helicopter needs a tail rotor to arrest the torque moment of the main blade a QC uses a pair of clock wise and a pair of counter clock wise rotating blades to cancel the torque moments. Therefore all energy goes into lift. The craft can yaw by changing the trust ratio between CW and CCW pairs or rotors. Thrust of each blade is modulated by varying the RPM of each motor.
The simplicity of the design however comes with a price, the contraption is extremely unstable. Trying to control it manually is like trying to balance a marble on top of a large glass sphere. There is simply no chance to even get it a foot of the ground without flipping it over.
To provide stability 3 MEMS gyros and 3 Accelerometers are used along with a MCU. The gyros are solid state rate sensors and provide the main input to the PID loops that stabilize the hovering platform. While it is possible to use a triad of gyros only, thermal drift of the devices and quantization errors in the ACD's eventually add up in the integration of the rate signal to deck angles, which in term cause the craft to drift.
The role of the accelerometers therefore is to provide drift compensation for long term stability. This is done by looking at the gravity vector and correcting the roll and pitch angles while hovering in a narrow range around level. This scheme works relatively well, however a Kalman filter approach certainly would provide better results in corner case situations, but with an 8 bit PIC running at 8 mips that's simply not an option. The next version of the controller will be based on a TI or ATMEL part with floating point instructions undoubtedly.
Here is some footage of the craft in flight. You notice the tether going to a stationary battery. This initially helped a great deal with keeping the craft from "departing" the yard and getting itself stuck in a tree. After the initial testing of the HW and SW the tether was replaced by a 2200mah LiPoly battery. It provides for about 15-20 minutes of hovering when the craft is light. A 40000mah pack is needed for the same duration when the digital camera is going along for the ride.
Some of the issues to overcome in the next design have to do with vibrations of the motors/propellers and coupling of it back into the gyros. When the motors RPMs are modulated to keep the craft steady the RPMs of the individual motors keep crossing each other. If there is any vibration from the individual motors and the motors transmit that vibration into the frame, the two frequency mix and form a product that's the difference of the two. This beat frequency is then picked up by the rate sensors to produce a false reading. It can't be filtered out as it's frequency is in the range of motion that we want to detect with the rate sensors in the first place. The next design of a the HW will include some damping in the motor mounts and a frame that doesn't transmit so well.
Generally this has been a very fun and educational project. I initially started it because I wanted a cheaper, more efficient way to take aerial pictures. I leveraged of the work of a group of modelers in Europe who sell the blank PCB pictured below along with having their firmware in the public domain. Unfortunately the PCB had many electrical issues and the software suffered from the "too many cooks" syndrome. I eventually ended up rewriting the firmware on a more modern and faster PIC and I will undoubtedly have to redesign the board to switch to a better controller before I can get serious with trying to take aerial pictures for money again.