一、catkin套件包由什麼組成

滿足以下條件,才能讓 package(套件包)被 catkin 編譯 :

1. package.xml:

提供關於此套件的主要資訊

2. CMakeLists.txt:

提供關於此套件的編譯規則

3. 擁有獨立的folder資料夾:

意味著不附屬於其他資料夾,也不會有多個資料夾共用此資料夾。


架構顯示如下:
圖片來源:CreatingPackage

二、在 catkin 工作空間中的 套件包

架構呈現如下圖:

三、創建一個 catkin 套件包

1.進入到你所創建工作空間的 src 路徑

2.輸入以下規則的指令catkin_create_pkg [套件包名稱] [相依套件1] [相依套件2]  ... [相依套件N]創建套件包


舉例如下>>

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

套件包名稱 : beginner_tutorials
相依套件1 : std_msgs
相依套件2 : rosp
相依套件3 : roscpp

指令正確輸入後,你會成功看到 beginner_tutorials 的套件包已經建立了。


進入 beginner_tutorials,你會看到該路徑已經有 CmakeLists.txt (編譯規則)package.xml (套件包資訊)src (code的所在位置)


四、編譯該套件包並更新工作空間的環境變量


1.進到 工作空間 那層,並輸入catkin_make的指令進行編譯



2.輸入指令" . ~/catkin_ws/devel/setup.bash "  " source ~/catkin_ws/devel/setup.bash " 更新環境變量


五、關於相依套件

查詢主要相依套件的指令 rospack depends1 [套件名稱]
以剛建立的beginner_tutorials為例,你會看到你剛輸入的相依套件名稱 (rospy、roscpp、std_msgs)


同時,這些相依套件會存在 package.xml,你可以進入到想查看套件包(此處以beginner_tutorials為例)輸入指令 cat package.xml 來檢視 package.xml。

進入到 package.xml後,果然看到 rospy、roscpp、std_msgs。




如果要進一步查看 相依套件中的相依套件,可輸入指令 rospack depends1 [相依套件名稱] ,我們以 roscpp 為例。你看到的畫面如下圖。


如果你要看到所有相依套件,包含相依套件中的相依套件。輸入以下指令 rospack depends [套件包名稱]  



六、客製化專屬套件包的 package.xml

在package.xml的文件中,要更新關於該套件包的描述,比方說該套件有什麼功能之類的。接下來要更新維護者的資訊,包含名字與聯繫方式(如email)。接下來要填入授權的資訊,如BSD。再填入該套件所需的相依套件,如roscpp等。

1.description tag

關於此套件包的介紹

2.maintainer tags

關於開發維護者的資訊

3.license tags

授權資訊

4.dependencies tags

相依套件的資訊

簡單來看,最後 package.xml 大概會和下圖所似。
 
圖片來源 : CreatingPackage


---
參考資料 :


#ROS #catkin_make #CreatePackage #license #roscpp #rospy #std_msgs




0 留言