ROS入门教程归纳7

ROS服务及其参数

使用步骤
启动service
i) rosservice list
ii) rosservice type
iii) rosservice call

i) rosparam list
ii) rosparam get
iii) rosparam set
iv) rosparam get
v) rosservice call clear

i) rosparam dump
ii) rosparam load

服务、参数服务器操作步骤

rosservice
rosservice可以轻松使用ROS客户端/服务器框架提供的服务。其提供了很多可以在topic上使用的命令。

输入 rosservice list
输出 各节点提供的可用服务

输入 rosservice call 服务 字符串变量名
输出 以输入的参数调用具体服务

输入 rosservice type 服务
输出 对应服务的类型
示例
在turtlesim模拟器下
输入

$ rosservice type spawn| rossrv show

输出

float32 x
float32 y
float32 theta
string name
---
string name

该服务功能:
我们可以在给定的位置和角度生成一只新的乌龟。
名字参数是可选的。

我们可以通过如下命令以指定参数调用该服务

$ rosservice call spawn 2 2 0.2 ""

服务器会返回新乌龟的名字参数

name: turtle2

输入 rosservice find
输出 依据输入类型寻找服务

输入 rosservice uri
输出 输出服务的ROSPC uri

Using rosparam
rosparam用于操作ROS参数服务器(Parameter Server)上的数据。
参数服务器
存储对象
整型、浮点、布尔、字符串、字典和列表等数据类型
语法
YAML标记语言。
整型:1
浮点型:1.0
字符串:one
布尔:true
整形列表:[1, 2, 3]
字典:{a: b, c: d}

输入 rosparam list
输出 参数服务器上所有参数名

输入 rosparam get 参数名
输出 获取对应参数名内的参数
Tip
rosparam get / 可以获取参数服务器上的所有内容
示例
在turtlesim模拟器下
输入

$ 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 set 参数名 参数
输出 修改对应参数名的参数为输入值

输入 rosparam dump 文件名
输出 将所有参数写入对应文件

输入 rosparam load 文件名 命名空间(namesapce)
输出 将指定文件载入指定命名空间

示例
在turtlesim模拟器下
将所有的参数写入params.yaml文件,输入

$ rosparam dump params.yaml

将yaml文件重载入新的命名空间,比如说copy空间,输入

$ rosparam load params.yaml copy

通过输入如下指令,检测数据是否输入

$ rosparam get copy/background_b

输出

255

猜你喜欢

转载自blog.csdn.net/Myoonyee_Chen_CSDN/article/details/84769567