一、介绍
参数服务器是用于存储和检索参数的分布式多机器人配置系统,它允许节点动态地获取参数值。
在ROS中,参数服务器是一种用于存储和检索参数的分布式多机器人配置系统。它允许节点动态地获取参数值,并提供了一种方便的方式来管理和共享配置参数。以下是ROS中参数服务器的通信方式:
参数设置(Parameter Setting):节点可以通过ROS API将参数设置到参数服务器上。这些参数可以是整数、浮点数、字符串等不同类型的数据。参数设置允许节点在运行时动态地调整配置参数,而无需重新编译或重新启动节点。例如,一个移动机器人节点可以将最大速度和加速度参数设置到参数服务器上,以便在运行时进行调整。
参数获取(Parameter Getting):节点可以通过ROS API从参数服务器上获取参数值。节点可以根据需要获取特定参数的值,并据此执行相应的操作。例如,一个控制器节点可以从参数服务器上获取运动规划的参数,以便在运行时进行路径规划。
参数搜索(Parameter Search):参数服务器支持参数的层级结构,允许参数按照命名空间进行组织和管理。节点可以通过指定参数名称的前缀来搜索参数服务器上的参数。这种参数搜索的方式使得节点可以更轻松地管理大量的参数,并提高了参数的可读性和可维护性。
参数更新通知(Parameter Update Notifications):当参数服务器上的参数发生变化时,ROS会向订阅了参数更新通知的节点发送通知消息。这样,节点可以及时感知到参数的变化,并根据需要进行相应的调整和处理。
通过参数服务器,ROS节点可以实现参数的集中管理和共享,使得系统配置更加灵活和可配置。参数服务器还提供了一种方便的方式来实现参数的动态调整和更新,从而提高了系统的可维护性和适应性。
简单描述:一共享的形式实现不同节点之间数据交互的通信模式。
二、角色
ROS Master(管理者)--作为一个公共容器保存参数
Talker(参数设置者)--可以向容器中设置参数
Listener(参数调用者)--可以获取参数
三、实例1--参数增加
需要实现参数的新增与修改
需求: 首先设置机器人的共享参数,类型、半径(0.15m)再修改半径(0.2m)
实现新增:
ros::NodeHandle
setParam("健",值)
ros::param
set("健”,值)
修改CMakeLists文件
运行效果
四、实例2--参数修改
实现修改:只需要继续调研 setParam 或 set 函数,保证键是已经存在的,那么值会被覆盖
运行结果