You can take some robots, take some smart people
and engineers, and make something really nice
and work quickly and efficiently, especially
in the multirobot space.
The problem is that doesn't generalize well.
So suppose you got two robots to coordinate very well
and do this whole thing very nicely.
Maybe you add another robot, the whole plan will break.
And this work tries to pose the problem
in a more general framework, that given
what we call macroactions, you could
use the planner that we have to go out and solve a problem.
So this was an instance of a multi-agent planning
problem that involved a PR2 robot,
and then we also had two turtle bots, and they're our waiters.
The turtle bots cannot communicate with one another
unless they're nearby, and the turtle bots don't know
if someone's going to want to place an order when they go
to their room or not.
The turtle bots also don't know what the other turtle
One way you can try to reduce the problem
is using what are called macroactions.
And the macroactions, they can be
described in a general way of just
like what their effects are.
And so when you do that, you can cover up a lot of details
and trying to coordinate the behavior between the robots.
And you would like to just say, OK, that one go, to Room 1.
And that one, get a drink.
You don't want to actually be thinking about the navigation
The turtle bots started out in a location,
and they immediately looked at what they should do from there,
like what's the macro action?
So it would go inside a room and ask, like,
do you want to order a drink?
Do you want to order a drink?
The student had to say yes by toggling the button.
if they didn't, the turtle assumed
they did not want a drink.
So the observation they would get inside a room
would be I'm in this room, and there's a drink order
or there's not a drink order.
If the turtle bot went to the PR2 and got a drink,
its new observation would be that it's holding a drink.
If both of the robots were in the bar, that's one
they had that limited communication
where they could detect if one of the turtle bots
was being served by the PR2.
And so if that was the case, they
would go and do it different macroaction.
There's two phases in this process.
The first part is offline.
And in the offline process, you are thinking about all
of these problems of how are you going
to get the robots to coordinate their actions,
given that you know they won't be able to communicate all
the time, given that you know they
will have knowledge about the whole world,
where other robots are so.
When you're creating a plan for each of the robots running
individually, that's when you reason about these things.
And then when you're actually executing these controllers
you don't think about any of those sort of things.