node可能不在一个电脑里但是这些服务的参数信息是共享的,因为话题Topic是异步的所以只有服务Service有实时参数信息可以调用。
接下来将演示服务参数信息的调用与修改。
创建功能包(工作空间src文件夹下)
catkin_create_pkg learning_parameter roscpp rospy std_srvs
想要运行下面这些代码首先要先开启一个rosmaster
- rosparam list % 列出当前包有多少参数
- rosparam get param_key % 显示某一个参数的值
- rosparam set param_key param_value % 更改param_key的值为param_value
- rosparam dump file_name % 保存参数到file_name文件,应该是.yaml格式
- rosparam load file_name % 读入file_name文件中的参数
- rosparam delete param_key %删除某一个参数
- rosparam add param_key % 添加某一个参数,没有这个指令,应该是因为这些指令都要在rosmaster开启通信的状态下进行,这个过程是不能添加参数的。
以小海龟为例,打开一个小海龟节点
rosrun turtlesim turtlesim_node
rosparam list %结果如下:
获取某一个参数
rosparam get /turtlesim/background_b % 要按照给出的目录级别来输入参数。
更改参数
rosparam set /turtlesim/background_g 255
清除旧版设置
只有清除旧版的设置才能改变小海龟的北背景颜色。
保存参数
rosparam dump param.yaml% 可以在文件名字前添加制定的文件目录,如果没加就是保存到当前的目录下。
也可以修改yaml文件,然后通过load加载命令加载,同样需要再输入一次clear命令才会更新更改后的参数。
接下来是以代码的方式获取参数、更改参数、上传参数。
引入库
C++ Python
这里的empty是用来送入空服务以实现刷新功能的包
节点初始化
C++ Python
参数读取
C++ Python
参数修改
C++ Python
参数再次读取
C++ Python
调用服务
调用服务送入空数据以实现刷新
C++ Python
确定主函数段
C++ Python
CMakelist.tx
备注
所有的参数前要加/turtlesim ,因为我的版本是ros1,我的小海龟的参数是有一个前缀文件夹的要不补齐,背景才会变色。
更多内容见Parameter Server - ROS Wiki