- 精通ROS机器人编程(原书第3版)
- (印)郎坦·约瑟夫等
- 441字
- 2024-08-19 16:09:47
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文件。