<b>2.4.7 如何使用服務</b>
服務是能夠使節點之間互相通信的另一種方法。服務允許節點發送請求和接收響應。
可以使用rosservice工具與服務進行互動。此指令接受的參數如下所示:
rosservice
args/service 輸出服務參數。
call/service 根據指令行參數調用服務。
rosservice find
msg-type 根據服務類型查詢服務。
rosservice info
/service 輸出服務資訊。
rosservice list 列出活動服務清單。
rosservice type/service 輸出服務類型。
uri/service 輸出rosrpc uri服務。
我們要使用以下指令列出在turtlesim節點運作時系統提供的服務。如果你運作了這個指令,卻沒有任何反應,那麼請記住要先運作roscore并啟動turtlesim節點:
你會獲得以下輸出:
如果你想檢視某個服務的類型,例如/clear服務,請使用:
你會獲得類似下面的輸出:
若要調用服務,你需要使用rosservice call [service] [args]指令。是以如果想要調用/clear服務,請使用:
在turtlesim的視窗中,你會看到由小海龜移動産生的線條消失了。
現在我們嘗試其他的服務,例如/spawn服務。這項服務将以不同的方向在另一個位置建立另一隻小海龜。開始之前,我們要去檢視以下類型的消息:
我們會獲得以下參數:
前面的指令和下面的指令是相同的。如果你想知道為什麼這些指令相同,可以在搜尋引擎裡搜尋piping linux:
你會看到如下類似的結果:
輸入下面指令:
通過這些字段,可以知道如何調用服務。我們需要新海龜位置的x和y、方向(theta)和新海龜的名稱:
我們會獲得右側的結果: