Skip to content

[Possible Bug] [Question] BehaviorTree.CPP v3.8: StdCoutLogger issue, Conceptual (AlwaysRunning Nodes?) #643

Closed
@varungiridhar

Description

@varungiridhar

Hi,

I have the following tree:

image

The idea is to increment "num" until it is greater than 20, and then fallback to the subtree "ExecuteOnlyIfGreaterThan20."

"add" is a sync action node.

Since I am using all reactive nodes, I expect "add" to be repeatedly called - which it is when I verified with ROS_INFO statements. However, when I used BT.cpp's StdCoutLogger, the following was the output:

image

StdCoutLogger seems to skip logging the "add" node. Is there any explanation why?

Also, I added the following to emulate a "RUNNING" node:

<KeepRunningUntilFaliure>
    <AlwaysSuccess>
</KeepRunningUntilFaliure>"

This leads me to my conceptual question. PPA design tells us to wait till until post condition succeeds before "falling back" on a tree. So, how can we have an action that returns success then? The instant an action returns success, maybe "add" in the above example, the subtree "ExecuteOnlyIfGreaterThan20" will be ticked even though it's not supposed to be tick.

Or is the idea to have an action of PPA return success when the post condition would return success?

Please let me know - I've been wondering about this edge case for a while now but it's catching up to me...

Thanks,
Varun

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions