Namespaces | |
details | |
strings_internal | |
Classes | |
class | ActionNodeBase |
The ActionNodeBase is the base class to use to create any kind of action. A particular derived class is free to override executeTick() as needed. More... | |
class | AlwaysFailureNode |
class | AlwaysSuccessNode |
class | Any |
class | AsyncActionNode |
The AsyncActionNode uses a different thread where the action will be executed. More... | |
class | AsyncActionTest |
class | BehaviorTreeException |
class | BehaviorTreeFactory |
The BehaviorTreeFactory is used to create instances of a TreeNode at run-time. More... | |
class | Blackboard |
The Blackboard is the mechanism used by BehaviorTrees to exchange typed data. More... | |
class | BlackboardPreconditionNode |
class | ConditionNode |
class | ConditionTestNode |
class | ControlNode |
class | CoroActionNode |
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... | |
class | DecoratorNode |
class | DecoratorSubtreeNode |
class | FallbackNode |
The FallbackNode is used to try different strategies, until one succeeds. If any child returns RUNNING, previous children will NOT be ticked again. More... | |
class | FileLogger |
class | ForceFailureNode |
The ForceFailureNode returns always FAILURE or RUNNING. More... | |
class | ForceSuccessNode |
The ForceSuccessNode returns always SUCCESS or RUNNING. More... | |
struct | has_static_method_providedPorts |
struct | has_static_method_providedPorts< T, typename std::enable_if< std::is_same< decltype(T::providedPorts()), PortsList >::value >::type > |
class | InverterNode |
The InverterNode returns SUCCESS if child fails of FAILURE is child succeeds. RUNNING status is propagated. More... | |
class | LeafNode |
class | LogicError |
class | MinitraceLogger |
struct | NodeConfiguration |
class | ParallelNode |
class | Parser |
The BehaviorTreeParser is a class used to read the model of a BehaviorTree from file or text and instantiate the corresponding tree using the BehaviorTreeFactory. More... | |
class | PortInfo |
class | PublisherZMQ |
class | ReactiveFallback |
The ReactiveFallback is similar to a ParallelNode. All the children are ticked from first to last: More... | |
class | ReactiveSequence |
The ReactiveSequence is similar to a ParallelNode. All the children are ticked from first to last: More... | |
class | RepeatNode |
The RepeatNode is used to execute a child several times, as long as it succeed. More... | |
class | RetryNode |
The RetryNode is used to execute a child several times if it fails. More... | |
class | RuntimeError |
class | scoped_demangled_name |
class | SequenceNode |
The SequenceNode is used to tick children in an ordered sequence. If any child returns RUNNING, previous children will NOT be ticked again. More... | |
class | SequenceStarNode |
The SequenceStarNode is used to tick children in an ordered sequence. If any child returns RUNNING, previous children are not ticked again. More... | |
class | SetBlackboard |
The SetBlackboard is action used to store a string into an entry of the Blackboard specified in "output_key". More... | |
class | SharedLibrary |
class | Signal |
class | SimpleActionNode |
The SimpleActionNode provides an easy to use SyncActionNode. The user should simply provide a callback with this signature. More... | |
class | SimpleConditionNode |
The SimpleConditionNode provides an easy to use ConditionNode. The user should simply provide a callback with this signature. More... | |
class | SimpleDecoratorNode |
The SimpleDecoratorNode provides an easy to use DecoratorNode. The user should simply provide a callback with this signature. More... | |
class | StatusChangeLogger |
class | StdCoutLogger |
AddStdCoutLoggerToTree. Give the root node of a tree, a simple callback is subscribed to any status change of each node. More... | |
class | SyncActionNode |
The SyncActionNode is an ActionNode that explicitly prevents the status RUNNING and doesn't require an implementation of halt(). More... | |
class | SyncActionTest |
class | TimeoutNode |
The TimeoutNode will halt() a running child if the latter has been RUNNING for more than a give time. The timeout is in millisecons and it is passed using the port "msec". More... | |
class | TimerQueue |
struct | Tree |
Struct used to store a tree. If this object goes out of scope, the tree is destroyed. More... | |
class | TreeNode |
Abstract base class for Behavior Tree Nodes. More... | |
struct | TreeNodeManifest |
This information is used mostly by the XMLParser. More... | |
class | XMLParser |
The XMLParser is a class used to read the model of a BehaviorTree from file or text and instantiate the corresponding tree using the BehaviorTreeFactory. More... | |
Typedefs | |
typedef std::chrono::high_resolution_clock::duration | Duration |
template<typename Predicate > | |
using | enable_if = typename std::enable_if< Predicate::value >::type * |
template<typename Predicate > | |
using | enable_if_not = typename std::enable_if< !Predicate::value >::type * |
typedef std::function< std::unique_ptr< TreeNode >const std::string &, const NodeConfiguration &)> | NodeBuilder |
The term "Builder" refers to the Builder Pattern (https://en.wikipedia.org/wiki/Builder_pattern) More... | |
template<typename T > | |
using | Optional = nonstd::expected< T, std::string > |
typedef std::unordered_map< std::string, PortInfo > | PortsList |
typedef std::unordered_map< std::string, std::string > | PortsRemapping |
using | Result = Optional< void > |
typedef std::array< uint8_t, 12 > | SerializedTransition |
typedef std::vector< std::pair< uint16_t, uint8_t > > | SerializedTreeStatus |
typedef std::function< Any(StringView)> | StringConverter |
typedef std::unordered_map< const std::type_info *, StringConverter > | StringConvertersMap |
typedef nonstd::string_view | StringView |
typedef std::chrono::high_resolution_clock::time_point | TimePoint |
Enumerations | |
enum | NodeStatus { NodeStatus::IDLE = 0, NodeStatus::RUNNING, NodeStatus::SUCCESS, NodeStatus::FAILURE } |
enum | NodeType { NodeType::UNDEFINED = 0, NodeType::ACTION, NodeType::CONDITION, NodeType::CONTROL, NodeType::DECORATOR, NodeType::SUBTREE } |
Enumerates the possible types of nodes. More... | |
enum | PortDirection { PortDirection::INPUT, PortDirection::OUTPUT, PortDirection::INOUT } |
enum | TimestampType { TimestampType::ABSOLUTE, TimestampType::RELATIVE } |
Functions | |
void | applyRecursiveVisitor (const TreeNode *root_node, const std::function< void(const TreeNode *)> &visitor) |
void | applyRecursiveVisitor (TreeNode *root_node, const std::function< void(TreeNode *)> &visitor) |
template<typename T > | |
void | assignDefaultRemapping (NodeConfiguration &config) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | BidirectionalPort (StringView name, StringView description={}) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | BidirectionalPort (StringView name, const T &default_value, StringView description) |
void | buildSerializedStatusSnapshot (const TreeNode *root_node, SerializedTreeStatus &serialized_buffer) |
buildSerializedStatusSnapshot can be used to create a buffer that can be stored (or sent to a client application) to know the status of all the nodes of a tree. It is not "human readable". More... | |
void | buildSerializedStatusSnapshot (TreeNode *root_node, SerializedTreeStatus &serialized_buffer) |
Tree | buildTreeFromFile (const BehaviorTreeFactory &factory, const std::string &filename, const Blackboard::Ptr &blackboard) |
Tree | buildTreeFromText (const BehaviorTreeFactory &factory, const std::string &text, const Blackboard::Ptr &blackboard) |
template<> | |
Position2D | convertFromString (StringView str) |
template<> | |
Pose2D | convertFromString (StringView key) |
template<> | |
Point3D | convertFromString (StringView key) |
template<typename T > | |
T | convertFromString (StringView) |
template<> | |
bool | convertFromString< bool > (StringView str) |
template<> | |
const char * | convertFromString< const char * > (StringView str) |
template<> | |
double | convertFromString< double > (StringView str) |
template<> | |
int | convertFromString< int > (StringView str) |
template<> | |
NodeStatus | convertFromString< NodeStatus > (StringView str) |
template<> | |
NodeType | convertFromString< NodeType > (StringView str) |
template<> | |
PortDirection | convertFromString< PortDirection > (StringView str) |
template<> | |
std::string | convertFromString< std::string > (StringView str) |
template<> | |
std::vector< double > | convertFromString< std::vector< double > > (StringView str) |
template<> | |
std::vector< int > | convertFromString< std::vector< int > > (StringView str) |
template<> | |
unsigned | convertFromString< unsigned > (StringView str) |
Serialization::NodeType | convertToFlatbuffers (BT::NodeType type) |
Serialization::NodeStatus | convertToFlatbuffers (BT::NodeStatus type) |
Serialization::PortDirection | convertToFlatbuffers (BT::PortDirection direction) |
void | CreateFlatbuffersBehaviorTree (flatbuffers::FlatBufferBuilder &builder, const BT::Tree &tree) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | CreatePort (PortDirection direction, StringView name, StringView description={}) |
std::string | demangle (char const *name) |
std::string | demangle (const std::type_info *info) |
std::string | demangle (const std::type_info &info) |
char const * | demangle_alloc (char const *name) noexcept |
void | demangle_free (char const *name) noexcept |
template<typename T > | |
StringConverter | GetAnyFromStringFunctor () |
template<> | |
StringConverter | GetAnyFromStringFunctor< void > () |
template<typename T > | |
PortsList | getProvidedPorts (enable_if< has_static_method_providedPorts< T > >=nullptr) |
template<typename T > | |
PortsList | getProvidedPorts (enable_if_not< has_static_method_providedPorts< T > >=nullptr) |
template<typename T > | |
NodeType | getType () |
static uint16_t | getUID () |
void | haltAllActions (TreeNode *root_node) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | InputPort (StringView name, StringView description={}) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | InputPort (StringView name, const T &default_value, StringView description) |
std::ostream & | operator<< (std::ostream &os, const BT::NodeStatus &status) |
std::ostream & | operator<< (std::ostream &os, const BT::NodeType &type) |
std::ostream & | operator<< (std::ostream &os, const BT::PortDirection &type) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | OutputPort (StringView name, StringView description={}) |
template<typename T = void> | |
std::pair< std::string, PortInfo > | OutputPort (StringView name, const T &default_value, StringView description) |
void | printTreeRecursively (const TreeNode *root_node) |
SerializedTransition | SerializeTransition (uint16_t UID, Duration timestamp, NodeStatus prev_status, NodeStatus status) |
std::vector< StringView > | splitString (const StringView &strToSplit, char delimeter) |
void | StrAppend (std::string *destination, const nonstd::string_view &a) |
void | StrAppend (std::string *destination, const nonstd::string_view &a, const nonstd::string_view &b) |
void | StrAppend (std::string *destination, const nonstd::string_view &a, const nonstd::string_view &b, const nonstd::string_view &c) |
template<typename... AV> | |
void | StrAppend (std::string *destination, const nonstd::string_view &a, const nonstd::string_view &b, const nonstd::string_view &c, const nonstd::string_view &d, const AV &...args) |
std::string | StrCat () |
std::string | StrCat (const nonstd::string_view &a) |
std::string | StrCat (const nonstd::string_view &a, const nonstd::string_view &b) |
std::string | StrCat (const nonstd::string_view &a, const nonstd::string_view &b, const nonstd::string_view &c) |
template<typename... AV> | |
std::string | StrCat (const nonstd::string_view &a, const nonstd::string_view &b, const nonstd::string_view &c, const nonstd::string_view &d, const AV &...args) |
template<typename T > | |
std::string | toStr (T value) |
std::string | toStr (std::string value) |
std::string | toStr (BT::NodeStatus status, bool colored) |
toStr converts NodeStatus to string. Optionally colored. More... | |
template<> | |
std::string | toStr< BT::NodeStatus > (BT::NodeStatus status) |
template<> | |
std::string | toStr< BT::NodeType > (BT::NodeType type) |
toStr converts NodeType to string. More... | |
template<> | |
std::string | toStr< BT::PortDirection > (BT::PortDirection direction) |
template<> | |
std::string | toStr< NodeStatus > (NodeStatus status) |
template<> | |
std::string | toStr< NodeType > (NodeType type) |
template<> | |
std::string | toStr< PortDirection > (PortDirection direction) |
void | VerifyXML (const std::string &xml_text, const std::set< std::string > ®istered_nodes) |
std::string | writeTreeNodesModelXML (const BehaviorTreeFactory &factory) |
Variables | |
constexpr const char * | PLUGIN_SYMBOL = "BT_RegisterNodesFromPlugin" |
typedef std::chrono::high_resolution_clock::duration BT::Duration |
Definition at line 339 of file basic_types.h.
using BT::enable_if = typedef typename std::enable_if< Predicate::value >::type* |
Definition at line 159 of file basic_types.h.
using BT::enable_if_not = typedef typename std::enable_if< !Predicate::value >::type* |
Definition at line 162 of file basic_types.h.
typedef std::function<std::unique_ptr<TreeNode>const std::string&, const NodeConfiguration&)> BT::NodeBuilder |
The term "Builder" refers to the Builder Pattern (https://en.wikipedia.org/wiki/Builder_pattern)
Definition at line 33 of file bt_factory.h.
using BT::Optional = typedef nonstd::expected<T, std::string> |
Usage: given a function/method like:
Optional<double> getAnswer();
User code can check result and error message like this:
auto res = getAnswer(); if( res ) { std::cout << "answer was: " << res.value() << std::endl; } else{ std::cerr << "failed to get the answer: " << res.error() << std::endl; }
Definition at line 181 of file basic_types.h.
typedef std::unordered_map<std::string, PortInfo> BT::PortsList |
Definition at line 316 of file basic_types.h.
typedef std::unordered_map<std::string, std::string> BT::PortsRemapping |
Definition at line 39 of file tree_node.h.
using BT::Result = typedef Optional<void> |
Usage: given a function/method like:
Result DoSomething();
User code can check result and error message like this:
auto res = DoSomething(); if( res ) { std::cout << "DoSomething() done " << std::endl; } else{ std::cerr << "DoSomething() failed with message: " << res.error() << std::endl; }
Definition at line 201 of file basic_types.h.
typedef std::array< uint8_t, 12 > BT::SerializedTransition |
Definition at line 10 of file bt_flatbuffer_helper.h.
typedef std::vector<std::pair<uint16_t, uint8_t> > BT::SerializedTreeStatus |
Definition at line 61 of file behavior_tree.h.
typedef std::function<Any(StringView)> BT::StringConverter |
Definition at line 106 of file basic_types.h.
typedef std::unordered_map<const std::type_info*, StringConverter> BT::StringConvertersMap |
Definition at line 108 of file basic_types.h.
typedef nonstd::string_view BT::StringView |
Definition at line 50 of file basic_types.h.
typedef std::chrono::high_resolution_clock::time_point BT::TimePoint |
Definition at line 338 of file basic_types.h.
|
strong |
Enumerates the states every node can be in after execution during a particular time step. IMPORTANT: Your custom nodes should NEVER return IDLE.
Enumerator | |
---|---|
IDLE | |
RUNNING | |
SUCCESS | |
FAILURE |
Definition at line 35 of file basic_types.h.
|
strong |
Enumerates the possible types of nodes.
Enumerator | |
---|---|
UNDEFINED | |
ACTION | |
CONDITION | |
CONTROL | |
DECORATOR | |
SUBTREE |
Definition at line 22 of file basic_types.h.
|
strong |
Enumerator | |
---|---|
INPUT | |
OUTPUT | |
INOUT |
Definition at line 43 of file basic_types.h.
|
strong |
Enumerator | |
---|---|
ABSOLUTE | |
RELATIVE |
Definition at line 9 of file abstract_logger.h.
void BT::applyRecursiveVisitor | ( | const TreeNode * | root_node, |
const std::function< void(const TreeNode *)> & | visitor | ||
) |
Definition at line 18 of file behavior_tree.cpp.
void BT::applyRecursiveVisitor | ( | TreeNode * | root_node, |
const std::function< void(TreeNode *)> & | visitor | ||
) |
Definition at line 41 of file behavior_tree.cpp.
|
inline |
Definition at line 270 of file tree_node.h.
|
inline |
Definition at line 286 of file basic_types.h.
|
inline |
Definition at line 308 of file basic_types.h.
void BT::buildSerializedStatusSnapshot | ( | const TreeNode * | root_node, |
SerializedTreeStatus & | serialized_buffer | ||
) |
buildSerializedStatusSnapshot can be used to create a buffer that can be stored (or sent to a client application) to know the status of all the nodes of a tree. It is not "human readable".
root_node | |
serialized_buffer | is the output. |
void BT::buildSerializedStatusSnapshot | ( | TreeNode * | root_node, |
SerializedTreeStatus & | serialized_buffer | ||
) |
Definition at line 98 of file behavior_tree.cpp.
Tree BT::buildTreeFromFile | ( | const BehaviorTreeFactory & | factory, |
const std::string & | filename, | ||
const Blackboard::Ptr & | blackboard | ||
) |
Definition at line 720 of file xml_parsing.cpp.
Tree BT::buildTreeFromText | ( | const BehaviorTreeFactory & | factory, |
const std::string & | text, | ||
const Blackboard::Ptr & | blackboard | ||
) |
Definition at line 712 of file xml_parsing.cpp.
|
inline |
Definition at line 17 of file t03_generic_ports.cpp.
|
inline |
Definition at line 26 of file movebase_node.h.
Point3D BT::convertFromString | ( | StringView | key | ) |
Definition at line 28 of file t07_wrap_legacy.cpp.
|
inline |
convertFromString is used to convert a string into a custom type.
This function is invoked under the hood by TreeNode::getInput(), but only when the input port contains a string.
If you have a custom type, you need to implement the corresponding template specialization.
Definition at line 61 of file basic_types.h.
bool BT::convertFromString< bool > | ( | StringView | str | ) |
Definition at line 156 of file basic_types.cpp.
const char * BT::convertFromString< const char * > | ( | StringView | str | ) |
Definition at line 104 of file basic_types.cpp.
double BT::convertFromString< double > | ( | StringView | str | ) |
Definition at line 122 of file basic_types.cpp.
int BT::convertFromString< int > | ( | StringView | str | ) |
Definition at line 110 of file basic_types.cpp.
NodeStatus BT::convertFromString< NodeStatus > | ( | StringView | str | ) |
Definition at line 187 of file basic_types.cpp.
NodeType BT::convertFromString< NodeType > | ( | StringView | str | ) |
Definition at line 197 of file basic_types.cpp.
PortDirection BT::convertFromString< PortDirection > | ( | StringView | str | ) |
Definition at line 208 of file basic_types.cpp.
std::string BT::convertFromString< std::string > | ( | StringView | str | ) |
Definition at line 97 of file basic_types.cpp.
std::vector< double > BT::convertFromString< std::vector< double > > | ( | StringView | str | ) |
Definition at line 142 of file basic_types.cpp.
std::vector< int > BT::convertFromString< std::vector< int > > | ( | StringView | str | ) |
Definition at line 128 of file basic_types.cpp.
unsigned BT::convertFromString< unsigned > | ( | StringView | str | ) |
Definition at line 116 of file basic_types.cpp.
|
inline |
Definition at line 12 of file bt_flatbuffer_helper.h.
|
inline |
Definition at line 32 of file bt_flatbuffer_helper.h.
|
inline |
Definition at line 48 of file bt_flatbuffer_helper.h.
|
inline |
Definition at line 62 of file bt_flatbuffer_helper.h.
std::pair<std::string,PortInfo> BT::CreatePort | ( | PortDirection | direction, |
StringView | name, | ||
StringView | description = {} |
||
) |
Definition at line 251 of file basic_types.h.
|
inline |
Definition at line 78 of file demangle_util.h.
|
inline |
Definition at line 85 of file demangle_util.h.
|
inline |
Definition at line 107 of file demangle_util.h.
|
inlinenoexcept |
Definition at line 69 of file demangle_util.h.
|
inlinenoexcept |
Definition at line 74 of file demangle_util.h.
|
inline |
Definition at line 113 of file basic_types.h.
|
inline |
Definition at line 119 of file basic_types.h.
|
inline |
Definition at line 327 of file basic_types.h.
|
inline |
Definition at line 333 of file basic_types.h.
|
inline |
Simple way to extract the type of a TreeNode at COMPILE TIME. Useful to avoid the cost of without dynamic_cast or the virtual method TreeNode::type().
Definition at line 77 of file behavior_tree.h.
|
static |
Definition at line 19 of file tree_node.cpp.
void BT::haltAllActions | ( | TreeNode * | root_node | ) |
Invoke AsyncActionNode::stopAndJoinThread() to the entire tree, when needed.
Definition at line 110 of file behavior_tree.cpp.
|
inline |
Definition at line 274 of file basic_types.h.
|
inline |
Definition at line 292 of file basic_types.h.
std::ostream & BT::operator<< | ( | std::ostream & | os, |
const BT::NodeStatus & | status | ||
) |
Definition at line 222 of file basic_types.cpp.
std::ostream & BT::operator<< | ( | std::ostream & | os, |
const BT::NodeType & | type | ||
) |
Definition at line 216 of file basic_types.cpp.
std::ostream & BT::operator<< | ( | std::ostream & | os, |
const BT::PortDirection & | type | ||
) |
Definition at line 228 of file basic_types.cpp.
|
inline |
Definition at line 280 of file basic_types.h.
|
inline |
Definition at line 300 of file basic_types.h.
void BT::printTreeRecursively | ( | const TreeNode * | root_node | ) |
Debug function to print on screen the hierarchy of the tree.
Definition at line 63 of file behavior_tree.cpp.
|
inline |
Serialize manually the informations about state transition No flatbuffer serialization here
Definition at line 148 of file bt_flatbuffer_helper.h.
std::vector< StringView > BT::splitString | ( | const StringView & | strToSplit, |
char | delimeter | ||
) |
Definition at line 234 of file basic_types.cpp.
|
inline |
Definition at line 80 of file strcat.hpp.
|
inline |
Definition at line 86 of file strcat.hpp.
|
inline |
Definition at line 93 of file strcat.hpp.
|
inline |
Definition at line 103 of file strcat.hpp.
|
inline |
Definition at line 47 of file strcat.hpp.
|
inline |
Definition at line 49 of file strcat.hpp.
|
inline |
Definition at line 53 of file strcat.hpp.
|
inline |
Definition at line 59 of file strcat.hpp.
|
inline |
Definition at line 68 of file strcat.hpp.
std::string BT::toStr | ( | T | value | ) |
Definition at line 127 of file basic_types.h.
std::string BT::toStr | ( | std::string | value | ) |
Definition at line 25 of file basic_types.cpp.
std::string BT::toStr | ( | BT::NodeStatus | status, |
bool | colored | ||
) |
toStr converts NodeStatus to string. Optionally colored.
Definition at line 30 of file basic_types.cpp.
std::string BT::toStr< BT::NodeStatus > | ( | BT::NodeStatus | status | ) |
std::string BT::toStr< BT::NodeType > | ( | BT::NodeType | type | ) |
toStr converts NodeType to string.
std::string BT::toStr< BT::PortDirection > | ( | BT::PortDirection | direction | ) |
std::string BT::toStr< NodeStatus > | ( | NodeStatus | status | ) |
Definition at line 9 of file basic_types.cpp.
Definition at line 76 of file basic_types.cpp.
std::string BT::toStr< PortDirection > | ( | PortDirection | direction | ) |
Definition at line 64 of file basic_types.cpp.
void BT::VerifyXML | ( | const std::string & | xml_text, |
const std::set< std::string > & | registered_nodes | ||
) |
Definition at line 195 of file xml_parsing.cpp.
std::string BT::writeTreeNodesModelXML | ( | const BehaviorTreeFactory & | factory | ) |
Definition at line 644 of file xml_parsing.cpp.
constexpr const char* BT::PLUGIN_SYMBOL = "BT_RegisterNodesFromPlugin" |
Definition at line 35 of file bt_factory.h.