We equipped a stock Blade helicopter with infrared markers and tracked its position and orientation using a Vicon Bonita camera system. A Kalman filter gives us a full state estimate.
Then we hacked the remote and controlled the helicopter via computer. This can be done with many Blade helicopters (all that have DSM2 compatible remote controls).
More sophisticated controls are to be implemented.
EDIT:
A preliminary version of the report can be found at http://people.ee.ethz.ch/~jrichner/main.pdf
GTK application to control any Blade helicopter by joystick, connecting the transmitter of the remote control to the computer via USB-to-Serial cable as described in the report: http://people.ee.ethz.ch/~jrichner/mcx2serial.zip
I’m interested to know how the video processing works, ie what programming language and a high level theory of operation. I hope to see more as you guys progress on the project!
The video processing is handled by the Vicon camera software. The Vicon Bonita system was initially intended for visual artists (motion capture for movies) and features rigid body tracking right out of the box.
An SDK allows streaming position and angular orientation of a 3D object (a rigid collection of markers) into C/C++ or Matlab. We do the Kalman filtering and control in Matlab (it’s fast enough for realtime operation). The remote is controlled from a Python program. For more advanced control algorithms that require online optimization (e.g. Model Predictive Control http://en.wikipedia.org/wiki/Model_predictive_control ), Matlab might be too slow. In this case, a C program might do the job.
I can upload a report for this project in two weeks from now if anyone is interested, e.g. for people who intend to fly their Blade helicopters using a joystick.
Very cool, I was wondering if MATLAB or Python were used, I’m glad to see you’re using both (I love scripting languages). I’m very interested to see your project report, what University/Institution are you at?
“We” are two Master’s students in electrical engineering from ETH Zurich, Switzerland, and this is a semester project which started in Mid-February - and will be due next week. We started from scratch and the idea is that next semester, other students will build upon this framework and start doing fancy control. It’s lots of fun to work on a real life system after 4 years of cramming theories!
BTW: there is a project that has been running for much longer at our school, and features very sophisticated control of quadrotors that dwarve anything I’ve ever seen on that subject:
Sure, I will upload a full PDF report and some code by June 12th, in case somone is interested in flying Blade helicopters using a computer and joystick.
The program will be requiring Python, pyGTK, pySerial and GTK. The only hardware additional to the Blade helicopter/remote will be a standard USB-to-TTL cable, and you will be able to pilot your personal Blade heli (almost all models work) by joystick from your home computer! =)
Hi your work is very impressive. I wanna know more about the matlab algorithm. Will i be able to communicate via e-mail rather than posting stuff as comments??