From 85939afd0b5716353368dacfdeac57c0e77c15d2 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Tue, 16 May 2023 11:12:31 +0200 Subject: [PATCH] Added two actions: one to generate a success state and the other one to generate a failure state. --- include/iri_bt_basic_nodes.h | 2 ++ src/iri_bt_basic_nodes.cpp | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/iri_bt_basic_nodes.h b/include/iri_bt_basic_nodes.h index 10bd101..fc056ca 100644 --- a/include/iri_bt_basic_nodes.h +++ b/include/iri_bt_basic_nodes.h @@ -37,6 +37,8 @@ class IriBTBasicNodes * */ BT::NodeStatus RUNNING(void); + BT::NodeStatus FAILURE(void); + BT::NodeStatus SUCCESS(void); BT::NodeStatus is_variable_true(BT::TreeNode& self); BT::NodeStatus is_variable_false(BT::TreeNode& self); BT::NodeStatus transform_pose(BT::TreeNode& self); diff --git a/src/iri_bt_basic_nodes.cpp b/src/iri_bt_basic_nodes.cpp index ecf9ca1..c1c91e9 100644 --- a/src/iri_bt_basic_nodes.cpp +++ b/src/iri_bt_basic_nodes.cpp @@ -18,6 +18,8 @@ void IriBTBasicNodes::init(IriBehaviorTreeFactory &factory) factory.registerSimpleCondition("is_variable_false", std::bind(&IriBTBasicNodes::is_variable_false, this, std::placeholders::_1),check_variable_ports); factory.registerIriAsyncAction("RUNNING", std::bind(&IriBTBasicNodes::RUNNING, this)); + factory.registerIriAsyncAction("FAILURE", std::bind(&IriBTBasicNodes::FAILURE, this)); + factory.registerIriAsyncAction("SUCCESS", std::bind(&IriBTBasicNodes::SUCCESS, this)); factory.registerSimpleAction("transform_pose", std::bind(&IriBTBasicNodes::transform_pose, this, std::placeholders::_1),transform_pose_ports); factory.registerSimpleAction("compute_distance", std::bind(&IriBTBasicNodes::compute_distance, this, std::placeholders::_1),compute_distance_ports); factory.registerSimpleAction("compare_bigger", std::bind(&IriBTBasicNodes::compare_bigger, this, std::placeholders::_1),compare_ports); @@ -162,6 +164,15 @@ BT::NodeStatus IriBTBasicNodes::compare_smaller(BT::TreeNode& self) BT::NodeStatus IriBTBasicNodes::RUNNING() { - return BT::NodeStatus::RUNNING; + return BT::NodeStatus::RUNNING; } +BT::NodeStatus IriBTBasicNodes::FAILURE() +{ + return BT::NodeStatus::FAILURE; +} + +BT::NodeStatus IriBTBasicNodes::SUCCESS() +{ + return BT::NodeStatus::SUCCESS; +} -- GitLab