Programming drones to fly in the face of uncertainty
Companies like Amazon have big ideas for drones that can deliver packages right to your door. But, even putting aside the policy issues, programming drones to fly through cluttered spaces like cities is difficult. Being able to avoid obstacles while traveling at high speeds is computationally complex, especially for small drones that are limited in how much they can carry on-board for real-time processing.
Many existing approaches rely on intricate maps that aim to tell drones exactly where they are relative to obstacles, which isn't particularly practical in real-world settings with unpredictable objects. If their estimated location is off by even just a small margin, they can easily crash.
With that in mind, a team from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) has developed NanoMap, a system that allows drones to consistently fly 20 miles per hour through dense environments like forests and warehouses.
One of NanoMap's key insights is a surprisingly simple one: the system considers the drone's position in the world over time to be uncertain, and actually models and accounts for that uncertainty.
"Overly confident maps won't help you if you want drones that can operate at higher speeds in human environments," says graduate student Pete Florence, lead author on a new related paper. "An approach that is better aware of uncertainty gets us a much higher level of reliability in terms of being able to fly in close quarters and avoid obstacles."
Specifically, NanoMap uses a depth-sensing system to stitch together a series of measurements about the drone's immediate surroundings. This allows it to not only make motion plans for its current field of view, but also anticipate how it should move around in the hidden fields of view that it has already seen.
"It's kind of like saving all of the images you've seen of the world as a big tape in your head," says Florence. "For the drone to plan motions, it essentially goes back into time to think individually of all the different places that it was in."
The team's tests demonstrate the impact of uncertainty. For example, if NanoMap wasn't modeling uncertainty and the drone drifted just five percent away from where it was expected to be, the drone would crash more than once every four flights. Meanwhile, when it accounted for uncertainty, the crash rate reduced to two percent.
The paper was co-written by Florence and MIT professor Russ Tedrake alongside research software engineers John Carter and Jake Ware. It was recently accepted to the IEEE International Conference on Robotics and Automation (ICRA), which takes place in May in Brisbane, Australia.
Moving beyond maps
For years computer scientists have worked on algorithms that allow drones to know where they are, what's around them and how to get from one point to another. Common approaches like simultaneous localization and mapping (SLAM) take raw data of the world and convert them into mapped representations.
But the output of SLAM methods aren't typically used to plan motions. That's where researchers often use methods like "occupancy grids," in which many measurements are incorporated into one specific representation of the 3-D world.
The problem is that such data can be both unreliable and hard to gather quickly. At high speeds computer-vision algorithms can't make much of their surroundings, forcing drones to rely on inexact data from the inertial measurement unit (IMU) sensor, which measures things like the drone's acceleration and rate of rotation.
The way NanoMap handles this is that it essentially doesn't sweat the minor details. It operates under the assumption that, to avoid an obstacle, you don't have to take 100 different measurements and find the average to figure out its exact location in space; instead, you can simply gather enough information to know that the object is in a general area.
"The key difference to previous work is that the researchers created a map consisting of a set of images with their position uncertainty rather than just a set of images and their positions and orientation," says Sebastian Scherer, a systems scientist at Carnegie Mellon University's Robotics Institute. "Keeping track of the uncertainty has the advantage of allowing the use of previous images even if the robot doesn't know exactly where it is and allows in improved planning."
Florence describes NanoMap as the first system that enables drone flight with 3D data that is aware of "pose uncertainty" – meaning that the drone considers that it doesn't perfectly know its position and orientation as it moves through the world. Future iterations might also incorporate other pieces of information, such as the uncertainty in the drone's individual depth-sensing measurements.
NanoMap is particularly effective for smaller drones moving through smaller spaces, and works well in tandem with a second system that is focused on more long-horizon planning. (The researchers tested NanoMap last year in a program tied to the Defense Advanced Research Projects Agency, or DARPA.)
The team says that the system could be used in fields ranging from search-and-rescue and defense to package delivery and entertainment, and can also be applied to self-driving cars and other forms of autonomous navigation.
"The researchers demonstrated impressive results avoiding obstacles and this work enables robots to quickly check for collisions," says Scherer. "Fast flight among obstacles is a key capability that will allow better filming of action sequences, more efficient information gathering and other advances in the future."
This work was supported in part by DARPA's Fast Lightweight Autonomy (FLA) program.