-
Notifications
You must be signed in to change notification settings - Fork 726
Reactive async #93
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
Reactive async #93
Conversation
i will take my time and look at this carefully. Thanks!!! |
Nice to see someone working on this, thanks! I'm also going to try to have a look next week. This caught my attention:
Have you thought about letting the first async node finish execution when ticking the second async node instead of halting the first async node right away? This would mean both would run at the same time for a certain period. That's how I would imagine a reactive sequence to behave and it would allow for some nice use cases. |
That is possible already (but be careful in doing so). When sending the halt, it calls the In the BehaviorTree.CPP/sample_nodes/movebase_node.cpp Lines 36 to 39 in 68b7da7
and you check it in the BehaviorTree.CPP/sample_nodes/movebase_node.cpp Lines 27 to 30 in 68b7da7
Anyway, If you want to discuss more about this, I think it is better if we move the conversation in another place (i.e. not in a PR). Cheers |
I think better solutions have been implemented |
Hello,
this is an attempt to solve Issue #83.
The main important change is the implementation of the function
propagateHalt
that lets a node to trigger thehaltChildren
routine of its parent.@facontidavide The idea behind this is, before ticking an async child, the BT should halt the other running children (if any). Let me know what do you think about this.
There are also gtests to test that tests that no race condition occurs.
BehaviorTree.CPP/tests/gtest_reactive_tree.cpp
Lines 100 to 101 in 82cb1c7
Thank you
MC