在 ROS 2 中,ros2 pkg create --build-type
可選擇 ament_cmake
或 ament_python
,這兩種 build type 分別對應 C++ 與 Python 的開發需求。
🧩 ament_cmake
vs ament_python
差別總覽
比較項目 | ament_cmake | ament_python |
---|---|---|
適用語言 | C++ | Python |
build 工具 | CMake | setuptools (Python 的標準打包工具) |
使用檔案 | CMakeLists.txt | setup.py , setup.cfg |
通常用途 | 高效能、driver、硬體控制 | 輕量 node、script、AI、robot logic |
執行檔產出 | C++ 編譯出的 binary | Python script 登錄為可執行指令 |
安裝檔案結構控制更細緻 | ✅(透過 CMake) | ❌(依 Python 安裝流程) |
📁 建立目錄與檔案結構比較
✅ ament_cmake
(C++ 套件)
建立後結構如下:
✅ ament_python
(Python 套件)
建立後結構如下:
🚀 執行方式差異
🧱 ament_cmake
(C++)
-
編譯後產生 binary:
-
必須定義可執行檔:
在CMakeLists.txt
加入:
🐍 ament_python
(Python)
-
只要設定 entry point 即可讓 Python 檔案變成可執行:
在
setup.py
加入: -
然後執行:
📝 使用建議
開發目標 | 建議使用 |
---|---|
要使用 C++ 編寫高效能 node、控制硬體、寫驅動程式 | ament_cmake |
要快速撰寫邏輯、ROS node、AI、資料處理、debug script | ament_python |
要混合使用 C++ + Python(需跨語言互動) | 可在同一 workspace 建立不同類型套件 |
沒有留言:
張貼留言