From b49d4df622b99c168faf795b8273e9138b75eeaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Hern=C3=A1ndez=20Cordero?= Date: Fri, 30 Aug 2024 09:51:07 +0200 Subject: [PATCH] Removed action tutorials interfaces dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Alejandro Hernández Cordero --- CMakeLists.txt | 6 +++--- doc/CPlusPlusClient.md | 40 ++++++++++++++++++------------------- doc/CPlusPlusServer.md | 14 ++++++------- doc/PythonClient.md | 8 ++++---- doc/PythonServer.md | 12 +++++------ package.xml | 2 +- simple_actions/utilities.py | 6 +++--- test/complex_setup.cpp | 6 +++--- test/smoke.cpp | 10 +++++----- 9 files changed, 52 insertions(+), 52 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b7def9..6799a72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,12 +24,12 @@ find_package(rclpy REQUIRED) if(BUILD_TESTING) find_package(ament_cmake_gtest REQUIRED) - find_package(action_tutorials_interfaces REQUIRED) + find_package(example_interfaces REQUIRED) ament_add_gtest(${PROJECT_NAME}_smoke_test test/smoke.cpp) ament_target_dependencies(${PROJECT_NAME}_smoke_test - action_tutorials_interfaces action_msgs + example_interfaces rclcpp rclcpp_action ) @@ -41,8 +41,8 @@ if(BUILD_TESTING) ament_add_gtest(${PROJECT_NAME}_complex_test test/complex_setup.cpp) ament_target_dependencies(${PROJECT_NAME}_complex_test - action_tutorials_interfaces action_msgs + example_interfaces rclcpp rclcpp_action ) diff --git a/doc/CPlusPlusClient.md b/doc/CPlusPlusClient.md index 9bdc874..227ea7a 100644 --- a/doc/CPlusPlusClient.md +++ b/doc/CPlusPlusClient.md @@ -3,16 +3,16 @@ ## Minimal Example Sends the goal, and ignores the result and the feedback ```cpp -#include +#include #include int main(int argc, char * argv[]) { rclcpp::init(argc, argv); rclcpp::Node::SharedPtr node = std::make_shared("client_demo"); - simple_actions::SimpleActionClient client(node, "fibonacci"); + simple_actions::SimpleActionClient client(node, "fibonacci"); - action_tutorials_interfaces::action::Fibonacci::Goal goal_msg; + example_interfaces::action::Fibonacci::Goal goal_msg; goal_msg.order = 10; client.sendGoal(goal_msg); rclcpp::shutdown(); @@ -24,16 +24,16 @@ int main(int argc, char * argv[]) This example sends the goal and waits for the result. ```cpp -#include +#include #include int main(int argc, char * argv[]) { rclcpp::init(argc, argv); rclcpp::Node::SharedPtr node = std::make_shared("client_demo"); - simple_actions::SimpleActionClient client(node, "fibonacci"); + simple_actions::SimpleActionClient client(node, "fibonacci"); - action_tutorials_interfaces::action::Fibonacci::Goal goal_msg; + example_interfaces::action::Fibonacci::Goal goal_msg; goal_msg.order = 10; auto result = client.execute(goal_msg); for (const auto& n : result.sequence) @@ -48,21 +48,21 @@ int main(int argc, char * argv[]) ## Example with Callbacks This example uses custom callbacks for the result and feedback. ```cpp -#include +#include #include -void feedbackCallback(const action_tutorials_interfaces::action::Fibonacci::Feedback& feedback) +void feedbackCallback(const example_interfaces::action::Fibonacci::Feedback& feedback) { std::stringstream ss; ss << "Next number in sequence received: "; - for (auto number : feedback.partial_sequence) { + for (auto number : feedback.sequence) { ss << number << " "; } std::cout << ss.str() << std::endl; } void resultCallback(simple_actions::ResultCode code, - const action_tutorials_interfaces::action::Fibonacci::Result& result) + const example_interfaces::action::Fibonacci::Result& result) { if (code == simple_actions::ResultCode::SUCCEEDED) { @@ -85,9 +85,9 @@ int main(int argc, char * argv[]) using namespace std::placeholders; rclcpp::init(argc, argv); rclcpp::Node::SharedPtr node = std::make_shared("client_demo"); - simple_actions::SimpleActionClient client(node, "fibonacci"); + simple_actions::SimpleActionClient client(node, "fibonacci"); - action_tutorials_interfaces::action::Fibonacci::Goal goal_msg; + example_interfaces::action::Fibonacci::Goal goal_msg; goal_msg.order = 10; client.sendGoal(goal_msg, std::bind(resultCallback, _1, _2), std::bind(feedbackCallback, _1)); rclcpp::spin(node); @@ -97,7 +97,7 @@ int main(int argc, char * argv[]) ### Example With Class Callbacks ```cpp -#include +#include #include class FibonacciActionClient @@ -112,7 +112,7 @@ public: { using namespace std::placeholders; - auto goal_msg = action_tutorials_interfaces::action::Fibonacci::Goal(); + auto goal_msg = example_interfaces::action::Fibonacci::Goal(); goal_msg.order = 10; client_.sendGoal(goal_msg, std::bind(&FibonacciActionClient::resultCallback, this, _1, _2), std::bind(&FibonacciActionClient::feedbackCallback, this, _1)); @@ -120,20 +120,20 @@ public: private: rclcpp::Node::SharedPtr node_; - simple_actions::SimpleActionClient client_; + simple_actions::SimpleActionClient client_; - void feedbackCallback(const action_tutorials_interfaces::action::Fibonacci::Feedback& feedback) + void feedbackCallback(const example_interfaces::action::Fibonacci::Feedback& feedback) { std::stringstream ss; ss << "Next number in sequence received: "; - for (auto number : feedback.partial_sequence) { + for (auto number : feedback.sequence) { ss << number << " "; } RCLCPP_INFO(node_->get_logger(), ss.str().c_str()); } void resultCallback(simple_actions::ResultCode code, - const action_tutorials_interfaces::action::Fibonacci::Result & result) + const example_interfaces::action::Fibonacci::Result & result) { if (code == simple_actions::ResultCode::SUCCEEDED) { @@ -175,7 +175,7 @@ You can also specify a feedback callback with the call operator, a la By default, creating the `SimpleActionClient` will wait for the server to come up. You can disable that by passing in `wait_for_server=False` and then calling `waitForServer()` later. ```cpp - simple_actions::SimpleActionClient client(node, "fibonacci", false); + simple_actions::SimpleActionClient client(node, "fibonacci", false); # Do something else client.waitForServer(); @@ -193,7 +193,7 @@ C++ exception with description "Node '/XYZ' has already been added to an executo In this case, you can use the `spin_locally` flag in the `SimpleActionClient::execute()` function to avoid using the implicit executor. ```cpp -#include +#include #include class MyComplexClass diff --git a/doc/CPlusPlusServer.md b/doc/CPlusPlusServer.md index e45961a..0399395 100644 --- a/doc/CPlusPlusServer.md +++ b/doc/CPlusPlusServer.md @@ -4,11 +4,11 @@ Listens for goal, returns the result (no feedback) ```cpp -#include +#include #include -bool execute(const action_tutorials_interfaces::action::Fibonacci::Goal& goal, - action_tutorials_interfaces::action::Fibonacci::Result& result) +bool execute(const example_interfaces::action::Fibonacci::Goal& goal, + example_interfaces::action::Fibonacci::Result& result) { rclcpp::Rate loop_rate(1); std::vector sequence; @@ -29,7 +29,7 @@ int main(int argc, char* argv[]) { rclcpp::init(argc, argv); rclcpp::Node::SharedPtr node = std::make_shared("server_demo"); - simple_actions::SimpleActionServer server( + simple_actions::SimpleActionServer server( node, "fibonacci", std::bind(&execute, std::placeholders::_1, std::placeholders::_2)); rclcpp::spin(node); return 0; @@ -40,13 +40,13 @@ int main(int argc, char* argv[]) You need the `action_server` reference to send feedback, so its easier to do it within a class then deal with global variables or lambdas. YMMV. ```cpp -#include +#include #include class FibonacciActionServer { public: - using Fibonacci = action_tutorials_interfaces::action::Fibonacci; + using Fibonacci = example_interfaces::action::Fibonacci; explicit FibonacciActionServer(rclcpp::Node::SharedPtr node) : node_(node), @@ -63,7 +63,7 @@ private: { rclcpp::Rate loop_rate(1); auto feedback = std::make_shared(); - auto& sequence = feedback->partial_sequence; + auto& sequence = feedback->sequence; sequence.push_back(0); sequence.push_back(1); diff --git a/doc/PythonClient.md b/doc/PythonClient.md index ea96198..56eb484 100644 --- a/doc/PythonClient.md +++ b/doc/PythonClient.md @@ -6,7 +6,7 @@ Sends the goal, and ignores the result and the feedback import rclpy from rclpy.node import Node from simple_actions import SimpleActionClient -from action_tutorials_interfaces.action import Fibonacci +from example_interfaces.action import Fibonacci def main(args=None): @@ -29,7 +29,7 @@ This example sends the goal and waits for the result. import rclpy from rclpy.node import Node from simple_actions import SimpleActionClient -from action_tutorials_interfaces.action import Fibonacci +from example_interfaces.action import Fibonacci def main(args=None): @@ -53,11 +53,11 @@ This example uses custom callbacks for the result and feedback. import rclpy from rclpy.node import Node from simple_actions import SimpleActionClient -from action_tutorials_interfaces.action import Fibonacci +from example_interfaces.action import Fibonacci def my_awesome_feedback_cb(feedback): - print(f'Feedback: {feedback.partial_sequence}') + print(f'Feedback: {feedback.sequence}') def my_awesome_result_cb(result_code, result): diff --git a/doc/PythonServer.md b/doc/PythonServer.md index bacf07e..21a0aff 100644 --- a/doc/PythonServer.md +++ b/doc/PythonServer.md @@ -8,7 +8,7 @@ import time import rclpy from rclpy.node import Node from simple_actions import SimpleActionServer -from action_tutorials_interfaces.action import Fibonacci +from example_interfaces.action import Fibonacci def fibonacci_action(goal): @@ -43,7 +43,7 @@ import time import rclpy from rclpy.node import Node from simple_actions import SimpleActionServer -from action_tutorials_interfaces.action import Fibonacci +from example_interfaces.action import Fibonacci class FibonacciServer: @@ -52,16 +52,16 @@ class FibonacciServer: def fibonacci_action(self, goal): feedback_msg = Fibonacci.Feedback() - feedback_msg.partial_sequence = [0, 1] + feedback_msg.sequence = [0, 1] for i in range(1, goal.order): - feedback_msg.partial_sequence.append( - feedback_msg.partial_sequence[i] + feedback_msg.partial_sequence[i - 1]) + feedback_msg.sequence.append( + feedback_msg.sequence[i] + feedback_msg.sequence[i - 1]) self.action_server.publish_feedback(feedback_msg) time.sleep(1.0) result = Fibonacci.Result() - result.sequence = feedback_msg.partial_sequence + result.sequence = feedback_msg.sequence return result diff --git a/package.xml b/package.xml index 99ee596..10991c6 100644 --- a/package.xml +++ b/package.xml @@ -13,7 +13,7 @@ rclcpp_action rclpy - action_tutorials_interfaces + example_interfaces ament_cmake diff --git a/simple_actions/utilities.py b/simple_actions/utilities.py index b4b6f68..9e39ca4 100644 --- a/simple_actions/utilities.py +++ b/simple_actions/utilities.py @@ -34,7 +34,7 @@ def get_action_name(action_type): """Return a cleaned up version of the action type.""" # Mildly hacky, but works for now - class_name_str = str(action_type) # e.g. - class_name = class_name_str.split("'")[1] # e.g. action_tutorials_interfaces.action._fibonacci.Fibonacci + class_name_str = str(action_type) # e.g. + class_name = class_name_str.split("'")[1] # e.g. example_interfaces.action._fibonacci.Fibonacci parts = class_name.split('.') - return '.'.join([parts[0], parts[1], parts[-1]]) # e.g. action_tutorials_interfaces.action.Fibonacci + return '.'.join([parts[0], parts[1], parts[-1]]) # e.g. example_interfaces.action.Fibonacci diff --git a/test/complex_setup.cpp b/test/complex_setup.cpp index bad01be..ac31d75 100644 --- a/test/complex_setup.cpp +++ b/test/complex_setup.cpp @@ -37,12 +37,12 @@ #include #include #include -#include +#include -#include +#include #include -using Fibonacci = action_tutorials_interfaces::action::Fibonacci; +using Fibonacci = example_interfaces::action::Fibonacci; class TestComplexSetup : public ::testing::Test { diff --git a/test/smoke.cpp b/test/smoke.cpp index a2a3d50..f23083e 100644 --- a/test/smoke.cpp +++ b/test/smoke.cpp @@ -37,11 +37,11 @@ #include #include #include -#include +#include using namespace std::chrono_literals; -bool execute(const action_tutorials_interfaces::action::Fibonacci::Goal&, - action_tutorials_interfaces::action::Fibonacci::Result&) +bool execute(const example_interfaces::action::Fibonacci::Goal&, + example_interfaces::action::Fibonacci::Result&) { return false; } @@ -49,7 +49,7 @@ bool execute(const action_tutorials_interfaces::action::Fibonacci::Goal&, TEST(Smoke, clientTest) { rclcpp::Node::SharedPtr node = std::make_shared("client_demo"); - simple_actions::SimpleActionClient client(node, "fibonacci", false); + simple_actions::SimpleActionClient client(node, "fibonacci", false); EXPECT_FALSE(client.waitForServer(1s)); EXPECT_FALSE(client.getLatestResultCode()); } @@ -57,7 +57,7 @@ TEST(Smoke, clientTest) TEST(Smoke, serverTest) { rclcpp::Node::SharedPtr node = std::make_shared("server_demo"); - simple_actions::SimpleActionServer server( + simple_actions::SimpleActionServer server( node, "fibonacci", std::bind(&execute, std::placeholders::_1, std::placeholders::_2)); }