<b>2.4.12 使用建立的srv和msg檔案</b>
首先,我們将會學習如何建立一個服務并且在ros中使用。該服務将會對三個整數求和。我們需要兩個節點,一個伺服器一個用戶端。
在chapter2_tutorials功能包中,建立兩個節點并以example2_a.cpp和example2_b.cpp為名稱。别忘了要在src檔案夾下建立這兩個檔案。
在第一個檔案example2_a.cpp中,添加以下代碼:
解釋一下這些代碼:
這些行包含必要的頭檔案和我們建立的srv檔案:
這個函數會對3個變量求和,并将計算結果發送給其他節點:
在這裡,建立服務并在ros中釋出廣播。
在第2個檔案example2_b.cpp中,增加以下代碼:
代碼解釋:
以add_3_ints為名稱建立一個服務的用戶端。
下面建立srv檔案的一個執行個體,并且加入需要發送的資料值。如果你還記得,這個消息需要3個字段。
這行代碼會調用服務并發送資料。如果調用成功,call()函數會傳回true;如果沒成功,call()函數會傳回false。
為了編譯節點,在cmakelist.txt檔案中增加以下行:
現在執行以下指令:
為了啟動節點,需要執行以下指令行:
并且你會看到如下顯示:
現在将要用自定義的msg檔案來建立節點。這個例子也一樣,建立example1_a.cpp和example1_b.cpp檔案,同時調用chapter2_msg1.msg。
将下面的代碼放在example3_a.cpp檔案中:
将下面的代碼放在example3_b.cpp檔案中:
如果現在運作這兩個節點,将會看到如下資訊: