天天看點

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。