plaans / aries

Toolbox for automated planning and combinatorial solving.
MIT License
39 stars 5 forks source link

Intro to using as a temporal planner #134

Open fire opened 1 month ago

fire commented 1 month ago

Hi, I followed your links a long time ago and your temporal planning course notes.

How do I go from https://github.com/dananau/GTPyhop to using aries to make temporal plans.

Looking for a tutorial to figure out an integration interface with godot engine.

fire commented 1 month ago

https://github.com/plaans/aries/tree/master/planning/problems has some pddl and hddl problems.

https://github.com/plaans/aries/blob/master/planning/planners/src/bin/pddl.rs pddl parser

nrealus commented 1 month ago

Hello,

I haven't played with running aries on any problems (yet) so I cannot help you much on how to set up a concrete integration. I also do not have lots of experience with HDDL or PDDL. However, what I can tell is that you could try looking into https://github.com/plaans/gobot-sim about how exactly an integration with Godot could be done. Although, iirc, that code uses a Python API rather than a direct integration with Godot.

Also, you may already know this, but Aries is quite different from most planners since it's actually a CP/SAT solver, which can be used to solve planning problems after converting them into CSPs. For temporal problems, they are first converted into a hierarchical chronicles representation, which is then used to build the CSP. That also means that the solution of that CSP needs to be interpreted / converted back into an actual "plan", which you wouldn't have to do in a more traditional planner. The code in the file https://github.com/plaans/aries/blob/master/planning/planners/src/bin/lcp.rs#L104 (in the same directory as the last link you posted) exhibits this in a short and high-level way. You could try exploring the codebase a bit further from there, if you're interested in it.

I know this doesn't really answer your question but maybe it'll still be of use to you.

arbimo commented 1 month ago

The preferred way for using Aries for temporal planning is through the unified-planning library.

It would allow you to model and solve planning problem and use one of the integrated solver for it (notably Aries and Tamer).

Tutorial for temporal planning: https://unified-planning.readthedocs.io/en/latest/notebooks/03-temporal-planning.html

You can install the Aries plugin with pip install up-aries (see https://github.com/plaans/aries/tree/master/planning/unified/plugin for details).

Another possibility, mostly intended for development, is to use the lcp binary. It comes with it own PDDL/HDDL parser but is not as feature-full as the integration with the unified planning integration (and has sharper corners).

cargo run --release --bin lcp -- --help

fire commented 1 month ago

This is a great answer, I knew I was missing a link between the projects.

fire commented 1 month ago

I reviewed Tamer and Aries's engines and noticed that Tamer is not FOSS and not free to use for any purpose.

My original problem was trying to embed aries into godot engine so I will look at the lcp binary