在我們編譯原始碼時,會經常遇到以下問題:
/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 aint64 b
---int64 sum
package.xml檔案配置沒有什麼區別,就是新增依賴就行
然後開啟cmakelists.txt檔案,新增如下配置
add_service_files(
files
addtwoints.srv
然後編譯成功,就可以呼叫addtwoints.h了
2.在其他軟體包呼叫自定義服務資料
在ros中的服務資料可以自定義,然後在當其他軟體包呼叫,這就需要關注路徑了。
首先建立乙個服務型別的資料型別的srv檔案:
addtwoints.srv
int64 aint64 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...