Unmanned Aerial Vehicles (UAVs) today are becoming smarter and are able to perform ever more difficult tasks. They can help find people in remote environments, or explore dangerous places.
Nicolas Roy, from the Robust Robotics Group at MIT, leads a team that designed a quadcopter that won the International Aerial Robotics Competition last year. And guess what? It runs on Linux.
Linux Format magazine caught up with him for a chat...
Linux Format: Tell us about your UAVs. Where did the idea come from originally?
Nicholas Roy: We started about three years ago. Ruijie He, who was an undergraduate student at the time, started working with me on this crazy idea we had to get a helicopter, equipped with a laser rangefinder, to fly through an open door. It was RJ's undergraduate project, and we made a lot of design mistakes along the way that were extremely educational.
The following summer, we contacted Ascending Technologies, who make the vehicles for us. Their vehicles are stable, robust and easy to work with, so that was a huge step forward. Abraham Bachrach, Sam Prentice and Garrett Hemann joined the project shortly after, and with that critical mass, we started making rapid progress.
LXF: A quadcopter is far more complex than a helicopter or a plane. Is there a market for them?
NR: It's a mistake to say that the quadrotors are more complex. There are advantages and disadvantages to any air vehicle design, from fixed-wing ones to traditional rotary wing vehicles to quadrotor helicopters.
The major advantage for us in using a helicopter is the ability to hover, which a fixed-wing vehicle can't do unless it can prop-hang. The complexity of controlling a quadrotor vehicle compared to a traditional helicopter isn't so much a function of the vehicle as what you want to do with it.
LXF: So why have you decided to stick with a quadrotor design rather than a single-rotor one?
NR: The quadrotor design provided by Ascending Technologies is less complex, more stable and easier to control than a conventional design. The increase in stability naturally limits the dynamics of the vehicle, but the current limits of our sensors mean that we probably can't control or recover from extremely highly dynamic manoeuvres yet. We're working on that.
LXF: What drives your UAV?
NR: Our air vehicles and their propulsion mechanisms were designed by Ascending Technologies in Germany. The custom hardware they build for us is excellent and they deserve 100% of the credit.
There are four electric motors, one for each rotor. If you vary the speed of the motors, the vehicle will pitch or roll. You control the altitude of the vehicle, which in turn generates momentum.
There's a 1.6GHz Atom-based PC with an SD card that communicates over a serial link with an ARM-based microcontroller. Then there's a Wi-Fi link to the Atom-based PC.
LXF: Why have you chosen Linux?
NR: The two main reasons are firstly that we have a large codebase that has built up over time. Our helicopter control code is derived from a ground vehicle package available at http://carmen.sourceforge.net.
The open source nature of Linux also gives us a lot of transparency when working with hardware, such as the vehicle microcontroller and sensors. When interaction with the hardware doesn't work correctly, it's nice to be able to step through the drivers and see what's going on.
That being said, we're pragmatic about choosing the right tool for the job, and Linux isn't a silver bullet. In our lab, we run Windows and Mac OS X as well as multiple flavours of Linux, depending on what we're doing.