天天看点

ROS机器人程序设计(原书第2版)2.2.3 服务

<b>2.2.3 服务</b>

当你需要直接与节点通信并获得应答时,将无法通过主题实现,而需要使用服务。

服务需要由用户开发,节点并不提供标准服务。包含消息源代码的文件存储在srv文件夹中。

像主题一样,服务关联一个以功能包中.srv文件名称来命名的服务类型。与其他基于ros文件系统的类型一样,服务类型是功能包名称和.srv文件名称的组合。例如chapter2_tutorials/srv/chapter2_srv1.srv文件的服务类型是chapter2_tutorials/chapter2_srv1。

ros关于服务的命令行工具有两个:rossrv和rosservice。我们可以通过rossrv看到有关服务数据结构的信息,并且与rosmsg具有完全一致的用法。

通过rosservice可以列出服务列表和查询某个服务。支持的命令如下所示:

rosservice

call/service args 根据命令行参数调用服务。

rosservice find

msg-type 根据服务类型查询服务。

info/service 输出服务信息。

rosservice list 输出活动服务清单。

type/service 输出服务类型。

uri/service 输出服务的rosrpc uri。