Description
Hi,
I have the following tree:
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:
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