参数服务器的理解
launch时roslaunch首先检查roscore是否已经启动,如果没有则启动roscore。
roscore会做三件事:
- 启动master节点,该节点是隐藏的,用于通过消息名查询目标节点,实现消息、服务在各个节点间的连接
- 启动parameter server,用于设置与查询参数
- 启动日志节点,记录所有消息收发和stdout、stderr, 目前roscore暂不会加入其他功能。
1.参数服务器,作为ROS中另外一种数据传输方式,有别于topic和service,它更加的静态。参数服务器维护着一个数据字典,字典里存储着各种参数和配置。
2.何为字典,其实就是一个个键–值对,(key和value),所以对参数服务器的操作其实就是在字典中添加或者调用这样一对对参数名称和参数值。
每一个key不重复,且每一个key对应着一个value。也可以说字典就是一种映射关系,在实际的项目应用中,因为字典的这种静态的映射特点,我们往往将一些不常用到的参数和配置放入参数服务器里的字典里,这样对这些数据进行读写都将方便高效。
其实在ROS Master中就存在一个参数服务器Parameter Server,它是一个全局字典,用来保存各个节点的配置参数,每个节点都是可以访问的,并且会返回需要得到的值。
3.参数服务器的维护方式非常的简单灵活,总的来讲有三种方式:
命令行维护
launch文件内读写
node源码
4.代码中一般只需要用getParam()和setParam(),然后用节点句柄调用非常方便。
n.getParam(“key”,value);是将key对应的value值传入这个形参value中。
n.setParam(“key”,value);是改变key对应的value值。