A program that allows a single autonomous robot to navigate an uncertain environment with an erratic communication link is difficult and the difficulty for writing code to handle multiple robots that may have to work in tandem is even harder.
Control programs for such multiagent systems, teams of robots or networks of devices with different functions, have generally restricted themselves to special cases, where reliable information about the environment can be assumed or a relatively simple collaborative task can be clearly specified in advance. But MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) has created a new system that stitches existing control programs together to allow multiagent systems to collaborate in much more complex ways.
The system factors in uncertainty — the odds, for instance, that a communication link will drop, or that a particular algorithm will inadvertently steer a robot into a dead end — and automatically plans around it. For small collaborative tasks, the system can guarantee that its combination of programs is optimal — that it will yield the best possible results, given the uncertainty of the environment and the limitations of the programs themselves.
Teams of robots will soon be able to work in tandem to learn on the fly how to conquer problems. We're standing behind Sarah Connor when that happens. Terminator image link: calogero.us
Working together with Jon How, MIT Professor of Aeronautics and Astronautics, and his student Chris Maynor, the researchers are currently testing their system in a simulation of a warehousing application, where teams of robots would be required to retrieve arbitrary objects from indeterminate locations, collaborating as needed to transport heavy loads. The simulations involve small groups of iRobot Creates, programmable robots that have the same chassis as the Roomba vacuum cleaner.
"In [multiagent] systems, in general, in the real world, it's very hard for them to communicate effectively," says Christopher Amato, a postdoc in CSAIL and first author on the new paper. "If you have a camera, it's impossible for the camera to be constantly streaming all of its information to all the other cameras. Similarly, robots are on networks that are imperfect, so it takes some amount of time to get messages to other robots, and maybe they can't communicate in certain situations around obstacles."
An agent may not even have perfect information about its own location, Amato says — which aisle of the warehouse it's actually in, for instance. Moreover, "When you try to make a decision, there's some uncertainty about how that's going to unfold," he says. "Maybe you try to move in a certain direction, and there's wind or wheel slippage, or there's uncertainty across networks due to packet loss. So in these real-world domains with all this communication noise and uncertainty about what's happening, it's hard to make decisions."
The new MIT system, which Amato developed with co-authors Leslie Kaelbling, the Panasonic Professor of Computer Science and Engineering, and George Konidaris, a fellow postdoc, takes three inputs. One is a set of low-level control algorithms — which the MIT researchers refer to as "macro-actions" — which may govern agents' behaviors collectively or individually. The second is a set of statistics about those programs' execution in a particular environment. And the third is a scheme for valuing different outcomes: Accomplishing a task accrues a high positive valuation, but consuming energy accrues a negative valuation.
School of hard knocks
Amato envisions that the statistics could be gathered automatically, by simply letting a multiagent system run for a while — whether in the real world or in simulations. In the warehousing application, for instance, the robots would be left to execute various macro-actions, and the system would collect data on results. Robots trying to move from point A to point B within the warehouse might end up down a blind alley some percentage of the time, and their communication bandwidth might drop some other percentage of the time; those percentages might vary for robots moving from point B to point C.
The MIT system takes these inputs and then decides how best to combine macro-actions to maximize the system's value function. It might use all the macro-actions; it might use only a tiny subset. And it might use them in ways that a human designer wouldn't have thought of.
Suppose, for instance, that each robot has a small bank of colored lights that it can use to communicate with its counterparts if their wireless links are down. "What typically happens is, the programmer decides that red light means go to this room and help somebody, green light means go to that room and help somebody," Amato says. "In our case, we can just say that there are three lights, and the algorithm spits out whether or not to use them and what each color means."