/module_manager_node/disable_virtual_group
ΒΆ
Caution
This documentation page has been auto-generated.
It may be missing some details.
/module_manager_node/disable_virtual_group
Quick Facts
- Category
- Message type
Enables a virtual group. The modules will not be started when the module manager is started.
See The startup process of the robot and application management.
Quick snippetsΒΆ
Call the service from command-lineΒΆ
$ ros2 service call /module_manager_node/disable_virtual_group pal_module_srvs/srv/DisableVirtualGroup
# (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 pal_module_srvs.srv import DisableVirtualGroup
8
9class DisableVirtualGroupClientAsync(Node):
10
11 def __init__(self):
12 super().__init__('module_manager_node_disable_virtual_group_client_async')
13 self.cli = self.create_client(DisableVirtualGroup, 'module_manager_node_disable_virtual_group')
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 = DisableVirtualGroup.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 = DisableVirtualGroupClientAsync()
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 module_manager_node_disable_virtual_group: %s' % response)
36
37 rclpy.shutdown()
Example of a complete ROS2 node asynchronously calling the serviceΒΆ
1#include "rclcpp/rclcpp.hpp"
2#include "pal_module_srvs/srv/disable_virtual_group.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("module_manager_node/disable_virtual_group_client");
17 Client<pal_module_srvs::srv::DisableVirtualGroup>::SharedPtr client =
18 node->create_client<pal_module_srvs::srv::DisableVirtualGroup>("module_manager_node/disable_virtual_group");
19
20 auto request = make_shared<pal_module_srvs::srv::DisableVirtualGroup::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 module_manager_node/disable_virtual_group");
42 }
43
44 shutdown();
45 return 0;
46}