?1. 核心概念:分布式數據共享容器?
?定位?:ROS參數服務器(Parameter Server)是ROS架構中的全局共享存儲系統,相當于機器人的“云端倉庫”。
?作用?:
存儲多節點共享的靜態配置參數(如機器人尺寸、導航閾值等)
解決跨節點數據調用問題,避免重復配置
?典型場景?:
導航路徑規劃中,全局規劃節點和本地規劃節點共享小車尺寸參數(輪距、底盤半徑)
- 硬件參數配置(傳感器安裝位置、舵機角度限制)
- 算法超參管理(PID系數、路徑搜索步長)
📌 注:參數服務器不是高性能數據庫,僅適用于靜態、非二進制、低頻更新的簡單數據
2. 通信角色模型
3. 通信流程詳解
Step 1: Talker 設置參數
# 偽代碼示例:設置小車尺寸參數
ros::param::set("/robot/wheel_distance", 0.5) # 寫入參數到Master倉庫
?動作?:Talker通過RPC向Master發送setParam(“foo”, value)請求
?結果?:參數以鍵值對形式存儲在Master的共享表中
Step 2: Listener 獲取參數
# 偽代碼示例:獲取小車尺寸參數
double dist;
ros::param::get("/robot/wheel_distance", dist) # 從Master倉庫讀取
?動作?:Listener通過RPC向Master發送getParam(“foo”)查詢請求
?請求內容?:包含參數名的查找請求(圖3步驟2)
Step 3: Master 返回參數值
?動作?:Master檢索本地參數表 → 通過RPC返回鍵值對數據
?數據示例?
總結
參數服務器的本質?:ROS參數服務器本質是分布式鍵值存儲系統,其通信機制通過RPC協議實現,核心價值在于:
?解耦參數配置?:硬件參數與算法分離 ?
提升復用性?:一次配置,全局節點共享 ?
簡化部署?:修改參數無需重新編譯節點