天天看點

ROS機器人程式設計(原書第2版)2.4.12 使用建立的srv和msg檔案

<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檔案中:

如果現在運作這兩個節點,将會看到如下資訊:

繼續閱讀