File tree 3 files changed +22
-0
lines changed
3 files changed +22
-0
lines changed Original file line number Diff line number Diff line change 25
25
26
26
#include " behaviortree_cpp/loggers/groot2_publisher.h"
27
27
28
+ #include " btcpp_ros2_interfaces/srv/get_trees.hpp"
29
+
28
30
// generated file
29
31
#include " bt_executor_parameters.hpp"
30
32
namespace
@@ -35,6 +37,8 @@ static const auto kLogger = rclcpp::get_logger("bt_action_server");
35
37
namespace BT
36
38
{
37
39
40
+ using GetTrees = btcpp_ros2_interfaces::srv::GetTrees;
41
+
38
42
struct TreeExecutionServer ::Pimpl
39
43
{
40
44
rclcpp_action::Server<ExecuteTree>::SharedPtr action_server;
@@ -43,6 +47,8 @@ struct TreeExecutionServer::Pimpl
43
47
std::shared_ptr<bt_server::ParamListener> param_listener;
44
48
bt_server::Params params;
45
49
50
+ rclcpp::Service<GetTrees>::SharedPtr get_trees_service;
51
+
46
52
BT::BehaviorTreeFactory factory;
47
53
std::shared_ptr<BT::Groot2Publisher> groot_publisher;
48
54
@@ -88,6 +94,13 @@ TreeExecutionServer::TreeExecutionServer(const rclcpp::Node::SharedPtr& node)
88
94
p_->single_shot_timer ->cancel ();
89
95
};
90
96
97
+ p_->get_trees_service = node_->create_service <GetTrees>(
98
+ " get_loaded_trees" ,
99
+ [this ](const std::shared_ptr<GetTrees::Request> _,
100
+ std::shared_ptr<GetTrees::Response> response) {
101
+ response->tree_ids = p_->factory .registeredBehaviorTrees ();
102
+ });
103
+
91
104
p_->single_shot_timer =
92
105
node_->create_wall_timer (std::chrono::milliseconds (1 ), callback);
93
106
}
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ find_package(rosidl_default_generators REQUIRED)
9
9
10
10
rosidl_generate_interfaces(btcpp_ros2_interfaces
11
11
"msg/NodeStatus.msg"
12
+ "srv/GetTrees.srv"
12
13
"action/ExecuteTree.action"
13
14
"action/Sleep.action" )
14
15
Original file line number Diff line number Diff line change
1
+ #### Request ####
2
+ # Empty
3
+
4
+ ---
5
+ #### Result ####
6
+
7
+ # Ids of the available trees
8
+ string[] tree_ids
You can’t perform that action at this time.
0 commit comments