1.3.4 ROS服务

在ROS服务中,一个节点充当ROS服务器,服务客户端可以向服务器请求服务。如果服务器完成服务程序,它会将结果发送到服务客户端。例如,考虑一个节点,它可以计算接收的两个数字的总和,并以ROS服务的形式实现该功能。系统中的其他节点可能会通过该服务请求计算两个数字的总和。在这种情况下,主题用于流式传输连续的数据流。

ROS服务定义可以通过以下方法访问。例如my_package/srv/Image.srv可通过my_package/Image访问。

在ROS服务中,还有一项MD5校验和比较,用于检查节点。如果检验值匹配,服务器才对请求的客户端做出响应。

有两个ROS工具可用于收集有关ROS服务的信息。第一个工具是rossrv,它类似于rosmsg,可用于获取有关服务类型的信息。第二个工具是rosservice,可用于列出和查询正在运行的ROS服务。

让我们解释一下如何使用rosservice工具来收集有关正在运行的服务的信息。

●rosservice call/service args:使用给定的参数调用服务。

●rosservice find service_type:查找给定服务类型的服务。

●rosservice info/services:打印有关给定服务的信息。

●rosservice list:列出系统上运行的活动服务。

●rosservice type/service:打印给定服务的服务类型。

●rosservice uri/service:打印服务的ROSRPC URI。

现在,让我们来看看ROS的bag文件。