#include "auto_apms_behavior_tree/build_handler.hpp"
#include "auto_apms_examples/example_nodes.hpp"
{
{
public:
using TreeBuildHandler::TreeBuildHandler;
TreeDocument::TreeElement buildTree(TreeDocument & doc, TreeBlackboard & ) override final
{
TreeDocument::TreeElement tree = doc.newTree("SimpleSkillDemo").makeRoot();
TreeDocument::NodeElement sequence = tree.insertNode<standard_model::Sequence>();
sequence.insertNode<standard_model::ForceSuccess>()
.insertNode<model::HasParameter>()
.set_parameter("bb.msg")
.setConditionalScript(BT::PostCond::ON_SUCCESS, "msg := @msg")
.setConditionalScript(BT::PostCond::ON_FAILURE, "msg := 'No blackboard parameter'");
sequence.insertNode<standard_model::ForceSuccess>()
.insertNode<model::HasParameter>()
.set_parameter("bb.n_times")
.setConditionalScript(BT::PostCond::ON_SUCCESS, "n_times := @n_times")
.setConditionalScript(BT::PostCond::ON_FAILURE, "n_times := 1");
sequence.insertNode<model::SimpleSkillActionNode>().set_n_times("{n_times}").set_msg("{msg}");
sequence.insertNode<model::SimpleSkillActionNode>().set_n_times(1).set_msg("Last message");
return tree;
}
};
}
Base class for plugins that implement patterns for creating behavior trees using a standardized inter...
#define AUTO_APMS_BEHAVIOR_TREE_DECLARE_BUILD_HANDLER(type)
Macro for registering a behavior tree build handler plugin which may be loaded at runtime to build a ...
Models for all available behavior tree nodes.