welcom ! Handel home

2025年2月6日 星期四

ROS2 有關 colcon 編譯的相關資訊

#•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 時,這個是很重要的指令。



沒有留言: