【ROS】参数服务器(增、改)1.1

参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,不同的节点也可以往其中存储数据。

导航实现时,会进行路径规划。设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成实时的行进路径。路径规划时,需要考虑小车的尺寸,可以将这些尺寸信息存储到参数服务器中,全局路径规划节点与本地路径规划节点都可以从参数服务器中调用这些参数。

概念:

master--->管理者        talker--->参数设置者         listener--->参数调用者

以共享的方式实现不同节点之间数据交互的通信模式。

注意:

        参数服务器不是为高性能而设计的,因此最好用于存储静态的非二进制的简单数据

参数服务器可使用数据类型:

        32-bit integers

        booleans

        strings

        doubles

        iso8601 dates--->时间类型数据

        lists--->列表

        base64-encoded binary data--->base64编码的二进制数据

        字典

需求:

        实现参数服务器参数的增删改查操作

在C++中实现参数服务器数据的增删改查,可以通过两套API实现:

        ros::NodeHandle

        ros::param

参数服务器增、改

#include "ros/ros.h"

/*
需要实现参数的新增和修改
需求:
    首先设置机器人的共享参数,类型,半径(0.15m)
    再修改半径(0.2m)
实现:
    ros::NodeHandle
        setParam("键",值)
    ros::param
        set("键",值)
修改,只需要继续调用setParam或set函数,保证键是已经存在的,那么值会覆盖
*/

int main(int argc, char *argv[])
{
    /* code */
    setlocale(LC_ALL,"");
    //初始化ROS节点
    ros::init(argc,argv,"set_param_c");
    //创建ROS句柄
    ros::NodeHandle nh;
    //参数增-------------------------------------
    //方案1:nh
    nh.setParam("type","xiaoHuang");
    nh.setParam("radius",0.15);
    //方案2:ros::param
    ros::param::set("type_param","xiaoBai");
    ros::param::set("radius_param",0.15);
    //参数改-------------------------------------
    //方案1:nh
    nh.setParam("radius",0.2);
    //方案2:ros::param
    ros::param::set("radius_param",0.25);
    return 0;
}

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值