Skip to content

Changed behavior of tickOnce #514

@DonDoff

Description

@DonDoff

Hello, we are currently using the behaviortree library version 3.5.
When we wanted to upgrade to version 4.0.2 we encountered some interface changes.
Most of these were quickly fixed, however there is one bigger problem.
Namely the fix for preemptable nodes (https://www.behaviortree.dev/migration/#preemptable-nodes-and-treetickroot) and how they stop the flow of our trees.

We are using behavior trees in an event driven way, meaning they get ticked when an event occurs (which may not be that often).
For these trees to remain in a RUNNING state for longer periods is also a valid.
Our trees were created with the curent design of a SequenceNode in mind, where a child returning SUCCESS will tick the next child.
However with the changes for preemptable nodes, this flow is stopped.

This mean the behaviortree API as it is now does not allow us to nicely tick our trees, since tickOnce() does not call all children in the sequence.
And we do not know before hand how often we should call the tickOnce().
And tickWhileRunning() will call the tree too often on 1 event.

Is there a way to get the old behavior back?

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions