/eulero_manager/get_waypoint_listΒΆ
Caution
This documentation page has been auto-generated.
It may be missing some details.
/eulero_manager/get_waypoint_list Quick Facts
- Category
 - Message type
 
Retrieves a fully initialized WaypointList
Quick snippetsΒΆ
Call the service from command-lineΒΆ
$ ros2 service call /eulero_manager/get_waypoint_list eulero_msgs/srv/GetWaypointList
# (tip: press Tab to complete the message prototype)
How to use in your codeΒΆ
Example of a complete ROS2 node asynchronously calling the serviceΒΆ
 1#!/usr/bin/env python
 2
 3import sys
 4import rclpy
 5from rclpy.node import Node
 6
 7from eulero_msgs.srv import GetWaypointList
 8
 9class GetWaypointListClientAsync(Node):
10
11    def __init__(self):
12        super().__init__('eulero_manager_get_waypoint_list_client_async')
13        self.cli = self.create_client(GetWaypointList, 'eulero_manager_get_waypoint_list')
14        while not self.cli.wait_for_service(timeout_sec=1.0):
15            self.get_logger().info('service not available, waiting again...')
16        self.req = GetWaypointList.Request()
17
18    def send_request(self, a, b):
19        # TODO: adapt to the service's parameters
20        # self.req.a = a
21        # self.req.b = b
22        self.future = self.cli.call_async(self.req)
23        rclpy.spin_until_future_complete(self, self.future)
24        return self.future.result()
25
26
27if __name__ == '__main__':
28    rclpy.init(args=args)
29
30    srv_client = GetWaypointListClientAsync()
31
32    # TODO: adapt to your parameters
33    response = srv_client.send_request(sys.argv[1], sys.argv[2])
34    srv_client.get_logger().info(
35        'Result of eulero_manager_get_waypoint_list: %s' % response)
36
37    rclpy.shutdown()
Example of a complete ROS2 node asynchronously calling the serviceΒΆ
 1#include "rclcpp/rclcpp.hpp"
 2#include "eulero_msgs/srv/get_waypoint_list.hpp"
 3
 4#include <chrono>
 5#include <cstdlib>
 6#include <memory>
 7
 8using namespace std::chrono_literals;
 9using namespace std;
10using namespace rclcpp;
11
12int main(int argc, char **argv)
13{
14    init(argc, argv);
15
16    shared_ptr<Node> node = Node::make_shared("eulero_manager/get_waypoint_list_client");
17    Client<eulero_msgs::srv::GetWaypointList>::SharedPtr client =
18        node->create_client<eulero_msgs::srv::GetWaypointList>("eulero_manager/get_waypoint_list");
19
20    auto request = make_shared<eulero_msgs::srv::GetWaypointList::Request>();
21
22    // TODO: adapt to the service's parameters
23    // request->a = ...;
24    // request->b = ...;
25
26    while (!client->wait_for_service(1s)) {
27    if (!ok()) {
28        RCLCPP_ERROR(get_logger("rclcpp"), "Interrupted while waiting for the service. Exiting.");
29        return 0;
30    }
31    RCLCPP_INFO(get_logger("rclcpp"), "service not available, waiting again...");
32    }
33
34    auto result = client->async_send_request(request);
35    // Wait for the result.
36    if (spin_until_future_complete(node, result) == FutureReturnCode::SUCCESS)
37    {
38    // TODO: do something with the result
39    // result.get()->...;
40    } else {
41    RCLCPP_ERROR(get_logger("rclcpp"), "Failed to call service eulero_manager/get_waypoint_list");
42    }
43
44    shutdown();
45    return 0;
46}