42 using TreeBuildHandler::TreeBuildHandler;
44 TreeDocument::TreeElement buildTree(TreeDocument & doc, TreeBlackboard & )
override final
47 TreeDocument::TreeElement tree = doc.newTree(
"SimpleSkillDemo").makeRoot();
53 TreeDocument::NodeElement sequence = tree.insertNode<standard_model::Sequence>();
54 sequence.insertNode<standard_model::ForceSuccess>()
55 .insertNode<model::HasParameter>()
56 .set_parameter(
"bb.msg")
57 .setConditionalScript(BT::PostCond::ON_SUCCESS,
"msg := @msg")
58 .setConditionalScript(BT::PostCond::ON_FAILURE,
"msg := 'No blackboard parameter'");
59 sequence.insertNode<standard_model::ForceSuccess>()
60 .insertNode<model::HasParameter>()
61 .set_parameter(
"bb.n_times")
62 .setConditionalScript(BT::PostCond::ON_SUCCESS,
"n_times := @n_times")
63 .setConditionalScript(BT::PostCond::ON_FAILURE,
"n_times := 1");
64 sequence.insertNode<model::SimpleSkillActionNode>().set_n_times(
"{n_times}").set_msg(
"{msg}");
65 sequence.insertNode<model::SimpleSkillActionNode>().set_n_times(1).set_msg(
"Last message");