/kb/label#

Caution

This documentation page has been auto-generated.

It may be missing some details.

/kb/label Quick Facts

Category

πŸ’‘ Knowledge and reasoning

Message type

kb_msgs/srv/About

Returns the labels attached to a term, as a dictionary {"default":"label1", "lang_code1": label1, "lang_code2": "label2",...} where the β€˜default’ key returns either the English version of the label, or the name of the term, if no label is available, and the other keys provide localised version of the label, if available in the knowledge base.

See the KnowledgeCore API for details.

Quick snippets#

Call the service from command-line#
$ ros2 service call /kb/label kb_msgs/srv/About
# (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 kb_msgs.srv import About
 8
 9class LabelClientAsync(Node):
10
11    def __init__(self):
12        super().__init__('kb_label_client_async')
13        self.cli = self.create_client(About, 'kb_label')
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 = About.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 = LabelClientAsync()
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 kb_label: %s' % response)
36
37    rclpy.shutdown()