ROS學習筆記四
- 一、工作空間
-
- src - 代碼空間(Source Space)
- build - 編譯空間(Build Space)
- devel - 開發空間(Development Space)
- install - 安裝空間(Install Space)
- 二、建立工作空間
-
- 建立工作空間
- 編譯工作空間
- 設定環境變量
- 檢查環境變量
- 三、建立功能包
-
- 建立功能包
- 編譯功能包
- package.xml檔案
- cMakeList.txt
一、工作空間
工作空間(workspace)是一個存放工程開發相關檔案的檔案夾。 類似于windows系統中我們所建立的工程檔案。
src - 代碼空間(Source Space)
放置功能包,包括其代碼,配置檔案等等。
build - 編譯空間(Build Space)
放置編譯過程中産生的中間檔案。
devel - 開發空間(Development Space)
放置編譯生成的可執行檔案,庫,腳本等。
install - 安裝空間(Install Space)
存放install指令安裝成功後的檔案。
下圖源自古月《ROS入門21講》![]()
ROS學習筆記四(建立工作空間與功能包)一、工作空間二、建立工作空間三、建立功能包
二、建立工作空間
建立工作空間
$ mkdir -p ~/catkin_ws/src
$ cd~/catkin_ws/src
$ catkin_init_workspace
其中工作空間名字可自定義,但其後一定要是src
mkdir -p:遞歸建立目錄,即使上級目錄不存在,會按照目錄層級自動建立目錄。
catkin_init_workspace:将該檔案夾初始化成工作空間屬性。
編譯工作空間
$ cd~/catkin_ws/
$ catkin_make
回到工作空間根目錄下進行編譯。
在根目錄下使用
$ catkin_make install
可以産生install檔案夾
設定環境變量
$ source devel/setup.bash
檢查環境變量
$ echo $ROS_PACKAGE_PATH
三、建立功能包
catkin_create_pkg package_name depend1 depend2 depend3
package_name:功能包的名字
depend:該功能包所需的依賴
同一工作空間下,不允許存在同名功能包,不同工作空間下,允許存在同名功能包。
建立功能包
$ cd/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
std_msgs:ROS定義的标準資訊結構
其中:
CMakeLists.txt和package.xml是每個功能包必須有的兩個檔案,可以區分功能封包件夾與普通檔案夾
編譯功能包
$ cd~/catkin_ws
$ catkin_make
$ source~/catkin_ws/devel/setup.bash
當要運作功能包中的某個程式時,需要先設定工作空間的環境變量
可以用
$ echo $ROS_PACKAGE_PATH
進行檢查
package.xml檔案
該檔案儲存功能包的有關資訊,作者,版本,開源程度等以及功能包的依賴,後續新增依賴可以在這裡手動添加。
cMakeList.txt
描述功能包的編譯規則。
往期連結
ROS學習筆記三(ROS指令行工具的使用)
ROS學習筆記二(ROS的核心概念)
ROS學習筆記一(Linux系統基礎操作)