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

原创 2015年07月07日 10:30:42

上一节完成了对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, 关系复习图如下:



版权声明:sonictl原创文章,转载注明,否则读者享用不了后续服务,感谢!

【ROS学习】(七)ROS参数服务(1)

在任何机器人系统中,参数传递都是一个十分重要的功能,不论是传感器的设置,还是控制参数的调整,都需要留出方便的参数调试接口,有的参数只在启动程序启动时更改,有的参数却希望在运行时能够被动态修改,在ROS...

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

主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam。ROS serviceservice是节点之间互相通信的另一种方式,services允许节点发送一个请求并接收一个回...
  • mountzf
  • mountzf
  • 2016年08月25日 20:54
  • 2231

ROS使用教程-关于rosparam

引出launch时roslaunch首先检查roscore是否已经启动,如果没有则启动roscore。 roscore会做三件事: - 启动master节点,该节点是隐藏的,用于通过消息名查询目标...
  • wendox
  • wendox
  • 2016年09月06日 21:41
  • 3579

ROS的学习(十六)用C++写一个简单的服务器(service)和客户端(client)

我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和。切换目录到之前建立的beginner_tutorials包下: cd ~/catkin_ws/s...

ROS学习(-)基本概念+发布&订阅消息

对ros学习的相关概念、消息发布和订阅、遇到的故障信息进行阶段性总结。
  • mr_ahke
  • mr_ahke
  • 2016年07月29日 19:56
  • 1765

ROS入门_1.19 总结篇: ROS基础概念与基本操作

一:ros的系统架构     ros系统架构主要分为三个部分: 文件系统级 计算图级 开源社区级 1. 文件系统级 功能包(package):是ROS中软件组织的基本形式,一个功能包具有最小的结构...

ROS)话题的概念

ROS话题与消息 因为没有安截图软件所以依旧没有参考价值(即使有也没有丝毫参考价值 个人备忘录 是不是应该弄个ros包&指令大全及功能啥的了( 总觉的官网应该有的=-= 啊 伸个手?谁来给我伸个手。。...

ROS学习手记 - 4 理解ROS中的基本概念_ROS_Topics

Understanding ROS Topics This tutorial introduces ROS topics as well as using the rostopic and rqt_...
  • sonictl
  • sonictl
  • 2015年07月06日 10:59
  • 1298

参数use_sim_time

这个参数当回放bag数据集是设置为true,此时说明系统使用的是仿真时间,如果设置为false,则系统使用walltime。具体相关话题等详细信息请查看这里。...

ROS探索总结(十五)——amcl(导航与定位)

在理解了move_base的基础上,我们开始机器人的定位与导航。gmaping包是用来生成地图的,需要使用实际的机器人获取激光或者深度数据,所以我们先在已有的地图上进行导航与定位的仿真。      ...
  • hcx25909
  • hcx25909
  • 2013年09月27日 21:10
  • 35939
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters
举报原因:
原因补充:

(最多只允许输入30个字)