#•Colcon 是 ROS2 的編譯工具。
相較於 ROS1 常用的 catkin_make,
ROS2 主要使用 colcon build 指令來編譯專案。
#•專案結構:
◦your_workspace: 你的專案資料夾
▪src: 用來放程式碼的地方
▪build: 編譯過程中的中間檔
▪install: 放置編譯後結果的地方
▪log: 編譯或測試的紀錄檔
◦build, install, log 這三個資料夾都是編譯後自動產生出來的,
在編譯前只需要把程式碼放到 src 資料夾。
#•編譯流程:
1.進入工作空間:首先,使用 cd your_workspace 指令進入你的 ROS2 工作空間。
2.執行編譯:接著,執行 colcon build 指令開始編譯。編譯完成後,工作空間底下會自動產生 build, install, log 三個目錄。
3.C++ 專案:C++ 的 ROS2 專案是使用 CMake 進行編譯管理的。
build 資料夾放置執行 make 所產生的中間檔,而 install 則是用來放置 make install 要安裝的編譯結果。
要讓 C++ 專案能夠被使用者執行,一定要有 install 的步驟。
4.設定環境:編譯完成後,需要執行 source your_workspace/install/local_setup.bash 來設定環境,
之後才能使用 ros2 run 或 ros2 launch 執行編譯好的專案。
#•colcon build 的常用參數:
◦colcon build --packages-select <certain project>:
指定要編譯的特定專案。
◦colcon build --symlink-install:
install 資料夾不要放 copy 的檔案,而是用 symbolic link 連結到 src 資料夾。
◦colcon build --parallel-workers n:
同時用 n 個 thread 進行編譯,加快編譯速度。
◦colcon build --merge-install:
預設 install 資料夾下的 component 都會有獨立資料夾,用 merge-install 則是不再用資料夾來歸類。
◦colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release:
使用 release build,當要減少 code size 時,這個是很重要的指令。
沒有留言:
張貼留言