ROS学习之 cpp参数服务器


wiki链接 :wiki.ros.org/roscpp/Overview/Parameter%20Server

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)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值