ROS学习笔记(八)
来源:互联网 发布:java五子棋视频教程 编辑:程序博客网 时间:2024/05/21 06:53
ROS服务
本教程假设从前一教程启动的turtlesim_node仍在运行,现在我们来看看turtlesim提供了什么服务:
ROS Services
服务(services)是节点之间通讯的另一种方式。(另外一种是主题topic)
服务允许节点发送请求(request) 并获得一个响应(response)
rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。rosservice提供了很多可以在topic上使用的命令,如下所示:
可以使用rosservice -h命令查看帮助:
rosservice - hCommands: 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 urirosservice list 输出可用服务的信息rosservice call 调用带参数的服务rosservice type 输出服务类型rosservice find 依据类型寻找服务find services by service typerosservice uri 输出服务的ROSRPC uri
- rosservice list
在terminal里输入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
list 命令显示turtlesim节点提供了11个服务:清除(clear), 终止(kill), 重置(reset), 再生(spawn), turtle1/set_pen, /turtle1/teleport_absolute, /turtle1/teleport_relative, turtlesim/get_loggers, and turtlesim/set_logger_level. 同时还有另外两个rosout节点提供的服务: /rosout/get_loggers and /rosout/set_logger_level.
- rosservice type
使用方法:rosservice type [service]
让我们来看看/clear服务的类型:
$ rosservice type clearstd_srvs/Empty
服务的类型为空(empty),这表明在调用这个服务是不需要参数(比如,请求不需要发送数据,响应也没有数据)。
- rosservice call
使用方法:
rosservice call [service] [args]
因为服务类型是空,所以进行无参数调用:
rosservice call clear
正如我们所期待的,服务清除了turtlesim_node的背景上的轨迹。
通过查看再生(spawn)服务的信息,我们来了解带参数的服务:
$ rosservice type /spawnturtlesim/Spawn$ rosservice type spawn| rossrv showfloat32 xfloat32 yfloat32 thetastring name---string name
这个服务使得我们可以在给定的位置和角度生成一只新的乌龟。名字参数是可选的,这里我们不设具体的名字,让turtlesim自动创建一个。 rosservice call spawn 2 2 0.2 ""
服务返回了新产生的乌龟的名字:
name: turtle2
现在我们的乌龟看起来应该是像这样的:
- ROS学习笔记(八)
- ROS学习(八):ROS URDF->transmission
- ROS学习笔记(八):消息的发布与订阅
- ROS学习笔记八:创建ROS msg和srv
- 【ROS学习】(八)ROS参数服务(2)
- ROS的学习(八)ROS的服务
- ROS学习笔记(四):ROS主题
- ROS学习笔记(二)ROS by Example 学习笔记
- ROS学习笔记(一)
- ROS学习笔记(1)
- ROS学习笔记(未完成)
- ROS学习笔记(一)
- ROS学习笔记(一)
- ROS学习笔记(二)
- ROS学习笔记(三)
- Ros学习笔记(一)
- ROS学习笔记(一)
- ROS学习笔记(二)
- SQL Server2008 学习之(十四):T-SQL语言基础(下)
- Java中Collection和Collections的区别
- QML 之 real 数据保留小数点后两位
- JavaScript
- 小记VUE下setTimeOut和setInterval遇到的问题
- ROS学习笔记(八)
- idea控制台乱码
- [操作系统] 虚拟内存
- Python字符编码详解
- DoS与DDoS小结
- Android换肤技术总结
- 小程序页面pv统计数过高,导致页面转化率低问题
- logback logback.xml常用配置详解(二)<appender>
- 2017年快结束了,你挣到了啥?