理解ros服务和参数 ---- 7

本文深入探讨了ROS(Robot Operating System)服务和参数的概念,详细介绍了ROSService和rosparam的使用方法,并通过实例展示了如何利用ROSService进行服务调用,包括列出可用服务、获取服务类型、调用服务等操作。

原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/  周学伟

 

 Description: 本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservicerosparam的使用方法。

本教程假设从前一教程启动的turtlesim_node仍在运行,现在我们来看看turtlesim提供了什么服务:

一。ROS Services

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

二。使用rosservice

rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。rosservice提供了很多可以在topic上使用的命令,如下所示:。

使用方法:

rosservice list         输出可用服务的信息
rosservice call         调用带参数的服务
rosservice type         输出服务类型
rosservice find         依据类型寻找服务find services by service type
rosservice uri          输出服务的ROSRPC uri

 

1.rosservice list
root@zxwubuntu-Aspire-V3-572G:~# rosservice list

 

 
 
list 命令显示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 and /rosout/set_logger_level.
2.rosservice type
使用:rosservice type [service] 

 

我们来看看clear服务的类型:
root@zxwubuntu-Aspire-V3-572G:~# rosservice type clear

std_srvs/Empty

 

服务的类型为空(empty),这表明在调用这个服务是不需要参数(比如,请求不需要发送数据,响应也没有数据)。下面我们使用rosservice call命令调用服务: 

3.rosservice call
使用:rosservice call [service] [args]
因为服务类型是空,所以进行无参数调用:
root@zxwubuntu-Aspire-V3-572G:~# rosservice call clear
 
 
正如我们所期待的,服务清除了turtlesim_node的背景上的轨迹。
通过查看再生(spawn)服务的信息,我们来了解带参数的服务:
$ rosservice type spawn| rossrv show

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

 

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值