Skip to content

Conversation

@ajtudela
Copy link
Contributor

This PR introduces a new predicate-based behavior tree executor (PredicateBTExecutor) for executing behavior trees, enabling sub-symbolic checks of predicates.

  • The PredicateBTExecutor integrates with the WaitAtStartReq BT node and is responsible for checking if predicates exist using the ProblemClient and executing predicate-based behavior trees for sub-symbolic validation.
  • New parameters have been added (predicate_plugins, predicates_bt_xml) similar to BT Actions to retrieve the names and XML templates of the behavior trees.
  • These XML templates are passed to the PredicateBTExecutor through the Blackboard for seamless integration.

I have successfully tested this implementation on our robots and believe it's worth discussing for potential integration.

Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alberto Tudela <[email protected]>
@fmrico
Copy link
Contributor

fmrico commented Oct 11, 2025

Can you explain the advantages of this approach and the problem that this PR wants to fix? Also I need to see why to use a BT for checking predicates

@ajtudela
Copy link
Contributor Author

The PR attempts to bridge the gap between symbolic and subsymbolic information by introducing a mechanism for verifying predicates using behaviour trees. Each predicate is linked to a BT node, and when the executor needs to check whether the symbolic predicates have been met, it also executes the associated BT.

@roveri-marco
Copy link
Collaborator

That's great! I was indeed planning to do something similar. Does it also work with numeric fluents? What's thei role with the effects of an action?

@fmrico fmrico requested a review from roveri-marco October 14, 2025 09:23
@ajtudela
Copy link
Contributor Author

That's great! I was indeed planning to do something similar. Does it also work with numeric fluents? What's thei role with the effects of an action?

It is currently just a proof of concept, with only the at-start requirements implemented. I'm no expert on planning and I'm not exactly sure how the effect works.

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

Successfully merging this pull request may close these issues.

3 participants