The CoroActionNode class is an ideal candidate for asynchronous actions which need to communicate with an external service using an asynch request/reply interface (being notable examples 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 NodeConfiguration &config) | |
virtual NodeStatus | executeTick () overridefinal |
The method that should be used to invoke tick() and setStatus();. More... | |
void | halt () override |
void | setStatusRunningAndYield () |
Use this method to return RUNNING and temporary "pause" the Action. More... | |
virtual | ~CoroActionNode () override |
Public Member Functions inherited from BT::ActionNodeBase | |
ActionNodeBase (const std::string &name, const NodeConfiguration &config) | |
virtual NodeType | type () const overridefinal |
~ActionNodeBase () override=default | |
Public Member Functions inherited from BT::LeafNode | |
LeafNode (const std::string &name, const NodeConfiguration &config) | |
virtual | ~LeafNode () override=default |
Public Member Functions inherited from BT::TreeNode | |
const NodeConfiguration & | config () const |
template<typename T > | |
Result | getInput (const std::string &key, T &destination) const |
template<typename T > | |
Optional< T > | getInput (const std::string &key) const |
bool | isHalted () const |
const std::string & | name () const |
Name of the instance, not the type. More... | |
const std::string & | registrationName () const |
registrationName is the ID used by BehaviorTreeFactory to create an instance. More... | |
template<typename T > | |
Result | setOutput (const std::string &key, const T &value) |
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 (std::string name, NodeConfiguration config) | |
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 Optional< StringView > | getRemappedKey (StringView port_name, StringView remapping_value) |
static bool | isBlackboardPointer (StringView str) |
static StringView | stripBlackboardPointer (StringView str) |
Protected Member Functions inherited from BT::TreeNode | |
void | modifyPortsRemapping (const PortsRemapping &new_remapping) |
void | setRegistrationID (StringView ID) |
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 an external service using an asynch request/reply interface (being notable examples ActionLib in ROS, MoveIt clients or move_base clients).
It is up to the user to decide when to suspend execution of the Action and resume the parent node, invoking the method setStatusRunningAndYield().
Definition at line 147 of file action_node.h.
BT::CoroActionNode::CoroActionNode | ( | const std::string & | name, |
const NodeConfiguration & | config | ||
) |
Definition at line 148 of file action_node.cpp.
|
overridevirtual |
Definition at line 157 of file action_node.cpp.
|
finaloverridevirtual |
The method that should be used to invoke tick() and setStatus();.
Reimplemented from BT::TreeNode.
Definition at line 171 of file action_node.cpp.
|
overridevirtual |
You may want to override this method. But still, remember to call this implementation too.
Example:
void MyAction::halt() { // do your stuff here CoroActionNode::halt(); }
Implements BT::TreeNode.
Reimplemented in FollowPath, and SimpleCoroAction.
Definition at line 201 of file action_node.cpp.
void BT::CoroActionNode::setStatusRunningAndYield | ( | ) |
Use this method to return RUNNING and temporary "pause" the Action.
Definition at line 165 of file action_node.cpp.
|
protected |
Definition at line 175 of file action_node.h.