ROS之自定義服務資料

2022-02-17 04:30:20 字數 1087 閱讀 6166

在我們編譯原始碼時,會經常遇到以下問題:

/home/zztsj/catkin_ws/src/as_6dof_arm/as_arm_control/src/check_collision.cpp:11:10: fatal

error: as_arm_description/checkcollisionvalid.h: 沒有那個檔案或目錄

#include

找不到我們自定義資料生成標頭檔案,對於這個問題,稍微講一下心得。我是以服務資料為例。

1.在當前軟體包呼叫自定義服務資料

在ros中的服務資料可以自定義,然後在當前軟體包呼叫,就不需要關注路徑了。

首先建立乙個服務型別的資料型別的srv檔案:

addtwoints.srv

int64 a

int64 b

---int64 sum

package.xml檔案配置沒有什麼區別,就是新增依賴就行

然後開啟cmakelists.txt檔案,新增如下配置

add_service_files(

files

addtwoints.srv

然後編譯成功,就可以呼叫addtwoints.h了

2.在其他軟體包呼叫自定義服務資料

在ros中的服務資料可以自定義,然後在當其他軟體包呼叫,這就需要關注路徑了。

首先建立乙個服務型別的資料型別的srv檔案:

addtwoints.srv

int64 a

int64 b

---int64 sum

package.xml檔案配置沒有什麼區別,就是新增依賴就行

然後開啟cmakelists.txt檔案,新增如下配置

add_service_files(

files

addtwoints.srv

include_directories(

$ /home/zztsj/catkin_ws/devel/include/                   新增你自己的路徑       

)然後編譯成功,就可以呼叫addtwoints.h了

大家共勉

ROS服務資料自定義

服務資料的定義與話題資料大部分相同,唯一要注意的一處是在cmakelists.txt檔案中,服務資料的定義應為 add service files files man.srv usr bin env python coding utf 8 import time,thread import rosp...

自定義srv訊息之ros

在ros中,如果沒有現成的訊息型別來描述要去傳遞的訊息時,我們會自定義訊息。我們會新建乙個package來去自定義訊息,通常這個package寫任何的業務邏輯,只是用來宣告自定義的訊息型別,可以只定義一種訊息型別,也可以定義多種訊息型別,根據業務需求來定。所以,首先我們單獨的建立乙個package,...

ROS服務程式設計 1,自定義服務資料 srv檔案

ros中的服務資料可以通過srv檔案進行語言無關的定義介面,一般放在srv資料夾,包含請求與問答兩個資料域,使用 分割開。針對加法運算服務請求,建立乙個服務型別的srv檔案 catkin ws src my package srv addtwoints.srv int64 a int64 b int...