1.概述
首先温习服务术语。
命令 | 详细说明 |
rosservice list | 显示活动的服务信息 |
rosservice info [服务名称] | 显示指定服务的信息 |
rosservice type [服务名称] | 显示服务类型 |
rosservice find [服务类型] | 查找指定服务类型的服务 |
rosservice uri [服务名称] | 显示ROSRPC URI服务 |
rosservice args [服务名称] | 显示服务参数 |
rosservice call [服务名称] [参数] | 用输入的参数请求服务 |
在运行ROS服务相关例子之前先关闭所有节点。通过在不同的终端窗口中运行以下命令来运行turtlesim_node和turtle_teleop_key。
roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key
2.rosservice list:显示活动的服务信息
显示活动中的服务的信息。会显示在同一网络中使用的所有服务。
rosservice list
3.rosservice info [服务名称]:显示指定服务的信息
以下是使用rosservice的info选项查看/turtle1/set_pen服务的节点名称、URI、类型和参数的示例。
rosservice info /turtle1/set_pen
4.rosservice type [服务名称]:显示服务类型
在以下示例中,可以看到/turtle1/set_pen服务是turtlesim/SetPen类型。
rosservice type /turtle1/set_pen
5.rosservice find [服务类型]:查找指定服务类型的服务
以下示例搜索turtlesim/SetPen类型的服务。因此,可以看到搜索出/turtle1/set_pen。
rosservice find turtlesim/SetPen
6.rosservice uri [服务名称]:显示ROSRPC uri服务
用户也可以使用rosservice的uri选项来检查/turtle1/set_pen服务的ROSRPC URI,如下所示:
rosservice uri /turtle1/set_pen
7.rosservice args [服务名称]:服务参数输出
我们来看看/turtle1/set_pen服务的每个参数,如下例所示,该命令显示在/turtle1/set_pen服务中使用r、g、b、width和off参数。
rosservice args /turtle1/set_pen
8.rosservice call [服务名称] [参数]:用输入的参数服务请求
以下示例是请求/turtle1/set_pen服务的命令。所使用的“255 0 0 5 0”是对应于用于/turtle1/set_pen服务的参数(r,g,b,width,off)的值。红色的r的最大值是255,因为g和b都是0,所以笔的颜色是红色的。width设置为5,off为0(假)。rosservicecall是一个非常有用的命令,通常用于测试服务。
rosservice call /turtle1/set_pen 255 0 0 5 0
通过使用前面的命令,发送了服务请求,更改了turtlesim中使用的笔的属性,并且从turtle_teleop_key中下达了下移命令。作为结果,可以从下面图中看到原来是白色的笔色显示为红色。
rosservice call 示例