15 #ifndef NAV2_UTIL__LIFECYCLE_SERVICE_CLIENT_HPP_
16 #define NAV2_UTIL__LIFECYCLE_SERVICE_CLIENT_HPP_
22 #include "lifecycle_msgs/srv/change_state.hpp"
23 #include "lifecycle_msgs/srv/get_state.hpp"
24 #include "nav2_ros_common/service_client.hpp"
25 #include "nav2_ros_common/node_utils.hpp"
31 using namespace std::chrono_literals;
37 template<
typename NodeT>
40 const string & lifecycle_node_name,
42 : change_state_(lifecycle_node_name +
"/change_state", parent_node,
44 get_state_(lifecycle_node_name +
"/get_state", parent_node,
49 while (!get_state_.wait_for_service(2s)) {
51 parent_node->get_logger(),
52 "Waiting for service %s...", get_state_.getServiceName().c_str());
68 const uint8_t transition,
69 const std::chrono::milliseconds transition_timeout = std::chrono::milliseconds(-1),
70 const std::chrono::milliseconds wait_for_service_timeout = std::chrono::milliseconds(5000));
76 uint8_t get_state(
const std::chrono::milliseconds timeout = std::chrono::milliseconds(2000));
Helper functions to interact with a lifecycle node.