They system was developed by Andrew Barry, a Ph.D. student at MIT’s Computer Science and Artificial Intelligence Lab (CSAIL). When designing his drone, Barry avoided using sensors like lidar, which are difficult to attach to a small UAV because of their heavier weight. He also stayed away from pre-existing mapping solutions as he wanted a drone that could adapt on the fly (literally) to changing terrain.
Because of these restrictions, Barry chose to develop and optimize an obstacle detection algorithm that would detect hazards in the flight path and adjust the trajectory of the UAV in real time. The system that he built uses two small processors similar to the ones you would find inside a cell phone, and two cameras that are mounted on each wing. This hardware is paired with a stereovision algorithm that allows the drone to build a full map of its surrounding as it flies. The software runs at 120 frames per second, extracting depth information at an astounding 8.3-milliseconds per frame.
Unlike traditional obstacle avoidance systems that take measurements every 10 meters, Barry’s software is designed to capture frames and compute distance measurements every 10 meters. “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.” This strategy allows the drone to fly at a much faster rate than other self-flying drones that are limited to just five or six miles per hour.
To capture footage of the action, the MIT team tested the drone in a wooded area with a human-controlled drone following the autonomous one. Barry hopes to improve his algorithm so it will make measurements at multiple distances, instead of only 10 meters. This sophisticated algorithm would allow the drone to fly even faster in more complex environments such as a thickly wooded forest.