Getting drones to fly around without hitting things is no small task. Obstacle-detection and motion-planning are two of computer science’s trickiest challenges, because of the complexity involved in creating real-time flight plans that avoid obstacles and handle surprises like wind and weather.
In a pair of projects announced this week, researchers from MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) demonstrated software that allow drones to stop on a dime to make hairpin movements over, under and around upwards of 26 distinct obstacles in a simulated “forest.”
One team’s video shows a small quadrotor doing donuts and figure-eights through an obstacle course of strings and PVC pipes. Weighing just over an ounce and clocking in at 3 and a half inches from rotor to rotor, the drone can fly through the 10-square-foot space at speeds of upwards of 1 meter per second.
The team’s algorithms, which are available online and were previously used to plan footsteps for CSAIL’s Atlas robot at the DARPA Robotics Challenge, segment space into “obstacle-free regions” and then link them together to find a single collision-free route.
“Rather than plan paths based on the number of obstacles in the environment, it’s much more manageable to look at the inverse: the segments of space that are ‘free’ for the drone to travel through,” says recent master’s graduate Benoit Landry, who was first author on a related paper just accepted to the IEEE International Conference on Robotics and Automation (ICRA). “Using free-space segments is a more ‘glass-half-full’ approach that works far better for drones in small, cluttered spaces.”
In a second CSAIL project, PhD student Anirudha Majumdar showed off a fixed-wing plane that is guaranteed to avoid obstacles without any advanced knowledge of the space, and even in the face of wind gusts and other dynamics. His approach was to pre-program a library of dozens of distinct “funnels” that represent the worst-case behavior of the system, calculated via a rigorous verification algorithm.
In a related project, a planner searches a library of pre-computed funnels and selects one that doesn’t intersect with the obstacles. (Credit: MIT CSAIL)
“As the drone flies, it continuously searches through the library to stitch together a series of paths that are computationally guaranteed to avoid obstacles,” says Majumdar, who was lead author on a related technical report. “Many of the individual funnels will not be collision-free, but with a large-enough library you can be certain that your route will be clear.”
Both papers were co-authored by MIT professor Russ Tedrake; the ICRA paper, which will be presented in May in Sweden, was also co-written by PhD students Robin Deits and Peter R. Florence.
Drones in high-density
A bird might make it seem simple, but flight is a highly complicated endeavor. A flying object can change position in six distinct directions – forward/backward (“surge”), up/down (“heave”), left/right (“sway”), and by rotating front-to-back (“pitch”), side-to-side (“roll”), and horizontally (“yaw”).
“At every moment in time there are twelve distinct numbers needed to describe where the system it is and how quickly it is moving, on top of simultaneously tracking other objects in the space that could get in your way,” says Majumdar. “Most techniques typically can’t handle this sort of complexity in real-time.”
One common motion-planning approach is to sample the whole space through algorithms like the “rapidly-exploring random tree.” Although often effective, sampling-based approaches are generally less efficient and have trouble navigating small gaps between obstacles.
Landry’s team opted to use Deits’ new free-space-based technique, which he calls the “Iterative Regional Inflation by semidefinite programming” algorithm (IRIS). They then coupled IRIS with a “mixed-integer semidefinite program” (MISDP) that assigns specific flight movements to each “space-free region” and then executes the full plan.