ROS-ROS命令(五) rosservice:ROS服务

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 示例

 

 

posted @ 2019-01-25 14:54  kay880  阅读(15523)  评论(0编辑  收藏  举报