ros 参数服务器

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

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("default_param", default_param, "default_value");

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("default_param", default_param, "default_value");

设置参数也是类似的两种方法:

             通过句柄的命名空间映射参数  

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);

 
   

检查参数是否存在:

     一:

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

}

二:

if ( ros :: param :: has ( " my_param " )) {

...

}

访问私有的参数:当使用句柄接口时,需要创建一个有私有命名的ros句柄作为他

ros::NodeHandle nh("~"); std::string param;

nh.getParam("private_name", param);

当不使用句柄接口时,使用描述接口的相同符号来访问私有参数

std::string param;

ros::param::get("~private_name", param)










你可能感兴趣的:(ros 参数服务器)