zoukankan      html  css  js  c++  java
  • ROS学习(八)—— 理解ROS服务和参数

    一、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

    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 2 2 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 150
    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
  • 相关阅读:
    R语言实战(四)回归
    nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
    nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
    nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
    nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
    Debian安装fail2ban来防止扫描
    Debian安装fail2ban来防止扫描
    Debian安装fail2ban来防止扫描
    Debian安装fail2ban来防止扫描
    字典转Json
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6277362.html
Copyright © 2011-2022 走看看