pddlstream icon indicating copy to clipboard operation
pddlstream copied to clipboard

Does PDDLStream support multi agent planning?

Open roshandhakal opened this issue 2 years ago • 2 comments

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

roshandhakal avatar Apr 25 '22 14:04 roshandhakal

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?

sea-bass avatar Jun 10 '22 22:06 sea-bass

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.

roshandhakal avatar Jul 14 '22 17:07 roshandhakal

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

  • https://github.com/caelan/pddlstream/tree/main/examples/temporal
  • https://github.com/caelan/pddlstream/tree/main/examples/continuous_tamp/temporal
  • https://github.com/caelan/pddlstream/tree/main/examples/pybullet/turtlebots

caelan avatar Oct 04 '23 17:10 caelan