理解ROS服务和参数---ROS学习第6篇
文章目录
- 1.ROS服务
- 2.使用rosservice
- 2.1 rosservice list
- 2.2 rosservice type
- 2.3 rosservice call
- 3. 使用rosparam
- 3.1 rosparam list
- 3.2 rosparam set和rosparam get
- 3.3 rosparam dump和rosparam load
1.ROS服务
服务时节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)。
2.使用rosservice
rosservice可以很容易地通过服务附加到ROS客户端/服务器框架上。rosservice有许多可用于服务的命令,如下所示:
rosservice list 输出活跃服务的信息
rosservice call 用给定的参数调用服务
rosservice type 输出服务的类型
rosservice find 按服务的类型查找服务
rosservice uri 输出服务的ROSRPC uri
2.1 rosservice list
$ 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和/rosout/set_logger_level。
我们使用rosservice type命令进一步查看clear(清除)服务
2.2 rosservice type
用法:
rosservice type [service]
查看clear服务的类型
kandi@ubuntu:~$ rosservice type /clear
std_srvs/Empty
服务的类型为Empty(空),这表明调用这个服务时不需要参数(即,它在发出请求时不发送数据,在接收响应时也不接收数据)。下面我们使用rosservice call命令调用此服务。
2.3 rosservice call
用法:
rosservice call [service] [args]
因为clear服务的类型是Empty,所以调用时无需带参数
$ rosservice call /clear
跟想象的一样,它清楚了turtlesim_node背景上的运动轨迹
我们看看服务具有参数的情况。查看spawn(产卵)服务的信息:
kandi@ubuntu:~$ rosservice type /spawn | rossrv show
这个服务让我们可以在给定的位置和角度生成一只新的乌龟。name字段是可选的,这里我们不设具体的名字,让turtlesim自动创造一个
kandi@ubuntu:~$ rosservice call /spawn 2 2 0.2 “”
name: “turtle2”
kandi@ubuntu:~$ rosservice call /spawn 10 10 0.2 “”
name: “turtle3”
3. 使用rosparam
rosparam能让我们在ROS参数服务器(Parameter Server)上存储和操作数据。参数服务器能够存储整形(integer)、浮点(float)、布尔(boolean)、字典(dictionaries)和列表(list)等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1是整形,1.0是浮点型,true是布尔型,[1,2,3]是整形组成的列表,[a:b,c:d]是字典。rosparam有很多命令可以用来操作参数,如下所示:
rosparam set 设置参数
rosparam get 获取参数
rosparam load 从文件中加载参数
rosparam dump 向文件中转储参数
rosparam delete 删除参数
rosparam list 列出参数名
3.1 rosparam list
kandi@ubuntu:~$ rosparam list
/rosdistro
/roslaunch/uris/host_ubuntu__46587
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r
kandi@ubuntu:~$
可以看出turtlesim节点在参数服务器上有3个参数用于设定背景颜色
让我们使用rosparam set来试着改变一个参数值。
3.2 rosparam set和rosparam get
用法:
rosparam set [param_name]
rosparam get [param_name]
现在我们修改背景颜色的蓝色和红色通道值:
kandi@ubuntu:~$ rosparam get /turtlesim/background_b
255
kandi@ubuntu:~$ rosparam get /turtlesim/background_r
69
kandi@ubuntu:~$ rosparam set /turtlesim/background_b 60
kandi@ubuntu:~$ rosparam get /turtlesim/background_b
60
kandi@ubuntu:~$ rosparam set /turtlesim/background_r 150
kandi@ubuntu:~$ rosservice call /clear
看到的turtlesim如下:
然后我们来查看参数服务器上其他参数的值,获取背景的绿色通知的值:
kandi@ubuntu:~$ rosparam get /turtlesim/background_g
86
业可以用rosparam get /来显示参数服务器上的多有内容:
你可能希望将其存储在一个文件中,以便下次可以重新加载它。这通过rosparam
很容易就可以实现
3.3 rosparam dump和rosparam load
用法:
rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]
在这里,我们将所有的参数写入params.yaml文件:
$ rosparam dump params.yaml
甚至可以将yaml文件重载入新的命名空间,例如copy_turtle:
kandi@ubuntu:~$ rosparam load params.yaml copy_turtle
kandi@ubuntu:~$ rosparam get /copy_turtle/turtlesim/background_b
60
至此,我们已经了解ROS服务和参数的工作原理。
理解ROS服务和参数---ROS学习第6篇相关推荐
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
- ROS学习笔记7(理解ROS服务和参数)
本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法. 文章目录 1 什么是ROS服务 2 rosservice用法 2.1 rosservice ...
- 7.理解ROS服务与参数
安装与设置你的ROS环境(rawmeat:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams) 注意:本教程翻译的日期是2018 ...
- ROS入门_1.10 理解ROS服务和参数
目录 ROS Services 使用rosservice rosservice list rosservice type rosservice call Using rosparam rosparam ...
- ROS 服务和参数:ROS Services and Parameters
1,ROS 服务是另一种节点通信方式:允许节点之间发送请求和接收回复. 2,rosservice命令可以很容易通过services建客户端/服务器通信架构(C/S): rosservice命令下有很多 ...
- lua loadstring传递参数_lua学习之函数篇
函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, Wo ...
- ROS wiki系列|通过ROS wiki-tutorials学习服务和参数
依旧是上一期指路:ROS wiki系列|通过ROS wiki-tutorials学习话题 前面讲了节点和话题,我们接下来讲服务和参数,走你~ 同样甩上我们今天的教程页面链接:Understanding ...
- [ROS](12)ROS通信 —— 参数服务器(Parameter Server)通信
文章只是个人学习过程中学习笔记,主要参考ROS教程1 2 . [ROS](01)创建ROS工作空间 [ROS](02)创建&编译ROS软件包Package [ROS](03)CMakeLi ...
- 创建ROS消息和服务---ROS学习第8篇
文章目录 1. msg和srv介绍 2. 使用msg 2.1 创建msg 2.2 使用rosmsg 3. 使用srv 3.1 创建srv 3.2 使用rossrv 4. msg和srv的一般步骤 5. ...
最新文章
- Windows 10 的新 bug 可导致任意文件被覆写
- jvm运行时数据区是干啥的?CPU切换线程会不会突然忘记程序执行到哪一步了
- 编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 – 12345,要求使用递归,并且函数体代码不超过8行...
- iOS中锁定屏幕的方法
- ZOJ 3761 Easy billiards 月赛E DFS
- C# 概念 委托和事件
- 【javascript练习题】函数
- 16行Python代码 批量采集 短视频音乐素材❤
- 鸡兔同笼头吃20脚56c语言,数学课件《鸡兔同笼》
- “汇新杯”新兴科技+互联网创新大赛正式启动
- 关于区块链及其数据溯源的学习笔记
- 图纸上标注的是实际尺寸吗_尺寸数字应该标注图纸上所画实际长度。
- 手把手教你用 Python 爬虫煎蛋妹纸海量图片
- Lawnmower(除草)
- Python百度地图API,通过区县、村镇地址获取完整省市区行政区划
- UVa 1620 Lazy Susan(懒惰的苏珊)
- 软考高级系统架构设计师论文系列三:论改进Web服务器性能的有关技术
- 最浅显易懂的Javascript 中的slice和splice
- Unity与Android交互(双端通信)
- ISCA文献翻译:第三篇Efficient Digital Neurons for Large Scale Cortical Architectures
热门文章
- java怎么不增加临时变量交换值
- java重写的特性解释
- 宁波大红鹰学院计算机毕设,网络文化对价值观的影响调查报告马克思主义基本原理概论》课程调查实践报告大学毕业设计.doc...
- 推销计算机英语作文,关于推销电脑的英语作文.DOC
- vlookup 2张表 显示na_Vlookup函数的这7个应用技巧都不掌握,那就真的Out了
- Android Loader机制
- 第九章 Oracle结构及数据库表与开发语言的对应关系、Oracle数据类型char与varchar
- win7 修复计算机 黑屏,boot bcd修复win7 旗舰版系统黑屏错误代码0xc0000034的解决方法...
- 计算机硬件市场调查清单,微型计算机组装与维护实用教程王际川第8章节组装计算机.ppt...
- mysql using filesort_mysql using filesort Using temporary