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