ROS通信机制——参数服务器
C++实现参数设置
在C++中实现参数服务器数据的增删改查,有两套API可以使用。
- ros::NodeHandle
- ros::param
1.参数服务器新增(修改)参数
ros::NodeHandle
ros::init(argc,argv,"nodename");
ros::NodeHandle nh;
nh.setParam(key,value);
ros::param
ros::param::set(key,value);
2.从参数服务器获取参数
ros::NodeHandle
param(key,value_0)
//存在,返回对应结果,否则返回默认值value_0
getParam(key,bool_para)
//存在,返回 true,且将值赋值给参数2
//若果键不存在,那么返回值为 false,且不为参数2赋值
getParamCached(key,value_2) //提高变量获取效率
//存在,返回 true,且将值赋值给参数value_2
//若果键不存在,那么返回值为 false,且不为参数2赋值
getParamNames(std::vector<std::string>)
//获取所有的键,并存储在参数 vector 中
hasParam(key)
//是否包含某个键,存在返回 true,否则返回
falsesearchParam(key,value_2)
//搜索键,参数1是被搜索的键,参数value_2存储搜索结果的变量
ros::param 与 ros::NodeHandle 类似
3.参数服务器删除参数
ros::NodeHandle
deleteParam(key)
根据键删除参数,删除成功,返回 true,否则(参数不存在),返回 false
ros::param
del(key)
根据键删除参数,删除成功,返回 true,否则(参数不存在),返回 false
Python实现参数设置
在Python中实现参数服务器数据的增删改查,有两套API可以使用,与C++实现非常类似。