I built this system using a couple months of my expendable time and money. The idea was to build a platform where I could try and compare all the different control techniques I've learned about while getting my controls minor at Caltech.

The system tracks a small helicopter using an IR illuminator and camera. The helicopter has three reflectors on it in a known geometry. The system computes the roll, pitch, yaw, and x,y,z positions of the helicopter at 120Hz. It can then command the helicopter over a radio link. The system also includes a simulator.

It works! Sebastian and Takeshi used it to test their machine learning project for a class - a neural network based adaptive controller. I'm continuing the work this semester for the same class. It can hover and follow a slow trajectory, but it is still pretty low bandwidth and tends to oscillate. I've been able to identify the problem as the result of nonminimum-phase dynamics. Basically, when you tell the heli to go left, it goes right just for a split second while it banks, and then goes left. The same thing happens when you ride a motorcycle. This is a classical problem, and there are plenty of ways around it. For now I'm just happy to have it flying.

In this video, you can see the camera on the left. The little white things in a circle are Infra-Red lights surrounding the camera lens. The reflectors are mounted on the front of the heli. You can see the tracked reflectors in the black window on the screen, and the estimated position of the heli in the 3-d animation of a helicopter in the blue window (though it's hard to see with the compression).