美文网首页
01-ROS入门-参数服务器Parameter Server

01-ROS入门-参数服务器Parameter Server

作者: joey_zhou | 来源:发表于2016-12-12 12:09 被阅读811次

    Parameter Server

    参数服务器是共享的,多变量的字典,可以通过网络API访问。节点使用参数服务器存储参数,但参数服务器不是为了高性能运算而设计,所以最好用于静态、非二进制数据,比如配置参数。参数服务器使得参数全局可见,便于更改。
    参数服务器使用了通用XML语言的RPC互联网传输机制,运行再ROSMaster中,这也使得参数服务器的API可以通过XMLRPC的库访问。

    Parameters 参数

    参数命名规则遵循ROS命名规则,这也使得ROS参数命名匹配命名空间的分层规则,这也避免的命名冲突。分层的命名既可以单独访问,也可以以参数树的形式访问。比如下面的参数

    /camera/left/name: leftcamera
    /camera/left/exposure: 1
    /camera/right/name: rightcamera
    /camera/right/exposure: 1.1

    参数 /camera/left/name 具有 leftcamera的值,也可以通过下面的字典得到 /camera/left的值

    name: leftcamera
    exposure: 1

    也可以通过参数树得到 /camera的值

    left: { name: leftcamera, exposure: 1 }right: { name: rightcamera, exposure: 1.1 }

    Parameter Types 参数类型

    参数使用XMLRPC 数据类型作为参数值,包括:
    32-bit integers
    booleans
    strings
    doubles
    iso8601 dates
    lists
    base64-encoded binary data

    同时也可以使用参数服务器存储字典(比如结构体). 比如需要使用下面的三个参数:

    /gains/P = 10.0/gains/I = 1.0/gains/D = 0.1

    可以分开读取他们的值,读取/gains/P返回10.0, 也可以读取整体 /gains返回字典:

    { 'P': 10.0, 'I': 1.0, 'D' : 0.1 }

    Private Parameters 私有参数

    ROS命名规则使用 ~name作为私有参数. 此命名参数只对单个节点生效。 The 前缀加上使得节点名称变为半私有命名空间,这样可以被其他部分访问,但是也可以防止命名冲突。
    可以使用 remapping arguments 指定节点的参数,只需要在命令行中将~改为 _ ,例如

    rosrun rospy_tutorials talker _param:=1.0

    Parameter Tools 参数工具

    rosparam 命令行工具可以使用YAML语法查询和设置参数。

    相关文章

      网友评论

          本文标题:01-ROS入门-参数服务器Parameter Server

          本文链接:https://www.haomeiwen.com/subject/dijmdttx.html