zoukankan      html  css  js  c++  java
  • 理解ROS的参数

    记住每次操作之前都要在一个单独的终端中运行ros的核心.

    roscore

    rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表。ROS使用YAML标记语言作为语法,在简单的情况下,YAML看起来是非常自然的:1是整数,1.0是浮点数,one是字符串,true是布尔类型,[1,2,3]是一个列表,{a:b,c:d}是一个字典。我们使用rosparam list 命令可以查看参数服务器上的内容:

    rosparam list

    返回的结果如下:

    /rosdistro
    /roslaunch/uris/host_ununtu__49327
    /rosversion
    /run_id

    上面的这些是运行roscore后参数服务器上的内容。然后运行小乌龟的节点,再次查看参数服务器上的内容:

    /background_b
    /background_g
    /background_r
    /rosdistro
    /roslaunch/uris/host_ununtu__49327
    /rosversion
    /run_id

    我们可以看到turtlesim_node节点在参数服务器上存储了三个表示背景颜色的参数。

    使用rosparam set可以改变参数服务器上的参数,而rosparam get可以获取参数服务器上参数的值,它的使用方法如下:

    rosparam set [param_name]
    rosparam get [param_name]

    我们改变背景颜色如下:

    rosparam set background_r 150

    这条命令执行完成后,我们会发现背景颜色并没有发生变化,对了我们得刷新一下,怎么刷新呢,这条命令我们已经学过了哦:

    rosservice call /clear

    执行完这条命令之后就能看到小乌龟的背景颜色变化了(小乌龟本身没有任何变化)。

    使用下面的命令:

    rosparam get /background_r

    可以获得修改过的/background_r的值,我们也可以使用

    rosparam get /

    一次性获取所有参数的值.


    你可能希望存储参数服务器上的这些值,然后在某个时候直接reload这些数据就可以直接使用了.

    使用命令rosparam dump可以将参数服务器的内容写到一个文件中,它的使用方法如下:

    rosparam dump [file_name]

    例如:

    rosparam dump params.yaml

    我们将参数服务器的内容写到params.yaml的文件中。

    在reload这些数据的时候,你甚至可以load到另外的命名空间去:

    rosparam load params.yaml copy

    然后查看:

    rosparam get copy/background_b

    总结:ROS的节点node可以把自己的数据已YAML的形式存放到ROS的参数服务器上去,然后利用一些命令行工具操作这些数据.如rosparam list, rosparam get, rosparam set, rosparam dump,rosparam load等命令行工具.

  • 相关阅读:
    c++ 编译时检测结构体大小的的宏定义写法
    文本格式转换的网站,云转换
    chm格式文件,win7下用c:/windows/hh.exe打开
    visual paradigm 自动解析代码生成 UML图
    proxifiler 代理神器
    linux下设置 git ssh 代理
    一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
    connect-proxy rpm文件的安装
    [转] ssh免密码登录服务器
    [转] 公司局域网中代码访问 github.com
  • 原文地址:https://www.cnblogs.com/stemon/p/4188149.html
Copyright © 2011-2022 走看看