2025年7月29日 星期二

ROS2 workspace 專案區檔案結構

 以下是對你這個 ros2_ws3 工作區結構的解析與說明:

scss
ros2_ws3 ├── build │   ├── roscar4wheel │   ├── roscar4wheel2 │   ├── roscar4wheel3 │   ├── roscardemo4wh_full │   └── ros_maze_house_world ├── install │   ├── roscar4wheel │   ├── roscar4wheel2 │   ├── roscar4wheel3 │   ├── roscardemo4wh_full │   └── ros_maze_house_world ├── log │   ├── build_YYYY‑MM‑DD_HH‑MM‑SS (一長串的建置記錄) │   └── latest → 指向最新一次的建置 └── src ├── roscar4wheel ├── roscar4wheel2 ├── roscar4wheel3 ├── roscardemo4wh_full └── ros_maze_house_world

1. src/:原始程式碼

  • 每個子資料夾就是一個 ROS 2 套件

    • roscar4wheelroscar4wheel2roscar4wheel3:漸進式開發的差速四輪車套件版本

    • roscardemo4wh_full:教學範例整合了 IMU、LiDAR、Nav2、SLAM Toolbox

    • ros_maze_house_world:典型的 Gazebo 世界場景模擬

  • src/ 下編輯、加入或刪除程式碼後,只要 re‐build,改動就會生效。

2. build/:中繼編譯檔案

  • colcon build 時,所有 CMake/gcc 產生的中間檔都會放在這裡,分套件管理。

  • 如果你想清除編譯緩存,可刪除整個 build/(或單一子資料夾)。

3. install/:最終安裝輸出

  • 每個套件編譯並安裝後的結果(library、執行檔、launch、URDF、config 等)都在這裡。

  • source install/setup.bash 後,ROS 2 就會把這些內容納入環境變數(AMENT_PREFIX_PATHROS_PACKAGE_PATH)中。

4. log/:建置日誌

  • 每一次 colcon build 都會產生一個 timestamped 的 log 資料夾,存放詳細的編譯錯誤、警告,以及測試輸出。

  • latest 這個符號連結指向最近一次建置的日誌,方便你快速查閱最新錯誤。


🛠️ 常用操作

  1. 全新編譯

    [bash]
    $cd ros2_ws3 $colcon build --symlink-install # 建議開發時加上 --symlink-install
  2. 清理重建

    [bash]
    $rm -rf build/ install/ log/ $colcon build
  3. 啟用環境

    [bash]
    $source install/setup.bash $ros2 run <package_name> <executable> $ros2 launch <package_name> <launch_file>.launch.py

🔍 小結

  • src/ 放所有套件原始碼

  • build/ 放編譯時的中間檔

  • install/ 放最終安裝成果,透過 source 即可使用

  • log/ 放每次建置的詳細紀錄

這種標準的 ROS 2 工作區結構,讓你能夠輕鬆地在同一個工作區裡並行開發、測試多個不同版本或範例套件。

任何更動都在 src/,一鍵 colcon build,快速迭代!





沒有留言:

張貼留言