ROS:Note:ROS服务和参数ServicesParams

ServicesParams

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

rosservice

rosservice 可以很容易地通过服务附加到ROS客户端/服务器框架上
用法:

rosservice list         输出活跃服务的信息
rosservice call         用给定的参数调用服务
rosservice type         输出服务的类型
rosservice find         按服务的类型查找服务
rosservice uri          输出服务的ROSRPC uri

rosservice list

$ rosservice list
			/clear
			/kill
			/reset
			/rosout/get_loggers
			/rosout/set_logger_level
			/spawn
			/teleop_turtle/get_loggers
			/teleop_turtle/set_logger_level
			/turtle1/set_pen
			/turtle1/teleport_absolute
			/turtle1/teleport_relative
			/turtlesim/get_loggers
			/turtlesim/set_logger_level

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

rosservice type
使用rosservice type命令进一步查看clear(清除)服务

usage:

rosservice type [service]
$ rosservice type /clear
	std_srvs/Empty    服务类型为empty(空),调用这个服务时不需要参数(发出请求时不发送数据,在接收响应时不接收数据)

rosservice call
使用rosservice call命令调用此服务
usage

rosservice call [service] [args]

无参数调用/clear

$ rosservice call /clear

清除了turtlesim_node背景上的轨迹

查看spawn(产卵)服务的信息

$ rosservice type /spawn | rossrv show
		float32 x
		float32 y
		float32 theta
		string name
		---
		string name

这个服务能让我们可以在给定的位置和角度生成一只新的乌龟。name字段是可选的,这里我们不设具体的名字,让turtlesim自动创建一个

$ rosservice call /spawn 2 2 0.2 ""
	name: turtle2     返回了新产生的乌龟的名字

rosparam

rosparam能在ROS参数服务器(Parameter Server)上存储和操作数据

参数服务器能够存储
整型(integer)
浮点(float)
布尔(boolean)
字典(dictionaries)
列表(list)
等数据类型。
rosparam使用YAML标记语言的语法。
YAML的表述很自然:
1是整型,
1.0是浮点型,
one是字符串,
true是布尔型,
[1, 2, 3]是整型组成的列表,
{a: b, c: d}是字典。
rosparam有很多命令可以用来操作参数,如下所示:
usage:

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

rosparam list
查看现在参数服务器上都有哪些参数

$ rosparam list
			/rosdistro
			/roslaunch/uris/host_zv_tm1703__33851
			/rosversion
			/run_id
			/turtlesim/background_b       3个参数用于设定背景颜色
			/turtlesim/background_g
			/turtlesim/background_r

rosparam set | rosparam get
usage

rosparam set [param_name]
rosparam get [param_name]

修改背景颜色的红色通道值

$ rosparam set /turtlesim/background_r 150
$ rosservice call /clear                                           调用clear服务使得参数的修改能生效

用rosparam get /来显示参数服务器上的所有内容

$ rosparam get /
	rosdistro: 'melodic
	
	  '
	roslaunch:
	  uris: {host_usrname__33851: 'http://usrname:33851/'}
	rosversion: '1.14.11
	
	  '
	run_id: 533fd206-f426-11eb-9263-a0c589e341bc
	turtlesim: {background_b: 10, background_g: 50, background_r: 150}

rosparam dump | rosparam load
将参数存储在一个文件中,以便下次可以重新加载它
usage

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
	10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值