PickNikRobotics/generate_parameter_library

Declarative ROS 2 Parameters

解決的問題

手動管理 ROS 2 參數需要重複撰寫宣告、取得與驗證的程式碼。本專案透過允許開發者以宣告式 YAML 檔案定義參數,並在建置過程中使用該 YAML 檔案產生對應的 C++ 或 Python 程式碼,從而自動化此流程。

作法

開發者建立一個 YAML 檔案,指定參數名稱、類型、預設值與驗證規則。generate_parameter_library 工具在建置過程中處理此 YAML 檔案,產生 C++ 結構或 Python 模組。此產生的程式庫負責處理向 ROS 2 系統宣告參數、取得其值,以及在應用程式使用前強制執行驗證限制(例如範圍檢查或唯一性)的重複程式碼。

適用對象

使用 ROS 2 的機器人開發者,希望減少重複程式碼,並確保節點參數嚴格驗證且文件完整。

主要特色

  • 宣告式設定:以 YAML 定義參數,無需手動撰寫 C++ 或 Python 設定程式碼。
  • 自動驗證:內建範圍、字串長度、陣列唯一性、子集檢查等驗證器,並支援自訂 C++ 驗證函數。
  • 類型安全:為參數產生 C++ 結構,提供編譯時期類型安全,並可透過巢狀結構輕鬆存取。
  • 動態參數支援:透過回呼或輪詢簡化執行時參數更新。
  • 映射參數:支援建立映射,其中鍵由其他字串陣列參數推導得出。
  • 自動文件產生:可根據 YAML 描述自動產生參數文件。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案