Classes | Public Member Functions | Protected Attributes | List of all members
BT::CoroActionNode Class Reference

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>

Inheritance diagram for BT::CoroActionNode:
Inheritance graph
[legend]

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 NodeConfigurationconfig () const
 
template<typename T >
Result getInput (const std::string &key, T &destination) const
 
template<typename T >
Optional< T > getInput (const std::string &key) const
 
StringView getRawPortValue (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)
 
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< TreeNodePtr
 
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< StringViewgetRemappedKey (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)
 
void setStatus (NodeStatus new_status)
 
virtual BT::NodeStatus tick ()=0
 Method to be implemented by the user. More...
 

Detailed Description

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 190 of file action_node.h.

Constructor & Destructor Documentation

CoroActionNode::CoroActionNode ( const std::string &  name,
const NodeConfiguration config 
)

Definition at line 88 of file action_node.cpp.

CoroActionNode::~CoroActionNode ( )
overridevirtual

Definition at line 98 of file action_node.cpp.

Member Function Documentation

NodeStatus CoroActionNode::executeTick ( )
finaloverridevirtual

The method that should be used to invoke tick() and setStatus();.

Reimplemented from BT::TreeNode.

Definition at line 108 of file action_node.cpp.

void CoroActionNode::halt ( )
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 SimpleCoroAction.

Definition at line 124 of file action_node.cpp.

void CoroActionNode::setStatusRunningAndYield ( )

Use this method to return RUNNING and temporary "pause" the Action.

Definition at line 102 of file action_node.cpp.

Member Data Documentation

std::unique_ptr<Pimpl> BT::CoroActionNode::_p
protected

Definition at line 218 of file action_node.h.


The documentation for this class was generated from the following files:


behaviotree_cpp_v3
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Tue May 4 2021 02:56:26