2 #include <sarafun_tree/demo_bt_nodes/ApproachObjectsAction.h>
3 #include <sarafun_tree/demo_bt_nodes/GrabObjectAction.h>
4 #include <sarafun_tree/demo_bt_nodes/FoldingAssemblyAction.h>
5 #include <sarafun_tree/demo_bt_nodes/InsertionWithDeformationAction.h>
6 #include <sarafun_tree/demo_bt_nodes/PlaceAction.h>
7 #include <sarafun_tree/TreeRunner.h>
8 #include <std_srvs/Empty.h>
10 using namespace sarafun;
19 bool startTreeCallback(std_srvs::Empty::Request &req, std_srvs::Empty::Response &ans)
27 bool stopTreeCallback(std_srvs::Empty::Request &req, std_srvs::Empty::Response &ans)
35 bool restartTreeCallback(std_srvs::Empty::Request &req, std_srvs::Empty::Response &ans)
41 int main(
int argc,
char **argv) {
42 ros::init(argc, argv,
"sarafun_bt_demo");
44 int TickPeriod_milliseconds = 0;
46 if (ros::param::has(
"/sarafun/bt/file")) {
47 ros::param::get(
"/sarafun/bt/file", filename);
49 filename = std::string(
"example.json");
52 if (ros::param::has(
"/sarafun/bt/tick_period")){
53 ros::param::get(
"/sarafun/bt/tick_period", TickPeriod_milliseconds);
55 TickPeriod_milliseconds = 1000;
59 ros::package::getPath(
"sarafun_tree") +
"/data/" + filename;
61 ros::ServiceServer bt_start_service = n.advertiseService(
"/sarafun/start_tree", startTreeCallback);
62 ros::ServiceServer bt_stop_service = n.advertiseService(
"/sarafun/stop_tree", stopTreeCallback);
63 ros::ServiceServer bt_restart_service = n.advertiseService(
"/sarafun/restart_tree", restartTreeCallback);
65 runner =
new TreeRunner(TickPeriod_milliseconds);
bool startTree(std::string tree_description_path)