The CoroActionNode class is an ideal candidate for asynchronous actions which need to communicate with a service provider using an asynch request/reply interface (being a notable example ActionLib in ROS, MoveIt clients or move_base clients). More...
#include <action_node.h>

Classes | |
| struct | Pimpl |
Public Member Functions | |
| CoroActionNode (const std::string &name, const NodeParameters ¶meters=NodeParameters()) | |
| virtual NodeStatus | executeTick () overridefinal |
| The method that will be executed to invoke tick(); and setStatus();. More... | |
| void | halt () override |
| void | setStatusRunningAndYield () |
| virtual | ~CoroActionNode () override |
Public Member Functions inherited from BT::ActionNodeBase | |
| ActionNodeBase (const std::string &name, const NodeParameters ¶meters=NodeParameters()) | |
| virtual NodeType | type () const overridefinal |
| ~ActionNodeBase () override=default | |
Public Member Functions inherited from BT::LeafNode | |
| LeafNode (const std::string &name, const NodeParameters ¶meters) | |
| virtual | ~LeafNode () override=default |
Public Member Functions inherited from BT::TreeNode | |
| const Blackboard::Ptr & | blackboard () const |
| template<typename T > | |
| BT::optional< T > | getParam (const std::string &key) const |
| template<typename T > | |
| bool | getParam (const std::string &key, T &destination) const |
| const NodeParameters & | initializationParameters () const |
| bool | isHalted () const |
| const std::string & | name () const |
| const std::string & | registrationName () const |
| registrationName is the ID used by BehaviorTreeFactory to create an instance. More... | |
| void | setBlackboard (const Blackboard::Ptr &bb) |
| void | setStatus (NodeStatus new_status) |
| NodeStatus | status () const |
| StatusChangeSubscriber | subscribeToStatusChange (StatusChangeCallback callback) |
| subscribeToStatusChange is used to attach a callback to a status change. When StatusChangeSubscriber goes out of scope (it is a shared_ptr) the callback is unsubscribed automatically. More... | |
| TreeNode (const std::string &name, const NodeParameters ¶meters) | |
| TreeNode main constructor. More... | |
| uint16_t | UID () const |
| BT::NodeStatus | waitValidStatus () |
| virtual | ~TreeNode ()=default |
Protected Attributes | |
| std::unique_ptr< Pimpl > | _p |
Additional Inherited Members | |
Public Types inherited from BT::TreeNode | |
| typedef std::shared_ptr< TreeNode > | Ptr |
| using | StatusChangeCallback = StatusChangeSignal::CallableFunction |
| using | StatusChangeSignal = Signal< TimePoint, const TreeNode &, NodeStatus, NodeStatus > |
| using | StatusChangeSubscriber = StatusChangeSignal::Subscriber |
Static Public Member Functions inherited from BT::TreeNode | |
| static bool | isBlackboardPattern (StringView str) |
Protected Member Functions inherited from BT::TreeNode | |
| void | initializeOnce () |
| void | setRegistrationName (const std::string ®istration_name) |
| registrationName() is set by the BehaviorTreeFactory More... | |
| virtual BT::NodeStatus | tick ()=0 |
| Method to be implemented by the user. More... | |
The CoroActionNode class is an ideal candidate for asynchronous actions which need to communicate with a service provider using an asynch request/reply interface (being a notable example ActionLib in ROS, MoveIt clients or move_base clients).
It is up to the user to decide when to suspend execution of the behaviorTree invoking the method setStatusRunningAndYield().
Definition at line 158 of file action_node.h.
| BT::CoroActionNode::CoroActionNode | ( | const std::string & | name, |
| const NodeParameters & | parameters = NodeParameters() |
||
| ) |
Definition at line 128 of file action_node.cpp.
|
overridevirtual |
Definition at line 135 of file action_node.cpp.
|
finaloverridevirtual |
The method that will be executed to invoke tick(); and setStatus();.
Reimplemented from BT::ActionNodeBase.
Definition at line 146 of file action_node.cpp.
|
overridevirtual |
You may want to override this method. But still, call remember to call this implementation too.
Example:
void MyAction::halt()
{
// do your stuff here
CoroActionNode::halt();
}
Implements BT::TreeNode.
Definition at line 167 of file action_node.cpp.
| void BT::CoroActionNode::setStatusRunningAndYield | ( | ) |
When you want to return RUNNING and temporary "pause" the Action, use this method.
Definition at line 140 of file action_node.cpp.
|
protected |
Definition at line 188 of file action_node.h.