From 4c86f8535e3c9157c9b8977ca238a41dae9b0845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20Matar=C3=A9?= Date: Sat, 17 Apr 2021 02:20:32 +0200 Subject: [PATCH] add turtlesim action --- CMakeLists.txt | 1 + package.xml | 1 + src/actions/gologpp_turtle_actionlib.cpp | 22 ++++++++++++++++++++++ src/ros_backend.h | 5 ++--- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/actions/gologpp_turtle_actionlib.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 0404e07..48957da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ find_package(catkin REQUIRED COMPONENTS ) set(gologpp_action_pkgs + turtle_actionlib darknet_action_msgs naoqi_wrapper_msgs naoqi_bridge_msgs diff --git a/package.xml b/package.xml index ba5ba77..0e02e6c 100644 --- a/package.xml +++ b/package.xml @@ -56,6 +56,7 @@ naoqi_wrapper_msgs naoqi_bridge_msgs darknet_action_msgs + turtle_actionlib move_base_msgs opencv_apps_action_msgs diff --git a/src/actions/gologpp_turtle_actionlib.cpp b/src/actions/gologpp_turtle_actionlib.cpp new file mode 100644 index 0000000..8a69cd1 --- /dev/null +++ b/src/actions/gologpp_turtle_actionlib.cpp @@ -0,0 +1,22 @@ +#include "action_manager.h" +#include "exog_manager.h" +#include "ros_backend.h" + +#include + +#include + + +template<> +ActionManager::GoalT +ActionManager::build_goal(const gpp::Activity &a) +{ + turtle_actionlib::ShapeGoal goal; + goal.edges = a.mapped_arg_value("edges").numeric_convert(); + goal.radius = a.mapped_arg_value("radius").numeric_convert(); + return goal; +} + + +void RosBackend::define_turtle_actions() +{ create_ActionManager("turtle_shape"); } diff --git a/src/ros_backend.h b/src/ros_backend.h index 9bee06b..890f468 100644 --- a/src/ros_backend.h +++ b/src/ros_backend.h @@ -50,14 +50,13 @@ class RosBackend : public gologpp::PlatformBackend private: virtual void terminate_() override; - // Implemented in pepper_actions.cpp: - // Fill action_containers_ by calling define_action_client for - // each action that should be made available. + // May have an implementation iff the corresponding package has been found void define_naoqi_wrapper_actions(); void define_move_base_actions(); void define_darknet_actions(); void define_naoqi_bridge_actions(); void define_opencv_apps_actions(); + void define_turtle_actions(); template void create_ActionManager(const std::string &name);