• Mr_matcher的细节2


    1.参数服务器

    ROS参数服务器能保存数据类型包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, and base64-encoded data。Dictionaries则必需有字符串key值。

    roscpp参数API能支持全部类型,多数情况容易使用的类型有:strings, integers, floats and booleans,使用其他类型参考XmlRpc::XmlRpcValue class

    roscpp有两个版本的API接口:bare版和handle版。

    bare版:在 ros::param 命令空间下。

    handle版:通过ros::NodeHandle接口使用。

    2.获取参数

    从参数服务器获取值,每个版本都支持strings, integers, doubles, booleans 和XmlRpc::XmlRpcValue

    返回 false代表参数不存在或不是正确的类型。

    1)NodeHandle版本

    ros::NodeHandle::getParam()

    NodeHandle版本:参数相对于NodeHandle的命名空间进行解析。

    ros::NodeHandle nh;
    std::string global_name, relative_name, default_param;
    if (nh.getParam("/global_name", global_name))
    {
      ...
    }
    
    if (nh.getParam("relative_name", relative_name))
    {
    ...
    }
    
    // Default value version
    nh.param<std::string>("default_param", default_param, "default_value");
    

     3.设置参数

    NodeHandle版本
    ros::NodeHandle::setParam() NodeHandle版本:参数相对于NodeHandle的命名空间进行解析 ros::NodeHandle nh; nh.setParam("/global_param", 5); nh.setParam("relative_param", "my_string"); nh.setParam("bool_param", false);

    4.检查参数是否存在

    handle版:ros::NodeHandle::hasParam()
    ros::NodeHandle nh;
    if (nh.hasParam("my_param"))
    {
      ...
    }

    5.删除参数

    handle版:ros::NodeHandle::deleteParam()
    
    ros::NodeHandle nh;
    nh.deleteParam("my_param");

     6.访问私有参数

    handle版:创建的ros::NodeHandle实例,并提供私有的命名空间作为其命名空间
    ros::NodeHandle nh("~");
    std::string param;
    nh.getParam("private_name", param);
    

     参考http://www.ncnynl.com/archives/201702/1295.html

  • 相关阅读:
    解析xml
    序列化为xml
    aspose.cells excel表格导入导出
    文件下载
    jquery拼接和拆分字符串,并加入特殊符号
    VC Windows系统服务创建代码
    Lua 基础知识-面向对象
    iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
    iOS 网络与多线程--7.Performselector消息处理方法
    iOS 网络与多线程--6.下载并保存网络图片
  • 原文地址:https://www.cnblogs.com/gary-guo/p/7065305.html
Copyright © 2020-2023  润新知