ROS wiki系列|通过ROS wiki-tutorials学习服务和参数

依旧是上一期指路:ROS wiki系列|通过ROS wiki-tutorials学习话题
前面讲了节点和话题,我们接下来讲服务和参数,走你~
同样甩上我们今天的教程页面链接:Understanding ROS Services and Parameters
本教程介绍了ROS服务、参数以及rosservice和rosparam命令行工具的使用。
老规矩 roscore 小海龟 键盘控制 跑起来(ROS wiki连贯性真强哈哈)

1.ROS Services

除了话题之外,服务是节点可以相互通信的另一种方式。服务允许节点发送请求并接收响应。

2.Using rosservice

rosservice可以通过服务轻松地附加到ROS的客户端/服务框架上。rosservice有很多命令可以在服务上使用,如下所示:

rosservice list         打印活跃服务的信息
rosservice call         使用提供的参数调用服务
rosservice type         打印服务类型
rosservice find         按服务类型查找服务
rosservice uri          打印服务ROSRPC uri

2.1 rosservice list

在终端运行rosservice list(小海龟开着对吧 别忘记开啊)
list命令向我们显示 turtlesim 节点提供的九种服务,还有两个与单独的rosout节点相关的服务:/rosout/get_loggers和/rosout/set_logger_level。

2.2 rosservice type

使用方法:rosservice type [服务名]
举例:rosservice type /clear
终端将会打印:std_srvs/Empty
此服务为空,这意味着当服务调用时,它不带任何参数(即,它在发出请求时不发送任何数据,在接收响应时不接收任何数据)。
我们可以试下使用rosservice call来调用此服务。

2.3 rosservice call

使用方法:rosservice call [service] [args]
举例:rosservice call /clear(在这里,我们将不带任何参数调用,因为服务类型为空)
效果:清除了turtlesim_node的背景
让我们通过查看服务spawn的信息来看看服务有参数的情况:rosservice type /spawn | rossrv show
在这里插入图片描述
这项服务允许我们在给定的位置和方向生成一只新的海龟,名称字段是可选的,所以这里我们不要给我们的新海龟起一个名字,让 turtlesim 为我们创建一个。
运行:rosservice call /spawn 2 2 0.2 “”
终端返回:name: turtle2
你将会看到两只龟龟be like:
在这里插入图片描述

3.Using rosparam

rosparam允许您在ROS参数服务器上存储和操作数据。参数服务器可以存储整数、浮点数、布尔值、字典和列表。rosparam使用YAML标记语言进行语法。在简单的情况下,YAML看起来非常自然:1是一个整数,1.0是一个浮点数,1是一个字符串,true是一个布尔值,[1,2,3]是一个整数列表,{a: b, c: d}是一个字典。rosparam有很多命令可以用于参数,如下所示:

rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件加载参数
rosparam dump           转储参数到文件
rosparam delete         删除参数
rosparam list           列出参数名称

3.1 rosparam list

运行:rosparam list
在这里,我们可以看到 turtlesim 节点在参数服务器上有三个参数用于背景颜色:
在这里插入图片描述
接下来我们来搞搞颜色~

3.2 rosparam set and rosparam get

使用方法:
rosparam set [param_name]
rosparam get [param_name]
首先我们改一下背景颜色中的红色:
rosparam set /turtlesim/background_r 150
参数值更改后,我们必须调用 clear 服务使参数更改生效:
rosservice call /clear
然后就变色啦~
在这里插入图片描述
我们看一下参数服务器上其他参数的值,让我们来获取绿色背景通道的值:
rosparam get /turtlesim/background_g
you will get:86
我们还可以使用rosparam get / 显示整个参数服务器的内容:rosparam get /
您可能希望将其存储在文件中,以便可以在其他时间重新加载它,简单,rosparam一样可以满足你

3.3 rosparam dump and rosparam load

使用方法:
rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]
我们将所有参数写入文件params.yaml:
rosparam dump params.yaml
我们甚至可以将这些yaml文件加载到新的命名空间中,例如copy_turtle:
rosparam load params.yaml copy_turtle
rosparam get /copy_turtle/turtlesim/background_b
get:255

ok,今天就到这里,下篇再见朋友们!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值