工作區 (Workspace)
1. 工作區的架構
- 工作區是一個資料夾,通常包含以下子資料夾:
build/
:存放編譯過程中產生的暫存檔,包括makefile
。devel/
:存放編譯後的可執行檔。src/
:存放所有程式碼,包括編譯腳本 (CMakeLists.txt
) 和套件描述檔 (package.xml
)。
2. 初始化工作區
- 建立一個資料夾並包含
src
子資料夾,例如: - 使用以下命令在
src/
資料夾中初始化工作區: - 這會在
src/
資料夾中產生一個CMakeLists.txt
檔案。
3. 編譯工作區
- 切換到工作區的最外層資料夾,例如:
- 使用以下命令編譯工作區:
- 這會在工作區中產生
build/
和devel/
資料夾。
4. 連結工作區與 ROS
方法一:在
~/.bashrc
檔案中加入以下內容,並執行source ~/.bashrc
更新設定檔:每次開啟終端機時,會自動設定好環境。
方法二:每次開啟終端機後,切換到工作區最上層,執行:
5. 確認工作區設定
- 使用以下命令確認環境變數是否包含工作區路徑:
套件 (Package)
1. 建立套件
- 切換到工作區的
src/
資料夾中: - 使用以下命令建立套件:
範例:
- 這會建立一個新的套件資料夾,包含:
CMakeLists.txt
package.xml
include/
資料夾
2. 套件描述檔 (package.xml)
<build_depend>
:指定編譯時的相依套件。<run_depend>
:指定執行時的相依套件。
3. 編譯腳本 (CMakeLists.txt)
project()
:指定套件的名稱。find_package(catkin REQUIRED COMPONENTS ...)
:尋找套件並加入需要的元件。include_directories()
:指定編譯時引入的資料夾。
4. 手動加入相依套件
- 打開
package.xml
檔案,在以下區塊中加入相依套件:
建立節點 (Node)
1. 節點檔案的建立
- 切換至套件底下的
src/
資料夾: - 新增一個節點檔案,例如
hello_ros.cpp
。
2. 修改編譯腳本
- 打開
CMakeLists.txt
檔案,加入以下內容:
3. 編譯與執行
- 切換到工作區的最上層,執行:
- 執行以下命令設定環境:
- 節點執行指令:
其他注意事項
1. 相依套件
- 建立套件時,必須指定相依的套件,例如
std_msgs
,rospy
,roscpp
。 - 如果需要新增相依套件,需手動修改
package.xml
和CMakeLists.txt
。
2. 版本兼容性
- 確保 ROS 版本與 Gazebo 及其他相依套件相容。
3. 編譯注意
- 每次更改套件設定或新增檔案後,記得執行
catkin_make
進行編譯,以確保變更生效。
總結
工作區架構:
- 包含
build/
,devel/
,src/
等目錄。 - 使用
catkin_make
編譯並初始化工作區。
- 包含
套件建立與配置:
- 使用
catkin_create_pkg
建立套件。 - 配置
package.xml
和CMakeLists.txt
文件。
- 使用
節點創建與編譯:
- 在套件內創建節點檔案,更新
CMakeLists.txt
,並重新編譯。
- 在套件內創建節點檔案,更新
通過遵循這些步驟,您可以正確地建立和管理 ROS 工作區與套件!
沒有留言:
張貼留言