上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters

我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分开说,但限于 csdn blog 没有文章顺序调整功能。只能罢了~~

-----------------以下是我作的关于ROS Service的总结-------------------

关于ROS Service的总结:

  • 什么是ROS Service: 在wiki/tutorials/1.7 中,有“Understanding ROS Services and Parameters”一节, 我不理解为何要把service与parameter放在一起介绍。

    [概念concepts] ROS Service: Another way that Nodes communicate with nodes. A_node send a request to B_node, and B_node give a response.

    [命令Commands] sorservice list/call/type/find/uri    &   rossrv - this command is mainly for the .srv files operations

  • 什么定义了ROS Service: *.srv file - srv文件: 在wiki/tutorials/1.10  中,有“Creating Msg & Srv” 一节,我还是没理解为何要把srv文件和msg文件放在一起介绍。

    The function of srv file: Discribe/define the data type for a service. The data type of Req. & Resp. divided by '---'

    the srv file typically stored under ../workspace/src/package_name/srv/ path.

    [Create the srv file]: step1. echo "..." ./srv/filename.srv          step2. uncomment "gen_srv()" in CMakeList.txt file.

    [Use the srv file]: $rossrv show filename.srv , rossrv -- info of service definitions
  • 什么程序实现了ROS Servie: 在 wiki/tutorials/1.14 中,有“Writing a simpleService and Client(C++)” 一节,
    其中详细介绍了Service_node & Client_node的程序实现。

-----------------以上是我作的关于ROS Service的总结-------------------

关于ROS Parameters的总结:

  • 什么是ROS Parameters: ROS Parameters 是ROS程序运行时所需要的参数,比如你的机器人的轮子的半径,你的gyro传感器是否具备等。

  • 如何修改和操作ROS Parameters:
    这里我要引用一些高级的东东,简单的就不说了。link
    是关于改了parameter没反应时的方法。还有要注意:

    rosparam set use_sim_time true

    rosparam delete /move_base

    以上俩关于rosparam 命令的使用方法mentioned in this blog: link

  • 如何在命令行中指派parameter的值:这个叫“Dynamic Reconfigure” ,具体方法:1. Python:
    Link   2. C++ Link

-----------------以下是我最初学习它的时候的手记-----------------

  1. Understanding ROS Services and Parameters

    This tutorial introduces ROS services, and parameters as well as using therosservice androsparam
    commandline tools.

Description: This tutorial introduces ROS services, and parameters as well as using the rosservice and rosparam commandline tools.

ROS Services

Services are another way that nodes can communicate with each other. Services allow nodes to send a request and receive a response.

Using rosservice

*rosservice* can easily attach to ROS's client/service framework with services. rosservice has many commands that can be used on topics, as shown below:



Usage:

    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



    list

    type

    call

Using rosparam

*rosparam* allows you to store and manipulate data on the ROS Parameter Server. The Parameter Server can store integers, floats, boolean, dictionaries, and lists. rosparam uses the YAML markup language for syntax. In simple cases, YAML looks very natural: 1
is an integer, 1.0 is a float, one is a string, true is a boolean, [1, 2, 3] is a list of integers, and {a: b, c: d} is a dictionary. rosparam has many commands that can be used on parameters, as shown below:



Usage:



    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



    list

    set/get

    dump/load

Stack, Package, Nodes/Messages/Services/Libraries/Tools, 关系复习图如下:

ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters的更多相关文章

  1. ROS学习手记 - 7 创建ROS msg & srv

    至此,我们初步学习了ROS的基本工具,接下来一步步理解ROS的各个工作部件的创建和工作原理. 本文的详细文档:http://wenku.baidu.com/view/623f41b3376baf1ff ...

  2. ROS学习手记 - 8 编写ROS的Publisher and Subscriber

    上一节我们完成了 message & srv 文件的创建和加入编译,这次我们要玩简单的Publisher 和 Subscriber 要玩 Publisher 和 Subscriber, 需要具 ...

  3. ROS学习手记 - 6 使用ROS中的工具:rqt_console & roslaunch & rosed

    http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch Using rqt_console and roslaunch This tuto ...

  4. ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python)

    ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要 ...

  5. ROS学习(一)Ros 中使用kinect

    上的安装说明如下: 官网上明确写了如果安装windows kinect还需要安装一个驱动,但是有些ROS的书上并没有这么做,只提到了使用如下两步进行安装即可使用: sudo apt-get insta ...

  6. ROS学习笔记二:ROS系统架构及概念

    本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级 ...

  7. ROS学习笔记一(ROS的catkin工作空间)

    在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...

  8. ROS学习笔记一:ROS安装与测试

    1 Ubuntu和ROS版本的对应关系 Ubuntu 和 ROS 都存在不同的版本,其对应关系如下: 注:如果Ubuntu版本和ROS版本不对应的话,安装就不会成功了- 笔者安装的是Ubuntu14. ...

  9. ROS学习手记 9 -- 阶段性复习

    ROS 阶段性总结 1. 基本概念 ROS 是建立在Linux特别是Ubuntu系统上的一套软件系统,它具有操作系统的特征 ,负责管理各个模块的协同运行.设计初衷主要是面向机器人软硬件开发的特点:多 ...

随机推荐

  1. 基于select类型多路IO复用,实现简单socket并发

    还有很多缺限,如客户断开无限重复 以下转至老师博客: server: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = " ...

  2. .net(C#)常见面试题

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...

  3. 关于使用MAPVIEWOFFILE大文件的读写(DELPHI版)

    unit filemap; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  4. Team Foundation Server 2010简体中文版

    文件名称:Team Foundation Server 2010简体中文版 文件大小:1.8 GBhttp://www.google.com/profiles/dedecms.com 下载地址: th ...

  5. CentOS 7.4 初次手记:第四章 CentOS安全了解

    第四章 CentOS安全了解... 66 第一节 user.group.chmod. 66 I 10位文件属性... 66 II user/group增删改... 67 III user/group配 ...

  6. 黄聪:C#如何使用fiddlercoreCapture监控手机APP

    1.去下载Fiddler:https://www.telerik.com/download/fiddler 2.安装Fiddler,按下图所示导出证书,导出后在桌面得到:FiddlerRoot.cer ...

  7. centos 磁盘清理 /dev/vda1系统盘满了

    df   -h   检查一台服务器磁盘使用空间,发现磁盘已经使用了100% 思路是: 1.cd /usr   当然这里不一定是/usr目录,最好是cd到 根目录再执行下一步 2.du -sh * 看哪 ...

  8. ALGO-157_蓝桥杯_算法训练_阶乘末尾(高精度)

    问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 样例输出 数据规模和约定 n<=, ...

  9. C++进阶--析构函数中的异常

    //############################################################################ /* * 不要让异常离开析构函数 * 析构 ...

  10. FB工作流相关

    1.初始化项目 gitlab上建立一个仓库 在命令行中运行git clone,将仓库克隆到本地 在命令行中找到前端模版文件(模版文件夹(front-template)有个sao.js脚本,用来在本地按 ...