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协议实现,核心价值在于:
解耦参数配置:硬件参数与算法分离
提升复用性:一次配置,全局节点共享
简化部署:修改参数无需重新编译节点