一、ROS 服务

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

二、rosservice

1、用途

  rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。

2、语法:

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

3、rosservice list

rosservice list

rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。
-->

4、rosservice type

(1)语法:

rosservice type [service]

(2)demo

rosservice type /clear

   返回std_srvs/Empty

5、rosservice call

(1)语法:

rosservice call [service] [args]

(2)demo:

rosservice call /clear

  正如我们所期待的,服务清除了turtlesim_node的背景上的轨迹。

(3)demo2:

rosservice type /spawn| rossrv show

  返回:

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

  然后我们再创建一个乌龟,命令为:

rosservice call /spawn   0.2 ""

  返回给我们新的乌龟的名字:

name: turtle2

三、rosparam

  rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数,如下所示:

1、用法:

rosparam set            set parameter
rosparam get get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names

2、rosparam list

rosparam list

我们可以看到服务器参数上的参数:

/background_b
/background_g
/background_r
/roslaunch/uris/aqy:51932
/run_id

3、使用rosparam set和rosparam get

(1)语法:

rosparam set [param_name]
rosparam get [param_name]

(2)demo:改变背景颜色

rosparam set /background_r
rosservice call /clear

(3)得到全部参数

rosparam get /

4、参数保存和载入

(1)语法:

rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]

(2)demo:

  保存:

rosparam dump params.yaml

  载入:可以载入到另一个名字空间(好像可以随便取,即可生成新的名字空间)

rosparam load params.yaml copy
rosparam get /copy/background_b

ROS学习(八)—— 理解ROS服务和参数的更多相关文章

  1. ROS学习笔记7-理解服务(services)和参数(parameter)

    本文内容来自官方wiki:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams ROS服务(service)服务也是ROS中一种通 ...

  2. JVM学习八:常用JVM配置参数

    前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块. 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是 ...

  3. Linux系统学习 八、SSH服务—SSH远程管理服务

    1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...

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

    原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/  周学伟 Description: 本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservi ...

  5. ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters

    上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分 ...

  6. ROS学习笔记(一) # ROS参数服务器

    参考 roscpp/Overview/Parameter Server 0. 概述 ROS参数服务器能够保存 string, int, float, double, bool, list, dicti ...

  7. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  8. ROS学习笔记9-创建ros消息和服务

    该节内容主要来自于官方文档的两个小节:1.使用rosed来编辑2.创建ros消息的服务 先来看rosed: rosedrosed命令是rosbash的一部分,使用rosed可以直接编辑包中的一个文件, ...

  9. SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  10. ROS知识(2)----理解ROS系统结构

    学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架 ...

随机推荐

  1. [Algorithm] Inorder Successor in a binary search tree

    For the given tree, in order traverse is: visit left side root visit right side // 6,8,10,11,12,15,1 ...

  2. [Algorithm] Delete a node from Binary Search Tree

    The solution for the problem can be divided into three cases: case 1: if the delete node is leaf nod ...

  3. 怎样让孩子爱上设计模式 —— 7.适配器模式(Adapter Pattern)

    怎样让孩子爱上设计模式 -- 7.适配器模式(Adapter Pattern) 标签: 设计模式初涉 概念相关 定义: 适配器模式把一个类的接口变换成client所期待的还有一种接口,从而 使原本因接 ...

  4. Redis开发 - 1. 认识redis

    1. 什么是Redis? Redis is a very fast non-relational database that stores a mapping of keys to five diff ...

  5. 如何在onCreate方法中获取视图的宽度和高度

    你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度. 但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0. 为什么呢? 这是因为,当 ...

  6. common.js 2017

    String.IsNullOrEmpty = function (v) { return !(typeof (v) === "string" && v.length ...

  7. TOJ 3365 ZOJ 3232 It's not Floyd Algorithm / 强连通分量

    It's not Floyd Algorithm 时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte   描述 When a directed grap ...

  8. Binutils工具集中的一些比较常用的工具

    addr2line addr2line是用来将程序地址转换成其所对应的程序源文件.代码行以及所对应的函数. ar ar是用来管理档案文件的,在嵌入式系统开发中,ar主要是用来对静态库进行管理. ar常 ...

  9. nyoj 119士兵杀敌(三)(线段树区间最值查询,RMQ算法)

    题目119 题目信息 执行结果 本题排行 讨论区 士兵杀敌(三) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描写叙述 南将军统率着N个士兵,士兵分别编号为1~N,南将军常 ...

  10. 使用SpringBoot创建Web项目

    1.pom.xml 引入 <parent> <groupId>org.springframework.boot</groupId> <artifactId&g ...