Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimistic algorithms unable to solve TAMP problem with movable obstacles #45

Open
ElisaTosello opened this issue Mar 28, 2024 · 0 comments

Comments

@ElisaTosello
Copy link

Hello,

I'm trying to solve a TAMP problem where a robot r is in an office-like map in a starting position s, and it has to traverse n doors {d0, d1, ..., dn}, initially closed, to reach a final destination g. Walls of the map are fixed obstacles, while doors are movable obstacles.
I have two actions: open and move. The move action moves the robot between two locations while avoiding obstacles (the doors and the walls) - I have a stream that tries to compute a collision-free path via RRT and an ad-hoc collision checker. open allows the robot to open a door when positioned in front of it, like pushing a button (b0 for d0 , b1 for d1, ..., bn for dn). Once the button is pushed, the door configuration changes instantaneously from closed to open.

The incremental algorithm (with FastDownward) can find a valid plan. For example, if n=2:

move(r, s, b0, d0, c0, d1, c1) # move r from s to button b0 with d0 and d1 closed
open(d0, c0, o1) # open d0
move(r, b0, b1, d0, o0, d1, c1) # move r from button b0 to button b1 with d0 open and d1 closed
open(d1, c1, o1) # open d1
move(r, b1, g, d0, o0, d1, o1) # move from button b1 to g with all doors open

All other algorithms (focused, binding, adaptive - with FastDownward), instead, are unable to solve the problem even if the number of doors is small. For example, with n=2, the focused algorithm exits with

Stream plan (inf, 0, inf): False
Action plan (inf, inf): False
Summary: {complexity: 2, cost: inf, evaluations: 31, iterations: 10, length: inf, run_time: 36.669, sample_time: 35.535, search_time: 1.134, skeletons: 0, solutions: 0, solved: False, timeout: False}

Precisely, the status is INFEASIBLE because exhausted=True when calling iterative_plan_streams() of refinement.py.

Is this behavior reasonable? Could you please help me solving this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant