# 7.3 使用 rosparam

* rosparam使得我们能够存储并操作ROS 参数服务器（Parameter Server）上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。
* 一般而言，YAML的表述很自然：
  * 1 是整型,&#x20;
  * 1.0 是浮点型,&#x20;
  * one是字符串,&#x20;
  * true是布尔,&#x20;
  * \[1, 2, 3]是整型列表,&#x20;
  * {a: b, c: d}是字典.&#x20;

rosparam有很多指令可以用来操作参数，如下所示:

```
rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件读取参数
rosparam dump           向文件中写入参数
rosparam delete         删除参数
rosparam list           列出参数名
```

我们来看看现在参数服务器上都有哪些参数：

## 7.3.1 rosparam list

```
$ rosparam list
```

我们可以看到turtlesim节点在参数服务器上有3个参数用于设定背景颜色：

```
/background_b
/background_g
/background_r
/roslaunch/uris/aqy:51932
/run_id
```

改变参数值使用rosparam set，获取参数值使用rosparam get

## 7.3.2 rosparam set and rosparam get

使用：

```
rosparam set [param_name]
rosparam get [param_name]
```

现在我们修改背景颜色的红色通道：

```
$ rosparam set background_r 150
```

上述指令修改了参数的值，现在我们调用清除服务使得修改后的参数生效：

```
$ rosservice call clear
```

现在 我们的小乌龟看起来应该是像这样： ![image](http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingServicesParams?action=AttachFile\&do=get\&target=turtle\(param\).png)

现在我们来查看参数服务器上的参数值——获取背景的绿色通道的值：

```
$ rosparam get background_g
```

```
86
```

我们可以使用rosparam get /来显示参数服务器上的所有内容：

```
$ rosparam get /
```

```
background_b: 255
background_g: 86
background_r: 150
roslaunch:
  uris: {'aqy:51932': 'http://aqy:51932/'}
run_id: e07ea71e-98df-11de-8875-001b21201aa8
```

你可能希望存储这些信息以备今后重新读取。这通过rosparam很容易就可以实现:

## 7.3.3 rosparam dump and rosparam load

使用方法:

```
rosparam dump [file_name]
rosparam load [file_name] [namespace]
```

现在我们将所有的参数写入params.yaml文件：

```
$ rosparam dump params.yaml
```

你甚至可以将yaml文件重载入新的命名空间，比如说copy空间:

```
$ rosparam load params.yaml copy
$ rosparam get copy/background_b
255
```

至此，我们已经了解了ROS服务和参数服务器的使用，接下来，我们一同试试使用 rqt\_console 和 roslaunch
