【古月居ROS21讲】16 参数的使用与编程方法
参数模型
在rosmaster当中有一个服务器 叫做 Parmeter Server 参数模型 (全局字典)
他会和所有的节点来共享参数
即使是node节点位于不同的 PC里面 ,但是只要你在同一个ros环境里面进行一个全局的参数
使用方法
创建一个功能包
参数命令行使用
YAML参数文件
- 左边是一个变量名 右边是一个变量值( 一对一对的 )
- 在ros中 比如slam中 ,会有很多的配置参数 ,这些参数一个个设置会很麻烦,到时候会列出这样一个YAML的参数文件 ,把所有参数列出来 ,然后一次性加载进去 。
rosparem 下的指令
- 基本上 rosparem可以完成ros大部分参数的查询呀 ,设置呀
包括把他保存的文件,以及使用方式
rosparem 下的指令 输入 rosparam 弹出 以下指令
rosparam list
rosparam list 是列出 ros参数清单指令
这里的有
- backgroud_b /
- backgroud_g /
- backgroud_ r/
可以把参数换进去让ros背景换个颜色
/rosdistro 发行版
/rosversion 发行版本号
/roslanuch / uris /host_hcx_vpc__40993 是ros的版本号
run id j进程版本号
rosparam get
rosparam get 获取ros 参数值
这里得到背景参数蓝色值是255
rosparam set
rosparam set 是 设置 ros 参数值
rosparam set 接的 被修改参数名称 被修改参数后的值
可以看到修改后的参数值变成了 100
这回我们再唤醒ros服务,让他执行被修改后参数值:
{} 内参数什么都没填就可以了
然后可以看到海龟的背景颜色就由蓝色变成灰色 了
rosparam dump
rosparam dump 是为了保存参数文件
保存到 param.yaml文件
rosparam dump param.yaml
保存到当面路径下文件
打开后看到当前我们保存的参数文件
rosparam road
rosparam road 加载一个文件
加载我们之前 修改号的参数
显而易见 rosparam dump 和 rosparam road 组合使用可以快速修改参数
rosparam delete
rosparam delete 删除 某个参数
程序使用
初始化节点
首先依然是熟悉的初始化一个节点
读取
用ros :: param ::get 读取rgb的三个参数值
从这里可以看出 rosparam get = ros::param::get
简单推理 ::是用来取代空格或者作为分隔符所使用的
设置
同理
用ros :: param ::set 设置rgb的三个参数值
调用
调用函数 参数实现
编译规则
这里我们加入编译的规则
运行ros执行程序
如何获取参数和设置参数
- 初始化ROS节点
- get函数获取参数
- set函数设置参数