04_ROS_Services_and_Parameters

机器人操作系统ROS1简要介绍,翻译自以下仓库:
ROS-Tutorials
原仓库是一系列的jupyter notebook,可以直接在jupyter环境下运行程序示例。

Understanding ROS Services and Parameters 理解ROS服务和参数

本节将介绍ROS服务和参数的概念,以及相应的命令行工具 rosservicerosparam

来源: ROS Wiki

ROS服务是ROS节点间另一种交互方式,使用的是 请求回应 的机制

rosservice

rosservice 的使用方法可以通过-h来查看:

rosservice -h
Commands:
	rosservice args	print service arguments
	rosservice call	call the service with the provided args
	rosservice find	find services by service type
	rosservice info	print information about service
	rosservice list	list active services
	rosservice type	print service type
	rosservice uri	print service ROSRPC uri

Type rosservice <command> -h for more detailed usage, e.g. 'rosservice call -h'

以下使用 list 可以看到 turtlesim 节点提供了九个服务: 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 list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level

现在用 rosservice type 来查看 clear 服务的类型 :

rosservice type clear

这个服务把上一节中 turtlesim_node 窗口中小乌龟的轨迹线擦掉了。

现在让我们来看需要给服务传入参数的情况:来看 spawn 这个服务

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

这个服务可以让我们在turtlesim窗口中指定位置指定角度放入一个指定名称的新乌龟。(—以下又重复了一遍string name,代表name这个参数不是必须的)

rosservice call spawn 2 2 0.2 ""

rosparam

rosparam 工具可以让你储存操作在 ROS Parameter Server 中的参数数据. Parameter Server 可以储存整数、浮点数、布尔数、字典、列表等数据形式 rosparam 使用YAML标记语言. 简单举例: 1 是整数, 1.0 是浮点数, one 是字符串, true 是布尔数, [1, 2, 3] 是一个整数列表, {a: b, c: d} 是一个字典. rosparam 有很多命令行参数,比如:

rosparam -h
rosparam is a command-line tool for getting, setting, and deleting parameters from the ROS Parameter Server.

Commands:
	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

查看已在parameter server中储存的参数数据:

rosparam list
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_localhost__33937
/rosversion
/run_id

下面我们用 rosparam set 命令来改变其中一个参数:

rosparam set background_r 150

现在相应的参数已经修改好了,但是仍需要请求一次clear服务来使新参数生效:

rosservice call clear

可以观察到turtlesim的窗口已经被改变了。

我们可以通过 rosparam get / 来查看 Parameter Server 中的所有内容:

rosparam get /
background_b: 255
background_g: 86
background_r: 150
rosdistro: 'kinetic

  '
roslaunch:
  uris:
    host_localhost__33937: http://localhost:33937/
rosversion: '1.12.14

  '
run_id: 71bcc232-dd18-11ea-a5ce-00d86127892a

下一节将进入一些ROS编程的简单介绍。Writing_the_Publisher_Node_in_Python

turtlesim窗口可以关闭,保留roscore打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值