An MIT researcher built a small Unmanned Aerial Vehicle (UAV, or drone) that can fly itself while avoiding obstacles in its path. Andrew Barry, a PhD student at MIT’s Computer Science and Artificial Intelligence Lab (CSAIL), says, “Everyone is building drones these days, but nobody knows how to get them to stop running into things.” Popular recreational drones can’t fly themselves because the required equipment, such as Lidar sensors, are too big to fit on their small frames. To get around this, Barry came up with an efficient algorithm that saves time and space by processing only the necessary information.
Previous attempts to make autonomous UAVs use algorithms that analyzed numerous images captured by cameras at multiple distances to determine if an object is in a drone’s path. This intensive computing takes time, so drones can only fly autonomously at few miles per hour.
The new approach from CSAIL ignores images from most distances and instead only processes images from ten meters away—no more, no less. The software fills in the missing depth information by integrating results from the drone’s odometry and previous distances. “You don’t have to know about anything that’s closer or further than that,” Barry says. “As you fly, you push that 10-meter horizon forward, and, as long as your first 10 meters are clear, you can build a full map of the world around you.”
By eliminating the excessive computing, his one pound drone is able to fly at 30 miles per hour, while darting to avoid trees or other obstacles that get in its way. Barry’s drone was made from off-the-shelf components including a camera on each wing and two basic processors. His open source code is available online, so you can make your own autonomous drone. Just make sure to keep it within your line of sight.