ROS7—理解ROS服务和参数

这篇教程介绍ROS服务,参数以及使用rosservice和rosparam命令行工具。假设前面的turtlesim节点还在运行。

1.ROS服务

服务(Services)是另一种节点间相互通信的方法。服务允许节点发送请求(request)并接收回应(response)。

2.使用rosservice

rosservice能简单地将服务添加到ROS的客户/服务框架中,它有很多命令能在话题中使用,如下所示:

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

使用rosservice list命令:

$ rosservice list

这个命令会显示turtlesim节点提供的9种服务和两种与rosout节点:

/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

然后用rosservice type来查看更多细节:

rosservice type [service]

比如:

rosservice type clear

会显示

std_srvs/Empty

服务为空,表明调用服务时没有使用参数(做出请求时不用发送数据,接收回应时也不会收到数据)。
使用rosservice call来调用服务:

rosservice call [service] [args]

这里不使用参数来调用clear因为其类型是空:

rosservice call /clear

这会清除turtlesim节点的背景。
!插入图片
再看看服务有参数的情况,比如查看服务spawn的信息:

$ rosservice type spawn| rossrv show

会得到:

float32 x
float32 y
float32 theta
string name
---
string name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值