首页 > 学院 > 开发设计 > 正文

ROS学习 cpp参数服务器

2019-11-08 18:29:34
字体:
来源:转载
供稿:网友

wiki 链接

    ROS的参数服务器可以存储字符串,整型,浮点型,布尔型,列表,字典,iso8601数据,64基编码数据.字典数据要有字符串键.    roscpp的参数API支持所有这些,尽管在使用中常使用strings,integers,floats,booleans.xmlRpc::XmlRpcValue类实现了其它数据类型

    roscpp有两类参数API,直接版本在ros::param名字空间下,句柄版本在ros::NodeHandle类下,接下来分别介绍两种版本:

    1.获取参数

        从参数服务器内获取一个参数值.        a. ros::NodeHandle::getParam()方法            通过节点句柄取得参数与节点句柄的名字空间有关.            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");                    b.ros::param::get()方法            直接版本获取参数与节点的名字空间有关.            std::string global_name, relative_name, default_param;            if (ros::param::get("/global_name", global_name))            {              ...            }            if (ros::param::get("relative_name", relative_name))            {            ...            }            // Default value version            ros::param::param<std::string>("default_param", default_param, "default_value");

    2.设置参数

        句柄方式            ros::NodeHandle nh;            nh.setParam("/global_param", 5);            nh.setParam("relative_param", "my_string");            nh.setParam("bool_param", false);        直接方式            ros::param::set("/global_param", 5);            ros::param::set("relative_param", "my_string");            ros::param::set("bool_param", false);

    3.检查参数是否存在

        句柄方式: ros::NodeHandle::hasparam()        直接方式: ros::param::has()

    4.删除参数

        句柄方式: ros::NodeHandle::deleteParam()        直接方式: ros::param::del()

    5.寻找参数

        ros::NodeHandle::searchParam("bar",key)        ros::param::serch("bar",key)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表