重庆免费微网站,免费个人网站域名注册,网易企业邮箱手机端设置,wordpress设置只显标题目录
一、参数服务器的新增、修改参数
1、API
2、代码
二、参数服务器获取参数
1、API
2、代码
三、参数服务器删除参数
1、API
2、代码 一、参数服务器的新增、修改参数
1、API
在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandlesetParam(键,值…目录
一、参数服务器的新增、修改参数
1、API
2、代码
二、参数服务器获取参数
1、API
2、代码
三、参数服务器删除参数
1、API
2、代码 一、参数服务器的新增、修改参数
1、API
在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandlesetParam(键,值)ros::paramset(键,值)
2、代码
#include ros/ros.hint main(int argc, char *argv[])
{ros::init(argc,argv,set_update_param);std::vectorstd::string stus;stus.push_back(zhangsan);stus.push_back(李四);stus.push_back(王五);stus.push_back(孙大脑袋);std::mapstd::string,std::string friends;friends[guo] huang;friends[yuang] xiao;//NodeHandle--------------------------------------------------------ros::NodeHandle nh;nh.setParam(nh_int,10); //整型nh.setParam(nh_double,3.14); //浮点型nh.setParam(nh_bool,true); //boolnh.setParam(nh_string,hello NodeHandle); //字符串nh.setParam(nh_vector,stus); // vectornh.setParam(nh_map,friends); // map//修改演示(相同的键不同的值)nh.setParam(nh_int,10000);//param--------------------------------------------------------ros::param::set(param_int,20);ros::param::set(param_double,3.14);ros::param::set(param_string,Hello Param);ros::param::set(param_bool,false);ros::param::set(param_vector,stus);ros::param::set(param_map,friends);//修改演示(相同的键不同的值)ros::param::set(param_int,20000);return 0;
}
二、参数服务器获取参数
1、API
在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandleparam(键,默认值) 存在返回对应结果否则返回默认值getParam(键,存储结果的变量)存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamCached键,存储结果的变量)--提高变量获取效率存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamNames(std::vectorstd::string)获取所有的键,并存储在参数 vector 中 hasParam(键)是否包含某个键存在返回 true否则返回 falsesearchParam(参数1参数2)搜索键参数1是被搜索的键参数2存储搜索结果的变量ros::param ----- 与 NodeHandle 类似
2、代码
#include ros/ros.hint main(int argc, char *argv[])
{setlocale(LC_ALL,);ros::init(argc,argv,get_param);//NodeHandle--------------------------------------------------------/*ros::NodeHandle nh;// param 函数int res1 nh.param(nh_int,100); // 键存在int res2 nh.param(nh_int2,100); // 键不存在ROS_INFO(param获取结果:%d,%d,res1,res2);// getParam 函数int nh_int_value;double nh_double_value;bool nh_bool_value;std::string nh_string_value;std::vectorstd::string stus;std::mapstd::string, std::string friends;nh.getParam(nh_int,nh_int_value);nh.getParam(nh_double,nh_double_value);nh.getParam(nh_bool,nh_bool_value);nh.getParam(nh_string,nh_string_value);nh.getParam(nh_vector,stus);nh.getParam(nh_map,friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,nh_int_value,nh_double_value,nh_string_value.c_str(),nh_bool_value);for (auto stu : stus){ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()nh.getParamCached(nh_int,nh_int_value);ROS_INFO(通过缓存获取数据:%d,nh_int_value);//getParamNames()std::vectorstd::string param_names1;nh.getParamNames(param_names1);for (auto name : param_names1){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 nh_int 吗? %d,nh.hasParam(nh_int));ROS_INFO(存在 nh_intttt 吗? %d,nh.hasParam(nh_intttt));std::string key;nh.searchParam(nh_int,key);ROS_INFO(搜索键:%s,key.c_str());*///param--------------------------------------------------------ROS_INFO();int res3 ros::param::param(param_int,20); //存在int res4 ros::param::param(param_int2,20); // 不存在返回默认ROS_INFO(param获取结果:%d,%d,res3,res4);// getParam 函数int param_int_value;double param_double_value;bool param_bool_value;std::string param_string_value;std::vectorstd::string param_stus;std::mapstd::string, std::string param_friends;ros::param::get(param_int,param_int_value);ros::param::get(param_double,param_double_value);ros::param::get(param_bool,param_bool_value);ros::param::get(param_string,param_string_value);ros::param::get(param_vector,param_stus);ros::param::get(param_map,param_friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,param_int_value,param_double_value,param_string_value.c_str(),param_bool_value);for (auto stu : param_stus){ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : param_friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()ros::param::getCached(param_int,param_int_value);ROS_INFO(通过缓存获取数据:%d,param_int_value);//getParamNames()std::vectorstd::string param_names2;ros::param::getParamNames(param_names2);for (auto name : param_names2){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 param_int 吗? %d,ros::param::has(param_int));ROS_INFO(存在 param_intttt 吗? %d,ros::param::has(param_intttt));std::string key;ros::param::search(param_int,key);ROS_INFO(搜索键:%s,key.c_str());return 0;
}
三、参数服务器删除参数
1、API
ros::NodeHandledeleteParam(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 falseros::paramdel(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 false
2、代码
#include ros/ros.hint main(int argc, char *argv[])
{ setlocale(LC_ALL,);ros::init(argc,argv,delete_param);ros::NodeHandle nh;bool r1 nh.deleteParam(nh_int);ROS_INFO(nh 删除结果:%d,r1);bool r2 ros::param::del(param_int);ROS_INFO(param 删除结果:%d,r2);return 0;
}