ROS中在乙個包裡引用其他包內的自定義訊息或服務

2021-10-02 01:16:55 字數 1091 閱讀 6975

假設我們要在a_package中引用b_package裡自定義的my_message.msg.

方法1: 可直接通過新增依賴的方式解決.

首先在建立包時新增b_package:

catkin_create_pkg std_msgs roscpp rospy b_package

然後通過以下命令編譯b_package:

catkin_make -dcatkin_whitelist_packages='b_package'

之後在a_package中新建的程式此時便可以自動載入出msg檔案所對應的標頭檔案了.

最後,全域性編譯整個工作空間:

catkin_make -dcatkin_whitelist_packages=''

注:方法1暫未實踐

方法2: 手動修改a_package資料夾中的cmakelists.txt和package.xml檔案

首先在a_package的cmakelists.txt檔案中的find_package部分新增b_package:

find_package(catkin required components

roscpp

rospy

std_msgs

b_package #新增這一條

)

然後將以下**取消注釋(刪除#):

include_directories(

include

$)

然後在package.xml檔案中新增以下**,注意需要根據實際情況按相應的格式配置:

b_package

b_package

b_package

之後,我們需要先編譯要引用檔案的功能包b_package.只要編譯過就行,不一定要使用以下命令:

catkin_make -dcatkin_whitelist_packages='b_package'

最後編譯a_package即可.

注:方法2已實踐有效

參考部落格:

建立乙個ROS包

先前筆者不知道catkin到底是個什麼東東,後來終於在官方 上找到了答案,原來catkin是ros的乙個官方的編譯構建系統,是原本的ros的編譯構建系統rosbuild的後繼者。catkin的 有點複雜,我們可以慢慢的講一下其中的淵源。ros 於willow garage這個公司,他們希望借助開源的...

04 編譯乙個ROS包

1 記得事先source你的環境配置 setup 檔案,在ubuntu中的操作指令如下 source opt ros groovy setup.bash 也可以在 bashrc配置檔案進行配置 2 catkin make 是乙個命令列工具,它簡化了catkin的標準工作流程。你可以認為catkin ...

ROS 引用同一工作空間下其他包中的 h 檔案

引用同一工作空間下其他package的 h 檔案,一種方法是建立library生成動態鏈結庫 so 1 2 3 另一種方法是直接引用 h 檔案 1 2 1 catkin package include dirs include libraries motordriver catkin depends...