caelan / pddlstream

PDDLStream: Integrating Symbolic Planners and Blackbox Samplers
https://arxiv.org/abs/1802.08705
GNU General Public License v3.0
364 stars 98 forks source link

Does PDDLStream support multi agent planning? #34

Closed roshandhakal closed 11 months ago

roshandhakal commented 2 years ago

In the example figure below, the goal is to put block B in red region. First, I want r0 to move block B closer towards r1. Then r1 takes block B towards the red region.

If it supports multi agent planning, where do I specify that? image

sea-bass commented 2 years ago

I'm not the author, but I would think you could have parameterized actions assuming it's a homogeneous multi-agent problem (that is, all agents have the same capabilities).

In a single-agent world, suppose your actions are:

move(?p_start ?p_goal)
pick(?obj)
place(?obj ?p)

If you expanded this to accept a "robot" type object, then your action space would become

move(?robot ?p_start ?p_goal)
pick(?robot ?obj)
place(?robot ?obj ?p)

Where ?robot could now have the values r0 or r1.

Now, this wouldn't give you any parallelism in the planning (for example, do simultaneous actions with r0 and r1). So if you're trying to achieve something in minimum time by doing things with all agents at any given time, that won't help much. You might then need to think about recasting your planner as a resource allocation problem, where you might favor using a particular agent if the other agents are busy. That's where the limit of my TAMP knowledge goes, but maybe you're OK with my first solution?

roshandhakal commented 2 years ago

Hi Sebastian,

I am only seeing this. I tried to workout with this, but didn't succeed, hence I left it for next attempt. But, I totally get the idea, which infact was similar to what I attempted. Regardless, I will try approaching this problem again in the future, and will update on you if I get the result.

Thank you once again.

caelan commented 11 months ago

There are several very experimental examples that demonstrate asynchronous temporal planning: