文章目录

  • 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篇相关推荐

  1. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  2. ROS学习笔记7(理解ROS服务和参数)

    本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法. 文章目录 1 什么是ROS服务 2 rosservice用法 2.1 rosservice ...

  3. 7.理解ROS服务与参数

    安装与设置你的ROS环境(rawmeat:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams) 注意:本教程翻译的日期是2018 ...

  4. ROS入门_1.10 理解ROS服务和参数

    目录 ROS Services 使用rosservice rosservice list rosservice type rosservice call Using rosparam rosparam ...

  5. ROS 服务和参数:ROS Services and Parameters

    1,ROS 服务是另一种节点通信方式:允许节点之间发送请求和接收回复. 2,rosservice命令可以很容易通过services建客户端/服务器通信架构(C/S): rosservice命令下有很多 ...

  6. lua loadstring传递参数_lua学习之函数篇

    函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, Wo ...

  7. ROS wiki系列|通过ROS wiki-tutorials学习服务和参数

    依旧是上一期指路:ROS wiki系列|通过ROS wiki-tutorials学习话题 前面讲了节点和话题,我们接下来讲服务和参数,走你~ 同样甩上我们今天的教程页面链接:Understanding ...

  8. [ROS](12)ROS通信 —— 参数服务器(Parameter Server)通信

      文章只是个人学习过程中学习笔记,主要参考ROS教程1 2 . [ROS](01)创建ROS工作空间 [ROS](02)创建&编译ROS软件包Package [ROS](03)CMakeLi ...

  9. 创建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. ...

最新文章

  1. Windows 10 的新 bug 可导致任意文件被覆写
  2. jvm运行时数据区是干啥的?CPU切换线程会不会突然忘记程序执行到哪一步了
  3. 编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 – 12345,要求使用递归,并且函数体代码不超过8行...
  4. iOS中锁定屏幕的方法
  5. ZOJ 3761 Easy billiards 月赛E DFS
  6. C# 概念 委托和事件
  7. 【javascript练习题】函数
  8. 16行Python代码 批量采集 短视频音乐素材❤
  9. 鸡兔同笼头吃20脚56c语言,数学课件《鸡兔同笼》
  10. “汇新杯”新兴科技+互联网创新大赛正式启动
  11. 关于区块链及其数据溯源的学习笔记
  12. 图纸上标注的是实际尺寸吗_尺寸数字应该标注图纸上所画实际长度。
  13. 手把手教你用 Python 爬虫煎蛋妹纸海量图片
  14. Lawnmower(除草)
  15. Python百度地图API,通过区县、村镇地址获取完整省市区行政区划
  16. UVa 1620 Lazy Susan(懒惰的苏珊)
  17. 软考高级系统架构设计师论文系列三:论改进Web服务器性能的有关技术
  18. 最浅显易懂的Javascript 中的slice和splice
  19. Unity与Android交互(双端通信)
  20. ISCA文献翻译:第三篇Efficient Digital Neurons for Large Scale Cortical Architectures

热门文章

  1. java怎么不增加临时变量交换值
  2. java重写的特性解释
  3. 宁波大红鹰学院计算机毕设,网络文化对价值观的影响调查报告马克思主义基本原理概论》课程调查实践报告大学毕业设计.doc...
  4. 推销计算机英语作文,关于推销电脑的英语作文.DOC
  5. vlookup 2张表 显示na_Vlookup函数的这7个应用技巧都不掌握,那就真的Out了
  6. Android Loader机制
  7. 第九章 Oracle结构及数据库表与开发语言的对应关系、Oracle数据类型char与varchar
  8. win7 修复计算机 黑屏,boot bcd修复win7 旗舰版系统黑屏错误代码0xc0000034的解决方法...
  9. 计算机硬件市场调查清单,微型计算机组装与维护实用教程王际川第8章节组装计算机.ppt...
  10. mysql using filesort_mysql using filesort Using temporary