7.理解ROS服务和参数

确保turtlesim_node开启。

7.1 ROS Services

服务是节点之间另外一种通信方式。也就允许节点发送请求(request)并获得一个响应(response)

7.2使用rosservice

使用方法:

rosservice list 输出可用服务的信息

rosservice call 调用带参数的服务

rosservice type  输出服务类型

rosservice find 依据类型寻找服务find services by service type

rosservice uri 输出服务的ROSRPC url

7.3使用rosservice list

本命令是列出服务列表

rosservice list

list命令显示turtlesim节点提供了9个服务:重置(reset),清除(clear),再生(spawn),终止(kill),/turtle1/set_pen,/turtle1/teleport_absolute,/turtle1/teleport_relative,turtlesim/get_loggers,还有turtlesim/set_logger_level.

同时还有另外两个rosout节点提供的服务:/rosout/get_loggers 和 /rosout/set_logger_level.

7.4使用rosservice type

也就是获取服务的类型

使用方法:rosservice type [service]

试一下clear服务类型,

rosservice type clear

得到;std_srvs/Empty

说明服务类型为空(Empty),说明调用这个服务不用参数。

7.5使用rosservice call

本功能是执行该服务

使用方法:rosservice call [service] [args]     

args是arguments的缩写,表示参数

因为服务类型是空,不需要参数

rosservice call clear

服务清除了turtlesim_node背景上的轨迹。

通过查看再生(spawn)服务的信息,了解带参数的服务(rossrv命令针对是静态的服务文件*.srv,rossrv show 是显示服务类型的所有信息)

rosservice type spawn | rossrv show

返回一些参数

 

这个服务(spawn)让我们可以生成一只小乌龟,名字参数可选。我们这里不设具体名字,让turtlesim自动创建一个。

接下来生成一个乌龟

rosservice call spawn 2 2 0.2 “”

服务返回新产生乌龟的名字name:turtle2

7.6 使用rosparam

rosparam是存储和操作ROS参数服务器(parameter server)上的数据。

参数服务器能够存储①整形,②浮点,③字符串,④列表,等数据

rosparam使用YAML标记语言的语法。YAML的表述很自然:1是整形,1.0是浮点型,one是字符串,true是布尔,[1,2,3]是整型列表,{a:b,c:d}是字典。

使用方法:

rosparam set  设置参数

rosparam get  获取参数

rosparam load  从文件读取参数

rosparam dump  从文件中写入参数

rosparam delete  删除参数

rosparam list  列出参数名

7.7使用rosparam list

rosparam list

返回:

前3个是设置背景颜色。就是RGB(red ,green,blue)颜色,每个值能范围是(0~255),不懂百度RBG,这里涉及到一些颜色,玩过PS的人都懂。

7.7使用rosparam set 和rosparam get

使用方法:

rosparam set [param_name]

rosparam get [param_name]

试一下修改背景颜色

rosparam set background_r 150

然后调用清除服务使得修改后的参数生效

rosservice call clear

就会发现背景颜色变了。

试一下获取绿色通过的值

rosparam get background_g

返回:86

也可以通过rosparam get /获取参数服务器上所有内容

rosparam get /

7.8使用rosparam dump 和 rosparam load

使用方法:

rosparam dump [file_name]

rosparam load [file_name] [namespace]

将所有参数写入params.yaml文件

rosparam dump params.yaml

甚至可以将yaml文件重新载入新的命名空间,比如copy空间(不知道这个copy保存在哪)

rosparam load params.yaml copy

验证一下是否载入新空间成功

rosparam get copy/backgroud_g

返回86。

转载于:https://my.oschina.net/u/3384982/blog/894162

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值