-
Notifications
You must be signed in to change notification settings - Fork 91
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
Implement BehaviourTrees for forall and imply #345
base: humble-devel
Are you sure you want to change the base?
Conversation
Add Imply to PDDL domain parsing (cherry picked from commit 30e3e26)
Feature/tree msg creation
Hi @eshan-savla All the new developments should go to the Thanks for your contributions |
Hi @fmrico, Thanks for the clarification! I worked on the humble branch because I needed the functionality for that version. I have however rebased the changes onto rolling and tested everything. Here's the corresponding PR: #347. Thank you for your prompt response! We could also close this pull request if you don't wish to include these changes into the humble branch |
Changes:
This pull request introduces several changes to the
plansys2_domain_expert
,plansys2_problem_expert
,plansys2_pddl_parser
andplansys2_executor
packages, primarily to enhance the handling of durative actions by introducing new PDDL functionality using forall and imply and corresponding tests.Parser updates:
Imply.cpp
.getTree
methods for both forall and imply. Respective changes inForall.cpp
andImply.cpp
.Condition.h
and respective derived classes to allow forall to supplement action params with instances from typed lists.Domain expert updates:
getDurativeAction
method to supply the necessary instances to the forallgetTree
method.DomainExpertInterface::getDurativeAction
and its overrides to optionally accept aplansys2_msgs::msg::Param
vector of instances.DomainExpert::getDurativeAction
converts this vector into a map of format instance-type : instances and supplies this to all three precondition types. Effects are excluded at this point, as POPF support for forall in effects is limited. Extending support for forall in effects is simply a matter of providing these instances to the AtStart and AtEnd effects.Updates to executor nodes:
getDurativeAction
method of the domain client are supplied with these instances inExecutorNode.cpp
andBTBuilder.cpp
.Updates to problem expert:
evaluate
method inUtils.cpp
.New PDDL functionality and tests:
bt_node_test.cpp
within the executor package with the appropriate pddl domain to test the new functionalities implemented.