ROS学习(八)—— 理解ROS服务和参数

一、ROS 服务

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

 

二、rosservice

1、用途

  rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。

 

2、语法:

rosservice list         print information about active services  输出可用的服务信息
rosservice call         call the service with the provided args  调用服务
rosservice type         print service type               打印服务参数类型
rosservice find         find services by service type        
rosservice uri          print service ROSRPC uri

 

 

3、rosservice list

rosservice list

 

 

4、rosservice type

(1)语法:

rosservice type [service]

 

 

(2)demo

rosservice type /clear

 

   返回std_srvs/Empty

 

5、rosservice call

(1)语法:

rosservice call [service] [args]

 

 

(2)demo:

rosservice call /clear

 

  正如我们所期待的,服务清除了turtlesim_node的背景上的轨迹。

 

(3)demo2:

rosservice type /spawn| rossrv show

 

  返回:

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

   然后我们再创建一个乌龟,命令为:

rosservice call /spawn 2 2 0.2 ""

 

  返回给我们新的乌龟的名字:

name: turtle2

 

三、rosparam

  rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数,如下所示:

 

1、用法:

rosparam set            set parameter
rosparam get            get parameter
rosparam load           load parameters from file
rosparam dump           dump parameters to file
rosparam delete         delete parameter
rosparam list           list parameter names

 

 

2、rosparam list

rosparam list

 

     我们可以看到服务器参数上的参数:

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

 

3、使用rosparam set和rosparam get

(1)语法:

rosparam set [param_name]
rosparam get [param_name]

 

 

 

(2)demo:改变背景颜色

rosparam set /background_r 150
rosservice call /clear

 

 

(3)得到全部参数

rosparam get /

 

 

4、参数保存和载入

(1)语法:

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

 

 

(2)demo:

  保存:

rosparam dump params.yaml

 

  载入:可以载入到另一个名字空间(好像可以随便取,即可生成新的名字空间)

rosparam load params.yaml copy
rosparam get /copy/background_b

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值