diff --git a/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager.hpp b/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager.hpp index b1347c8080ba0199eb14068e44012f6bd31cfe60..74035a8bfd3dae106c90b44fae1d8dfa14151ba9 100644 --- a/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager.hpp +++ b/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager.hpp @@ -24,12 +24,12 @@ #include "nav2_util/lifecycle_service_client.hpp" #include "rclcpp/rclcpp.hpp" #include "std_srvs/srv/empty.hpp" -#include "nav2_msgs/srv/manage_nodes.hpp" +#include "nav2_msgs/srv/manage_lifecycle_nodes.hpp" namespace nav2_lifecycle_manager { -using nav2_msgs::srv::ManageNodes; +using nav2_msgs::srv::ManageLifecycleNodes; class LifecycleManager : public rclcpp::Node { @@ -42,12 +42,12 @@ protected: rclcpp::Node::SharedPtr service_client_node_; // The services provided by this node - rclcpp::Service<ManageNodes>::SharedPtr manager_srv_; + rclcpp::Service<ManageLifecycleNodes>::SharedPtr manager_srv_; void managerCallback( const std::shared_ptr<rmw_request_id_t> request_header, - const std::shared_ptr<ManageNodes::Request> request, - std::shared_ptr<ManageNodes::Response> response); + const std::shared_ptr<ManageLifecycleNodes::Request> request, + std::shared_ptr<ManageLifecycleNodes::Response> response); // Support functions for the service calls bool startup(); @@ -56,9 +56,8 @@ protected: bool pause(); bool resume(); - // Support functions for bring-up + // Support function for creating service clients void createLifecycleServiceClients(); - bool bringupNode(const std::string & node_name); // Support functions for shutdown void shutdownAllNodes(); diff --git a/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager_client.hpp b/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager_client.hpp index eb3fc52c6708b881f686a8deb185e8e92df0fc0b..cdc1aba8296cff7dd0cbde128ecb4d03e883ea4a 100644 --- a/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager_client.hpp +++ b/nav2_lifecycle_manager/include/nav2_lifecycle_manager/lifecycle_manager_client.hpp @@ -24,7 +24,7 @@ #include "rclcpp/rclcpp.hpp" #include "rclcpp_action/rclcpp_action.hpp" #include "std_srvs/srv/empty.hpp" -#include "nav2_msgs/srv/manage_nodes.hpp" +#include "nav2_msgs/srv/manage_lifecycle_nodes.hpp" namespace nav2_lifecycle_manager { @@ -46,7 +46,7 @@ public: bool navigate_to_pose(double x, double y, double theta); protected: - using ManageNodes = nav2_msgs::srv::ManageNodes; + using ManageLifecycleNodes = nav2_msgs::srv::ManageLifecycleNodes; // A generic method used to call startup, shutdown, etc. bool callService(uint8_t command); @@ -54,7 +54,7 @@ protected: // The node to use for the service call rclcpp::Node::SharedPtr node_; - rclcpp::Client<ManageNodes>::SharedPtr manager_client_; + rclcpp::Client<ManageLifecycleNodes>::SharedPtr manager_client_; std::string service_name_{"lifecycle_manager/manage_nodes"}; using PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped; diff --git a/nav2_lifecycle_manager/src/lifecycle_manager.cpp b/nav2_lifecycle_manager/src/lifecycle_manager.cpp index 3a7a3f1412cdb5fc5693b0ccefb6e5f2eb91cf5a..e6e56029262c28a43dba1b1bb3a134947ddf5d47 100644 --- a/nav2_lifecycle_manager/src/lifecycle_manager.cpp +++ b/nav2_lifecycle_manager/src/lifecycle_manager.cpp @@ -26,7 +26,6 @@ using namespace std::placeholders; using lifecycle_msgs::msg::Transition; using lifecycle_msgs::msg::State; -using nav2_msgs::msg::Command; using nav2_util::LifecycleServiceClient; namespace nav2_lifecycle_manager @@ -49,7 +48,7 @@ LifecycleManager::LifecycleManager() get_parameter("node_names", node_names_); get_parameter("autostart", autostart_); - manager_srv_ = create_service<ManageNodes>("lifecycle_manager/manage_nodes", + manager_srv_ = create_service<ManageLifecycleNodes>("lifecycle_manager/manage_nodes", std::bind(&LifecycleManager::managerCallback, this, _1, _2, _3)); auto options = rclcpp::NodeOptions().arguments( @@ -85,23 +84,23 @@ LifecycleManager::~LifecycleManager() void LifecycleManager::managerCallback( const std::shared_ptr<rmw_request_id_t>/*request_header*/, - const std::shared_ptr<ManageNodes::Request> request, - std::shared_ptr<ManageNodes::Response> response) + const std::shared_ptr<ManageLifecycleNodes::Request> request, + std::shared_ptr<ManageLifecycleNodes::Response> response) { - switch (request->command.id) { - case Command::STARTUP: + switch (request->command) { + case ManageLifecycleNodes::Request::STARTUP: response->success = startup(); break; - case Command::RESET: + case ManageLifecycleNodes::Request::RESET: response->success = reset(); break; - case Command::SHUTDOWN: + case ManageLifecycleNodes::Request::SHUTDOWN: response->success = shutdown(); break; - case Command::PAUSE: + case ManageLifecycleNodes::Request::PAUSE: response->success = pause(); break; - case Command::RESUME: + case ManageLifecycleNodes::Request::RESUME: response->success = resume(); break; } diff --git a/nav2_lifecycle_manager/src/lifecycle_manager_client.cpp b/nav2_lifecycle_manager/src/lifecycle_manager_client.cpp index f8ff810d9cc24fd6038c4dd5220dea0339e37915..5f3c928686d743f42515b8e298bdfd609bbeefff 100644 --- a/nav2_lifecycle_manager/src/lifecycle_manager_client.cpp +++ b/nav2_lifecycle_manager/src/lifecycle_manager_client.cpp @@ -23,7 +23,6 @@ namespace nav2_lifecycle_manager { using nav2_util::geometry_utils::orientationAroundZAxis; -using nav2_msgs::msg::Command; LifecycleManagerClient::LifecycleManagerClient() { @@ -31,7 +30,7 @@ LifecycleManagerClient::LifecycleManagerClient() node_ = std::make_shared<rclcpp::Node>("lifecycle_manager_client_service_client"); // Create the service clients - manager_client_ = node_->create_client<ManageNodes>(service_name_); + manager_client_ = node_->create_client<ManageLifecycleNodes>(service_name_); navigate_action_client_ = rclcpp_action::create_client<nav2_msgs::action::NavigateToPose>(node_, "NavigateToPose"); @@ -44,31 +43,31 @@ LifecycleManagerClient::LifecycleManagerClient() bool LifecycleManagerClient::startup() { - return callService(Command::STARTUP); + return callService(ManageLifecycleNodes::Request::STARTUP); } bool LifecycleManagerClient::shutdown() { - return callService(Command::SHUTDOWN); + return callService(ManageLifecycleNodes::Request::SHUTDOWN); } bool LifecycleManagerClient::pause() { - return callService(Command::PAUSE); + return callService(ManageLifecycleNodes::Request::PAUSE); } bool LifecycleManagerClient::resume() { - return callService(Command::RESUME); + return callService(ManageLifecycleNodes::Request::RESUME); } bool LifecycleManagerClient::reset() { - return callService(Command::RESET); + return callService(ManageLifecycleNodes::Request::RESET); } void @@ -143,8 +142,8 @@ LifecycleManagerClient::navigate_to_pose(double x, double y, double theta) bool LifecycleManagerClient::callService(uint8_t command) { - auto request = std::make_shared<ManageNodes::Request>(); - request->command.id = command; + auto request = std::make_shared<ManageLifecycleNodes::Request>(); + request->command = command; RCLCPP_INFO(node_->get_logger(), "Waiting for the lifecycle_manager's %s service...", service_name_); diff --git a/nav2_msgs/CMakeLists.txt b/nav2_msgs/CMakeLists.txt index f118d921953373734036361d78b981a43c4d29c1..fda89d39c8a2f5e0696a3475e8d6372d26bf24ae 100644 --- a/nav2_msgs/CMakeLists.txt +++ b/nav2_msgs/CMakeLists.txt @@ -16,12 +16,11 @@ rosidl_generate_interfaces(${PROJECT_NAME} "msg/CostmapMetaData.msg" "msg/Path.msg" "msg/VoxelGrid.msg" - "msg/Command.msg" "srv/GetCostmap.srv" "srv/ClearCostmapExceptRegion.srv" "srv/ClearCostmapAroundRobot.srv" "srv/ClearEntireCostmap.srv" - "srv/ManageNodes.srv" + "srv/ManageLifecycleNodes.srv" "action/BackUp.action" "action/ComputePathToPose.action" "action/FollowPath.action" diff --git a/nav2_msgs/msg/Command.msg b/nav2_msgs/srv/ManageLifecycleNodes.srv similarity index 73% rename from nav2_msgs/msg/Command.msg rename to nav2_msgs/srv/ManageLifecycleNodes.srv index 7c9f871ccde26d2cb247bdca491bbfdb46ee7650..8f37cbf819bef4ab32300107e203029a86497629 100644 --- a/nav2_msgs/msg/Command.msg +++ b/nav2_msgs/srv/ManageLifecycleNodes.srv @@ -4,4 +4,6 @@ uint8 RESUME = 2 uint8 RESET = 3 uint8 SHUTDOWN = 4 -uint8 id +uint8 command +--- +bool success diff --git a/nav2_msgs/srv/ManageNodes.srv b/nav2_msgs/srv/ManageNodes.srv deleted file mode 100644 index fe867c262954b67912b1379cce61928cf6dd5cf7..0000000000000000000000000000000000000000 --- a/nav2_msgs/srv/ManageNodes.srv +++ /dev/null @@ -1,3 +0,0 @@ -Command command ---- -bool success