I'm at the FIRST Robotics Championship in Atlanta and we've just unveiled the first REAL Lego UAV. It's actuallly been working for a few months, but we couldn't talk about it since it's based on the new hardware that was just announced yesterday as the new FIRST Tech Challenge competition kit. Our UAV uses Mindstorms and the new hardware to make a full IMU-based autopilot, which both stabilizes and navigates the plane autonomously. It uses:
--Mindstorms NXT controller
--Two prototype integrating gyros from HiTechnic. These are not the rate gyros already available. Rate gyros output degrees/sec, which requires a pretty gnarly math process to measure and integrate the results over time to get absolute degrees. The prototype iGyros from HiTechnic do that in hardware, and output absolute degrees, which is very easy for the NXT to deal with with.
--A 3-axis accelerometer to calibrate the gyros using a modified Kalman filter. Basically gyros are right in the short term (seconds) but wrong in the long term (minutes; they drift over time). Meanwhile accelerometers are wrong in short term (they're noisy) but right in the long term (they don't drift). So we averge the accelerometer readings over time to correct drift in the gyros.
--A prototype servo multiplexer from HiTechnic. This is similar to the servo driver accessory that they're selling as part of the FTC competition kit, but is designed for RC use. It takes I2C output from the NXT and converts it into PWM for the servos. It also has a channel 6 input from the RC receiver that switches it from RC to NXT control (this is our hardware failsafe switch).
--A GPS sensor/datalogger (iBlue 747) that communicates with the NXT via bluetooth.
I'll post the RobotC code this weekend, but I wanted to give you a quick look at this. It's really cool, flies, and can now expand into anything else in the robotics world, from cameras to communications. More soon!